[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-openai-physical-ai-neural-reconstruction":3,"mdc--6eyepc-key":36,"related-repo-openai-physical-ai-neural-reconstruction":3127,"related-org-openai-physical-ai-neural-reconstruction":3248},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":25,"repoUrl":26,"updatedAt":27,"license":28,"forks":29,"topics":30,"repo":31,"sourceUrl":34,"mdContent":35},"physical-ai-neural-reconstruction","reconstruct 3D neural models with PhysicalAI","Router for NVIDIA NuRec\u002FNRE: USDZ rendering, NCore conversion, 3DGS, gRPC sensor sim, PhysicalAI HF datasets. Do NOT use for SimReady or infra setup.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"openai","OpenAI","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fopenai.png",[12,16,19,22],{"name":13,"slug":14,"type":15},"Datasets","datasets","tag",{"name":17,"slug":18,"type":15},"Graphics","graphics",{"name":20,"slug":21,"type":15},"Deep Learning","deep-learning",{"name":23,"slug":24,"type":15},"AI Infrastructure","ai-infrastructure",3992,"https:\u002F\u002Fgithub.com\u002Fopenai\u002Fplugins","2026-06-30T19:00:57.102","Apache-2.0",465,[],{"repoUrl":26,"stars":25,"forks":29,"topics":32,"description":33},[],"OpenAI Plugins","https:\u002F\u002Fgithub.com\u002Fopenai\u002Fplugins\u002Ftree\u002FHEAD\u002Fplugins\u002Fnvidia\u002Fskills\u002Fphysical-ai-neural-reconstruction","---\nname: physical-ai-neural-reconstruction\ndescription: \"Router for NVIDIA NuRec\u002FNRE: USDZ rendering, NCore conversion, 3DGS, gRPC sensor sim, PhysicalAI HF datasets. Do NOT use for SimReady or infra setup.\"\nlicense: Apache-2.0\nversion: \"0.3.0\"\ntools:\n  - Read\n  - Shell\ncompatibility: >-\n  Router skill; downstream sibling skills require Docker, NVIDIA Container\n  Toolkit, GPU, NGC API key, Hugging Face token with PhysicalAI gated\n  licenses accepted, Python 3.10+, and `huggingface_hub`. Optional:\n  CARLA \u002F Isaac Sim 5.1 \u002F AlpaSim for simulator integration over\n  `serve-grpc`.\nmetadata:\n  author: NVIDIA Physical AI\n  tags:\n    - physical-ai\n    - nurec\n    - neural-reconstruction\n    - router\n    - sensor-sim\n  upstream:\n    repo: https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fnurec-skills\n    branch: main\n    skills_dir: .agents\u002Fskills\u002F\n    skills_dir_alias: skills\u002F\n    index_skill: .agents\u002Fskills\u002FSKILL.md\n    index_skill_name: nurec-index\n    sibling_skills:\n      physical-ai-datasets:\n        folder: physical-ai-datasets\u002F\n        upstream: https:\u002F\u002Fhuggingface.co\u002Fnvidia\n      ncore:\n        folder: ncore\u002F\n        upstream: https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fncore\n      nre:\n        folder: nre\u002F\n        upstream: nvcr.io\u002Fnvidia\u002Fnre\u002Fnre\n      asset-harvester:\n        folder: asset-harvester\u002F\n        upstream: https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fasset-harvester\n      nurec-fixer:\n        folder: nurec-fixer\u002F\n        upstream: https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fharmonizer\n        hf_model: https:\u002F\u002Fhuggingface.co\u002Fnvidia\u002FDiffusionHarmonizer\n  upstream_clone_path: \"${PHYSICAL_AI_SKILL_HUB_UPSTREAM_ROOT:-$HOME\u002F.physical-ai-skill-hub\u002Fupstreams}\u002Fnurec-skills\"\n  upstream_override_env: NUREC_SKILLS_UPSTREAM_ROOT\n---\n\n# Physical AI Neural Reconstruction (NuRec) Router\n\n## Purpose\n\nThis is a **thin router** for NVIDIA Neural Reconstruction (NuRec)\nrequests. It points at the upstream `nurec-index` skill at\n`https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fnurec-skills` and its five sibling skills\n(`physical-ai-datasets`, `ncore`, `nre`, `asset-harvester`,\n`nurec-fixer`). Use this skill to:\n\n- Identify which upstream sibling skill answers a NuRec question.\n- Locate, clone, or refresh the canonical `nurec-skills` checkout.\n- Order multi-step NuRec workflows (data → conversion → train →\n  render → cleanup) before opening the upstream recipe.\n\nThe canonical recipes (training, rendering, data conversion, dataset\ndownloads, object harvesting, frame cleanup) live in the upstream\nsibling skills. **Never copy or reconstruct their commands here.**\n\n**Do NOT use this skill for:**\n\n- SimReady packaging of CAD or source meshes → use\n  `omniverse-cad-to-simready`.\n- Generic USD performance tuning unrelated to NuRec → use\n  `omniverse-usd-performance-tuning`.\n- AKS \u002F OSMO \u002F NIM Operator infrastructure setup → use\n  `physical-ai-infrastructure-setup-and-resilient-scaling`.\n\n## When to Use\n\nRead this skill **first** whenever a user mentions any of:\n\n`nurec`, `nurec router`, `nurec index`, `neural reconstruction`,\n`neural reconstruction engine`, `NRE`, `3DGUT`, `3DGRT`, `USDZ`,\n`NCore V4`, `sensor sim`, `novel view synthesis`,\n`PhysicalAI-Autonomous-Vehicles-NuRec`, `PhysicalAI-NuRec-PPISP`,\n`Cosmos-Drive-Dreams`, `asset harvester`, `nurec fixer`,\n`DiffusionHarmonizer`, `harmonizer`, `difix`, `difix3d`, `serve-grpc`,\n`render-grpc`, `warm serve-grpc`, `nre thin client`, `batch_render_rgb`,\n`nurec teardown`, \"where do I start with NuRec\", \"which NuRec skill\nshould I use for X?\".\n\nDecide which upstream sibling skill answers the question, fetch it\n(see [Locate and fetch the upstream skills](#locate-and-fetch-the-upstream-skills)),\nthen follow that skill's body.\n\n## Prerequisites\n\nRouter skill itself has no runtime prerequisites beyond `git` for\nfetching the upstream. Downstream sibling skills require:\n\n- **Docker + NVIDIA Container Toolkit + GPU** — for `nre`, `nre-tools`,\n  and `nurec-fixer` containers\n  (`nvcr.io\u002Fnvidia\u002Fnre\u002Fnre`, `nvcr.io\u002Fnvidia\u002Fnre\u002Fnre-tools`,\n  `nvcr.io\u002Fnvidia\u002Fcosmos\u002Fcosmos-predict2-container:1.2`).\n- **NGC API key** (`NGC_API_KEY`) — for pulling NGC containers.\n- **Hugging Face token** (`HF_TOKEN`) with the\n  `nvidia\u002FPhysicalAI-*`, `nvidia\u002FDiffusionHarmonizer`, and\n  `nvidia\u002Fasset-harvester` gated licenses **accepted in advance** on\n  Hugging Face.\n- **Python 3.10+** with `huggingface_hub` installed.\n- **(Optional)** CARLA, Isaac Sim 5.1, or AlpaSim for simulator\n  integration over `serve-grpc`.\n\nVerify secrets safely (do not echo values):\n\n```bash\nhf auth whoami\n[ -n \"${HF_TOKEN:-}\" ]      && echo \"HF_TOKEN length=${#HF_TOKEN}\"      || echo \"HF_TOKEN unset\"\n[ -n \"${NGC_API_KEY:-}\" ]   && echo \"NGC_API_KEY length=${#NGC_API_KEY}\" || echo \"NGC_API_KEY unset\"\n```\n\nSee [`references\u002Fsecrets-handling.md`](references\u002Fsecrets-handling.md)\nfor the bash anti-patterns to avoid.\n\n## What is NuRec?\n\n**NuRec** (NVIDIA Omniverse Neural Reconstruction) takes camera, LiDAR,\nradar, or stereo recordings — typically from a self-driving car or a\nrobot — and turns them into a 3D scene you can re-render from any\nviewpoint. Names that come up a lot:\n\n- **NRE** — \"Neural Reconstruction Engine\". NuRec is the product; NRE\n  is the engine that trains and renders. Both route to the upstream\n  `nre` skill.\n- **USDZ** — the file format of a trained scene. A zip archive that\n  Omniverse, Isaac Sim, and CARLA can open.\n- **NCore V4** — the input format NRE consumes. Raw recordings must be\n  converted to NCore V4 before training.\n- **3DGUT \u002F 3DGRT** — the two 3D Gaussian Splatting flavours used\n  internally by NRE. The default Hydra recipe picks one; most users\n  never set it manually.\n\nA typical NuRec project has three stages:\n\n1. **Get the input** — convert your own recording to NCore V4\n   (`ncore`), or download a pre-converted dataset\n   (`physical-ai-datasets`).\n2. **Train the reconstruction** — feed NCore V4 to NRE; out comes a\n   USDZ (`nre`).\n3. **Render new views** — render images, videos, or LiDAR sweeps from\n   the USDZ (`nre`).\n\nProjects that just want to *use* an existing NVIDIA-published scene\nskip step 2.\n\n## Pick a skill\n\nMatch the user's goal in the left column and open the named upstream\nskill on the right. Arrows mean \"do these in order\".\n\n| I want to… | Upstream skill |\n|------------|----------------|\n| Find or download a NuRec dataset NVIDIA has published | `physical-ai-datasets` |\n| Convert my own camera \u002F LiDAR \u002F radar \u002F depth \u002F stereo recording into NCore V4 | `ncore` |\n| Write a new converter for an unsupported sensor setup (drone, RGB-D, ROS 2 bag, COLMAP, ScanNet++) | `ncore` |\n| Train a 3D reconstruction from an NCore clip | `ncore` → `nre` |\n| Generate the extra inputs NRE needs (segmentation masks, depth, ego mask) | `nre` (uses the `nre-tools` container) |\n| Render a USDZ along the original camera positions | `nre` |\n| Render at full resolution \u002F highest quality | `nre` (see \"Quality presets\") |\n| Render along a shifted trajectory (e.g. car moved 3 m left) | `nre` |\n| Render through a server so CARLA \u002F Isaac Sim \u002F AlpaSim \u002F a custom simulator can ask for frames | `nre` (`serve-grpc`) |\n| Render the same USDZ many times back-to-back from Python with minimal per-call latency | `nre` (warm `serve-grpc` + thin Python client \u002F `batch_render_rgb`) |\n| Render LiDAR sweeps (point clouds) from a USDZ | `nre` (`render-grpc --lidar`) |\n| Skip training and just render a NuRec scene NVIDIA already built | `physical-ai-datasets` → `nre` |\n| Extract individual 3D objects (cars, pedestrians) from a driving clip | `asset-harvester` |\n| Add, remove, or replace cars \u002F pedestrians in a NuRec scene | `asset-harvester` → `nre` |\n| Clean up or harmonize rendered frames (ghosting, floaters, flicker, lighting\u002Fshadows) | `nurec-fixer`, **or** `--enable-difix` inside `nre` for inline rendering |\n| Export the scene as a PLY, mesh, depth maps, ego mask, etc. | `nre` |\n| Upgrade an old USDZ so newer NRE versions load it faster | `nre` (`upgrade-artifact`) |\n| Open a USDZ or PLY in a browser viewer | `nre` (`viewer` \u002F `ply_viewer`) |\n| Measure rendering quality (PSNR, SSIM, LPIPS) against ground truth | `nre` (`eval-rendering-metrics`) |\n| Benchmark different reconstruction methods on the same scenes | `physical-ai-datasets` (`PhysicalAI-NuRec-PPISP`) → `nre` |\n| Train on multiple GPUs or on SLURM | `nre` (Workflow D) |\n\n## Common workflows\n\nSix end-to-end workflows are documented in\n[`references\u002Fworkflows.md`](references\u002Fworkflows.md):\n\n- **A.** Make a NuRec scene from your own recording.\n- **B.** Use a NuRec scene NVIDIA has already trained.\n- **C.** Add, remove, or replace 3D objects in a scene.\n- **D.** Clean up rendered frames.\n- **E.** Benchmark reconstruction quality.\n- **F.** Connect NuRec to a simulator.\n\nOpen that file when the user's task spans more than one sibling skill.\n\n## Sibling skills (upstream)\n\n| Name | Upstream folder | What it does |\n|------|-----------------|--------------|\n| `physical-ai-datasets` | `.agents\u002Fskills\u002Fphysical-ai-datasets\u002F` | Catalog and download recipes for every NVIDIA Physical AI dataset on Hugging Face (driving, robotics, manipulation, NuRec scenes, benchmarks). |\n| `ncore` | `.agents\u002Fskills\u002Fncore\u002F` | Converts any sensor recording to NCore V4 (the format NRE needs). Also covers writing a new converter. |\n| `nre` | `.agents\u002Fskills\u002Fnre\u002F` | The Neural Reconstruction Engine itself. Trains, renders (locally, via warm `serve-grpc` + thin Python client \u002F `batch_render_rgb`, or to an external simulator), exports meshes \u002F point clouds \u002F depth, edits actors, evaluates quality. |\n| `asset-harvester` | `.agents\u002Fskills\u002Fasset-harvester\u002F` | Open-source Apache-2.0 pipeline that extracts individual 3D objects from sparse views in a driving clip and saves them as `.ply` Gaussian splats with metadata. |\n| `nurec-fixer` | `.agents\u002Fskills\u002Fnurec-fixer\u002F` | Standalone NVIDIA **DiffusionHarmonizer** workflow — public successor to the older Fixer \u002F Difix3D+ recipes — that cleans rendered frames, harmonizes inserted actors, evaluates PSNR\u002FLPIPS, and optionally fine-tunes the model. |\n\nFor naming overlaps (NRE vs Fixer, ncore vs nre, AV-NuRec vs\nCosmos-Drive-Dreams, NuRec vs SimReady) see\n[`references\u002Fmix-ups.md`](references\u002Fmix-ups.md).\n\n## Locate and fetch the upstream skills\n\nQuick recipe (full version in\n[`references\u002Fupstream-fetch.md`](references\u002Fupstream-fetch.md)):\n\n```bash\nUPSTREAM_ROOT=\"${NUREC_SKILLS_UPSTREAM_ROOT:-${PHYSICAL_AI_SKILL_HUB_UPSTREAM_ROOT:-$HOME\u002F.physical-ai-skill-hub\u002Fupstreams}}\"\nmkdir -p \"$UPSTREAM_ROOT\"\nif [ -d \"$UPSTREAM_ROOT\u002Fnurec-skills\u002F.git\" ]; then\n  git -C \"$UPSTREAM_ROOT\u002Fnurec-skills\" fetch --tags\n  git -C \"$UPSTREAM_ROOT\u002Fnurec-skills\" checkout main\n  git -C \"$UPSTREAM_ROOT\u002Fnurec-skills\" pull --ff-only\nelse\n  git clone --depth 1 https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fnurec-skills.git \\\n    \"$UPSTREAM_ROOT\u002Fnurec-skills\"\nfi\ntest -f \"$UPSTREAM_ROOT\u002Fnurec-skills\u002F.agents\u002Fskills\u002FSKILL.md\"\n```\n\nThen read the upstream skill before running any mutating command:\n\n```bash\ncat \"$UPSTREAM_ROOT\u002Fnurec-skills\u002F.agents\u002Fskills\u002FSKILL.md\"          # router\ncat \"$UPSTREAM_ROOT\u002Fnurec-skills\u002F.agents\u002Fskills\u002F\u003Cfolder>\u002FSKILL.md\" # sibling\n```\n\nLocal lookup order (try in order before the upstream clone):\n\n1. `.agents\u002Fskills\u002F\u003Cname>\u002FSKILL.md` (Cursor, Codex, NemoClaw)\n2. `.claude\u002Fskills\u002F\u003Cname>\u002FSKILL.md` (Claude Code)\n3. `.cursor\u002Fskills\u002F\u003Cname>\u002FSKILL.md` (project-scoped)\n4. `~\u002F.cursor\u002Fskills\u002F\u003Cname>\u002FSKILL.md` (personal skills)\n\n## Hard Rules\n\n- Router only — do not duplicate upstream NuRec recipes here. Read\n  the upstream sibling skill body before running any mutating command.\n- Refer to sibling skills by their `name:` (e.g. `nre`), not by repo\n  path. Folder layouts can change; the name is portable.\n- Clone or refresh `https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fnurec-skills` under the\n  shared upstream root\n  (`${NUREC_SKILLS_UPSTREAM_ROOT:-${PHYSICAL_AI_SKILL_HUB_UPSTREAM_ROOT:-$HOME\u002F.physical-ai-skill-hub\u002Fupstreams}}\u002Fnurec-skills`).\n  Do not scan broad developer workspaces such as `~\u002FCodes` or reuse\n  unrelated old clones.\n- `physical-ai-datasets` covers gated Hugging Face datasets. Do not\n  bypass dataset license terms; the user must accept the\n  `PhysicalAI-*` gated licenses on Hugging Face and provide a token\n  before downloading.\n- Asset Harvester runs **before** packaging into a USDZ. Do not call\n  `nre`'s `export-external-assets` on hand-rolled `.ply` files unless\n  the user explicitly asks to skip Asset Harvester.\n- For artifact cleanup, prefer the built-in `--enable-difix` path in\n  `nre`. Route to the standalone `nurec-fixer` only when the user\n  needs the public code\u002Fmodel card, paired evaluation, fine-tuning,\n  or fixes on previously rendered frames.\n- Do not invent NRE \u002F NCore \u002F DiffusionHarmonizer commands from\n  memory. Re-read the upstream sibling skill — versions move fast\n  (NRE `release_26.04` is the current pinned tag).\n- This router does not deploy infrastructure. Route AKS \u002F OSMO \u002F\n  NIM Operator setup to\n  `physical-ai-infrastructure-setup-and-resilient-scaling`.\n\n## Limitations\n\n- **Router only.** This skill never executes mutating NuRec commands.\n  All training, rendering, conversion, and harmonization happens in\n  upstream sibling skills.\n- **Upstream-pinned.** Recipes live in\n  `https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fnurec-skills`, which evolves outside\n  this repo. Stale clones can drift; always `git pull` the upstream\n  before relying on a sibling skill.\n- **Gated content.** `nvidia\u002FPhysicalAI-*`, `nvidia\u002FDiffusionHarmonizer`,\n  and `nvidia\u002Fasset-harvester` require the user to accept license\n  terms on Hugging Face first. The router cannot bypass this.\n- **Heavy footprint.** A complete NuRec workflow can leave 150 GB+\n  on disk. See [`references\u002Fteardown.md`](references\u002Fteardown.md).\n- **NVIDIA-only stack.** Requires an NVIDIA GPU plus the NVIDIA\n  Container Toolkit. AMD \u002F Intel \u002F Apple Silicon are not supported.\n- **Not a SimReady pipeline.** NuRec produces a renderable USDZ from\n  a recording; SimReady packaging of CAD or source meshes is a\n  different pipeline (see `omniverse-cad-to-simready`).\n\n## Troubleshooting\n\n| Error \u002F symptom | Likely cause | Solution |\n|-----------------|--------------|----------|\n| `nurec-skills` clone missing or empty | Upstream not fetched yet | Run the clone block in [Locate and fetch the upstream skills](#locate-and-fetch-the-upstream-skills) |\n| `403`\u002F`401` pulling `nvidia\u002FPhysicalAI-*` from HF | Gated license not accepted, or `HF_TOKEN` unset \u002F wrong scope | Accept the gated license on Hugging Face, then `hf auth login` with a token that has `read` access |\n| `denied: requested access to the resource is denied` from `nvcr.io\u002Fnvidia\u002Fnre\u002F*` | Missing or expired `NGC_API_KEY` | `docker login nvcr.io` with `$oauthtoken` \u002F `NGC_API_KEY`; rotate the key at `org.ngc.nvidia.com\u002Fsetup\u002Fapi-key` if needed |\n| NRE refuses to load a clip (\"not valid NCore V4\") | Recording was not converted | Run the `ncore` skill before invoking `nre` |\n| `serve-grpc` cold-start latency dominates a Python loop | One-shot Docker invocation per render | Use the `nre` warm `serve-grpc` + thin Python client (`batch_render_rgb`) recipe |\n| Output files are owned by `root` after a `docker run` | `-u $(id -u):$(id -g)` was missing | `sudo chown -R \"$(id -u):$(id -g)\" \u003Coutput_dir>`; add the `-u` flag next time |\n| Frames have ghosting \u002F floaters \u002F flicker after rendering | Inline cleanup not enabled | Re-render with `nre --enable-difix`, or post-process with `nurec-fixer` (DiffusionHarmonizer) |\n| Stale skill names (`ncore-data-conversion`, old `nvidia\u002FFixer`) in agent output | Out-of-date cached skill | Update references to `ncore` and `nurec-fixer` (DiffusionHarmonizer); see [`references\u002Fmaintenance.md`](references\u002Fmaintenance.md) |\n| Bash anti-pattern `${HF_TOKEN:+yes}${HF_TOKEN:-no}` echoed token value | Misuse of bash parameter expansion | Rotate the token; use `hf auth whoami` or length-only checks (see [`references\u002Fsecrets-handling.md`](references\u002Fsecrets-handling.md)) |\n\n## Cross-skill teardown\n\nA complete NuRec workflow can leave **150 GB+** on disk between\ncontainer images, model weights, code clones, conda envs, and output\ndirectories. Each sibling skill has its own dedicated `Teardown`\nsection — read them in the order documented in\n[`references\u002Fteardown.md`](references\u002Fteardown.md) when the user no\nlonger needs the workflow.\n\n## Keeping this router up to date\n\nProcedure for adding new sibling skills, renames, or upstream URL\nchanges lives in [`references\u002Fmaintenance.md`](references\u002Fmaintenance.md).\nTreat the upstream `nurec-index` at\n\u003Chttps:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fnurec-skills\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002FSKILL.md>\nas authoritative; this skill mirrors only the picker tables, the\nworkflow ordering, and the upstream fetch recipe.\n",{"data":37,"body":77},{"name":4,"description":6,"license":28,"version":38,"tools":39,"compatibility":42,"metadata":43},"0.3.0",[40,41],"Read","Shell","Router skill; downstream sibling skills require Docker, NVIDIA Container Toolkit, GPU, NGC API key, Hugging Face token with PhysicalAI gated licenses accepted, Python 3.10+, and `huggingface_hub`. Optional: CARLA \u002F Isaac Sim 5.1 \u002F AlpaSim for simulator integration over `serve-grpc`.",{"author":44,"tags":45,"upstream":51,"upstream_clone_path":75,"upstream_override_env":76},"NVIDIA Physical AI",[46,47,48,49,50],"physical-ai","nurec","neural-reconstruction","router","sensor-sim",{"repo":52,"branch":53,"skills_dir":54,"skills_dir_alias":55,"index_skill":56,"index_skill_name":57,"sibling_skills":58},"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fnurec-skills","main",".agents\u002Fskills\u002F","skills\u002F",".agents\u002Fskills\u002FSKILL.md","nurec-index",{"physical-ai-datasets":59,"ncore":62,"nre":65,"asset-harvester":68,"nurec-fixer":71},{"folder":60,"upstream":61},"physical-ai-datasets\u002F","https:\u002F\u002Fhuggingface.co\u002Fnvidia",{"folder":63,"upstream":64},"ncore\u002F","https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fncore",{"folder":66,"upstream":67},"nre\u002F","nvcr.io\u002Fnvidia\u002Fnre\u002Fnre",{"folder":69,"upstream":70},"asset-harvester\u002F","https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fasset-harvester",{"folder":72,"upstream":73,"hf_model":74},"nurec-fixer\u002F","https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fharmonizer","https:\u002F\u002Fhuggingface.co\u002Fnvidia\u002FDiffusionHarmonizer","${PHYSICAL_AI_SKILL_HUB_UPSTREAM_ROOT:-$HOME\u002F.physical-ai-skill-hub\u002Fupstreams}\u002Fnurec-skills","NUREC_SKILLS_UPSTREAM_ROOT",{"type":78,"children":79},"root",[80,89,96,163,191,201,209,249,255,267,459,473,479,492,646,651,858,874,880,890,937,942,1001,1014,1020,1025,1520,1526,1542,1605,1610,1616,1795,1810,1815,1831,2202,2207,2273,2278,2325,2331,2489,2495,2607,2613,3048,3054,3084,3090,3121],{"type":81,"tag":82,"props":83,"children":85},"element","h1",{"id":84},"physical-ai-neural-reconstruction-nurec-router",[86],{"type":87,"value":88},"text","Physical AI Neural Reconstruction (NuRec) Router",{"type":81,"tag":90,"props":91,"children":93},"h2",{"id":92},"purpose",[94],{"type":87,"value":95},"Purpose",{"type":81,"tag":97,"props":98,"children":99},"p",{},[100,102,108,110,116,118,123,125,131,133,139,140,146,147,153,155,161],{"type":87,"value":101},"This is a ",{"type":81,"tag":103,"props":104,"children":105},"strong",{},[106],{"type":87,"value":107},"thin router",{"type":87,"value":109}," for NVIDIA Neural Reconstruction (NuRec)\nrequests. It points at the upstream ",{"type":81,"tag":111,"props":112,"children":114},"code",{"className":113},[],[115],{"type":87,"value":57},{"type":87,"value":117}," skill at\n",{"type":81,"tag":111,"props":119,"children":121},{"className":120},[],[122],{"type":87,"value":52},{"type":87,"value":124}," and its five sibling skills\n(",{"type":81,"tag":111,"props":126,"children":128},{"className":127},[],[129],{"type":87,"value":130},"physical-ai-datasets",{"type":87,"value":132},", ",{"type":81,"tag":111,"props":134,"children":136},{"className":135},[],[137],{"type":87,"value":138},"ncore",{"type":87,"value":132},{"type":81,"tag":111,"props":141,"children":143},{"className":142},[],[144],{"type":87,"value":145},"nre",{"type":87,"value":132},{"type":81,"tag":111,"props":148,"children":150},{"className":149},[],[151],{"type":87,"value":152},"asset-harvester",{"type":87,"value":154},",\n",{"type":81,"tag":111,"props":156,"children":158},{"className":157},[],[159],{"type":87,"value":160},"nurec-fixer",{"type":87,"value":162},"). Use this skill to:",{"type":81,"tag":164,"props":165,"children":166},"ul",{},[167,173,186],{"type":81,"tag":168,"props":169,"children":170},"li",{},[171],{"type":87,"value":172},"Identify which upstream sibling skill answers a NuRec question.",{"type":81,"tag":168,"props":174,"children":175},{},[176,178,184],{"type":87,"value":177},"Locate, clone, or refresh the canonical ",{"type":81,"tag":111,"props":179,"children":181},{"className":180},[],[182],{"type":87,"value":183},"nurec-skills",{"type":87,"value":185}," checkout.",{"type":81,"tag":168,"props":187,"children":188},{},[189],{"type":87,"value":190},"Order multi-step NuRec workflows (data → conversion → train →\nrender → cleanup) before opening the upstream recipe.",{"type":81,"tag":97,"props":192,"children":193},{},[194,196],{"type":87,"value":195},"The canonical recipes (training, rendering, data conversion, dataset\ndownloads, object harvesting, frame cleanup) live in the upstream\nsibling skills. ",{"type":81,"tag":103,"props":197,"children":198},{},[199],{"type":87,"value":200},"Never copy or reconstruct their commands here.",{"type":81,"tag":97,"props":202,"children":203},{},[204],{"type":81,"tag":103,"props":205,"children":206},{},[207],{"type":87,"value":208},"Do NOT use this skill for:",{"type":81,"tag":164,"props":210,"children":211},{},[212,225,237],{"type":81,"tag":168,"props":213,"children":214},{},[215,217,223],{"type":87,"value":216},"SimReady packaging of CAD or source meshes → use\n",{"type":81,"tag":111,"props":218,"children":220},{"className":219},[],[221],{"type":87,"value":222},"omniverse-cad-to-simready",{"type":87,"value":224},".",{"type":81,"tag":168,"props":226,"children":227},{},[228,230,236],{"type":87,"value":229},"Generic USD performance tuning unrelated to NuRec → use\n",{"type":81,"tag":111,"props":231,"children":233},{"className":232},[],[234],{"type":87,"value":235},"omniverse-usd-performance-tuning",{"type":87,"value":224},{"type":81,"tag":168,"props":238,"children":239},{},[240,242,248],{"type":87,"value":241},"AKS \u002F OSMO \u002F NIM Operator infrastructure setup → use\n",{"type":81,"tag":111,"props":243,"children":245},{"className":244},[],[246],{"type":87,"value":247},"physical-ai-infrastructure-setup-and-resilient-scaling",{"type":87,"value":224},{"type":81,"tag":90,"props":250,"children":252},{"id":251},"when-to-use",[253],{"type":87,"value":254},"When to Use",{"type":81,"tag":97,"props":256,"children":257},{},[258,260,265],{"type":87,"value":259},"Read this skill ",{"type":81,"tag":103,"props":261,"children":262},{},[263],{"type":87,"value":264},"first",{"type":87,"value":266}," whenever a user mentions any of:",{"type":81,"tag":97,"props":268,"children":269},{},[270,275,276,282,283,289,290,296,297,303,304,310,311,317,318,324,325,331,332,338,339,345,346,352,353,359,360,366,367,373,374,380,381,387,388,394,395,401,402,408,409,415,416,422,423,429,430,436,437,443,444,450,451,457],{"type":81,"tag":111,"props":271,"children":273},{"className":272},[],[274],{"type":87,"value":47},{"type":87,"value":132},{"type":81,"tag":111,"props":277,"children":279},{"className":278},[],[280],{"type":87,"value":281},"nurec router",{"type":87,"value":132},{"type":81,"tag":111,"props":284,"children":286},{"className":285},[],[287],{"type":87,"value":288},"nurec index",{"type":87,"value":132},{"type":81,"tag":111,"props":291,"children":293},{"className":292},[],[294],{"type":87,"value":295},"neural reconstruction",{"type":87,"value":154},{"type":81,"tag":111,"props":298,"children":300},{"className":299},[],[301],{"type":87,"value":302},"neural reconstruction engine",{"type":87,"value":132},{"type":81,"tag":111,"props":305,"children":307},{"className":306},[],[308],{"type":87,"value":309},"NRE",{"type":87,"value":132},{"type":81,"tag":111,"props":312,"children":314},{"className":313},[],[315],{"type":87,"value":316},"3DGUT",{"type":87,"value":132},{"type":81,"tag":111,"props":319,"children":321},{"className":320},[],[322],{"type":87,"value":323},"3DGRT",{"type":87,"value":132},{"type":81,"tag":111,"props":326,"children":328},{"className":327},[],[329],{"type":87,"value":330},"USDZ",{"type":87,"value":154},{"type":81,"tag":111,"props":333,"children":335},{"className":334},[],[336],{"type":87,"value":337},"NCore V4",{"type":87,"value":132},{"type":81,"tag":111,"props":340,"children":342},{"className":341},[],[343],{"type":87,"value":344},"sensor sim",{"type":87,"value":132},{"type":81,"tag":111,"props":347,"children":349},{"className":348},[],[350],{"type":87,"value":351},"novel view synthesis",{"type":87,"value":154},{"type":81,"tag":111,"props":354,"children":356},{"className":355},[],[357],{"type":87,"value":358},"PhysicalAI-Autonomous-Vehicles-NuRec",{"type":87,"value":132},{"type":81,"tag":111,"props":361,"children":363},{"className":362},[],[364],{"type":87,"value":365},"PhysicalAI-NuRec-PPISP",{"type":87,"value":154},{"type":81,"tag":111,"props":368,"children":370},{"className":369},[],[371],{"type":87,"value":372},"Cosmos-Drive-Dreams",{"type":87,"value":132},{"type":81,"tag":111,"props":375,"children":377},{"className":376},[],[378],{"type":87,"value":379},"asset harvester",{"type":87,"value":132},{"type":81,"tag":111,"props":382,"children":384},{"className":383},[],[385],{"type":87,"value":386},"nurec fixer",{"type":87,"value":154},{"type":81,"tag":111,"props":389,"children":391},{"className":390},[],[392],{"type":87,"value":393},"DiffusionHarmonizer",{"type":87,"value":132},{"type":81,"tag":111,"props":396,"children":398},{"className":397},[],[399],{"type":87,"value":400},"harmonizer",{"type":87,"value":132},{"type":81,"tag":111,"props":403,"children":405},{"className":404},[],[406],{"type":87,"value":407},"difix",{"type":87,"value":132},{"type":81,"tag":111,"props":410,"children":412},{"className":411},[],[413],{"type":87,"value":414},"difix3d",{"type":87,"value":132},{"type":81,"tag":111,"props":417,"children":419},{"className":418},[],[420],{"type":87,"value":421},"serve-grpc",{"type":87,"value":154},{"type":81,"tag":111,"props":424,"children":426},{"className":425},[],[427],{"type":87,"value":428},"render-grpc",{"type":87,"value":132},{"type":81,"tag":111,"props":431,"children":433},{"className":432},[],[434],{"type":87,"value":435},"warm serve-grpc",{"type":87,"value":132},{"type":81,"tag":111,"props":438,"children":440},{"className":439},[],[441],{"type":87,"value":442},"nre thin client",{"type":87,"value":132},{"type":81,"tag":111,"props":445,"children":447},{"className":446},[],[448],{"type":87,"value":449},"batch_render_rgb",{"type":87,"value":154},{"type":81,"tag":111,"props":452,"children":454},{"className":453},[],[455],{"type":87,"value":456},"nurec teardown",{"type":87,"value":458},", \"where do I start with NuRec\", \"which NuRec skill\nshould I use for X?\".",{"type":81,"tag":97,"props":460,"children":461},{},[462,464,471],{"type":87,"value":463},"Decide which upstream sibling skill answers the question, fetch it\n(see ",{"type":81,"tag":465,"props":466,"children":468},"a",{"href":467},"#locate-and-fetch-the-upstream-skills",[469],{"type":87,"value":470},"Locate and fetch the upstream skills",{"type":87,"value":472},"),\nthen follow that skill's body.",{"type":81,"tag":90,"props":474,"children":476},{"id":475},"prerequisites",[477],{"type":87,"value":478},"Prerequisites",{"type":81,"tag":97,"props":480,"children":481},{},[482,484,490],{"type":87,"value":483},"Router skill itself has no runtime prerequisites beyond ",{"type":81,"tag":111,"props":485,"children":487},{"className":486},[],[488],{"type":87,"value":489},"git",{"type":87,"value":491}," for\nfetching the upstream. Downstream sibling skills require:",{"type":81,"tag":164,"props":493,"children":494},{},[495,547,565,612,630],{"type":81,"tag":168,"props":496,"children":497},{},[498,503,505,510,511,517,519,524,526,531,532,538,539,545],{"type":81,"tag":103,"props":499,"children":500},{},[501],{"type":87,"value":502},"Docker + NVIDIA Container Toolkit + GPU",{"type":87,"value":504}," — for ",{"type":81,"tag":111,"props":506,"children":508},{"className":507},[],[509],{"type":87,"value":145},{"type":87,"value":132},{"type":81,"tag":111,"props":512,"children":514},{"className":513},[],[515],{"type":87,"value":516},"nre-tools",{"type":87,"value":518},",\nand ",{"type":81,"tag":111,"props":520,"children":522},{"className":521},[],[523],{"type":87,"value":160},{"type":87,"value":525}," containers\n(",{"type":81,"tag":111,"props":527,"children":529},{"className":528},[],[530],{"type":87,"value":67},{"type":87,"value":132},{"type":81,"tag":111,"props":533,"children":535},{"className":534},[],[536],{"type":87,"value":537},"nvcr.io\u002Fnvidia\u002Fnre\u002Fnre-tools",{"type":87,"value":154},{"type":81,"tag":111,"props":540,"children":542},{"className":541},[],[543],{"type":87,"value":544},"nvcr.io\u002Fnvidia\u002Fcosmos\u002Fcosmos-predict2-container:1.2",{"type":87,"value":546},").",{"type":81,"tag":168,"props":548,"children":549},{},[550,555,557,563],{"type":81,"tag":103,"props":551,"children":552},{},[553],{"type":87,"value":554},"NGC API key",{"type":87,"value":556}," (",{"type":81,"tag":111,"props":558,"children":560},{"className":559},[],[561],{"type":87,"value":562},"NGC_API_KEY",{"type":87,"value":564},") — for pulling NGC containers.",{"type":81,"tag":168,"props":566,"children":567},{},[568,573,574,580,582,588,589,595,597,603,605,610],{"type":81,"tag":103,"props":569,"children":570},{},[571],{"type":87,"value":572},"Hugging Face token",{"type":87,"value":556},{"type":81,"tag":111,"props":575,"children":577},{"className":576},[],[578],{"type":87,"value":579},"HF_TOKEN",{"type":87,"value":581},") with the\n",{"type":81,"tag":111,"props":583,"children":585},{"className":584},[],[586],{"type":87,"value":587},"nvidia\u002FPhysicalAI-*",{"type":87,"value":132},{"type":81,"tag":111,"props":590,"children":592},{"className":591},[],[593],{"type":87,"value":594},"nvidia\u002FDiffusionHarmonizer",{"type":87,"value":596},", and\n",{"type":81,"tag":111,"props":598,"children":600},{"className":599},[],[601],{"type":87,"value":602},"nvidia\u002Fasset-harvester",{"type":87,"value":604}," gated licenses ",{"type":81,"tag":103,"props":606,"children":607},{},[608],{"type":87,"value":609},"accepted in advance",{"type":87,"value":611}," on\nHugging Face.",{"type":81,"tag":168,"props":613,"children":614},{},[615,620,622,628],{"type":81,"tag":103,"props":616,"children":617},{},[618],{"type":87,"value":619},"Python 3.10+",{"type":87,"value":621}," with ",{"type":81,"tag":111,"props":623,"children":625},{"className":624},[],[626],{"type":87,"value":627},"huggingface_hub",{"type":87,"value":629}," installed.",{"type":81,"tag":168,"props":631,"children":632},{},[633,638,640,645],{"type":81,"tag":103,"props":634,"children":635},{},[636],{"type":87,"value":637},"(Optional)",{"type":87,"value":639}," CARLA, Isaac Sim 5.1, or AlpaSim for simulator\nintegration over ",{"type":81,"tag":111,"props":641,"children":643},{"className":642},[],[644],{"type":87,"value":421},{"type":87,"value":224},{"type":81,"tag":97,"props":647,"children":648},{},[649],{"type":87,"value":650},"Verify secrets safely (do not echo values):",{"type":81,"tag":652,"props":653,"children":658},"pre",{"className":654,"code":655,"language":656,"meta":657,"style":657},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","hf auth whoami\n[ -n \"${HF_TOKEN:-}\" ]      && echo \"HF_TOKEN length=${#HF_TOKEN}\"      || echo \"HF_TOKEN unset\"\n[ -n \"${NGC_API_KEY:-}\" ]   && echo \"NGC_API_KEY length=${#NGC_API_KEY}\" || echo \"NGC_API_KEY unset\"\n","bash","",[659],{"type":81,"tag":111,"props":660,"children":661},{"__ignoreMap":657},[662,685,778],{"type":81,"tag":663,"props":664,"children":667},"span",{"class":665,"line":666},"line",1,[668,674,680],{"type":81,"tag":663,"props":669,"children":671},{"style":670},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[672],{"type":87,"value":673},"hf",{"type":81,"tag":663,"props":675,"children":677},{"style":676},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[678],{"type":87,"value":679}," auth",{"type":81,"tag":663,"props":681,"children":682},{"style":676},[683],{"type":87,"value":684}," whoami\n",{"type":81,"tag":663,"props":686,"children":688},{"class":665,"line":687},2,[689,695,700,705,710,715,720,725,731,736,741,746,750,755,760,764,768,773],{"type":81,"tag":663,"props":690,"children":692},{"style":691},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[693],{"type":87,"value":694},"[",{"type":81,"tag":663,"props":696,"children":697},{"style":691},[698],{"type":87,"value":699}," -n",{"type":81,"tag":663,"props":701,"children":702},{"style":691},[703],{"type":87,"value":704}," \"${",{"type":81,"tag":663,"props":706,"children":708},{"style":707},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[709],{"type":87,"value":579},{"type":81,"tag":663,"props":711,"children":712},{"style":691},[713],{"type":87,"value":714},":-}\"",{"type":81,"tag":663,"props":716,"children":717},{"style":691},[718],{"type":87,"value":719}," ]",{"type":81,"tag":663,"props":721,"children":722},{"style":691},[723],{"type":87,"value":724},"      &&",{"type":81,"tag":663,"props":726,"children":728},{"style":727},"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF",[729],{"type":87,"value":730}," echo",{"type":81,"tag":663,"props":732,"children":733},{"style":691},[734],{"type":87,"value":735}," \"",{"type":81,"tag":663,"props":737,"children":738},{"style":676},[739],{"type":87,"value":740},"HF_TOKEN length=",{"type":81,"tag":663,"props":742,"children":743},{"style":691},[744],{"type":87,"value":745},"${#",{"type":81,"tag":663,"props":747,"children":748},{"style":707},[749],{"type":87,"value":579},{"type":81,"tag":663,"props":751,"children":752},{"style":691},[753],{"type":87,"value":754},"}\"",{"type":81,"tag":663,"props":756,"children":757},{"style":691},[758],{"type":87,"value":759},"      ||",{"type":81,"tag":663,"props":761,"children":762},{"style":727},[763],{"type":87,"value":730},{"type":81,"tag":663,"props":765,"children":766},{"style":691},[767],{"type":87,"value":735},{"type":81,"tag":663,"props":769,"children":770},{"style":676},[771],{"type":87,"value":772},"HF_TOKEN unset",{"type":81,"tag":663,"props":774,"children":775},{"style":691},[776],{"type":87,"value":777},"\"\n",{"type":81,"tag":663,"props":779,"children":781},{"class":665,"line":780},3,[782,786,790,794,798,802,806,811,815,819,824,828,832,836,841,845,849,854],{"type":81,"tag":663,"props":783,"children":784},{"style":691},[785],{"type":87,"value":694},{"type":81,"tag":663,"props":787,"children":788},{"style":691},[789],{"type":87,"value":699},{"type":81,"tag":663,"props":791,"children":792},{"style":691},[793],{"type":87,"value":704},{"type":81,"tag":663,"props":795,"children":796},{"style":707},[797],{"type":87,"value":562},{"type":81,"tag":663,"props":799,"children":800},{"style":691},[801],{"type":87,"value":714},{"type":81,"tag":663,"props":803,"children":804},{"style":691},[805],{"type":87,"value":719},{"type":81,"tag":663,"props":807,"children":808},{"style":691},[809],{"type":87,"value":810},"   &&",{"type":81,"tag":663,"props":812,"children":813},{"style":727},[814],{"type":87,"value":730},{"type":81,"tag":663,"props":816,"children":817},{"style":691},[818],{"type":87,"value":735},{"type":81,"tag":663,"props":820,"children":821},{"style":676},[822],{"type":87,"value":823},"NGC_API_KEY length=",{"type":81,"tag":663,"props":825,"children":826},{"style":691},[827],{"type":87,"value":745},{"type":81,"tag":663,"props":829,"children":830},{"style":707},[831],{"type":87,"value":562},{"type":81,"tag":663,"props":833,"children":834},{"style":691},[835],{"type":87,"value":754},{"type":81,"tag":663,"props":837,"children":838},{"style":691},[839],{"type":87,"value":840}," ||",{"type":81,"tag":663,"props":842,"children":843},{"style":727},[844],{"type":87,"value":730},{"type":81,"tag":663,"props":846,"children":847},{"style":691},[848],{"type":87,"value":735},{"type":81,"tag":663,"props":850,"children":851},{"style":676},[852],{"type":87,"value":853},"NGC_API_KEY unset",{"type":81,"tag":663,"props":855,"children":856},{"style":691},[857],{"type":87,"value":777},{"type":81,"tag":97,"props":859,"children":860},{},[861,863,872],{"type":87,"value":862},"See ",{"type":81,"tag":465,"props":864,"children":866},{"href":865},"references\u002Fsecrets-handling.md",[867],{"type":81,"tag":111,"props":868,"children":870},{"className":869},[],[871],{"type":87,"value":865},{"type":87,"value":873},"\nfor the bash anti-patterns to avoid.",{"type":81,"tag":90,"props":875,"children":877},{"id":876},"what-is-nurec",[878],{"type":87,"value":879},"What is NuRec?",{"type":81,"tag":97,"props":881,"children":882},{},[883,888],{"type":81,"tag":103,"props":884,"children":885},{},[886],{"type":87,"value":887},"NuRec",{"type":87,"value":889}," (NVIDIA Omniverse Neural Reconstruction) takes camera, LiDAR,\nradar, or stereo recordings — typically from a self-driving car or a\nrobot — and turns them into a 3D scene you can re-render from any\nviewpoint. Names that come up a lot:",{"type":81,"tag":164,"props":891,"children":892},{},[893,909,918,927],{"type":81,"tag":168,"props":894,"children":895},{},[896,900,902,907],{"type":81,"tag":103,"props":897,"children":898},{},[899],{"type":87,"value":309},{"type":87,"value":901}," — \"Neural Reconstruction Engine\". NuRec is the product; NRE\nis the engine that trains and renders. Both route to the upstream\n",{"type":81,"tag":111,"props":903,"children":905},{"className":904},[],[906],{"type":87,"value":145},{"type":87,"value":908}," skill.",{"type":81,"tag":168,"props":910,"children":911},{},[912,916],{"type":81,"tag":103,"props":913,"children":914},{},[915],{"type":87,"value":330},{"type":87,"value":917}," — the file format of a trained scene. A zip archive that\nOmniverse, Isaac Sim, and CARLA can open.",{"type":81,"tag":168,"props":919,"children":920},{},[921,925],{"type":81,"tag":103,"props":922,"children":923},{},[924],{"type":87,"value":337},{"type":87,"value":926}," — the input format NRE consumes. Raw recordings must be\nconverted to NCore V4 before training.",{"type":81,"tag":168,"props":928,"children":929},{},[930,935],{"type":81,"tag":103,"props":931,"children":932},{},[933],{"type":87,"value":934},"3DGUT \u002F 3DGRT",{"type":87,"value":936}," — the two 3D Gaussian Splatting flavours used\ninternally by NRE. The default Hydra recipe picks one; most users\nnever set it manually.",{"type":81,"tag":97,"props":938,"children":939},{},[940],{"type":87,"value":941},"A typical NuRec project has three stages:",{"type":81,"tag":943,"props":944,"children":945},"ol",{},[946,969,985],{"type":81,"tag":168,"props":947,"children":948},{},[949,954,956,961,963,968],{"type":81,"tag":103,"props":950,"children":951},{},[952],{"type":87,"value":953},"Get the input",{"type":87,"value":955}," — convert your own recording to NCore V4\n(",{"type":81,"tag":111,"props":957,"children":959},{"className":958},[],[960],{"type":87,"value":138},{"type":87,"value":962},"), or download a pre-converted dataset\n(",{"type":81,"tag":111,"props":964,"children":966},{"className":965},[],[967],{"type":87,"value":130},{"type":87,"value":546},{"type":81,"tag":168,"props":970,"children":971},{},[972,977,979,984],{"type":81,"tag":103,"props":973,"children":974},{},[975],{"type":87,"value":976},"Train the reconstruction",{"type":87,"value":978}," — feed NCore V4 to NRE; out comes a\nUSDZ (",{"type":81,"tag":111,"props":980,"children":982},{"className":981},[],[983],{"type":87,"value":145},{"type":87,"value":546},{"type":81,"tag":168,"props":986,"children":987},{},[988,993,995,1000],{"type":81,"tag":103,"props":989,"children":990},{},[991],{"type":87,"value":992},"Render new views",{"type":87,"value":994}," — render images, videos, or LiDAR sweeps from\nthe USDZ (",{"type":81,"tag":111,"props":996,"children":998},{"className":997},[],[999],{"type":87,"value":145},{"type":87,"value":546},{"type":81,"tag":97,"props":1002,"children":1003},{},[1004,1006,1012],{"type":87,"value":1005},"Projects that just want to ",{"type":81,"tag":1007,"props":1008,"children":1009},"em",{},[1010],{"type":87,"value":1011},"use",{"type":87,"value":1013}," an existing NVIDIA-published scene\nskip step 2.",{"type":81,"tag":90,"props":1015,"children":1017},{"id":1016},"pick-a-skill",[1018],{"type":87,"value":1019},"Pick a skill",{"type":81,"tag":97,"props":1021,"children":1022},{},[1023],{"type":87,"value":1024},"Match the user's goal in the left column and open the named upstream\nskill on the right. Arrows mean \"do these in order\".",{"type":81,"tag":1026,"props":1027,"children":1028},"table",{},[1029,1048],{"type":81,"tag":1030,"props":1031,"children":1032},"thead",{},[1033],{"type":81,"tag":1034,"props":1035,"children":1036},"tr",{},[1037,1043],{"type":81,"tag":1038,"props":1039,"children":1040},"th",{},[1041],{"type":87,"value":1042},"I want to…",{"type":81,"tag":1038,"props":1044,"children":1045},{},[1046],{"type":87,"value":1047},"Upstream skill",{"type":81,"tag":1049,"props":1050,"children":1051},"tbody",{},[1052,1069,1085,1101,1124,1149,1165,1183,1199,1223,1254,1278,1300,1316,1338,1377,1393,1417,1449,1473,1502],{"type":81,"tag":1034,"props":1053,"children":1054},{},[1055,1061],{"type":81,"tag":1056,"props":1057,"children":1058},"td",{},[1059],{"type":87,"value":1060},"Find or download a NuRec dataset NVIDIA has published",{"type":81,"tag":1056,"props":1062,"children":1063},{},[1064],{"type":81,"tag":111,"props":1065,"children":1067},{"className":1066},[],[1068],{"type":87,"value":130},{"type":81,"tag":1034,"props":1070,"children":1071},{},[1072,1077],{"type":81,"tag":1056,"props":1073,"children":1074},{},[1075],{"type":87,"value":1076},"Convert my own camera \u002F LiDAR \u002F radar \u002F depth \u002F stereo recording into NCore V4",{"type":81,"tag":1056,"props":1078,"children":1079},{},[1080],{"type":81,"tag":111,"props":1081,"children":1083},{"className":1082},[],[1084],{"type":87,"value":138},{"type":81,"tag":1034,"props":1086,"children":1087},{},[1088,1093],{"type":81,"tag":1056,"props":1089,"children":1090},{},[1091],{"type":87,"value":1092},"Write a new converter for an unsupported sensor setup (drone, RGB-D, ROS 2 bag, COLMAP, ScanNet++)",{"type":81,"tag":1056,"props":1094,"children":1095},{},[1096],{"type":81,"tag":111,"props":1097,"children":1099},{"className":1098},[],[1100],{"type":87,"value":138},{"type":81,"tag":1034,"props":1102,"children":1103},{},[1104,1109],{"type":81,"tag":1056,"props":1105,"children":1106},{},[1107],{"type":87,"value":1108},"Train a 3D reconstruction from an NCore clip",{"type":81,"tag":1056,"props":1110,"children":1111},{},[1112,1117,1119],{"type":81,"tag":111,"props":1113,"children":1115},{"className":1114},[],[1116],{"type":87,"value":138},{"type":87,"value":1118}," → ",{"type":81,"tag":111,"props":1120,"children":1122},{"className":1121},[],[1123],{"type":87,"value":145},{"type":81,"tag":1034,"props":1125,"children":1126},{},[1127,1132],{"type":81,"tag":1056,"props":1128,"children":1129},{},[1130],{"type":87,"value":1131},"Generate the extra inputs NRE needs (segmentation masks, depth, ego mask)",{"type":81,"tag":1056,"props":1133,"children":1134},{},[1135,1140,1142,1147],{"type":81,"tag":111,"props":1136,"children":1138},{"className":1137},[],[1139],{"type":87,"value":145},{"type":87,"value":1141}," (uses the ",{"type":81,"tag":111,"props":1143,"children":1145},{"className":1144},[],[1146],{"type":87,"value":516},{"type":87,"value":1148}," container)",{"type":81,"tag":1034,"props":1150,"children":1151},{},[1152,1157],{"type":81,"tag":1056,"props":1153,"children":1154},{},[1155],{"type":87,"value":1156},"Render a USDZ along the original camera positions",{"type":81,"tag":1056,"props":1158,"children":1159},{},[1160],{"type":81,"tag":111,"props":1161,"children":1163},{"className":1162},[],[1164],{"type":87,"value":145},{"type":81,"tag":1034,"props":1166,"children":1167},{},[1168,1173],{"type":81,"tag":1056,"props":1169,"children":1170},{},[1171],{"type":87,"value":1172},"Render at full resolution \u002F highest quality",{"type":81,"tag":1056,"props":1174,"children":1175},{},[1176,1181],{"type":81,"tag":111,"props":1177,"children":1179},{"className":1178},[],[1180],{"type":87,"value":145},{"type":87,"value":1182}," (see \"Quality presets\")",{"type":81,"tag":1034,"props":1184,"children":1185},{},[1186,1191],{"type":81,"tag":1056,"props":1187,"children":1188},{},[1189],{"type":87,"value":1190},"Render along a shifted trajectory (e.g. car moved 3 m left)",{"type":81,"tag":1056,"props":1192,"children":1193},{},[1194],{"type":81,"tag":111,"props":1195,"children":1197},{"className":1196},[],[1198],{"type":87,"value":145},{"type":81,"tag":1034,"props":1200,"children":1201},{},[1202,1207],{"type":81,"tag":1056,"props":1203,"children":1204},{},[1205],{"type":87,"value":1206},"Render through a server so CARLA \u002F Isaac Sim \u002F AlpaSim \u002F a custom simulator can ask for frames",{"type":81,"tag":1056,"props":1208,"children":1209},{},[1210,1215,1216,1221],{"type":81,"tag":111,"props":1211,"children":1213},{"className":1212},[],[1214],{"type":87,"value":145},{"type":87,"value":556},{"type":81,"tag":111,"props":1217,"children":1219},{"className":1218},[],[1220],{"type":87,"value":421},{"type":87,"value":1222},")",{"type":81,"tag":1034,"props":1224,"children":1225},{},[1226,1231],{"type":81,"tag":1056,"props":1227,"children":1228},{},[1229],{"type":87,"value":1230},"Render the same USDZ many times back-to-back from Python with minimal per-call latency",{"type":81,"tag":1056,"props":1232,"children":1233},{},[1234,1239,1241,1246,1248,1253],{"type":81,"tag":111,"props":1235,"children":1237},{"className":1236},[],[1238],{"type":87,"value":145},{"type":87,"value":1240}," (warm ",{"type":81,"tag":111,"props":1242,"children":1244},{"className":1243},[],[1245],{"type":87,"value":421},{"type":87,"value":1247}," + thin Python client \u002F ",{"type":81,"tag":111,"props":1249,"children":1251},{"className":1250},[],[1252],{"type":87,"value":449},{"type":87,"value":1222},{"type":81,"tag":1034,"props":1255,"children":1256},{},[1257,1262],{"type":81,"tag":1056,"props":1258,"children":1259},{},[1260],{"type":87,"value":1261},"Render LiDAR sweeps (point clouds) from a USDZ",{"type":81,"tag":1056,"props":1263,"children":1264},{},[1265,1270,1271,1277],{"type":81,"tag":111,"props":1266,"children":1268},{"className":1267},[],[1269],{"type":87,"value":145},{"type":87,"value":556},{"type":81,"tag":111,"props":1272,"children":1274},{"className":1273},[],[1275],{"type":87,"value":1276},"render-grpc --lidar",{"type":87,"value":1222},{"type":81,"tag":1034,"props":1279,"children":1280},{},[1281,1286],{"type":81,"tag":1056,"props":1282,"children":1283},{},[1284],{"type":87,"value":1285},"Skip training and just render a NuRec scene NVIDIA already built",{"type":81,"tag":1056,"props":1287,"children":1288},{},[1289,1294,1295],{"type":81,"tag":111,"props":1290,"children":1292},{"className":1291},[],[1293],{"type":87,"value":130},{"type":87,"value":1118},{"type":81,"tag":111,"props":1296,"children":1298},{"className":1297},[],[1299],{"type":87,"value":145},{"type":81,"tag":1034,"props":1301,"children":1302},{},[1303,1308],{"type":81,"tag":1056,"props":1304,"children":1305},{},[1306],{"type":87,"value":1307},"Extract individual 3D objects (cars, pedestrians) from a driving clip",{"type":81,"tag":1056,"props":1309,"children":1310},{},[1311],{"type":81,"tag":111,"props":1312,"children":1314},{"className":1313},[],[1315],{"type":87,"value":152},{"type":81,"tag":1034,"props":1317,"children":1318},{},[1319,1324],{"type":81,"tag":1056,"props":1320,"children":1321},{},[1322],{"type":87,"value":1323},"Add, remove, or replace cars \u002F pedestrians in a NuRec scene",{"type":81,"tag":1056,"props":1325,"children":1326},{},[1327,1332,1333],{"type":81,"tag":111,"props":1328,"children":1330},{"className":1329},[],[1331],{"type":87,"value":152},{"type":87,"value":1118},{"type":81,"tag":111,"props":1334,"children":1336},{"className":1335},[],[1337],{"type":87,"value":145},{"type":81,"tag":1034,"props":1339,"children":1340},{},[1341,1346],{"type":81,"tag":1056,"props":1342,"children":1343},{},[1344],{"type":87,"value":1345},"Clean up or harmonize rendered frames (ghosting, floaters, flicker, lighting\u002Fshadows)",{"type":81,"tag":1056,"props":1347,"children":1348},{},[1349,1354,1355,1360,1362,1368,1370,1375],{"type":81,"tag":111,"props":1350,"children":1352},{"className":1351},[],[1353],{"type":87,"value":160},{"type":87,"value":132},{"type":81,"tag":103,"props":1356,"children":1357},{},[1358],{"type":87,"value":1359},"or",{"type":87,"value":1361}," ",{"type":81,"tag":111,"props":1363,"children":1365},{"className":1364},[],[1366],{"type":87,"value":1367},"--enable-difix",{"type":87,"value":1369}," inside ",{"type":81,"tag":111,"props":1371,"children":1373},{"className":1372},[],[1374],{"type":87,"value":145},{"type":87,"value":1376}," for inline rendering",{"type":81,"tag":1034,"props":1378,"children":1379},{},[1380,1385],{"type":81,"tag":1056,"props":1381,"children":1382},{},[1383],{"type":87,"value":1384},"Export the scene as a PLY, mesh, depth maps, ego mask, etc.",{"type":81,"tag":1056,"props":1386,"children":1387},{},[1388],{"type":81,"tag":111,"props":1389,"children":1391},{"className":1390},[],[1392],{"type":87,"value":145},{"type":81,"tag":1034,"props":1394,"children":1395},{},[1396,1401],{"type":81,"tag":1056,"props":1397,"children":1398},{},[1399],{"type":87,"value":1400},"Upgrade an old USDZ so newer NRE versions load it faster",{"type":81,"tag":1056,"props":1402,"children":1403},{},[1404,1409,1410,1416],{"type":81,"tag":111,"props":1405,"children":1407},{"className":1406},[],[1408],{"type":87,"value":145},{"type":87,"value":556},{"type":81,"tag":111,"props":1411,"children":1413},{"className":1412},[],[1414],{"type":87,"value":1415},"upgrade-artifact",{"type":87,"value":1222},{"type":81,"tag":1034,"props":1418,"children":1419},{},[1420,1425],{"type":81,"tag":1056,"props":1421,"children":1422},{},[1423],{"type":87,"value":1424},"Open a USDZ or PLY in a browser viewer",{"type":81,"tag":1056,"props":1426,"children":1427},{},[1428,1433,1434,1440,1442,1448],{"type":81,"tag":111,"props":1429,"children":1431},{"className":1430},[],[1432],{"type":87,"value":145},{"type":87,"value":556},{"type":81,"tag":111,"props":1435,"children":1437},{"className":1436},[],[1438],{"type":87,"value":1439},"viewer",{"type":87,"value":1441}," \u002F ",{"type":81,"tag":111,"props":1443,"children":1445},{"className":1444},[],[1446],{"type":87,"value":1447},"ply_viewer",{"type":87,"value":1222},{"type":81,"tag":1034,"props":1450,"children":1451},{},[1452,1457],{"type":81,"tag":1056,"props":1453,"children":1454},{},[1455],{"type":87,"value":1456},"Measure rendering quality (PSNR, SSIM, LPIPS) against ground truth",{"type":81,"tag":1056,"props":1458,"children":1459},{},[1460,1465,1466,1472],{"type":81,"tag":111,"props":1461,"children":1463},{"className":1462},[],[1464],{"type":87,"value":145},{"type":87,"value":556},{"type":81,"tag":111,"props":1467,"children":1469},{"className":1468},[],[1470],{"type":87,"value":1471},"eval-rendering-metrics",{"type":87,"value":1222},{"type":81,"tag":1034,"props":1474,"children":1475},{},[1476,1481],{"type":81,"tag":1056,"props":1477,"children":1478},{},[1479],{"type":87,"value":1480},"Benchmark different reconstruction methods on the same scenes",{"type":81,"tag":1056,"props":1482,"children":1483},{},[1484,1489,1490,1495,1497],{"type":81,"tag":111,"props":1485,"children":1487},{"className":1486},[],[1488],{"type":87,"value":130},{"type":87,"value":556},{"type":81,"tag":111,"props":1491,"children":1493},{"className":1492},[],[1494],{"type":87,"value":365},{"type":87,"value":1496},") → ",{"type":81,"tag":111,"props":1498,"children":1500},{"className":1499},[],[1501],{"type":87,"value":145},{"type":81,"tag":1034,"props":1503,"children":1504},{},[1505,1510],{"type":81,"tag":1056,"props":1506,"children":1507},{},[1508],{"type":87,"value":1509},"Train on multiple GPUs or on SLURM",{"type":81,"tag":1056,"props":1511,"children":1512},{},[1513,1518],{"type":81,"tag":111,"props":1514,"children":1516},{"className":1515},[],[1517],{"type":87,"value":145},{"type":87,"value":1519}," (Workflow D)",{"type":81,"tag":90,"props":1521,"children":1523},{"id":1522},"common-workflows",[1524],{"type":87,"value":1525},"Common workflows",{"type":81,"tag":97,"props":1527,"children":1528},{},[1529,1531,1540],{"type":87,"value":1530},"Six end-to-end workflows are documented in\n",{"type":81,"tag":465,"props":1532,"children":1534},{"href":1533},"references\u002Fworkflows.md",[1535],{"type":81,"tag":111,"props":1536,"children":1538},{"className":1537},[],[1539],{"type":87,"value":1533},{"type":87,"value":1541},":",{"type":81,"tag":164,"props":1543,"children":1544},{},[1545,1555,1565,1575,1585,1595],{"type":81,"tag":168,"props":1546,"children":1547},{},[1548,1553],{"type":81,"tag":103,"props":1549,"children":1550},{},[1551],{"type":87,"value":1552},"A.",{"type":87,"value":1554}," Make a NuRec scene from your own recording.",{"type":81,"tag":168,"props":1556,"children":1557},{},[1558,1563],{"type":81,"tag":103,"props":1559,"children":1560},{},[1561],{"type":87,"value":1562},"B.",{"type":87,"value":1564}," Use a NuRec scene NVIDIA has already trained.",{"type":81,"tag":168,"props":1566,"children":1567},{},[1568,1573],{"type":81,"tag":103,"props":1569,"children":1570},{},[1571],{"type":87,"value":1572},"C.",{"type":87,"value":1574}," Add, remove, or replace 3D objects in a scene.",{"type":81,"tag":168,"props":1576,"children":1577},{},[1578,1583],{"type":81,"tag":103,"props":1579,"children":1580},{},[1581],{"type":87,"value":1582},"D.",{"type":87,"value":1584}," Clean up rendered frames.",{"type":81,"tag":168,"props":1586,"children":1587},{},[1588,1593],{"type":81,"tag":103,"props":1589,"children":1590},{},[1591],{"type":87,"value":1592},"E.",{"type":87,"value":1594}," Benchmark reconstruction quality.",{"type":81,"tag":168,"props":1596,"children":1597},{},[1598,1603],{"type":81,"tag":103,"props":1599,"children":1600},{},[1601],{"type":87,"value":1602},"F.",{"type":87,"value":1604}," Connect NuRec to a simulator.",{"type":81,"tag":97,"props":1606,"children":1607},{},[1608],{"type":87,"value":1609},"Open that file when the user's task spans more than one sibling skill.",{"type":81,"tag":90,"props":1611,"children":1613},{"id":1612},"sibling-skills-upstream",[1614],{"type":87,"value":1615},"Sibling skills (upstream)",{"type":81,"tag":1026,"props":1617,"children":1618},{},[1619,1640],{"type":81,"tag":1030,"props":1620,"children":1621},{},[1622],{"type":81,"tag":1034,"props":1623,"children":1624},{},[1625,1630,1635],{"type":81,"tag":1038,"props":1626,"children":1627},{},[1628],{"type":87,"value":1629},"Name",{"type":81,"tag":1038,"props":1631,"children":1632},{},[1633],{"type":87,"value":1634},"Upstream folder",{"type":81,"tag":1038,"props":1636,"children":1637},{},[1638],{"type":87,"value":1639},"What it does",{"type":81,"tag":1049,"props":1641,"children":1642},{},[1643,1668,1693,1731,1764],{"type":81,"tag":1034,"props":1644,"children":1645},{},[1646,1654,1663],{"type":81,"tag":1056,"props":1647,"children":1648},{},[1649],{"type":81,"tag":111,"props":1650,"children":1652},{"className":1651},[],[1653],{"type":87,"value":130},{"type":81,"tag":1056,"props":1655,"children":1656},{},[1657],{"type":81,"tag":111,"props":1658,"children":1660},{"className":1659},[],[1661],{"type":87,"value":1662},".agents\u002Fskills\u002Fphysical-ai-datasets\u002F",{"type":81,"tag":1056,"props":1664,"children":1665},{},[1666],{"type":87,"value":1667},"Catalog and download recipes for every NVIDIA Physical AI dataset on Hugging Face (driving, robotics, manipulation, NuRec scenes, benchmarks).",{"type":81,"tag":1034,"props":1669,"children":1670},{},[1671,1679,1688],{"type":81,"tag":1056,"props":1672,"children":1673},{},[1674],{"type":81,"tag":111,"props":1675,"children":1677},{"className":1676},[],[1678],{"type":87,"value":138},{"type":81,"tag":1056,"props":1680,"children":1681},{},[1682],{"type":81,"tag":111,"props":1683,"children":1685},{"className":1684},[],[1686],{"type":87,"value":1687},".agents\u002Fskills\u002Fncore\u002F",{"type":81,"tag":1056,"props":1689,"children":1690},{},[1691],{"type":87,"value":1692},"Converts any sensor recording to NCore V4 (the format NRE needs). Also covers writing a new converter.",{"type":81,"tag":1034,"props":1694,"children":1695},{},[1696,1704,1713],{"type":81,"tag":1056,"props":1697,"children":1698},{},[1699],{"type":81,"tag":111,"props":1700,"children":1702},{"className":1701},[],[1703],{"type":87,"value":145},{"type":81,"tag":1056,"props":1705,"children":1706},{},[1707],{"type":81,"tag":111,"props":1708,"children":1710},{"className":1709},[],[1711],{"type":87,"value":1712},".agents\u002Fskills\u002Fnre\u002F",{"type":81,"tag":1056,"props":1714,"children":1715},{},[1716,1718,1723,1724,1729],{"type":87,"value":1717},"The Neural Reconstruction Engine itself. Trains, renders (locally, via warm ",{"type":81,"tag":111,"props":1719,"children":1721},{"className":1720},[],[1722],{"type":87,"value":421},{"type":87,"value":1247},{"type":81,"tag":111,"props":1725,"children":1727},{"className":1726},[],[1728],{"type":87,"value":449},{"type":87,"value":1730},", or to an external simulator), exports meshes \u002F point clouds \u002F depth, edits actors, evaluates quality.",{"type":81,"tag":1034,"props":1732,"children":1733},{},[1734,1742,1751],{"type":81,"tag":1056,"props":1735,"children":1736},{},[1737],{"type":81,"tag":111,"props":1738,"children":1740},{"className":1739},[],[1741],{"type":87,"value":152},{"type":81,"tag":1056,"props":1743,"children":1744},{},[1745],{"type":81,"tag":111,"props":1746,"children":1748},{"className":1747},[],[1749],{"type":87,"value":1750},".agents\u002Fskills\u002Fasset-harvester\u002F",{"type":81,"tag":1056,"props":1752,"children":1753},{},[1754,1756,1762],{"type":87,"value":1755},"Open-source Apache-2.0 pipeline that extracts individual 3D objects from sparse views in a driving clip and saves them as ",{"type":81,"tag":111,"props":1757,"children":1759},{"className":1758},[],[1760],{"type":87,"value":1761},".ply",{"type":87,"value":1763}," Gaussian splats with metadata.",{"type":81,"tag":1034,"props":1765,"children":1766},{},[1767,1775,1784],{"type":81,"tag":1056,"props":1768,"children":1769},{},[1770],{"type":81,"tag":111,"props":1771,"children":1773},{"className":1772},[],[1774],{"type":87,"value":160},{"type":81,"tag":1056,"props":1776,"children":1777},{},[1778],{"type":81,"tag":111,"props":1779,"children":1781},{"className":1780},[],[1782],{"type":87,"value":1783},".agents\u002Fskills\u002Fnurec-fixer\u002F",{"type":81,"tag":1056,"props":1785,"children":1786},{},[1787,1789,1793],{"type":87,"value":1788},"Standalone NVIDIA ",{"type":81,"tag":103,"props":1790,"children":1791},{},[1792],{"type":87,"value":393},{"type":87,"value":1794}," workflow — public successor to the older Fixer \u002F Difix3D+ recipes — that cleans rendered frames, harmonizes inserted actors, evaluates PSNR\u002FLPIPS, and optionally fine-tunes the model.",{"type":81,"tag":97,"props":1796,"children":1797},{},[1798,1800,1809],{"type":87,"value":1799},"For naming overlaps (NRE vs Fixer, ncore vs nre, AV-NuRec vs\nCosmos-Drive-Dreams, NuRec vs SimReady) see\n",{"type":81,"tag":465,"props":1801,"children":1803},{"href":1802},"references\u002Fmix-ups.md",[1804],{"type":81,"tag":111,"props":1805,"children":1807},{"className":1806},[],[1808],{"type":87,"value":1802},{"type":87,"value":224},{"type":81,"tag":90,"props":1811,"children":1813},{"id":1812},"locate-and-fetch-the-upstream-skills",[1814],{"type":87,"value":470},{"type":81,"tag":97,"props":1816,"children":1817},{},[1818,1820,1829],{"type":87,"value":1819},"Quick recipe (full version in\n",{"type":81,"tag":465,"props":1821,"children":1823},{"href":1822},"references\u002Fupstream-fetch.md",[1824],{"type":81,"tag":111,"props":1825,"children":1827},{"className":1826},[],[1828],{"type":87,"value":1822},{"type":87,"value":1830},"):",{"type":81,"tag":652,"props":1832,"children":1834},{"className":654,"code":1833,"language":656,"meta":657,"style":657},"UPSTREAM_ROOT=\"${NUREC_SKILLS_UPSTREAM_ROOT:-${PHYSICAL_AI_SKILL_HUB_UPSTREAM_ROOT:-$HOME\u002F.physical-ai-skill-hub\u002Fupstreams}}\"\nmkdir -p \"$UPSTREAM_ROOT\"\nif [ -d \"$UPSTREAM_ROOT\u002Fnurec-skills\u002F.git\" ]; then\n  git -C \"$UPSTREAM_ROOT\u002Fnurec-skills\" fetch --tags\n  git -C \"$UPSTREAM_ROOT\u002Fnurec-skills\" checkout main\n  git -C \"$UPSTREAM_ROOT\u002Fnurec-skills\" pull --ff-only\nelse\n  git clone --depth 1 https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fnurec-skills.git \\\n    \"$UPSTREAM_ROOT\u002Fnurec-skills\"\nfi\ntest -f \"$UPSTREAM_ROOT\u002Fnurec-skills\u002F.agents\u002Fskills\u002FSKILL.md\"\n",[1835],{"type":81,"tag":111,"props":1836,"children":1837},{"__ignoreMap":657},[1838,1908,1934,1981,2022,2060,2098,2107,2141,2162,2171],{"type":81,"tag":663,"props":1839,"children":1840},{"class":665,"line":666},[1841,1846,1851,1856,1860,1865,1870,1875,1880,1885,1889,1894,1898,1903],{"type":81,"tag":663,"props":1842,"children":1843},{"style":707},[1844],{"type":87,"value":1845},"UPSTREAM_ROOT",{"type":81,"tag":663,"props":1847,"children":1848},{"style":691},[1849],{"type":87,"value":1850},"=",{"type":81,"tag":663,"props":1852,"children":1853},{"style":691},[1854],{"type":87,"value":1855},"\"${",{"type":81,"tag":663,"props":1857,"children":1858},{"style":707},[1859],{"type":87,"value":76},{"type":81,"tag":663,"props":1861,"children":1862},{"style":691},[1863],{"type":87,"value":1864},":-${",{"type":81,"tag":663,"props":1866,"children":1867},{"style":707},[1868],{"type":87,"value":1869},"PHYSICAL_AI_SKILL_HUB_UPSTREAM_ROOT",{"type":81,"tag":663,"props":1871,"children":1872},{"style":691},[1873],{"type":87,"value":1874},":-",{"type":81,"tag":663,"props":1876,"children":1877},{"style":707},[1878],{"type":87,"value":1879},"$HOME",{"type":81,"tag":663,"props":1881,"children":1882},{"style":691},[1883],{"type":87,"value":1884},"\u002F",{"type":81,"tag":663,"props":1886,"children":1887},{"style":676},[1888],{"type":87,"value":224},{"type":81,"tag":663,"props":1890,"children":1891},{"style":707},[1892],{"type":87,"value":1893},"physical-ai-skill-hub",{"type":81,"tag":663,"props":1895,"children":1896},{"style":691},[1897],{"type":87,"value":1884},{"type":81,"tag":663,"props":1899,"children":1900},{"style":707},[1901],{"type":87,"value":1902},"upstreams",{"type":81,"tag":663,"props":1904,"children":1905},{"style":691},[1906],{"type":87,"value":1907},"}}\"\n",{"type":81,"tag":663,"props":1909,"children":1910},{"class":665,"line":687},[1911,1916,1921,1925,1930],{"type":81,"tag":663,"props":1912,"children":1913},{"style":670},[1914],{"type":87,"value":1915},"mkdir",{"type":81,"tag":663,"props":1917,"children":1918},{"style":676},[1919],{"type":87,"value":1920}," -p",{"type":81,"tag":663,"props":1922,"children":1923},{"style":691},[1924],{"type":87,"value":735},{"type":81,"tag":663,"props":1926,"children":1927},{"style":707},[1928],{"type":87,"value":1929},"$UPSTREAM_ROOT",{"type":81,"tag":663,"props":1931,"children":1932},{"style":691},[1933],{"type":87,"value":777},{"type":81,"tag":663,"props":1935,"children":1936},{"class":665,"line":780},[1937,1943,1948,1953,1957,1961,1966,1971,1976],{"type":81,"tag":663,"props":1938,"children":1940},{"style":1939},"--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic",[1941],{"type":87,"value":1942},"if",{"type":81,"tag":663,"props":1944,"children":1945},{"style":691},[1946],{"type":87,"value":1947}," [",{"type":81,"tag":663,"props":1949,"children":1950},{"style":691},[1951],{"type":87,"value":1952}," -d",{"type":81,"tag":663,"props":1954,"children":1955},{"style":691},[1956],{"type":87,"value":735},{"type":81,"tag":663,"props":1958,"children":1959},{"style":707},[1960],{"type":87,"value":1929},{"type":81,"tag":663,"props":1962,"children":1963},{"style":676},[1964],{"type":87,"value":1965},"\u002Fnurec-skills\u002F.git",{"type":81,"tag":663,"props":1967,"children":1968},{"style":691},[1969],{"type":87,"value":1970},"\"",{"type":81,"tag":663,"props":1972,"children":1973},{"style":691},[1974],{"type":87,"value":1975}," ];",{"type":81,"tag":663,"props":1977,"children":1978},{"style":1939},[1979],{"type":87,"value":1980}," then\n",{"type":81,"tag":663,"props":1982,"children":1984},{"class":665,"line":1983},4,[1985,1990,1995,1999,2003,2008,2012,2017],{"type":81,"tag":663,"props":1986,"children":1987},{"style":670},[1988],{"type":87,"value":1989},"  git",{"type":81,"tag":663,"props":1991,"children":1992},{"style":676},[1993],{"type":87,"value":1994}," -C",{"type":81,"tag":663,"props":1996,"children":1997},{"style":691},[1998],{"type":87,"value":735},{"type":81,"tag":663,"props":2000,"children":2001},{"style":707},[2002],{"type":87,"value":1929},{"type":81,"tag":663,"props":2004,"children":2005},{"style":676},[2006],{"type":87,"value":2007},"\u002Fnurec-skills",{"type":81,"tag":663,"props":2009,"children":2010},{"style":691},[2011],{"type":87,"value":1970},{"type":81,"tag":663,"props":2013,"children":2014},{"style":676},[2015],{"type":87,"value":2016}," fetch",{"type":81,"tag":663,"props":2018,"children":2019},{"style":676},[2020],{"type":87,"value":2021}," --tags\n",{"type":81,"tag":663,"props":2023,"children":2025},{"class":665,"line":2024},5,[2026,2030,2034,2038,2042,2046,2050,2055],{"type":81,"tag":663,"props":2027,"children":2028},{"style":670},[2029],{"type":87,"value":1989},{"type":81,"tag":663,"props":2031,"children":2032},{"style":676},[2033],{"type":87,"value":1994},{"type":81,"tag":663,"props":2035,"children":2036},{"style":691},[2037],{"type":87,"value":735},{"type":81,"tag":663,"props":2039,"children":2040},{"style":707},[2041],{"type":87,"value":1929},{"type":81,"tag":663,"props":2043,"children":2044},{"style":676},[2045],{"type":87,"value":2007},{"type":81,"tag":663,"props":2047,"children":2048},{"style":691},[2049],{"type":87,"value":1970},{"type":81,"tag":663,"props":2051,"children":2052},{"style":676},[2053],{"type":87,"value":2054}," checkout",{"type":81,"tag":663,"props":2056,"children":2057},{"style":676},[2058],{"type":87,"value":2059}," main\n",{"type":81,"tag":663,"props":2061,"children":2063},{"class":665,"line":2062},6,[2064,2068,2072,2076,2080,2084,2088,2093],{"type":81,"tag":663,"props":2065,"children":2066},{"style":670},[2067],{"type":87,"value":1989},{"type":81,"tag":663,"props":2069,"children":2070},{"style":676},[2071],{"type":87,"value":1994},{"type":81,"tag":663,"props":2073,"children":2074},{"style":691},[2075],{"type":87,"value":735},{"type":81,"tag":663,"props":2077,"children":2078},{"style":707},[2079],{"type":87,"value":1929},{"type":81,"tag":663,"props":2081,"children":2082},{"style":676},[2083],{"type":87,"value":2007},{"type":81,"tag":663,"props":2085,"children":2086},{"style":691},[2087],{"type":87,"value":1970},{"type":81,"tag":663,"props":2089,"children":2090},{"style":676},[2091],{"type":87,"value":2092}," pull",{"type":81,"tag":663,"props":2094,"children":2095},{"style":676},[2096],{"type":87,"value":2097}," --ff-only\n",{"type":81,"tag":663,"props":2099,"children":2101},{"class":665,"line":2100},7,[2102],{"type":81,"tag":663,"props":2103,"children":2104},{"style":1939},[2105],{"type":87,"value":2106},"else\n",{"type":81,"tag":663,"props":2108,"children":2110},{"class":665,"line":2109},8,[2111,2115,2120,2125,2131,2136],{"type":81,"tag":663,"props":2112,"children":2113},{"style":670},[2114],{"type":87,"value":1989},{"type":81,"tag":663,"props":2116,"children":2117},{"style":676},[2118],{"type":87,"value":2119}," clone",{"type":81,"tag":663,"props":2121,"children":2122},{"style":676},[2123],{"type":87,"value":2124}," --depth",{"type":81,"tag":663,"props":2126,"children":2128},{"style":2127},"--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C",[2129],{"type":87,"value":2130}," 1",{"type":81,"tag":663,"props":2132,"children":2133},{"style":676},[2134],{"type":87,"value":2135}," https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fnurec-skills.git",{"type":81,"tag":663,"props":2137,"children":2138},{"style":707},[2139],{"type":87,"value":2140}," \\\n",{"type":81,"tag":663,"props":2142,"children":2144},{"class":665,"line":2143},9,[2145,2150,2154,2158],{"type":81,"tag":663,"props":2146,"children":2147},{"style":691},[2148],{"type":87,"value":2149},"    \"",{"type":81,"tag":663,"props":2151,"children":2152},{"style":707},[2153],{"type":87,"value":1929},{"type":81,"tag":663,"props":2155,"children":2156},{"style":676},[2157],{"type":87,"value":2007},{"type":81,"tag":663,"props":2159,"children":2160},{"style":691},[2161],{"type":87,"value":777},{"type":81,"tag":663,"props":2163,"children":2165},{"class":665,"line":2164},10,[2166],{"type":81,"tag":663,"props":2167,"children":2168},{"style":1939},[2169],{"type":87,"value":2170},"fi\n",{"type":81,"tag":663,"props":2172,"children":2174},{"class":665,"line":2173},11,[2175,2180,2185,2189,2193,2198],{"type":81,"tag":663,"props":2176,"children":2177},{"style":727},[2178],{"type":87,"value":2179},"test",{"type":81,"tag":663,"props":2181,"children":2182},{"style":676},[2183],{"type":87,"value":2184}," -f",{"type":81,"tag":663,"props":2186,"children":2187},{"style":691},[2188],{"type":87,"value":735},{"type":81,"tag":663,"props":2190,"children":2191},{"style":707},[2192],{"type":87,"value":1929},{"type":81,"tag":663,"props":2194,"children":2195},{"style":676},[2196],{"type":87,"value":2197},"\u002Fnurec-skills\u002F.agents\u002Fskills\u002FSKILL.md",{"type":81,"tag":663,"props":2199,"children":2200},{"style":691},[2201],{"type":87,"value":777},{"type":81,"tag":97,"props":2203,"children":2204},{},[2205],{"type":87,"value":2206},"Then read the upstream skill before running any mutating command:",{"type":81,"tag":652,"props":2208,"children":2210},{"className":654,"code":2209,"language":656,"meta":657,"style":657},"cat \"$UPSTREAM_ROOT\u002Fnurec-skills\u002F.agents\u002Fskills\u002FSKILL.md\"          # router\ncat \"$UPSTREAM_ROOT\u002Fnurec-skills\u002F.agents\u002Fskills\u002F\u003Cfolder>\u002FSKILL.md\" # sibling\n",[2211],{"type":81,"tag":111,"props":2212,"children":2213},{"__ignoreMap":657},[2214,2244],{"type":81,"tag":663,"props":2215,"children":2216},{"class":665,"line":666},[2217,2222,2226,2230,2234,2238],{"type":81,"tag":663,"props":2218,"children":2219},{"style":670},[2220],{"type":87,"value":2221},"cat",{"type":81,"tag":663,"props":2223,"children":2224},{"style":691},[2225],{"type":87,"value":735},{"type":81,"tag":663,"props":2227,"children":2228},{"style":707},[2229],{"type":87,"value":1929},{"type":81,"tag":663,"props":2231,"children":2232},{"style":676},[2233],{"type":87,"value":2197},{"type":81,"tag":663,"props":2235,"children":2236},{"style":691},[2237],{"type":87,"value":1970},{"type":81,"tag":663,"props":2239,"children":2241},{"style":2240},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[2242],{"type":87,"value":2243},"          # router\n",{"type":81,"tag":663,"props":2245,"children":2246},{"class":665,"line":687},[2247,2251,2255,2259,2264,2268],{"type":81,"tag":663,"props":2248,"children":2249},{"style":670},[2250],{"type":87,"value":2221},{"type":81,"tag":663,"props":2252,"children":2253},{"style":691},[2254],{"type":87,"value":735},{"type":81,"tag":663,"props":2256,"children":2257},{"style":707},[2258],{"type":87,"value":1929},{"type":81,"tag":663,"props":2260,"children":2261},{"style":676},[2262],{"type":87,"value":2263},"\u002Fnurec-skills\u002F.agents\u002Fskills\u002F\u003Cfolder>\u002FSKILL.md",{"type":81,"tag":663,"props":2265,"children":2266},{"style":691},[2267],{"type":87,"value":1970},{"type":81,"tag":663,"props":2269,"children":2270},{"style":2240},[2271],{"type":87,"value":2272}," # sibling\n",{"type":81,"tag":97,"props":2274,"children":2275},{},[2276],{"type":87,"value":2277},"Local lookup order (try in order before the upstream clone):",{"type":81,"tag":943,"props":2279,"children":2280},{},[2281,2292,2303,2314],{"type":81,"tag":168,"props":2282,"children":2283},{},[2284,2290],{"type":81,"tag":111,"props":2285,"children":2287},{"className":2286},[],[2288],{"type":87,"value":2289},".agents\u002Fskills\u002F\u003Cname>\u002FSKILL.md",{"type":87,"value":2291}," (Cursor, Codex, NemoClaw)",{"type":81,"tag":168,"props":2293,"children":2294},{},[2295,2301],{"type":81,"tag":111,"props":2296,"children":2298},{"className":2297},[],[2299],{"type":87,"value":2300},".claude\u002Fskills\u002F\u003Cname>\u002FSKILL.md",{"type":87,"value":2302}," (Claude Code)",{"type":81,"tag":168,"props":2304,"children":2305},{},[2306,2312],{"type":81,"tag":111,"props":2307,"children":2309},{"className":2308},[],[2310],{"type":87,"value":2311},".cursor\u002Fskills\u002F\u003Cname>\u002FSKILL.md",{"type":87,"value":2313}," (project-scoped)",{"type":81,"tag":168,"props":2315,"children":2316},{},[2317,2323],{"type":81,"tag":111,"props":2318,"children":2320},{"className":2319},[],[2321],{"type":87,"value":2322},"~\u002F.cursor\u002Fskills\u002F\u003Cname>\u002FSKILL.md",{"type":87,"value":2324}," (personal skills)",{"type":81,"tag":90,"props":2326,"children":2328},{"id":2327},"hard-rules",[2329],{"type":87,"value":2330},"Hard Rules",{"type":81,"tag":164,"props":2332,"children":2333},{},[2334,2339,2359,2387,2405,2439,2465,2478],{"type":81,"tag":168,"props":2335,"children":2336},{},[2337],{"type":87,"value":2338},"Router only — do not duplicate upstream NuRec recipes here. Read\nthe upstream sibling skill body before running any mutating command.",{"type":81,"tag":168,"props":2340,"children":2341},{},[2342,2344,2350,2352,2357],{"type":87,"value":2343},"Refer to sibling skills by their ",{"type":81,"tag":111,"props":2345,"children":2347},{"className":2346},[],[2348],{"type":87,"value":2349},"name:",{"type":87,"value":2351}," (e.g. ",{"type":81,"tag":111,"props":2353,"children":2355},{"className":2354},[],[2356],{"type":87,"value":145},{"type":87,"value":2358},"), not by repo\npath. Folder layouts can change; the name is portable.",{"type":81,"tag":168,"props":2360,"children":2361},{},[2362,2364,2369,2371,2377,2379,2385],{"type":87,"value":2363},"Clone or refresh ",{"type":81,"tag":111,"props":2365,"children":2367},{"className":2366},[],[2368],{"type":87,"value":52},{"type":87,"value":2370}," under the\nshared upstream root\n(",{"type":81,"tag":111,"props":2372,"children":2374},{"className":2373},[],[2375],{"type":87,"value":2376},"${NUREC_SKILLS_UPSTREAM_ROOT:-${PHYSICAL_AI_SKILL_HUB_UPSTREAM_ROOT:-$HOME\u002F.physical-ai-skill-hub\u002Fupstreams}}\u002Fnurec-skills",{"type":87,"value":2378},").\nDo not scan broad developer workspaces such as ",{"type":81,"tag":111,"props":2380,"children":2382},{"className":2381},[],[2383],{"type":87,"value":2384},"~\u002FCodes",{"type":87,"value":2386}," or reuse\nunrelated old clones.",{"type":81,"tag":168,"props":2388,"children":2389},{},[2390,2395,2397,2403],{"type":81,"tag":111,"props":2391,"children":2393},{"className":2392},[],[2394],{"type":87,"value":130},{"type":87,"value":2396}," covers gated Hugging Face datasets. Do not\nbypass dataset license terms; the user must accept the\n",{"type":81,"tag":111,"props":2398,"children":2400},{"className":2399},[],[2401],{"type":87,"value":2402},"PhysicalAI-*",{"type":87,"value":2404}," gated licenses on Hugging Face and provide a token\nbefore downloading.",{"type":81,"tag":168,"props":2406,"children":2407},{},[2408,2410,2415,2417,2422,2424,2430,2432,2437],{"type":87,"value":2409},"Asset Harvester runs ",{"type":81,"tag":103,"props":2411,"children":2412},{},[2413],{"type":87,"value":2414},"before",{"type":87,"value":2416}," packaging into a USDZ. Do not call\n",{"type":81,"tag":111,"props":2418,"children":2420},{"className":2419},[],[2421],{"type":87,"value":145},{"type":87,"value":2423},"'s ",{"type":81,"tag":111,"props":2425,"children":2427},{"className":2426},[],[2428],{"type":87,"value":2429},"export-external-assets",{"type":87,"value":2431}," on hand-rolled ",{"type":81,"tag":111,"props":2433,"children":2435},{"className":2434},[],[2436],{"type":87,"value":1761},{"type":87,"value":2438}," files unless\nthe user explicitly asks to skip Asset Harvester.",{"type":81,"tag":168,"props":2440,"children":2441},{},[2442,2444,2449,2451,2456,2458,2463],{"type":87,"value":2443},"For artifact cleanup, prefer the built-in ",{"type":81,"tag":111,"props":2445,"children":2447},{"className":2446},[],[2448],{"type":87,"value":1367},{"type":87,"value":2450}," path in\n",{"type":81,"tag":111,"props":2452,"children":2454},{"className":2453},[],[2455],{"type":87,"value":145},{"type":87,"value":2457},". Route to the standalone ",{"type":81,"tag":111,"props":2459,"children":2461},{"className":2460},[],[2462],{"type":87,"value":160},{"type":87,"value":2464}," only when the user\nneeds the public code\u002Fmodel card, paired evaluation, fine-tuning,\nor fixes on previously rendered frames.",{"type":81,"tag":168,"props":2466,"children":2467},{},[2468,2470,2476],{"type":87,"value":2469},"Do not invent NRE \u002F NCore \u002F DiffusionHarmonizer commands from\nmemory. Re-read the upstream sibling skill — versions move fast\n(NRE ",{"type":81,"tag":111,"props":2471,"children":2473},{"className":2472},[],[2474],{"type":87,"value":2475},"release_26.04",{"type":87,"value":2477}," is the current pinned tag).",{"type":81,"tag":168,"props":2479,"children":2480},{},[2481,2483,2488],{"type":87,"value":2482},"This router does not deploy infrastructure. Route AKS \u002F OSMO \u002F\nNIM Operator setup to\n",{"type":81,"tag":111,"props":2484,"children":2486},{"className":2485},[],[2487],{"type":87,"value":247},{"type":87,"value":224},{"type":81,"tag":90,"props":2490,"children":2492},{"id":2491},"limitations",[2493],{"type":87,"value":2494},"Limitations",{"type":81,"tag":164,"props":2496,"children":2497},{},[2498,2508,2533,2561,2581,2591],{"type":81,"tag":168,"props":2499,"children":2500},{},[2501,2506],{"type":81,"tag":103,"props":2502,"children":2503},{},[2504],{"type":87,"value":2505},"Router only.",{"type":87,"value":2507}," This skill never executes mutating NuRec commands.\nAll training, rendering, conversion, and harmonization happens in\nupstream sibling skills.",{"type":81,"tag":168,"props":2509,"children":2510},{},[2511,2516,2518,2523,2525,2531],{"type":81,"tag":103,"props":2512,"children":2513},{},[2514],{"type":87,"value":2515},"Upstream-pinned.",{"type":87,"value":2517}," Recipes live in\n",{"type":81,"tag":111,"props":2519,"children":2521},{"className":2520},[],[2522],{"type":87,"value":52},{"type":87,"value":2524},", which evolves outside\nthis repo. Stale clones can drift; always ",{"type":81,"tag":111,"props":2526,"children":2528},{"className":2527},[],[2529],{"type":87,"value":2530},"git pull",{"type":87,"value":2532}," the upstream\nbefore relying on a sibling skill.",{"type":81,"tag":168,"props":2534,"children":2535},{},[2536,2541,2542,2547,2548,2553,2554,2559],{"type":81,"tag":103,"props":2537,"children":2538},{},[2539],{"type":87,"value":2540},"Gated content.",{"type":87,"value":1361},{"type":81,"tag":111,"props":2543,"children":2545},{"className":2544},[],[2546],{"type":87,"value":587},{"type":87,"value":132},{"type":81,"tag":111,"props":2549,"children":2551},{"className":2550},[],[2552],{"type":87,"value":594},{"type":87,"value":518},{"type":81,"tag":111,"props":2555,"children":2557},{"className":2556},[],[2558],{"type":87,"value":602},{"type":87,"value":2560}," require the user to accept license\nterms on Hugging Face first. The router cannot bypass this.",{"type":81,"tag":168,"props":2562,"children":2563},{},[2564,2569,2571,2580],{"type":81,"tag":103,"props":2565,"children":2566},{},[2567],{"type":87,"value":2568},"Heavy footprint.",{"type":87,"value":2570}," A complete NuRec workflow can leave 150 GB+\non disk. See ",{"type":81,"tag":465,"props":2572,"children":2574},{"href":2573},"references\u002Fteardown.md",[2575],{"type":81,"tag":111,"props":2576,"children":2578},{"className":2577},[],[2579],{"type":87,"value":2573},{"type":87,"value":224},{"type":81,"tag":168,"props":2582,"children":2583},{},[2584,2589],{"type":81,"tag":103,"props":2585,"children":2586},{},[2587],{"type":87,"value":2588},"NVIDIA-only stack.",{"type":87,"value":2590}," Requires an NVIDIA GPU plus the NVIDIA\nContainer Toolkit. AMD \u002F Intel \u002F Apple Silicon are not supported.",{"type":81,"tag":168,"props":2592,"children":2593},{},[2594,2599,2601,2606],{"type":81,"tag":103,"props":2595,"children":2596},{},[2597],{"type":87,"value":2598},"Not a SimReady pipeline.",{"type":87,"value":2600}," NuRec produces a renderable USDZ from\na recording; SimReady packaging of CAD or source meshes is a\ndifferent pipeline (see ",{"type":81,"tag":111,"props":2602,"children":2604},{"className":2603},[],[2605],{"type":87,"value":222},{"type":87,"value":546},{"type":81,"tag":90,"props":2608,"children":2610},{"id":2609},"troubleshooting",[2611],{"type":87,"value":2612},"Troubleshooting",{"type":81,"tag":1026,"props":2614,"children":2615},{},[2616,2637],{"type":81,"tag":1030,"props":2617,"children":2618},{},[2619],{"type":81,"tag":1034,"props":2620,"children":2621},{},[2622,2627,2632],{"type":81,"tag":1038,"props":2623,"children":2624},{},[2625],{"type":87,"value":2626},"Error \u002F symptom",{"type":81,"tag":1038,"props":2628,"children":2629},{},[2630],{"type":87,"value":2631},"Likely cause",{"type":81,"tag":1038,"props":2633,"children":2634},{},[2635],{"type":87,"value":2636},"Solution",{"type":81,"tag":1049,"props":2638,"children":2639},{},[2640,2667,2728,2790,2820,2864,2915,2948,3005],{"type":81,"tag":1034,"props":2641,"children":2642},{},[2643,2653,2658],{"type":81,"tag":1056,"props":2644,"children":2645},{},[2646,2651],{"type":81,"tag":111,"props":2647,"children":2649},{"className":2648},[],[2650],{"type":87,"value":183},{"type":87,"value":2652}," clone missing or empty",{"type":81,"tag":1056,"props":2654,"children":2655},{},[2656],{"type":87,"value":2657},"Upstream not fetched yet",{"type":81,"tag":1056,"props":2659,"children":2660},{},[2661,2663],{"type":87,"value":2662},"Run the clone block in ",{"type":81,"tag":465,"props":2664,"children":2665},{"href":467},[2666],{"type":87,"value":470},{"type":81,"tag":1034,"props":2668,"children":2669},{},[2670,2695,2707],{"type":81,"tag":1056,"props":2671,"children":2672},{},[2673,2679,2680,2686,2688,2693],{"type":81,"tag":111,"props":2674,"children":2676},{"className":2675},[],[2677],{"type":87,"value":2678},"403",{"type":87,"value":1884},{"type":81,"tag":111,"props":2681,"children":2683},{"className":2682},[],[2684],{"type":87,"value":2685},"401",{"type":87,"value":2687}," pulling ",{"type":81,"tag":111,"props":2689,"children":2691},{"className":2690},[],[2692],{"type":87,"value":587},{"type":87,"value":2694}," from HF",{"type":81,"tag":1056,"props":2696,"children":2697},{},[2698,2700,2705],{"type":87,"value":2699},"Gated license not accepted, or ",{"type":81,"tag":111,"props":2701,"children":2703},{"className":2702},[],[2704],{"type":87,"value":579},{"type":87,"value":2706}," unset \u002F wrong scope",{"type":81,"tag":1056,"props":2708,"children":2709},{},[2710,2712,2718,2720,2726],{"type":87,"value":2711},"Accept the gated license on Hugging Face, then ",{"type":81,"tag":111,"props":2713,"children":2715},{"className":2714},[],[2716],{"type":87,"value":2717},"hf auth login",{"type":87,"value":2719}," with a token that has ",{"type":81,"tag":111,"props":2721,"children":2723},{"className":2722},[],[2724],{"type":87,"value":2725},"read",{"type":87,"value":2727}," access",{"type":81,"tag":1034,"props":2729,"children":2730},{},[2731,2748,2758],{"type":81,"tag":1056,"props":2732,"children":2733},{},[2734,2740,2742],{"type":81,"tag":111,"props":2735,"children":2737},{"className":2736},[],[2738],{"type":87,"value":2739},"denied: requested access to the resource is denied",{"type":87,"value":2741}," from ",{"type":81,"tag":111,"props":2743,"children":2745},{"className":2744},[],[2746],{"type":87,"value":2747},"nvcr.io\u002Fnvidia\u002Fnre\u002F*",{"type":81,"tag":1056,"props":2749,"children":2750},{},[2751,2753],{"type":87,"value":2752},"Missing or expired ",{"type":81,"tag":111,"props":2754,"children":2756},{"className":2755},[],[2757],{"type":87,"value":562},{"type":81,"tag":1056,"props":2759,"children":2760},{},[2761,2767,2768,2774,2775,2780,2782,2788],{"type":81,"tag":111,"props":2762,"children":2764},{"className":2763},[],[2765],{"type":87,"value":2766},"docker login nvcr.io",{"type":87,"value":621},{"type":81,"tag":111,"props":2769,"children":2771},{"className":2770},[],[2772],{"type":87,"value":2773},"$oauthtoken",{"type":87,"value":1441},{"type":81,"tag":111,"props":2776,"children":2778},{"className":2777},[],[2779],{"type":87,"value":562},{"type":87,"value":2781},"; rotate the key at ",{"type":81,"tag":111,"props":2783,"children":2785},{"className":2784},[],[2786],{"type":87,"value":2787},"org.ngc.nvidia.com\u002Fsetup\u002Fapi-key",{"type":87,"value":2789}," if needed",{"type":81,"tag":1034,"props":2791,"children":2792},{},[2793,2798,2803],{"type":81,"tag":1056,"props":2794,"children":2795},{},[2796],{"type":87,"value":2797},"NRE refuses to load a clip (\"not valid NCore V4\")",{"type":81,"tag":1056,"props":2799,"children":2800},{},[2801],{"type":87,"value":2802},"Recording was not converted",{"type":81,"tag":1056,"props":2804,"children":2805},{},[2806,2808,2813,2815],{"type":87,"value":2807},"Run the ",{"type":81,"tag":111,"props":2809,"children":2811},{"className":2810},[],[2812],{"type":87,"value":138},{"type":87,"value":2814}," skill before invoking ",{"type":81,"tag":111,"props":2816,"children":2818},{"className":2817},[],[2819],{"type":87,"value":145},{"type":81,"tag":1034,"props":2821,"children":2822},{},[2823,2833,2838],{"type":81,"tag":1056,"props":2824,"children":2825},{},[2826,2831],{"type":81,"tag":111,"props":2827,"children":2829},{"className":2828},[],[2830],{"type":87,"value":421},{"type":87,"value":2832}," cold-start latency dominates a Python loop",{"type":81,"tag":1056,"props":2834,"children":2835},{},[2836],{"type":87,"value":2837},"One-shot Docker invocation per render",{"type":81,"tag":1056,"props":2839,"children":2840},{},[2841,2843,2848,2850,2855,2857,2862],{"type":87,"value":2842},"Use the ",{"type":81,"tag":111,"props":2844,"children":2846},{"className":2845},[],[2847],{"type":87,"value":145},{"type":87,"value":2849}," warm ",{"type":81,"tag":111,"props":2851,"children":2853},{"className":2852},[],[2854],{"type":87,"value":421},{"type":87,"value":2856}," + thin Python client (",{"type":81,"tag":111,"props":2858,"children":2860},{"className":2859},[],[2861],{"type":87,"value":449},{"type":87,"value":2863},") recipe",{"type":81,"tag":1034,"props":2865,"children":2866},{},[2867,2885,2896],{"type":81,"tag":1056,"props":2868,"children":2869},{},[2870,2872,2877,2879],{"type":87,"value":2871},"Output files are owned by ",{"type":81,"tag":111,"props":2873,"children":2875},{"className":2874},[],[2876],{"type":87,"value":78},{"type":87,"value":2878}," after a ",{"type":81,"tag":111,"props":2880,"children":2882},{"className":2881},[],[2883],{"type":87,"value":2884},"docker run",{"type":81,"tag":1056,"props":2886,"children":2887},{},[2888,2894],{"type":81,"tag":111,"props":2889,"children":2891},{"className":2890},[],[2892],{"type":87,"value":2893},"-u $(id -u):$(id -g)",{"type":87,"value":2895}," was missing",{"type":81,"tag":1056,"props":2897,"children":2898},{},[2899,2905,2907,2913],{"type":81,"tag":111,"props":2900,"children":2902},{"className":2901},[],[2903],{"type":87,"value":2904},"sudo chown -R \"$(id -u):$(id -g)\" \u003Coutput_dir>",{"type":87,"value":2906},"; add the ",{"type":81,"tag":111,"props":2908,"children":2910},{"className":2909},[],[2911],{"type":87,"value":2912},"-u",{"type":87,"value":2914}," flag next time",{"type":81,"tag":1034,"props":2916,"children":2917},{},[2918,2923,2928],{"type":81,"tag":1056,"props":2919,"children":2920},{},[2921],{"type":87,"value":2922},"Frames have ghosting \u002F floaters \u002F flicker after rendering",{"type":81,"tag":1056,"props":2924,"children":2925},{},[2926],{"type":87,"value":2927},"Inline cleanup not enabled",{"type":81,"tag":1056,"props":2929,"children":2930},{},[2931,2933,2939,2941,2946],{"type":87,"value":2932},"Re-render with ",{"type":81,"tag":111,"props":2934,"children":2936},{"className":2935},[],[2937],{"type":87,"value":2938},"nre --enable-difix",{"type":87,"value":2940},", or post-process with ",{"type":81,"tag":111,"props":2942,"children":2944},{"className":2943},[],[2945],{"type":87,"value":160},{"type":87,"value":2947}," (DiffusionHarmonizer)",{"type":81,"tag":1034,"props":2949,"children":2950},{},[2951,2972,2977],{"type":81,"tag":1056,"props":2952,"children":2953},{},[2954,2956,2962,2964,2970],{"type":87,"value":2955},"Stale skill names (",{"type":81,"tag":111,"props":2957,"children":2959},{"className":2958},[],[2960],{"type":87,"value":2961},"ncore-data-conversion",{"type":87,"value":2963},", old ",{"type":81,"tag":111,"props":2965,"children":2967},{"className":2966},[],[2968],{"type":87,"value":2969},"nvidia\u002FFixer",{"type":87,"value":2971},") in agent output",{"type":81,"tag":1056,"props":2973,"children":2974},{},[2975],{"type":87,"value":2976},"Out-of-date cached skill",{"type":81,"tag":1056,"props":2978,"children":2979},{},[2980,2982,2987,2989,2994,2996],{"type":87,"value":2981},"Update references to ",{"type":81,"tag":111,"props":2983,"children":2985},{"className":2984},[],[2986],{"type":87,"value":138},{"type":87,"value":2988}," and ",{"type":81,"tag":111,"props":2990,"children":2992},{"className":2991},[],[2993],{"type":87,"value":160},{"type":87,"value":2995}," (DiffusionHarmonizer); see ",{"type":81,"tag":465,"props":2997,"children":2999},{"href":2998},"references\u002Fmaintenance.md",[3000],{"type":81,"tag":111,"props":3001,"children":3003},{"className":3002},[],[3004],{"type":87,"value":2998},{"type":81,"tag":1034,"props":3006,"children":3007},{},[3008,3021,3026],{"type":81,"tag":1056,"props":3009,"children":3010},{},[3011,3013,3019],{"type":87,"value":3012},"Bash anti-pattern ",{"type":81,"tag":111,"props":3014,"children":3016},{"className":3015},[],[3017],{"type":87,"value":3018},"${HF_TOKEN:+yes}${HF_TOKEN:-no}",{"type":87,"value":3020}," echoed token value",{"type":81,"tag":1056,"props":3022,"children":3023},{},[3024],{"type":87,"value":3025},"Misuse of bash parameter expansion",{"type":81,"tag":1056,"props":3027,"children":3028},{},[3029,3031,3037,3039,3047],{"type":87,"value":3030},"Rotate the token; use ",{"type":81,"tag":111,"props":3032,"children":3034},{"className":3033},[],[3035],{"type":87,"value":3036},"hf auth whoami",{"type":87,"value":3038}," or length-only checks (see ",{"type":81,"tag":465,"props":3040,"children":3041},{"href":865},[3042],{"type":81,"tag":111,"props":3043,"children":3045},{"className":3044},[],[3046],{"type":87,"value":865},{"type":87,"value":1222},{"type":81,"tag":90,"props":3049,"children":3051},{"id":3050},"cross-skill-teardown",[3052],{"type":87,"value":3053},"Cross-skill teardown",{"type":81,"tag":97,"props":3055,"children":3056},{},[3057,3059,3064,3066,3072,3074,3082],{"type":87,"value":3058},"A complete NuRec workflow can leave ",{"type":81,"tag":103,"props":3060,"children":3061},{},[3062],{"type":87,"value":3063},"150 GB+",{"type":87,"value":3065}," on disk between\ncontainer images, model weights, code clones, conda envs, and output\ndirectories. Each sibling skill has its own dedicated ",{"type":81,"tag":111,"props":3067,"children":3069},{"className":3068},[],[3070],{"type":87,"value":3071},"Teardown",{"type":87,"value":3073},"\nsection — read them in the order documented in\n",{"type":81,"tag":465,"props":3075,"children":3076},{"href":2573},[3077],{"type":81,"tag":111,"props":3078,"children":3080},{"className":3079},[],[3081],{"type":87,"value":2573},{"type":87,"value":3083}," when the user no\nlonger needs the workflow.",{"type":81,"tag":90,"props":3085,"children":3087},{"id":3086},"keeping-this-router-up-to-date",[3088],{"type":87,"value":3089},"Keeping this router up to date",{"type":81,"tag":97,"props":3091,"children":3092},{},[3093,3095,3103,3105,3110,3112,3119],{"type":87,"value":3094},"Procedure for adding new sibling skills, renames, or upstream URL\nchanges lives in ",{"type":81,"tag":465,"props":3096,"children":3097},{"href":2998},[3098],{"type":81,"tag":111,"props":3099,"children":3101},{"className":3100},[],[3102],{"type":87,"value":2998},{"type":87,"value":3104},".\nTreat the upstream ",{"type":81,"tag":111,"props":3106,"children":3108},{"className":3107},[],[3109],{"type":87,"value":57},{"type":87,"value":3111}," at\n",{"type":81,"tag":465,"props":3113,"children":3117},{"href":3114,"rel":3115},"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fnurec-skills\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002FSKILL.md",[3116],"nofollow",[3118],{"type":87,"value":3114},{"type":87,"value":3120},"\nas authoritative; this skill mirrors only the picker tables, the\nworkflow ordering, and the upstream fetch recipe.",{"type":81,"tag":3122,"props":3123,"children":3124},"style",{},[3125],{"type":87,"value":3126},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":3128,"total":3247},[3129,3147,3163,3175,3195,3217,3235],{"slug":3130,"name":3130,"fn":3131,"description":3132,"org":3133,"tags":3134,"stars":25,"repoUrl":26,"updatedAt":27},"accessibility-and-inclusive-visualization","make data visualizations accessible","Make data visualizations accessible and inclusive. Use when the user needs chart or diagram accessibility guidance, text alternatives for complex visuals, color and contrast review, keyboard support, reduced-motion behavior for animation or parallax, or an accessibility QA workflow for exported figures, UML-like diagrams, and dashboards.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3135,3138,3141,3144],{"name":3136,"slug":3137,"type":15},"Accessibility","accessibility",{"name":3139,"slug":3140,"type":15},"Charts","charts",{"name":3142,"slug":3143,"type":15},"Data Visualization","data-visualization",{"name":3145,"slug":3146,"type":15},"Design","design",{"slug":3148,"name":3148,"fn":3149,"description":3150,"org":3151,"tags":3152,"stars":25,"repoUrl":26,"updatedAt":3162},"agent-browser","automate browser interactions for agents","Browser automation CLI for AI agents. Use when the user needs to interact with websites, verify dev server output, test web apps, navigate pages, fill forms, click buttons, take screenshots, extract data, or automate any browser task. Also triggers when a dev server starts so you can verify it visually.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3153,3156,3159],{"name":3154,"slug":3155,"type":15},"Agents","agents",{"name":3157,"slug":3158,"type":15},"Browser Automation","browser-automation",{"name":3160,"slug":3161,"type":15},"Testing","testing","2026-04-06T18:41:03.44016",{"slug":3164,"name":3164,"fn":3165,"description":3166,"org":3167,"tags":3168,"stars":25,"repoUrl":26,"updatedAt":3174},"agent-browser-verify","verify dev server output with automated browser","Automated browser verification for dev servers. Triggers when a dev server starts to run a visual gut-check with agent-browser — verifies the page loads, checks for console errors, validates key UI elements, and reports pass\u002Ffail before continuing.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3169,3170,3173],{"name":3157,"slug":3158,"type":15},{"name":3171,"slug":3172,"type":15},"Local Development","local-development",{"name":3160,"slug":3161,"type":15},"2026-04-06T18:41:17.526867",{"slug":3176,"name":3176,"fn":3177,"description":3178,"org":3179,"tags":3180,"stars":25,"repoUrl":26,"updatedAt":3194},"agents-sdk","build AI agents on Cloudflare Workers","Build AI agents on Cloudflare Workers using the Agents SDK. Load when creating stateful agents, durable workflows, real-time WebSocket apps, scheduled tasks, MCP servers, or chat applications. Covers Agent class, state management, callable RPC, Workflows integration, and React hooks. Biases towards retrieval from Cloudflare docs over pre-trained knowledge.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3181,3182,3185,3188,3191],{"name":3154,"slug":3155,"type":15},{"name":3183,"slug":3184,"type":15},"Cloudflare Workers","cloudflare-workers",{"name":3186,"slug":3187,"type":15},"SDK","sdk",{"name":3189,"slug":3190,"type":15},"Serverless","serverless",{"name":3192,"slug":3193,"type":15},"WebSockets","websockets","2026-04-06T18:39:51.717063",{"slug":3196,"name":3196,"fn":3197,"description":3198,"org":3199,"tags":3200,"stars":25,"repoUrl":26,"updatedAt":3216},"ai-elements","build chat UIs with AI Elements","AI Elements component library guidance — pre-built React components for AI interfaces built on shadcn\u002Fui. Use when building chat UIs, message displays, tool call rendering, streaming responses, reasoning panels, or any AI-native interface with the AI SDK.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3201,3204,3207,3210,3213],{"name":3202,"slug":3203,"type":15},"Frontend","frontend",{"name":3205,"slug":3206,"type":15},"React","react",{"name":3208,"slug":3209,"type":15},"shadcn\u002Fui","shadcn-ui",{"name":3211,"slug":3212,"type":15},"UI Components","ui-components",{"name":3214,"slug":3215,"type":15},"Vercel","vercel","2026-04-06T18:40:59.619419",{"slug":3218,"name":3218,"fn":3219,"description":3220,"org":3221,"tags":3222,"stars":25,"repoUrl":26,"updatedAt":3234},"ai-gateway","configure Vercel AI Gateway","Vercel AI Gateway expert guidance. Use when configuring model routing, provider failover, cost tracking, or managing multiple AI providers through a unified API.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3223,3224,3227,3230,3233],{"name":23,"slug":24,"type":15},{"name":3225,"slug":3226,"type":15},"Cost Optimization","cost-optimization",{"name":3228,"slug":3229,"type":15},"LLM","llm",{"name":3231,"slug":3232,"type":15},"Performance","performance",{"name":3214,"slug":3215,"type":15},"2026-04-06T18:40:44.377464",{"slug":3236,"name":3236,"fn":3237,"description":3238,"org":3239,"tags":3240,"stars":25,"repoUrl":26,"updatedAt":3246},"ai-generation-persistence","implement persistence patterns for AI generations","AI generation persistence patterns — unique IDs, addressable URLs, database storage, and cost tracking for every LLM generation",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3241,3242,3245],{"name":3225,"slug":3226,"type":15},{"name":3243,"slug":3244,"type":15},"Database","database",{"name":3228,"slug":3229,"type":15},"2026-04-06T18:41:08.513425",600,{"items":3249,"total":3446},[3250,3271,3294,3311,3327,3344,3363,3375,3389,3403,3415,3430],{"slug":3251,"name":3251,"fn":3252,"description":3253,"org":3254,"tags":3255,"stars":3268,"repoUrl":3269,"updatedAt":3270},"prior-auth-packet-builder","build healthcare prior authorization packets","Build a concise prior authorization packet from local case files and payer policy docs.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3256,3259,3262,3265],{"name":3257,"slug":3258,"type":15},"Documents","documents",{"name":3260,"slug":3261,"type":15},"Healthcare","healthcare",{"name":3263,"slug":3264,"type":15},"Insurance","insurance",{"name":3266,"slug":3267,"type":15},"Regulatory Compliance","regulatory-compliance",28169,"https:\u002F\u002Fgithub.com\u002Fopenai\u002Fopenai-agents-python","2026-04-16T05:11:39.180399",{"slug":3272,"name":3272,"fn":3273,"description":3274,"org":3275,"tags":3276,"stars":3291,"repoUrl":3292,"updatedAt":3293},"aspnet-core","build ASP.NET Core web applications","Build, review, refactor, or architect ASP.NET Core web applications using current official guidance for .NET web development. Use when working on Blazor Web Apps, Razor Pages, MVC, Minimal APIs, controller-based Web APIs, SignalR, gRPC, middleware, dependency injection, configuration, authentication, authorization, testing, performance, deployment, or ASP.NET Core upgrades.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3277,3280,3282,3285,3288],{"name":3278,"slug":3279,"type":15},".NET","dotnet",{"name":3281,"slug":3272,"type":15},"ASP.NET Core",{"name":3283,"slug":3284,"type":15},"Blazor","blazor",{"name":3286,"slug":3287,"type":15},"C#","csharp",{"name":3289,"slug":3290,"type":15},"Web Development","web-development",23787,"https:\u002F\u002Fgithub.com\u002Fopenai\u002Fskills","2026-04-12T05:07:02.819491",{"slug":3295,"name":3295,"fn":3296,"description":3297,"org":3298,"tags":3299,"stars":3291,"repoUrl":3292,"updatedAt":3310},"chatgpt-apps","build ChatGPT Apps SDK applications","Build, scaffold, refactor, and troubleshoot ChatGPT Apps SDK applications that combine an MCP server and widget UI. Use when Codex needs to design tools, register UI resources, wire the MCP Apps bridge or ChatGPT compatibility APIs, apply Apps SDK metadata or CSP or domain settings, or produce a docs-aligned project scaffold. Prefer a docs-first workflow by invoking the openai-docs skill or OpenAI developer docs MCP tools before generating code.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3300,3303,3306,3309],{"name":3301,"slug":3302,"type":15},"Apps SDK","apps-sdk",{"name":3304,"slug":3305,"type":15},"ChatGPT","chatgpt",{"name":3307,"slug":3308,"type":15},"MCP","mcp",{"name":9,"slug":8,"type":15},"2026-04-12T05:07:05.468097",{"slug":3312,"name":3312,"fn":3313,"description":3314,"org":3315,"tags":3316,"stars":3291,"repoUrl":3292,"updatedAt":3326},"cli-creator","build CLIs from API docs","Build a composable CLI for Codex from API docs, an OpenAPI spec, existing curl examples, an SDK, a web app, an admin tool, or a local script. Use when the user wants Codex to create a command-line tool that can run from any repo, expose composable read\u002Fwrite commands, return stable JSON, manage auth, and pair with a companion skill.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3317,3320,3323],{"name":3318,"slug":3319,"type":15},"API Development","api-development",{"name":3321,"slug":3322,"type":15},"CLI","cli",{"name":3324,"slug":3325,"type":15},"Codex","codex","2026-04-12T05:07:04.132762",{"slug":3328,"name":3328,"fn":3329,"description":3330,"org":3331,"tags":3332,"stars":3291,"repoUrl":3292,"updatedAt":3343},"cloudflare-deploy","deploy projects to Cloudflare","Deploy applications and infrastructure to Cloudflare using Workers, Pages, and related platform services. Use when the user asks to deploy, host, publish, or set up a project on Cloudflare.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3333,3336,3339,3340],{"name":3334,"slug":3335,"type":15},"Cloudflare","cloudflare",{"name":3337,"slug":3338,"type":15},"Cloudflare Pages","cloudflare-pages",{"name":3183,"slug":3184,"type":15},{"name":3341,"slug":3342,"type":15},"Deployment","deployment","2026-04-12T05:07:14.275118",{"slug":3345,"name":3345,"fn":3346,"description":3347,"org":3348,"tags":3349,"stars":3291,"repoUrl":3292,"updatedAt":3362},"define-goal","define and set measurable project goals","Help the user define a concrete, measurable goal before starting work, especially when they ask to use the goal tool, create a goal, set an objective, clarify success criteria, or turn a fuzzy intention into a quantitative outcome. Use this skill for goal creation and goal refinement only; it does not manage durable snapshots, decision logs, or long-running execution artifacts.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3350,3353,3356,3359],{"name":3351,"slug":3352,"type":15},"Productivity","productivity",{"name":3354,"slug":3355,"type":15},"Project Management","project-management",{"name":3357,"slug":3358,"type":15},"Strategy","strategy",{"name":3360,"slug":3361,"type":15},"Task Management","task-management","2026-05-23T06:17:16.870838",{"slug":3364,"name":3364,"fn":3365,"description":3366,"org":3367,"tags":3368,"stars":3291,"repoUrl":3292,"updatedAt":3374},"figma","translate Figma designs into code","Use the Figma MCP server to fetch design context, screenshots, variables, and assets from Figma, and to translate Figma nodes into production code. Trigger when a task involves Figma URLs, node IDs, design-to-code implementation, or Figma MCP setup and troubleshooting.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3369,3370,3372,3373],{"name":3145,"slug":3146,"type":15},{"name":3371,"slug":3364,"type":15},"Figma",{"name":3202,"slug":3203,"type":15},{"name":3307,"slug":3308,"type":15},"2026-04-12T05:06:47.939943",{"slug":3376,"name":3376,"fn":3377,"description":3378,"org":3379,"tags":3380,"stars":3291,"repoUrl":3292,"updatedAt":3388},"figma-code-connect-components","connect Figma designs to code components","Connects Figma design components to code components using Code Connect mapping tools. Use when user says \"code connect\", \"connect this component to code\", \"map this component\", \"link component to code\", \"create code connect mapping\", or wants to establish mappings between Figma designs and code implementations. For canvas writes via `use_figma`, use `figma-use`.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3381,3382,3385,3386,3387],{"name":3145,"slug":3146,"type":15},{"name":3383,"slug":3384,"type":15},"Design System","design-system",{"name":3371,"slug":3364,"type":15},{"name":3202,"slug":3203,"type":15},{"name":3211,"slug":3212,"type":15},"2026-05-10T05:59:52.971881",{"slug":3390,"name":3390,"fn":3391,"description":3392,"org":3393,"tags":3394,"stars":3291,"repoUrl":3292,"updatedAt":3402},"figma-create-design-system-rules","generate design system rules from Figma","Generates custom design system rules for the user's codebase. Use when user says \"create design system rules\", \"generate rules for my project\", \"set up design rules\", \"customize design system guidelines\", or wants to establish project-specific conventions for Figma-to-code workflows. Requires Figma MCP server connection.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3395,3396,3397,3400,3401],{"name":3145,"slug":3146,"type":15},{"name":3383,"slug":3384,"type":15},{"name":3398,"slug":3399,"type":15},"Documentation","documentation",{"name":3371,"slug":3364,"type":15},{"name":3202,"slug":3203,"type":15},"2026-05-16T06:07:47.821474",{"slug":3404,"name":3404,"fn":3405,"description":3406,"org":3407,"tags":3408,"stars":3291,"repoUrl":3292,"updatedAt":3414},"figma-implement-design","translate Figma designs into application code","Translates Figma designs into production-ready application code with 1:1 visual fidelity. Use when implementing UI code from Figma files, when user mentions \"implement design\", \"generate code\", \"implement component\", provides Figma URLs, or asks to build components matching Figma specs. For Figma canvas writes via `use_figma`, use `figma-use`.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3409,3410,3411,3412,3413],{"name":3145,"slug":3146,"type":15},{"name":3371,"slug":3364,"type":15},{"name":3202,"slug":3203,"type":15},{"name":3211,"slug":3212,"type":15},{"name":3289,"slug":3290,"type":15},"2026-05-16T06:07:40.583615",{"slug":3416,"name":3416,"fn":3417,"description":3418,"org":3419,"tags":3420,"stars":3291,"repoUrl":3292,"updatedAt":3429},"hatch-pet","create animated pets for Codex","Create, repair, validate, visually QA, and package Codex-compatible animated pets and pet spritesheets from character art, generated images, company or prospect brand cues, or visual references. Use when a user wants a lightweight-worker Codex pet workflow, a non-pixel custom pet style, a prospect or company mascot pet, or a full 8x9 animated pet atlas with transparent unused cells, QA contact sheets, and pet.json packaging. This skill composes the installed $imagegen system skill for visual generation and uses bundled scripts for deterministic spritesheet assembly.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3421,3424,3425,3428],{"name":3422,"slug":3423,"type":15},"Animation","animation",{"name":3324,"slug":3325,"type":15},{"name":3426,"slug":3427,"type":15},"Creative","creative",{"name":3145,"slug":3146,"type":15},"2026-05-02T05:31:48.48485",{"slug":3431,"name":3431,"fn":3432,"description":3433,"org":3434,"tags":3435,"stars":3291,"repoUrl":3292,"updatedAt":3445},"imagegen","generate and edit raster images","Generate or edit raster images when the task benefits from AI-created bitmap visuals such as photos, illustrations, textures, sprites, mockups, or transparent-background cutouts. Use when Codex should create a brand-new image, transform an existing image, or derive visual variants from references, and the output should be a bitmap asset rather than repo-native code or vector. Do not use when the task is better handled by editing existing SVG\u002Fvector\u002Fcode-native assets, extending an established icon or logo system, or building the visual directly in HTML\u002FCSS\u002Fcanvas.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3436,3437,3438,3441,3444],{"name":3426,"slug":3427,"type":15},{"name":3145,"slug":3146,"type":15},{"name":3439,"slug":3440,"type":15},"Image Generation","image-generation",{"name":3442,"slug":3443,"type":15},"Images","images",{"name":9,"slug":8,"type":15},"2026-05-15T06:23:24.312127",675]