[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-nvidia-vss-generate-video-calibration":3,"mdc--v0mbc6-key":31,"related-repo-nvidia-vss-generate-video-calibration":2238,"related-org-nvidia-vss-generate-video-calibration":2340},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":20,"repoUrl":21,"updatedAt":22,"license":23,"forks":24,"topics":25,"repo":26,"sourceUrl":29,"mdContent":30},"vss-generate-video-calibration","generate video calibration for VSS","Use to run AutoMagicCalib on local MP4s, RTSP, or the bundled sample dataset, and to deploy vss-auto-calibration when needed. Do not use for non-AMC calibration or runtime analytics.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},"nvidia","NVIDIA","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fnvidia.png",[12,16,17],{"name":13,"slug":14,"type":15},"Automation","automation","tag",{"name":9,"slug":8,"type":15},{"name":18,"slug":19,"type":15},"Video","video",2473,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fskills","2026-07-17T05:29:02.921241","Apache-2.0",281,[],{"repoUrl":21,"stars":20,"forks":24,"topics":27,"description":28},[],"AI agent skills published by NVIDIA","https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fskills\u002Ftree\u002FHEAD\u002Fskills\u002Fvss-generate-video-calibration","---\nname: vss-generate-video-calibration\ndescription: Use to run AutoMagicCalib on local MP4s, RTSP, or the bundled sample dataset, and to deploy vss-auto-calibration when needed. Do not use for non-AMC calibration or runtime analytics.\nlicense: Apache-2.0\nmetadata:\n  version: \"3.2.1\"\n  github-url: \"https:\u002F\u002Fgithub.com\u002FNVIDIA-AI-Blueprints\u002Fvideo-search-and-summarization\"\n  tags: \"nvidia blueprint operational\"\n---\n## Purpose\n\nRun AutoMagicCalib end-to-end on local files, RTSP streams, or the bundled sample dataset and (when needed) deploy the AMC microservice.\n\n## Instructions\n\nFollow the routing tables and step-by-step workflows below. Each section that ends in *workflow*, *quick start*, or *flow* is intended to be executed top-to-bottom. Detailed reference material lives in `references\u002F`; load only the reference needed for the selected input mode.\n\n## Examples\n\nWorked end-to-end examples are kept under `evals\u002F` (each `*.json` manifest contains a runnable scenario) and inline in the per-workflow `curl` blocks below. Run a Tier-3 evaluation with `nv-base validate \u003Cthis-skill-dir> --agent-eval` to replay them.\n\n## Limitations\n\n- Requires the matching VSS profile \u002F microservice to be deployed and reachable from the caller.\n- NGC-hosted models and NIMs may be subject to rate-limits, GPU memory requirements, and license restrictions.\n- Concurrency, GPU memory, and storage limits depend on the host hardware and the profile's compose file.\n\n## Troubleshooting\n\n- **Error**: REST call returns connection refused. **Cause**: target microservice not running. **Solution**: probe `\u002Fdocs` or `\u002Fhealth`; redeploy via `vss-deploy-profile` or the matching `vss-deploy-*` skill.\n- **Error**: HTTP 401\u002F403 from NGC pulls. **Cause**: missing\u002Fexpired `NGC_CLI_API_KEY`. **Solution**: `docker login nvcr.io` and re-export the key before retrying.\n- **Error**: container OOM or model fails to load. **Cause**: insufficient GPU memory for the selected profile. **Solution**: switch to a smaller variant or free GPUs via `docker compose down`.\n\n# VSS Generate Video Calibration\n\nRun AutoMagicCalib over one of three input sources and drive the calibration through the microservice REST API. The input-resolution work differs per source; everything from `verify_project` onward is identical and lives in this file. Pick the right input-mode reference and pair it with the [Shared Calibration Tail](#shared-calibration-tail) below.\n\nShared helper references are loaded only when needed:\n- Read [`references\u002Fcommon-steps.md`](references\u002Fcommon-steps.md) when a mode reference needs the shared `create_project`, video-upload, or handoff snippets.\n- Read [`references\u002Fcalibration-tail.md`](references\u002Fcalibration-tail.md) when you need the reusable Python implementation of the verify → calibrate → poll → results tail.\n\n## Input Routing\n\nMatch the user's request to a mode, then load that mode's reference for input collection, mode-specific API calls, and the full Python script.\n\n| User says \u002F has | Mode | Reference |\n|---|---|---|\n| \"launch AMC\" \u002F \"deploy auto-calibration\" \u002F \"set up auto-magic-calib\" \u002F \"start AMC microservice\" | `deploy` | [`references\u002Fdeploy-auto-calibration-service.md`](references\u002Fdeploy-auto-calibration-service.md) |\n| \"calibrate my videos\" \u002F \"calibrate from video files\" \u002F local `cam_*.mp4` files | `videos` | [`references\u002Fvideos.md`](references\u002Fvideos.md) |\n| \"calibrate RTSP streams\" \u002F \"calibrate from live cameras\" \u002F live RTSP URLs | `rtsp` | [`references\u002Frtsp.md`](references\u002Frtsp.md) |\n| \"test sample dataset\" \u002F \"verify AMC install\" \u002F \"launch and test\" | `sample-dataset` | [`references\u002Fsample-dataset.md`](references\u002Fsample-dataset.md) |\n\n**Disambiguation rule:** if the user is asking to launch \u002F deploy \u002F set up AMC (no calibration verb) → `deploy`. If they provide RTSP URLs → `rtsp`. If they mention local files \u002F a videos directory → `videos`. If they ask to verify install or test the bundled sample → `sample-dataset`. Combined intents (e.g. \"launch AMC and calibrate my videos\") → walk `deploy` first, then the calibration mode. When ambiguous, ask via `AskUserQuestion`.\n\n## Prerequisites (shared across calibration modes)\n\n- AMC microservice + UI running. If not, walk [`references\u002Fdeploy-auto-calibration-service.md`](references\u002Fdeploy-auto-calibration-service.md) first.\n- Microservice reachable at `http:\u002F\u002F\u003CHOST_IP>:${VSS_AUTO_CALIBRATION_PORT:-8010}\u002Fv1\u002Fready` → `{\"code\":0,...}`.\n- Projects directory writable by the container user. If you didn't just deploy (so Step 5 of the deploy reference hasn't run), confirm the write test in [`references\u002Fdeploy-auto-calibration-service.md` § Step 5](references\u002Fdeploy-auto-calibration-service.md#step-5--confirm-the-projects-directory-is-writable) — otherwise the first `create_project` returns `[Errno 13] Permission denied`.\n- Python 3 with `requests` installed (each input-mode reference includes a self-healing venv fallback for direct runs).\n\nMode-specific prerequisites (VIOS for `rtsp`, sample zip for `sample-dataset`) live in the respective references.\n\n## Shared Calibration Tail\n\nThe verify → calibrate → poll → results sequence is identical regardless of input mode. After the mode-specific reference has uploaded videos \u002F ingested RTSP clips \u002F uploaded the bundled sample, run this tail. Use [`references\u002Fcalibration-tail.md`](references\u002Fcalibration-tail.md) for the shared Python snippet.\n\n### Step A — Verify Project\n\n```\nPOST \u002Fv1\u002Fverify_project\u002F\u003Cproject_id>\n```\n\nResponse: `{\"project_state\": \"READY\"}` — must be `READY` before calibrating. If not READY, re-check that videos + alignment + layout are present (either via API or via UI manual alignment).\n\n### Step B — Start Calibration\n\n**Confirm the plan before calibrating.** Whether the settings file and detector were auto-detected or asked, present a short summary and confirm via `AskUserQuestion` before the `POST \u002Fcalibrate`. The resolved values are the defaults, so confirming is one click — but the user can switch the detector or skip an auto-detected settings file. Summarize:\n\n- **Detector** — `resnet` or `transformer` (the value to be sent).\n- **Calibration settings** — the file being applied (path), or default parameters (with the option to tune them in the UI first — see below).\n- **Optional overrides** — ground-truth zip and focal lengths, if any.\n\nThe sample-dataset install-check run uses a fixed `resnet` and can proceed without this confirmation.\n\n```\nPOST \u002Fv1\u002Fcalibrate\u002F\u003Cproject_id>\nContent-Type: application\u002Fjson\n\n{\"detector_type\": \"resnet\"}   # or \"transformer\"\n```\n\n`detector_type` is a separate `\u002Fcalibrate` parameter — **not** consumed by `\u002Fv1\u002Fconfig\u002F\u003Cid>`. If the user provided a calibration settings file, parse it for `\"detector\"` \u002F `\"detector_type\"` and use that value. If the file doesn't specify one, the default (`resnet`) is the value shown in the confirmation above — the user can switch it there before calibrating. If there's no settings file at all, ask the user via `AskUserQuestion`:\n\n- `resnet` — default, fast.\n- `transformer` — slower, better under heavy occlusion.\n\nUI Step 3 (Parameters) does NOT cover detector choice; never assume the user picked one in the UI.\n\n**Also when there's no settings file, ask whether to tune the calibration parameters first** (`AskUserQuestion`):\n\n- **Proceed with the default parameters** — well-suited to typical warehouse scenes; recommended unless the user has specific tuning in mind.\n- **Adjust parameters in the UI first** — open the project, go to Step 3: Parameters, change values, and click Save; then continue.\n\nWait for the user's choice — and, if they choose to tune, for them to confirm they've Saved — before calling `\u002Fcalibrate`.\n\n### Step C — Poll for Completion\n\n```\nGET \u002Fv1\u002Fget_project_info\u002F\u003Cproject_id>\n```\n\nPoll every 10 s. `project_info.project_state`:\n\n| State | Meaning |\n|---|---|\n| `RUNNING` | Calibration in progress |\n| `COMPLETED` | Finished |\n| `ERROR` | Failed — pull log via `GET \u002Fv1\u002Famc\u002Fcalibrate\u002F\u003Cid>\u002Flog` |\n\nWhen calibration starts, surface the project ID, the UI URL (`http:\u002F\u002F\u003CHOST_IP>:${VSS_AUTO_CALIBRATION_UI_PORT:-5000}`), and the log endpoint so the user can watch progress while the run proceeds. During `RUNNING`, emit a progress line at least once a minute with elapsed time so a long run doesn't look stalled. On `ERROR`, fetch and show the last lines of `GET \u002Fv1\u002Famc\u002Fcalibrate\u002F\u003Cid>\u002Flog` before stopping. Live logs can also be streamed via `GET \u002Fv1\u002Fcalibrate\u002F\u003Cproject_id>\u002Flog\u002F\u003Ctype>\u002Fstream`.\n\nTypical time: **10–60 min** (your-own videos), **10–30 min** (bundled sample).\n\n### Step D — Results\n\n```\nGET \u002Fv1\u002Fget_project_info\u002F\u003Cproject_id>                    # project state\nGET \u002Fv1\u002Fresult\u002F\u003Cproject_id>\u002Fevaluation_statistics        # only if GT uploaded\nGET \u002Fv1\u002Fresult\u002F\u003Cproject_id>\u002Foverlay_image                # visual overlay (PNG)\nGET \u002Fv1\u002Famc\u002Fcalibrate\u002F\u003Cproject_id>\u002Flog                   # calibration log\n```\n\nEvaluation response includes `Average L2 distance(m)` and `Average reprojection error 0(px)`. Evaluation metrics are produced **only when a ground-truth `GT.zip` was uploaded** — a missing `evaluation_statistics` result is normal otherwise and is not the end of result reporting.\n\nAfter `COMPLETED`, always give the user a way to review the result for that exact project, regardless of whether metrics exist:\n\n- **UI** — `http:\u002F\u002F\u003CHOST_IP>:${VSS_AUTO_CALIBRATION_UI_PORT:-5000}`; open the project, then the Results page to view the overlay.\n- **Overlay image on disk** — `${VSS_APPS_DIR}\u002Fservices\u002Fauto-calibration\u002Fprojects\u002Fproject_\u003Cid>\u002Foutput\u002Fmulti_view_results\u002FBA_output\u002Fresults_ba_scaled_world\u002Foverlay_img_*.png` (single-camera projects use `output\u002Fsingle_view_results\u002Fcam_00\u002Fverification_map_overlay.png`).\n- **Project files** — `${VSS_APPS_DIR}\u002Fservices\u002Fauto-calibration\u002Fprojects\u002Fproject_\u003Cid>\u002F`.\n\n### Step E — VGGT Refinement\n\nAfter the AMC run completes, always check `vggt_state` in project info. VGGT model staging is optional during setup and must not block the AMC result, but post-AMC handling follows the state:\n\n- If `vggt_state == \"READY\"` and the user explicitly requested VGGT refinement or staged VGGT during this setup flow, run VGGT refinement without asking again.\n- If `vggt_state == \"READY\"` but VGGT was already staged before this request and the user has not asked for VGGT-refined output, ask via `AskUserQuestion` whether to run refinement before starting it.\n- If VGGT is not ready, skip refinement and mention that VGGT refinement is available after staging the model (see [`references\u002Fdeploy-auto-calibration-service.md`](references\u002Fdeploy-auto-calibration-service.md) Step 2).\n\n```\nPOST \u002Fv1\u002Fvggt\u002Fcalibrate\u002F\u003Cproject_id>\nGET  \u002Fv1\u002Fget_project_info\u002F\u003Cproject_id>                    # poll vggt_state\nGET  \u002Fv1\u002Fvggt_results\u002F\u003Cproject_id>\u002Fevaluation_statistics  # VGGT metrics\n```\n\n## Settings File + Detector Pattern\n\nOptional across all three modes. When the user provides a JSON settings file (typically exported from UI Step 3 Download), POST it verbatim:\n\n```\nPOST \u002Fv1\u002Fconfig\u002F\u003Cproject_id>\nContent-Type: application\u002Fjson\n\n\u003Cfile contents, posted as-is>\n```\n\nThe file replaces what the user would otherwise tune in UI Step 3 (rectification, bundle-adjustment, evaluation knobs, detector, …). After a successful POST, **also** parse the file for `\"detector\"` \u002F `\"detector_type\"` — if it's `\"resnet\"` or `\"transformer\"`, use that value for the `\u002Fcalibrate` call in Step B (detector is a separate API parameter, not consumed by `\u002Fconfig`).\n\nNon-2xx is surfaced — do not silently fall back. Skip this call entirely if the user chose the UI-fallback path.\n\n## UI Fallback Pattern\n\nWhen alignment \u002F layout files aren't on disk, direct the user to the appropriate AMC UI step:\n\n- **Settings missing** → \"Open UI project `\u003Cproject_id>`, go to **Step 3: Parameters**, tune via the settings dialog (or accept defaults), click Save.\" **Also**: before the `\u002Fcalibrate` call, ask the user via `AskUserQuestion` whether to use the `resnet` or `transformer` detector — Step 3 doesn't cover detector choice.\n- **Layout missing** → \"Open UI project `\u003Cproject_id>`, go to **Step 2: Video Configuration**, upload `layout.png` only (do NOT re-upload videos — they're already attached via API\u002FRTSP), click Save.\"\n- **Alignment missing** → \"Open UI project `\u003Cproject_id>`, go to **Step 4: Alignment**, either upload `alignment_data.json` or mark correspondence points on the layout, click Save.\"\n\nWait for user confirmation. For alignment\u002Flayout, verify on disk before continuing:\n\n```bash\n# Project state lives under $VSS_APPS_DIR\u002Fservices\u002Fauto-calibration\u002Fprojects\n# (the path bind-mounted into the MS container in\n#  deploy\u002Fdocker\u002Fservices\u002Fauto-calibration\u002Fms\u002Fcompose.yml).\nHOST_PROJECTS=\"${VSS_APPS_DIR}\u002Fservices\u002Fauto-calibration\u002Fprojects\"\n\nls \"$HOST_PROJECTS\u002Fproject_\u003Cproject_id>\u002Fmanual_adjustment\u002F\"\n# Expected: alignment_data.json, layout.png\n```\n\n## Success Criteria\n\n- `project_state == \"COMPLETED\"` after polling.\n- If manual alignment was used: `${VSS_APPS_DIR}\u002Fservices\u002Fauto-calibration\u002Fprojects\u002Fproject_\u003Cid>\u002Fmanual_adjustment\u002F` contains `alignment_data.json` + `layout.png`.\n- If GT was uploaded: evaluation returns typical thresholds (`Average L2 distance(m)` \u003C 1.5, `Average reprojection error 0(px)` \u003C 5 for your data; \u003C 10 for the bundled sample).\n- No `ERROR` state.\n\n## Key Output Files\n\nUnder `${VSS_APPS_DIR}\u002Fservices\u002Fauto-calibration\u002Fprojects\u002Fproject_\u003Cproject_id>\u002F`:\n\n```\nproject_\u003Cproject_id>\u002F\n├── manual_adjustment\u002F\n│   ├── alignment_data.json\n│   └── layout.png\n├── output\u002F\n│   ├── single_view_results\u002Fcam_XX\u002F\n│   │   ├── camInfo_hyper_XX.yaml\n│   │   └── trajDump_Stream_0_3d.txt\n│   ├── multi_view_results\u002FBA_output\u002Fresults_ba\u002F\n│   │   ├── initial\u002FcamInfo_XX.yaml\n│   │   └── refined\u002FcamInfo_XX.yaml          # ← final calibration\n│   └── multi_view_results\u002FBA_output\u002Fresults_ba_scaled_world\u002F\n│       └── overlay_img_XX.png               # ← visual overlay for review\n└── calibration.log\n```\n\n## Cross-cutting Troubleshooting\n\nMode-specific issues live in each reference's own troubleshooting table.\n\n| Issue | Fix |\n|---|---|\n| `verify_project` state not `READY` | Confirm videos uploaded\u002Fingested and alignment + layout are present (either via API or via UI manual alignment). Mode-specific upload steps in the reference. |\n| Manual alignment files missing after UI step | User didn't click Save; also verify `${VSS_APPS_DIR}\u002Fservices\u002Fauto-calibration\u002Fprojects\u002Fproject_\u003Cid>\u002Fmanual_adjustment\u002F` exists. |\n| Calibration stuck `RUNNING` > 90 min | `GET \u002Fv1\u002Famc\u002Fcalibrate\u002F\u003Cid>\u002Flog` — usually insufficient tracklets (scene too static). See \"Custom Dataset\" guidelines in root `README.md`. |\n| Immediate `ERROR` state | Check video naming: must be `cam_00.mp4`, `cam_01.mp4`, … contiguous (videos mode) \u002F camera_name labels (RTSP mode). |\n| Low L2 but high reprojection | Provide explicit `focal_length` override during input upload (see videos \u002F rtsp references). |\n| VGGT `INIT`, never `READY` | VGGT model not loaded — see [`references\u002Fdeploy-auto-calibration-service.md`](references\u002Fdeploy-auto-calibration-service.md) Step 2. |\n| Upload timeout | Large videos — bump `timeout=300` to e.g. `600` in the per-mode Python script. |\n| Port scan finds no backend | Backend not running — walk [`references\u002Fdeploy-auto-calibration-service.md`](references\u002Fdeploy-auto-calibration-service.md) first. |\n\n## For Downstream Skills — MV3DT Export\n\nDownstream consumers (e.g. a Multi-View 3D Tracking skill owned by another team) fetch the MV3DT-format calibration output directly from the microservice. This skill returns the `project_id`; the downstream skill calls:\n\n```\nGET \u002Fv1\u002Fresult\u002F{project_id}\u002Fmv3dt_result?result_type=amc\n# Response: application\u002Fzip — mv3dt_output.zip containing transforms.yml\n```\n\nFor VGGT-refined output (only available if VGGT ran to `COMPLETED`, see Step E):\n\n```\nGET \u002Fv1\u002Fresult\u002F{project_id}\u002Fmv3dt_result?result_type=vggt\n# Response: application\u002Fzip — vggt_mv3dt_output.zip\n```\n\nDownstream skill flow:\n1. Call this skill with the user's inputs; capture the printed `project_id`.\n2. Wait for the skill to return (it polls until `COMPLETED` internally).\n3. `GET \u002Fv1\u002Fresult\u002F{project_id}\u002Fmv3dt_result?result_type=amc` — save the ZIP locally.\n4. If VGGT also ran, optionally fetch `?result_type=vggt` for the refined MV3DT.\n\n## Related Skills\n\n- [`vss-manage-video-io-storage`](..\u002Fvss-manage-video-io-storage\u002FSKILL.md) — VIOS API skill; only the `rtsp` calibration mode depends on VIOS being reachable.\n\nRoot `README.md` \"Custom Dataset\" and \"Calibration Workflow (UI)\" sections document input-video guidelines and the UI-driven alternative to this API flow.\n\nbump:1\n",{"data":32,"body":37},{"name":4,"description":6,"license":23,"metadata":33},{"version":34,"github-url":35,"tags":36},"3.2.1","https:\u002F\u002Fgithub.com\u002FNVIDIA-AI-Blueprints\u002Fvideo-search-and-summarization","nvidia blueprint operational",{"type":38,"children":39},"root",[40,49,55,61,97,103,140,146,166,172,298,304,326,331,373,379,384,541,593,599,682,701,706,721,728,740,761,767,792,840,852,861,925,948,953,970,993,1004,1010,1019,1031,1110,1151,1170,1176,1185,1229,1241,1301,1307,1320,1369,1378,1384,1389,1398,1452,1457,1463,1468,1590,1595,1724,1730,1801,1807,1819,1828,1834,1839,2079,2085,2098,2107,2119,2128,2133,2184,2190,2215,2227,2232],{"type":41,"tag":42,"props":43,"children":45},"element","h2",{"id":44},"purpose",[46],{"type":47,"value":48},"text","Purpose",{"type":41,"tag":50,"props":51,"children":52},"p",{},[53],{"type":47,"value":54},"Run AutoMagicCalib end-to-end on local files, RTSP streams, or the bundled sample dataset and (when needed) deploy the AMC microservice.",{"type":41,"tag":42,"props":56,"children":58},{"id":57},"instructions",[59],{"type":47,"value":60},"Instructions",{"type":41,"tag":50,"props":62,"children":63},{},[64,66,72,74,79,81,86,88,95],{"type":47,"value":65},"Follow the routing tables and step-by-step workflows below. Each section that ends in ",{"type":41,"tag":67,"props":68,"children":69},"em",{},[70],{"type":47,"value":71},"workflow",{"type":47,"value":73},", ",{"type":41,"tag":67,"props":75,"children":76},{},[77],{"type":47,"value":78},"quick start",{"type":47,"value":80},", or ",{"type":41,"tag":67,"props":82,"children":83},{},[84],{"type":47,"value":85},"flow",{"type":47,"value":87}," is intended to be executed top-to-bottom. Detailed reference material lives in ",{"type":41,"tag":89,"props":90,"children":92},"code",{"className":91},[],[93],{"type":47,"value":94},"references\u002F",{"type":47,"value":96},"; load only the reference needed for the selected input mode.",{"type":41,"tag":42,"props":98,"children":100},{"id":99},"examples",[101],{"type":47,"value":102},"Examples",{"type":41,"tag":50,"props":104,"children":105},{},[106,108,114,116,122,124,130,132,138],{"type":47,"value":107},"Worked end-to-end examples are kept under ",{"type":41,"tag":89,"props":109,"children":111},{"className":110},[],[112],{"type":47,"value":113},"evals\u002F",{"type":47,"value":115}," (each ",{"type":41,"tag":89,"props":117,"children":119},{"className":118},[],[120],{"type":47,"value":121},"*.json",{"type":47,"value":123}," manifest contains a runnable scenario) and inline in the per-workflow ",{"type":41,"tag":89,"props":125,"children":127},{"className":126},[],[128],{"type":47,"value":129},"curl",{"type":47,"value":131}," blocks below. Run a Tier-3 evaluation with ",{"type":41,"tag":89,"props":133,"children":135},{"className":134},[],[136],{"type":47,"value":137},"nv-base validate \u003Cthis-skill-dir> --agent-eval",{"type":47,"value":139}," to replay them.",{"type":41,"tag":42,"props":141,"children":143},{"id":142},"limitations",[144],{"type":47,"value":145},"Limitations",{"type":41,"tag":147,"props":148,"children":149},"ul",{},[150,156,161],{"type":41,"tag":151,"props":152,"children":153},"li",{},[154],{"type":47,"value":155},"Requires the matching VSS profile \u002F microservice to be deployed and reachable from the caller.",{"type":41,"tag":151,"props":157,"children":158},{},[159],{"type":47,"value":160},"NGC-hosted models and NIMs may be subject to rate-limits, GPU memory requirements, and license restrictions.",{"type":41,"tag":151,"props":162,"children":163},{},[164],{"type":47,"value":165},"Concurrency, GPU memory, and storage limits depend on the host hardware and the profile's compose file.",{"type":41,"tag":42,"props":167,"children":169},{"id":168},"troubleshooting",[170],{"type":47,"value":171},"Troubleshooting",{"type":41,"tag":147,"props":173,"children":174},{},[175,232,269],{"type":41,"tag":151,"props":176,"children":177},{},[178,184,186,191,193,198,200,206,208,214,216,222,224,230],{"type":41,"tag":179,"props":180,"children":181},"strong",{},[182],{"type":47,"value":183},"Error",{"type":47,"value":185},": REST call returns connection refused. ",{"type":41,"tag":179,"props":187,"children":188},{},[189],{"type":47,"value":190},"Cause",{"type":47,"value":192},": target microservice not running. ",{"type":41,"tag":179,"props":194,"children":195},{},[196],{"type":47,"value":197},"Solution",{"type":47,"value":199},": probe ",{"type":41,"tag":89,"props":201,"children":203},{"className":202},[],[204],{"type":47,"value":205},"\u002Fdocs",{"type":47,"value":207}," or ",{"type":41,"tag":89,"props":209,"children":211},{"className":210},[],[212],{"type":47,"value":213},"\u002Fhealth",{"type":47,"value":215},"; redeploy via ",{"type":41,"tag":89,"props":217,"children":219},{"className":218},[],[220],{"type":47,"value":221},"vss-deploy-profile",{"type":47,"value":223}," or the matching ",{"type":41,"tag":89,"props":225,"children":227},{"className":226},[],[228],{"type":47,"value":229},"vss-deploy-*",{"type":47,"value":231}," skill.",{"type":41,"tag":151,"props":233,"children":234},{},[235,239,241,245,247,253,255,259,261,267],{"type":41,"tag":179,"props":236,"children":237},{},[238],{"type":47,"value":183},{"type":47,"value":240},": HTTP 401\u002F403 from NGC pulls. ",{"type":41,"tag":179,"props":242,"children":243},{},[244],{"type":47,"value":190},{"type":47,"value":246},": missing\u002Fexpired ",{"type":41,"tag":89,"props":248,"children":250},{"className":249},[],[251],{"type":47,"value":252},"NGC_CLI_API_KEY",{"type":47,"value":254},". ",{"type":41,"tag":179,"props":256,"children":257},{},[258],{"type":47,"value":197},{"type":47,"value":260},": ",{"type":41,"tag":89,"props":262,"children":264},{"className":263},[],[265],{"type":47,"value":266},"docker login nvcr.io",{"type":47,"value":268}," and re-export the key before retrying.",{"type":41,"tag":151,"props":270,"children":271},{},[272,276,278,282,284,288,290,296],{"type":41,"tag":179,"props":273,"children":274},{},[275],{"type":47,"value":183},{"type":47,"value":277},": container OOM or model fails to load. ",{"type":41,"tag":179,"props":279,"children":280},{},[281],{"type":47,"value":190},{"type":47,"value":283},": insufficient GPU memory for the selected profile. ",{"type":41,"tag":179,"props":285,"children":286},{},[287],{"type":47,"value":197},{"type":47,"value":289},": switch to a smaller variant or free GPUs via ",{"type":41,"tag":89,"props":291,"children":293},{"className":292},[],[294],{"type":47,"value":295},"docker compose down",{"type":47,"value":297},".",{"type":41,"tag":299,"props":300,"children":301},"h1",{"id":4},[302],{"type":47,"value":303},"VSS Generate Video Calibration",{"type":41,"tag":50,"props":305,"children":306},{},[307,309,315,317,324],{"type":47,"value":308},"Run AutoMagicCalib over one of three input sources and drive the calibration through the microservice REST API. The input-resolution work differs per source; everything from ",{"type":41,"tag":89,"props":310,"children":312},{"className":311},[],[313],{"type":47,"value":314},"verify_project",{"type":47,"value":316}," onward is identical and lives in this file. Pick the right input-mode reference and pair it with the ",{"type":41,"tag":318,"props":319,"children":321},"a",{"href":320},"#shared-calibration-tail",[322],{"type":47,"value":323},"Shared Calibration Tail",{"type":47,"value":325}," below.",{"type":41,"tag":50,"props":327,"children":328},{},[329],{"type":47,"value":330},"Shared helper references are loaded only when needed:",{"type":41,"tag":147,"props":332,"children":333},{},[334,358],{"type":41,"tag":151,"props":335,"children":336},{},[337,339,348,350,356],{"type":47,"value":338},"Read ",{"type":41,"tag":318,"props":340,"children":342},{"href":341},"references\u002Fcommon-steps.md",[343],{"type":41,"tag":89,"props":344,"children":346},{"className":345},[],[347],{"type":47,"value":341},{"type":47,"value":349}," when a mode reference needs the shared ",{"type":41,"tag":89,"props":351,"children":353},{"className":352},[],[354],{"type":47,"value":355},"create_project",{"type":47,"value":357},", video-upload, or handoff snippets.",{"type":41,"tag":151,"props":359,"children":360},{},[361,362,371],{"type":47,"value":338},{"type":41,"tag":318,"props":363,"children":365},{"href":364},"references\u002Fcalibration-tail.md",[366],{"type":41,"tag":89,"props":367,"children":369},{"className":368},[],[370],{"type":47,"value":364},{"type":47,"value":372}," when you need the reusable Python implementation of the verify → calibrate → poll → results tail.",{"type":41,"tag":42,"props":374,"children":376},{"id":375},"input-routing",[377],{"type":47,"value":378},"Input Routing",{"type":41,"tag":50,"props":380,"children":381},{},[382],{"type":47,"value":383},"Match the user's request to a mode, then load that mode's reference for input collection, mode-specific API calls, and the full Python script.",{"type":41,"tag":385,"props":386,"children":387},"table",{},[388,412],{"type":41,"tag":389,"props":390,"children":391},"thead",{},[392],{"type":41,"tag":393,"props":394,"children":395},"tr",{},[396,402,407],{"type":41,"tag":397,"props":398,"children":399},"th",{},[400],{"type":47,"value":401},"User says \u002F has",{"type":41,"tag":397,"props":403,"children":404},{},[405],{"type":47,"value":406},"Mode",{"type":41,"tag":397,"props":408,"children":409},{},[410],{"type":47,"value":411},"Reference",{"type":41,"tag":413,"props":414,"children":415},"tbody",{},[416,446,483,512],{"type":41,"tag":393,"props":417,"children":418},{},[419,425,434],{"type":41,"tag":420,"props":421,"children":422},"td",{},[423],{"type":47,"value":424},"\"launch AMC\" \u002F \"deploy auto-calibration\" \u002F \"set up auto-magic-calib\" \u002F \"start AMC microservice\"",{"type":41,"tag":420,"props":426,"children":427},{},[428],{"type":41,"tag":89,"props":429,"children":431},{"className":430},[],[432],{"type":47,"value":433},"deploy",{"type":41,"tag":420,"props":435,"children":436},{},[437],{"type":41,"tag":318,"props":438,"children":440},{"href":439},"references\u002Fdeploy-auto-calibration-service.md",[441],{"type":41,"tag":89,"props":442,"children":444},{"className":443},[],[445],{"type":47,"value":439},{"type":41,"tag":393,"props":447,"children":448},{},[449,462,471],{"type":41,"tag":420,"props":450,"children":451},{},[452,454,460],{"type":47,"value":453},"\"calibrate my videos\" \u002F \"calibrate from video files\" \u002F local ",{"type":41,"tag":89,"props":455,"children":457},{"className":456},[],[458],{"type":47,"value":459},"cam_*.mp4",{"type":47,"value":461}," files",{"type":41,"tag":420,"props":463,"children":464},{},[465],{"type":41,"tag":89,"props":466,"children":468},{"className":467},[],[469],{"type":47,"value":470},"videos",{"type":41,"tag":420,"props":472,"children":473},{},[474],{"type":41,"tag":318,"props":475,"children":477},{"href":476},"references\u002Fvideos.md",[478],{"type":41,"tag":89,"props":479,"children":481},{"className":480},[],[482],{"type":47,"value":476},{"type":41,"tag":393,"props":484,"children":485},{},[486,491,500],{"type":41,"tag":420,"props":487,"children":488},{},[489],{"type":47,"value":490},"\"calibrate RTSP streams\" \u002F \"calibrate from live cameras\" \u002F live RTSP URLs",{"type":41,"tag":420,"props":492,"children":493},{},[494],{"type":41,"tag":89,"props":495,"children":497},{"className":496},[],[498],{"type":47,"value":499},"rtsp",{"type":41,"tag":420,"props":501,"children":502},{},[503],{"type":41,"tag":318,"props":504,"children":506},{"href":505},"references\u002Frtsp.md",[507],{"type":41,"tag":89,"props":508,"children":510},{"className":509},[],[511],{"type":47,"value":505},{"type":41,"tag":393,"props":513,"children":514},{},[515,520,529],{"type":41,"tag":420,"props":516,"children":517},{},[518],{"type":47,"value":519},"\"test sample dataset\" \u002F \"verify AMC install\" \u002F \"launch and test\"",{"type":41,"tag":420,"props":521,"children":522},{},[523],{"type":41,"tag":89,"props":524,"children":526},{"className":525},[],[527],{"type":47,"value":528},"sample-dataset",{"type":41,"tag":420,"props":530,"children":531},{},[532],{"type":41,"tag":318,"props":533,"children":535},{"href":534},"references\u002Fsample-dataset.md",[536],{"type":41,"tag":89,"props":537,"children":539},{"className":538},[],[540],{"type":47,"value":534},{"type":41,"tag":50,"props":542,"children":543},{},[544,549,551,556,558,563,565,570,572,577,579,584,586,592],{"type":41,"tag":179,"props":545,"children":546},{},[547],{"type":47,"value":548},"Disambiguation rule:",{"type":47,"value":550}," if the user is asking to launch \u002F deploy \u002F set up AMC (no calibration verb) → ",{"type":41,"tag":89,"props":552,"children":554},{"className":553},[],[555],{"type":47,"value":433},{"type":47,"value":557},". If they provide RTSP URLs → ",{"type":41,"tag":89,"props":559,"children":561},{"className":560},[],[562],{"type":47,"value":499},{"type":47,"value":564},". If they mention local files \u002F a videos directory → ",{"type":41,"tag":89,"props":566,"children":568},{"className":567},[],[569],{"type":47,"value":470},{"type":47,"value":571},". If they ask to verify install or test the bundled sample → ",{"type":41,"tag":89,"props":573,"children":575},{"className":574},[],[576],{"type":47,"value":528},{"type":47,"value":578},". Combined intents (e.g. \"launch AMC and calibrate my videos\") → walk ",{"type":41,"tag":89,"props":580,"children":582},{"className":581},[],[583],{"type":47,"value":433},{"type":47,"value":585}," first, then the calibration mode. When ambiguous, ask via ",{"type":41,"tag":89,"props":587,"children":589},{"className":588},[],[590],{"type":47,"value":591},"AskUserQuestion",{"type":47,"value":297},{"type":41,"tag":42,"props":594,"children":596},{"id":595},"prerequisites-shared-across-calibration-modes",[597],{"type":47,"value":598},"Prerequisites (shared across calibration modes)",{"type":41,"tag":147,"props":600,"children":601},{},[602,617,637,669],{"type":41,"tag":151,"props":603,"children":604},{},[605,607,615],{"type":47,"value":606},"AMC microservice + UI running. If not, walk ",{"type":41,"tag":318,"props":608,"children":609},{"href":439},[610],{"type":41,"tag":89,"props":611,"children":613},{"className":612},[],[614],{"type":47,"value":439},{"type":47,"value":616}," first.",{"type":41,"tag":151,"props":618,"children":619},{},[620,622,628,630,636],{"type":47,"value":621},"Microservice reachable at ",{"type":41,"tag":89,"props":623,"children":625},{"className":624},[],[626],{"type":47,"value":627},"http:\u002F\u002F\u003CHOST_IP>:${VSS_AUTO_CALIBRATION_PORT:-8010}\u002Fv1\u002Fready",{"type":47,"value":629}," → ",{"type":41,"tag":89,"props":631,"children":633},{"className":632},[],[634],{"type":47,"value":635},"{\"code\":0,...}",{"type":47,"value":297},{"type":41,"tag":151,"props":638,"children":639},{},[640,642,653,655,660,662,668],{"type":47,"value":641},"Projects directory writable by the container user. If you didn't just deploy (so Step 5 of the deploy reference hasn't run), confirm the write test in ",{"type":41,"tag":318,"props":643,"children":645},{"href":644},"references\u002Fdeploy-auto-calibration-service.md#step-5--confirm-the-projects-directory-is-writable",[646,651],{"type":41,"tag":89,"props":647,"children":649},{"className":648},[],[650],{"type":47,"value":439},{"type":47,"value":652}," § Step 5",{"type":47,"value":654}," — otherwise the first ",{"type":41,"tag":89,"props":656,"children":658},{"className":657},[],[659],{"type":47,"value":355},{"type":47,"value":661}," returns ",{"type":41,"tag":89,"props":663,"children":665},{"className":664},[],[666],{"type":47,"value":667},"[Errno 13] Permission denied",{"type":47,"value":297},{"type":41,"tag":151,"props":670,"children":671},{},[672,674,680],{"type":47,"value":673},"Python 3 with ",{"type":41,"tag":89,"props":675,"children":677},{"className":676},[],[678],{"type":47,"value":679},"requests",{"type":47,"value":681}," installed (each input-mode reference includes a self-healing venv fallback for direct runs).",{"type":41,"tag":50,"props":683,"children":684},{},[685,687,692,694,699],{"type":47,"value":686},"Mode-specific prerequisites (VIOS for ",{"type":41,"tag":89,"props":688,"children":690},{"className":689},[],[691],{"type":47,"value":499},{"type":47,"value":693},", sample zip for ",{"type":41,"tag":89,"props":695,"children":697},{"className":696},[],[698],{"type":47,"value":528},{"type":47,"value":700},") live in the respective references.",{"type":41,"tag":42,"props":702,"children":704},{"id":703},"shared-calibration-tail",[705],{"type":47,"value":323},{"type":41,"tag":50,"props":707,"children":708},{},[709,711,719],{"type":47,"value":710},"The verify → calibrate → poll → results sequence is identical regardless of input mode. After the mode-specific reference has uploaded videos \u002F ingested RTSP clips \u002F uploaded the bundled sample, run this tail. Use ",{"type":41,"tag":318,"props":712,"children":713},{"href":364},[714],{"type":41,"tag":89,"props":715,"children":717},{"className":716},[],[718],{"type":47,"value":364},{"type":47,"value":720}," for the shared Python snippet.",{"type":41,"tag":722,"props":723,"children":725},"h3",{"id":724},"step-a-verify-project",[726],{"type":47,"value":727},"Step A — Verify Project",{"type":41,"tag":729,"props":730,"children":734},"pre",{"className":731,"code":733,"language":47},[732],"language-text","POST \u002Fv1\u002Fverify_project\u002F\u003Cproject_id>\n",[735],{"type":41,"tag":89,"props":736,"children":738},{"__ignoreMap":737},"",[739],{"type":47,"value":733},{"type":41,"tag":50,"props":741,"children":742},{},[743,745,751,753,759],{"type":47,"value":744},"Response: ",{"type":41,"tag":89,"props":746,"children":748},{"className":747},[],[749],{"type":47,"value":750},"{\"project_state\": \"READY\"}",{"type":47,"value":752}," — must be ",{"type":41,"tag":89,"props":754,"children":756},{"className":755},[],[757],{"type":47,"value":758},"READY",{"type":47,"value":760}," before calibrating. If not READY, re-check that videos + alignment + layout are present (either via API or via UI manual alignment).",{"type":41,"tag":722,"props":762,"children":764},{"id":763},"step-b-start-calibration",[765],{"type":47,"value":766},"Step B — Start Calibration",{"type":41,"tag":50,"props":768,"children":769},{},[770,775,777,782,784,790],{"type":41,"tag":179,"props":771,"children":772},{},[773],{"type":47,"value":774},"Confirm the plan before calibrating.",{"type":47,"value":776}," Whether the settings file and detector were auto-detected or asked, present a short summary and confirm via ",{"type":41,"tag":89,"props":778,"children":780},{"className":779},[],[781],{"type":47,"value":591},{"type":47,"value":783}," before the ",{"type":41,"tag":89,"props":785,"children":787},{"className":786},[],[788],{"type":47,"value":789},"POST \u002Fcalibrate",{"type":47,"value":791},". The resolved values are the defaults, so confirming is one click — but the user can switch the detector or skip an auto-detected settings file. Summarize:",{"type":41,"tag":147,"props":793,"children":794},{},[795,820,830],{"type":41,"tag":151,"props":796,"children":797},{},[798,803,805,811,812,818],{"type":41,"tag":179,"props":799,"children":800},{},[801],{"type":47,"value":802},"Detector",{"type":47,"value":804}," — ",{"type":41,"tag":89,"props":806,"children":808},{"className":807},[],[809],{"type":47,"value":810},"resnet",{"type":47,"value":207},{"type":41,"tag":89,"props":813,"children":815},{"className":814},[],[816],{"type":47,"value":817},"transformer",{"type":47,"value":819}," (the value to be sent).",{"type":41,"tag":151,"props":821,"children":822},{},[823,828],{"type":41,"tag":179,"props":824,"children":825},{},[826],{"type":47,"value":827},"Calibration settings",{"type":47,"value":829}," — the file being applied (path), or default parameters (with the option to tune them in the UI first — see below).",{"type":41,"tag":151,"props":831,"children":832},{},[833,838],{"type":41,"tag":179,"props":834,"children":835},{},[836],{"type":47,"value":837},"Optional overrides",{"type":47,"value":839}," — ground-truth zip and focal lengths, if any.",{"type":41,"tag":50,"props":841,"children":842},{},[843,845,850],{"type":47,"value":844},"The sample-dataset install-check run uses a fixed ",{"type":41,"tag":89,"props":846,"children":848},{"className":847},[],[849],{"type":47,"value":810},{"type":47,"value":851}," and can proceed without this confirmation.",{"type":41,"tag":729,"props":853,"children":856},{"className":854,"code":855,"language":47},[732],"POST \u002Fv1\u002Fcalibrate\u002F\u003Cproject_id>\nContent-Type: application\u002Fjson\n\n{\"detector_type\": \"resnet\"}   # or \"transformer\"\n",[857],{"type":41,"tag":89,"props":858,"children":859},{"__ignoreMap":737},[860],{"type":47,"value":855},{"type":41,"tag":50,"props":862,"children":863},{},[864,870,872,878,880,885,887,893,895,901,903,909,911,916,918,923],{"type":41,"tag":89,"props":865,"children":867},{"className":866},[],[868],{"type":47,"value":869},"detector_type",{"type":47,"value":871}," is a separate ",{"type":41,"tag":89,"props":873,"children":875},{"className":874},[],[876],{"type":47,"value":877},"\u002Fcalibrate",{"type":47,"value":879}," parameter — ",{"type":41,"tag":179,"props":881,"children":882},{},[883],{"type":47,"value":884},"not",{"type":47,"value":886}," consumed by ",{"type":41,"tag":89,"props":888,"children":890},{"className":889},[],[891],{"type":47,"value":892},"\u002Fv1\u002Fconfig\u002F\u003Cid>",{"type":47,"value":894},". If the user provided a calibration settings file, parse it for ",{"type":41,"tag":89,"props":896,"children":898},{"className":897},[],[899],{"type":47,"value":900},"\"detector\"",{"type":47,"value":902}," \u002F ",{"type":41,"tag":89,"props":904,"children":906},{"className":905},[],[907],{"type":47,"value":908},"\"detector_type\"",{"type":47,"value":910}," and use that value. If the file doesn't specify one, the default (",{"type":41,"tag":89,"props":912,"children":914},{"className":913},[],[915],{"type":47,"value":810},{"type":47,"value":917},") is the value shown in the confirmation above — the user can switch it there before calibrating. If there's no settings file at all, ask the user via ",{"type":41,"tag":89,"props":919,"children":921},{"className":920},[],[922],{"type":47,"value":591},{"type":47,"value":924},":",{"type":41,"tag":147,"props":926,"children":927},{},[928,938],{"type":41,"tag":151,"props":929,"children":930},{},[931,936],{"type":41,"tag":89,"props":932,"children":934},{"className":933},[],[935],{"type":47,"value":810},{"type":47,"value":937}," — default, fast.",{"type":41,"tag":151,"props":939,"children":940},{},[941,946],{"type":41,"tag":89,"props":942,"children":944},{"className":943},[],[945],{"type":47,"value":817},{"type":47,"value":947}," — slower, better under heavy occlusion.",{"type":41,"tag":50,"props":949,"children":950},{},[951],{"type":47,"value":952},"UI Step 3 (Parameters) does NOT cover detector choice; never assume the user picked one in the UI.",{"type":41,"tag":50,"props":954,"children":955},{},[956,961,963,968],{"type":41,"tag":179,"props":957,"children":958},{},[959],{"type":47,"value":960},"Also when there's no settings file, ask whether to tune the calibration parameters first",{"type":47,"value":962}," (",{"type":41,"tag":89,"props":964,"children":966},{"className":965},[],[967],{"type":47,"value":591},{"type":47,"value":969},"):",{"type":41,"tag":147,"props":971,"children":972},{},[973,983],{"type":41,"tag":151,"props":974,"children":975},{},[976,981],{"type":41,"tag":179,"props":977,"children":978},{},[979],{"type":47,"value":980},"Proceed with the default parameters",{"type":47,"value":982}," — well-suited to typical warehouse scenes; recommended unless the user has specific tuning in mind.",{"type":41,"tag":151,"props":984,"children":985},{},[986,991],{"type":41,"tag":179,"props":987,"children":988},{},[989],{"type":47,"value":990},"Adjust parameters in the UI first",{"type":47,"value":992}," — open the project, go to Step 3: Parameters, change values, and click Save; then continue.",{"type":41,"tag":50,"props":994,"children":995},{},[996,998,1003],{"type":47,"value":997},"Wait for the user's choice — and, if they choose to tune, for them to confirm they've Saved — before calling ",{"type":41,"tag":89,"props":999,"children":1001},{"className":1000},[],[1002],{"type":47,"value":877},{"type":47,"value":297},{"type":41,"tag":722,"props":1005,"children":1007},{"id":1006},"step-c-poll-for-completion",[1008],{"type":47,"value":1009},"Step C — Poll for Completion",{"type":41,"tag":729,"props":1011,"children":1014},{"className":1012,"code":1013,"language":47},[732],"GET \u002Fv1\u002Fget_project_info\u002F\u003Cproject_id>\n",[1015],{"type":41,"tag":89,"props":1016,"children":1017},{"__ignoreMap":737},[1018],{"type":47,"value":1013},{"type":41,"tag":50,"props":1020,"children":1021},{},[1022,1024,1030],{"type":47,"value":1023},"Poll every 10 s. ",{"type":41,"tag":89,"props":1025,"children":1027},{"className":1026},[],[1028],{"type":47,"value":1029},"project_info.project_state",{"type":47,"value":924},{"type":41,"tag":385,"props":1032,"children":1033},{},[1034,1050],{"type":41,"tag":389,"props":1035,"children":1036},{},[1037],{"type":41,"tag":393,"props":1038,"children":1039},{},[1040,1045],{"type":41,"tag":397,"props":1041,"children":1042},{},[1043],{"type":47,"value":1044},"State",{"type":41,"tag":397,"props":1046,"children":1047},{},[1048],{"type":47,"value":1049},"Meaning",{"type":41,"tag":413,"props":1051,"children":1052},{},[1053,1070,1087],{"type":41,"tag":393,"props":1054,"children":1055},{},[1056,1065],{"type":41,"tag":420,"props":1057,"children":1058},{},[1059],{"type":41,"tag":89,"props":1060,"children":1062},{"className":1061},[],[1063],{"type":47,"value":1064},"RUNNING",{"type":41,"tag":420,"props":1066,"children":1067},{},[1068],{"type":47,"value":1069},"Calibration in progress",{"type":41,"tag":393,"props":1071,"children":1072},{},[1073,1082],{"type":41,"tag":420,"props":1074,"children":1075},{},[1076],{"type":41,"tag":89,"props":1077,"children":1079},{"className":1078},[],[1080],{"type":47,"value":1081},"COMPLETED",{"type":41,"tag":420,"props":1083,"children":1084},{},[1085],{"type":47,"value":1086},"Finished",{"type":41,"tag":393,"props":1088,"children":1089},{},[1090,1099],{"type":41,"tag":420,"props":1091,"children":1092},{},[1093],{"type":41,"tag":89,"props":1094,"children":1096},{"className":1095},[],[1097],{"type":47,"value":1098},"ERROR",{"type":41,"tag":420,"props":1100,"children":1101},{},[1102,1104],{"type":47,"value":1103},"Failed — pull log via ",{"type":41,"tag":89,"props":1105,"children":1107},{"className":1106},[],[1108],{"type":47,"value":1109},"GET \u002Fv1\u002Famc\u002Fcalibrate\u002F\u003Cid>\u002Flog",{"type":41,"tag":50,"props":1111,"children":1112},{},[1113,1115,1121,1123,1128,1130,1135,1137,1142,1144,1150],{"type":47,"value":1114},"When calibration starts, surface the project ID, the UI URL (",{"type":41,"tag":89,"props":1116,"children":1118},{"className":1117},[],[1119],{"type":47,"value":1120},"http:\u002F\u002F\u003CHOST_IP>:${VSS_AUTO_CALIBRATION_UI_PORT:-5000}",{"type":47,"value":1122},"), and the log endpoint so the user can watch progress while the run proceeds. During ",{"type":41,"tag":89,"props":1124,"children":1126},{"className":1125},[],[1127],{"type":47,"value":1064},{"type":47,"value":1129},", emit a progress line at least once a minute with elapsed time so a long run doesn't look stalled. On ",{"type":41,"tag":89,"props":1131,"children":1133},{"className":1132},[],[1134],{"type":47,"value":1098},{"type":47,"value":1136},", fetch and show the last lines of ",{"type":41,"tag":89,"props":1138,"children":1140},{"className":1139},[],[1141],{"type":47,"value":1109},{"type":47,"value":1143}," before stopping. Live logs can also be streamed via ",{"type":41,"tag":89,"props":1145,"children":1147},{"className":1146},[],[1148],{"type":47,"value":1149},"GET \u002Fv1\u002Fcalibrate\u002F\u003Cproject_id>\u002Flog\u002F\u003Ctype>\u002Fstream",{"type":47,"value":297},{"type":41,"tag":50,"props":1152,"children":1153},{},[1154,1156,1161,1163,1168],{"type":47,"value":1155},"Typical time: ",{"type":41,"tag":179,"props":1157,"children":1158},{},[1159],{"type":47,"value":1160},"10–60 min",{"type":47,"value":1162}," (your-own videos), ",{"type":41,"tag":179,"props":1164,"children":1165},{},[1166],{"type":47,"value":1167},"10–30 min",{"type":47,"value":1169}," (bundled sample).",{"type":41,"tag":722,"props":1171,"children":1173},{"id":1172},"step-d-results",[1174],{"type":47,"value":1175},"Step D — Results",{"type":41,"tag":729,"props":1177,"children":1180},{"className":1178,"code":1179,"language":47},[732],"GET \u002Fv1\u002Fget_project_info\u002F\u003Cproject_id>                    # project state\nGET \u002Fv1\u002Fresult\u002F\u003Cproject_id>\u002Fevaluation_statistics        # only if GT uploaded\nGET \u002Fv1\u002Fresult\u002F\u003Cproject_id>\u002Foverlay_image                # visual overlay (PNG)\nGET \u002Fv1\u002Famc\u002Fcalibrate\u002F\u003Cproject_id>\u002Flog                   # calibration log\n",[1181],{"type":41,"tag":89,"props":1182,"children":1183},{"__ignoreMap":737},[1184],{"type":47,"value":1179},{"type":41,"tag":50,"props":1186,"children":1187},{},[1188,1190,1196,1198,1204,1206,1219,1221,1227],{"type":47,"value":1189},"Evaluation response includes ",{"type":41,"tag":89,"props":1191,"children":1193},{"className":1192},[],[1194],{"type":47,"value":1195},"Average L2 distance(m)",{"type":47,"value":1197}," and ",{"type":41,"tag":89,"props":1199,"children":1201},{"className":1200},[],[1202],{"type":47,"value":1203},"Average reprojection error 0(px)",{"type":47,"value":1205},". Evaluation metrics are produced ",{"type":41,"tag":179,"props":1207,"children":1208},{},[1209,1211,1217],{"type":47,"value":1210},"only when a ground-truth ",{"type":41,"tag":89,"props":1212,"children":1214},{"className":1213},[],[1215],{"type":47,"value":1216},"GT.zip",{"type":47,"value":1218}," was uploaded",{"type":47,"value":1220}," — a missing ",{"type":41,"tag":89,"props":1222,"children":1224},{"className":1223},[],[1225],{"type":47,"value":1226},"evaluation_statistics",{"type":47,"value":1228}," result is normal otherwise and is not the end of result reporting.",{"type":41,"tag":50,"props":1230,"children":1231},{},[1232,1234,1239],{"type":47,"value":1233},"After ",{"type":41,"tag":89,"props":1235,"children":1237},{"className":1236},[],[1238],{"type":47,"value":1081},{"type":47,"value":1240},", always give the user a way to review the result for that exact project, regardless of whether metrics exist:",{"type":41,"tag":147,"props":1242,"children":1243},{},[1244,1260,1285],{"type":41,"tag":151,"props":1245,"children":1246},{},[1247,1252,1253,1258],{"type":41,"tag":179,"props":1248,"children":1249},{},[1250],{"type":47,"value":1251},"UI",{"type":47,"value":804},{"type":41,"tag":89,"props":1254,"children":1256},{"className":1255},[],[1257],{"type":47,"value":1120},{"type":47,"value":1259},"; open the project, then the Results page to view the overlay.",{"type":41,"tag":151,"props":1261,"children":1262},{},[1263,1268,1269,1275,1277,1283],{"type":41,"tag":179,"props":1264,"children":1265},{},[1266],{"type":47,"value":1267},"Overlay image on disk",{"type":47,"value":804},{"type":41,"tag":89,"props":1270,"children":1272},{"className":1271},[],[1273],{"type":47,"value":1274},"${VSS_APPS_DIR}\u002Fservices\u002Fauto-calibration\u002Fprojects\u002Fproject_\u003Cid>\u002Foutput\u002Fmulti_view_results\u002FBA_output\u002Fresults_ba_scaled_world\u002Foverlay_img_*.png",{"type":47,"value":1276}," (single-camera projects use ",{"type":41,"tag":89,"props":1278,"children":1280},{"className":1279},[],[1281],{"type":47,"value":1282},"output\u002Fsingle_view_results\u002Fcam_00\u002Fverification_map_overlay.png",{"type":47,"value":1284},").",{"type":41,"tag":151,"props":1286,"children":1287},{},[1288,1293,1294,1300],{"type":41,"tag":179,"props":1289,"children":1290},{},[1291],{"type":47,"value":1292},"Project files",{"type":47,"value":804},{"type":41,"tag":89,"props":1295,"children":1297},{"className":1296},[],[1298],{"type":47,"value":1299},"${VSS_APPS_DIR}\u002Fservices\u002Fauto-calibration\u002Fprojects\u002Fproject_\u003Cid>\u002F",{"type":47,"value":297},{"type":41,"tag":722,"props":1302,"children":1304},{"id":1303},"step-e-vggt-refinement",[1305],{"type":47,"value":1306},"Step E — VGGT Refinement",{"type":41,"tag":50,"props":1308,"children":1309},{},[1310,1312,1318],{"type":47,"value":1311},"After the AMC run completes, always check ",{"type":41,"tag":89,"props":1313,"children":1315},{"className":1314},[],[1316],{"type":47,"value":1317},"vggt_state",{"type":47,"value":1319}," in project info. VGGT model staging is optional during setup and must not block the AMC result, but post-AMC handling follows the state:",{"type":41,"tag":147,"props":1321,"children":1322},{},[1323,1336,1354],{"type":41,"tag":151,"props":1324,"children":1325},{},[1326,1328,1334],{"type":47,"value":1327},"If ",{"type":41,"tag":89,"props":1329,"children":1331},{"className":1330},[],[1332],{"type":47,"value":1333},"vggt_state == \"READY\"",{"type":47,"value":1335}," and the user explicitly requested VGGT refinement or staged VGGT during this setup flow, run VGGT refinement without asking again.",{"type":41,"tag":151,"props":1337,"children":1338},{},[1339,1340,1345,1347,1352],{"type":47,"value":1327},{"type":41,"tag":89,"props":1341,"children":1343},{"className":1342},[],[1344],{"type":47,"value":1333},{"type":47,"value":1346}," but VGGT was already staged before this request and the user has not asked for VGGT-refined output, ask via ",{"type":41,"tag":89,"props":1348,"children":1350},{"className":1349},[],[1351],{"type":47,"value":591},{"type":47,"value":1353}," whether to run refinement before starting it.",{"type":41,"tag":151,"props":1355,"children":1356},{},[1357,1359,1367],{"type":47,"value":1358},"If VGGT is not ready, skip refinement and mention that VGGT refinement is available after staging the model (see ",{"type":41,"tag":318,"props":1360,"children":1361},{"href":439},[1362],{"type":41,"tag":89,"props":1363,"children":1365},{"className":1364},[],[1366],{"type":47,"value":439},{"type":47,"value":1368}," Step 2).",{"type":41,"tag":729,"props":1370,"children":1373},{"className":1371,"code":1372,"language":47},[732],"POST \u002Fv1\u002Fvggt\u002Fcalibrate\u002F\u003Cproject_id>\nGET  \u002Fv1\u002Fget_project_info\u002F\u003Cproject_id>                    # poll vggt_state\nGET  \u002Fv1\u002Fvggt_results\u002F\u003Cproject_id>\u002Fevaluation_statistics  # VGGT metrics\n",[1374],{"type":41,"tag":89,"props":1375,"children":1376},{"__ignoreMap":737},[1377],{"type":47,"value":1372},{"type":41,"tag":42,"props":1379,"children":1381},{"id":1380},"settings-file-detector-pattern",[1382],{"type":47,"value":1383},"Settings File + Detector Pattern",{"type":41,"tag":50,"props":1385,"children":1386},{},[1387],{"type":47,"value":1388},"Optional across all three modes. When the user provides a JSON settings file (typically exported from UI Step 3 Download), POST it verbatim:",{"type":41,"tag":729,"props":1390,"children":1393},{"className":1391,"code":1392,"language":47},[732],"POST \u002Fv1\u002Fconfig\u002F\u003Cproject_id>\nContent-Type: application\u002Fjson\n\n\u003Cfile contents, posted as-is>\n",[1394],{"type":41,"tag":89,"props":1395,"children":1396},{"__ignoreMap":737},[1397],{"type":47,"value":1392},{"type":41,"tag":50,"props":1399,"children":1400},{},[1401,1403,1408,1410,1415,1416,1421,1423,1429,1430,1436,1438,1443,1445,1451],{"type":47,"value":1402},"The file replaces what the user would otherwise tune in UI Step 3 (rectification, bundle-adjustment, evaluation knobs, detector, …). After a successful POST, ",{"type":41,"tag":179,"props":1404,"children":1405},{},[1406],{"type":47,"value":1407},"also",{"type":47,"value":1409}," parse the file for ",{"type":41,"tag":89,"props":1411,"children":1413},{"className":1412},[],[1414],{"type":47,"value":900},{"type":47,"value":902},{"type":41,"tag":89,"props":1417,"children":1419},{"className":1418},[],[1420],{"type":47,"value":908},{"type":47,"value":1422}," — if it's ",{"type":41,"tag":89,"props":1424,"children":1426},{"className":1425},[],[1427],{"type":47,"value":1428},"\"resnet\"",{"type":47,"value":207},{"type":41,"tag":89,"props":1431,"children":1433},{"className":1432},[],[1434],{"type":47,"value":1435},"\"transformer\"",{"type":47,"value":1437},", use that value for the ",{"type":41,"tag":89,"props":1439,"children":1441},{"className":1440},[],[1442],{"type":47,"value":877},{"type":47,"value":1444}," call in Step B (detector is a separate API parameter, not consumed by ",{"type":41,"tag":89,"props":1446,"children":1448},{"className":1447},[],[1449],{"type":47,"value":1450},"\u002Fconfig",{"type":47,"value":1284},{"type":41,"tag":50,"props":1453,"children":1454},{},[1455],{"type":47,"value":1456},"Non-2xx is surfaced — do not silently fall back. Skip this call entirely if the user chose the UI-fallback path.",{"type":41,"tag":42,"props":1458,"children":1460},{"id":1459},"ui-fallback-pattern",[1461],{"type":47,"value":1462},"UI Fallback Pattern",{"type":41,"tag":50,"props":1464,"children":1465},{},[1466],{"type":47,"value":1467},"When alignment \u002F layout files aren't on disk, direct the user to the appropriate AMC UI step:",{"type":41,"tag":147,"props":1469,"children":1470},{},[1471,1530,1560],{"type":41,"tag":151,"props":1472,"children":1473},{},[1474,1479,1481,1487,1489,1494,1496,1501,1503,1508,1510,1515,1517,1522,1523,1528],{"type":41,"tag":179,"props":1475,"children":1476},{},[1477],{"type":47,"value":1478},"Settings missing",{"type":47,"value":1480}," → \"Open UI project ",{"type":41,"tag":89,"props":1482,"children":1484},{"className":1483},[],[1485],{"type":47,"value":1486},"\u003Cproject_id>",{"type":47,"value":1488},", go to ",{"type":41,"tag":179,"props":1490,"children":1491},{},[1492],{"type":47,"value":1493},"Step 3: Parameters",{"type":47,"value":1495},", tune via the settings dialog (or accept defaults), click Save.\" ",{"type":41,"tag":179,"props":1497,"children":1498},{},[1499],{"type":47,"value":1500},"Also",{"type":47,"value":1502},": before the ",{"type":41,"tag":89,"props":1504,"children":1506},{"className":1505},[],[1507],{"type":47,"value":877},{"type":47,"value":1509}," call, ask the user via ",{"type":41,"tag":89,"props":1511,"children":1513},{"className":1512},[],[1514],{"type":47,"value":591},{"type":47,"value":1516}," whether to use the ",{"type":41,"tag":89,"props":1518,"children":1520},{"className":1519},[],[1521],{"type":47,"value":810},{"type":47,"value":207},{"type":41,"tag":89,"props":1524,"children":1526},{"className":1525},[],[1527],{"type":47,"value":817},{"type":47,"value":1529}," detector — Step 3 doesn't cover detector choice.",{"type":41,"tag":151,"props":1531,"children":1532},{},[1533,1538,1539,1544,1545,1550,1552,1558],{"type":41,"tag":179,"props":1534,"children":1535},{},[1536],{"type":47,"value":1537},"Layout missing",{"type":47,"value":1480},{"type":41,"tag":89,"props":1540,"children":1542},{"className":1541},[],[1543],{"type":47,"value":1486},{"type":47,"value":1488},{"type":41,"tag":179,"props":1546,"children":1547},{},[1548],{"type":47,"value":1549},"Step 2: Video Configuration",{"type":47,"value":1551},", upload ",{"type":41,"tag":89,"props":1553,"children":1555},{"className":1554},[],[1556],{"type":47,"value":1557},"layout.png",{"type":47,"value":1559}," only (do NOT re-upload videos — they're already attached via API\u002FRTSP), click Save.\"",{"type":41,"tag":151,"props":1561,"children":1562},{},[1563,1568,1569,1574,1575,1580,1582,1588],{"type":41,"tag":179,"props":1564,"children":1565},{},[1566],{"type":47,"value":1567},"Alignment missing",{"type":47,"value":1480},{"type":41,"tag":89,"props":1570,"children":1572},{"className":1571},[],[1573],{"type":47,"value":1486},{"type":47,"value":1488},{"type":41,"tag":179,"props":1576,"children":1577},{},[1578],{"type":47,"value":1579},"Step 4: Alignment",{"type":47,"value":1581},", either upload ",{"type":41,"tag":89,"props":1583,"children":1585},{"className":1584},[],[1586],{"type":47,"value":1587},"alignment_data.json",{"type":47,"value":1589}," or mark correspondence points on the layout, click Save.\"",{"type":41,"tag":50,"props":1591,"children":1592},{},[1593],{"type":47,"value":1594},"Wait for user confirmation. For alignment\u002Flayout, verify on disk before continuing:",{"type":41,"tag":729,"props":1596,"children":1600},{"className":1597,"code":1598,"language":1599,"meta":737,"style":737},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","# Project state lives under $VSS_APPS_DIR\u002Fservices\u002Fauto-calibration\u002Fprojects\n# (the path bind-mounted into the MS container in\n#  deploy\u002Fdocker\u002Fservices\u002Fauto-calibration\u002Fms\u002Fcompose.yml).\nHOST_PROJECTS=\"${VSS_APPS_DIR}\u002Fservices\u002Fauto-calibration\u002Fprojects\"\n\nls \"$HOST_PROJECTS\u002Fproject_\u003Cproject_id>\u002Fmanual_adjustment\u002F\"\n# Expected: alignment_data.json, layout.png\n","bash",[1601],{"type":41,"tag":89,"props":1602,"children":1603},{"__ignoreMap":737},[1604,1616,1625,1634,1676,1686,1715],{"type":41,"tag":1605,"props":1606,"children":1609},"span",{"class":1607,"line":1608},"line",1,[1610],{"type":41,"tag":1605,"props":1611,"children":1613},{"style":1612},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[1614],{"type":47,"value":1615},"# Project state lives under $VSS_APPS_DIR\u002Fservices\u002Fauto-calibration\u002Fprojects\n",{"type":41,"tag":1605,"props":1617,"children":1619},{"class":1607,"line":1618},2,[1620],{"type":41,"tag":1605,"props":1621,"children":1622},{"style":1612},[1623],{"type":47,"value":1624},"# (the path bind-mounted into the MS container in\n",{"type":41,"tag":1605,"props":1626,"children":1628},{"class":1607,"line":1627},3,[1629],{"type":41,"tag":1605,"props":1630,"children":1631},{"style":1612},[1632],{"type":47,"value":1633},"#  deploy\u002Fdocker\u002Fservices\u002Fauto-calibration\u002Fms\u002Fcompose.yml).\n",{"type":41,"tag":1605,"props":1635,"children":1637},{"class":1607,"line":1636},4,[1638,1644,1650,1655,1660,1665,1671],{"type":41,"tag":1605,"props":1639,"children":1641},{"style":1640},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[1642],{"type":47,"value":1643},"HOST_PROJECTS",{"type":41,"tag":1605,"props":1645,"children":1647},{"style":1646},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[1648],{"type":47,"value":1649},"=",{"type":41,"tag":1605,"props":1651,"children":1652},{"style":1646},[1653],{"type":47,"value":1654},"\"${",{"type":41,"tag":1605,"props":1656,"children":1657},{"style":1640},[1658],{"type":47,"value":1659},"VSS_APPS_DIR",{"type":41,"tag":1605,"props":1661,"children":1662},{"style":1646},[1663],{"type":47,"value":1664},"}",{"type":41,"tag":1605,"props":1666,"children":1668},{"style":1667},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[1669],{"type":47,"value":1670},"\u002Fservices\u002Fauto-calibration\u002Fprojects",{"type":41,"tag":1605,"props":1672,"children":1673},{"style":1646},[1674],{"type":47,"value":1675},"\"\n",{"type":41,"tag":1605,"props":1677,"children":1679},{"class":1607,"line":1678},5,[1680],{"type":41,"tag":1605,"props":1681,"children":1683},{"emptyLinePlaceholder":1682},true,[1684],{"type":47,"value":1685},"\n",{"type":41,"tag":1605,"props":1687,"children":1689},{"class":1607,"line":1688},6,[1690,1696,1701,1706,1711],{"type":41,"tag":1605,"props":1691,"children":1693},{"style":1692},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[1694],{"type":47,"value":1695},"ls",{"type":41,"tag":1605,"props":1697,"children":1698},{"style":1646},[1699],{"type":47,"value":1700}," \"",{"type":41,"tag":1605,"props":1702,"children":1703},{"style":1640},[1704],{"type":47,"value":1705},"$HOST_PROJECTS",{"type":41,"tag":1605,"props":1707,"children":1708},{"style":1667},[1709],{"type":47,"value":1710},"\u002Fproject_\u003Cproject_id>\u002Fmanual_adjustment\u002F",{"type":41,"tag":1605,"props":1712,"children":1713},{"style":1646},[1714],{"type":47,"value":1675},{"type":41,"tag":1605,"props":1716,"children":1718},{"class":1607,"line":1717},7,[1719],{"type":41,"tag":1605,"props":1720,"children":1721},{"style":1612},[1722],{"type":47,"value":1723},"# Expected: alignment_data.json, layout.png\n",{"type":41,"tag":42,"props":1725,"children":1727},{"id":1726},"success-criteria",[1728],{"type":47,"value":1729},"Success Criteria",{"type":41,"tag":147,"props":1731,"children":1732},{},[1733,1744,1770,1789],{"type":41,"tag":151,"props":1734,"children":1735},{},[1736,1742],{"type":41,"tag":89,"props":1737,"children":1739},{"className":1738},[],[1740],{"type":47,"value":1741},"project_state == \"COMPLETED\"",{"type":47,"value":1743}," after polling.",{"type":41,"tag":151,"props":1745,"children":1746},{},[1747,1749,1755,1757,1762,1764,1769],{"type":47,"value":1748},"If manual alignment was used: ",{"type":41,"tag":89,"props":1750,"children":1752},{"className":1751},[],[1753],{"type":47,"value":1754},"${VSS_APPS_DIR}\u002Fservices\u002Fauto-calibration\u002Fprojects\u002Fproject_\u003Cid>\u002Fmanual_adjustment\u002F",{"type":47,"value":1756}," contains ",{"type":41,"tag":89,"props":1758,"children":1760},{"className":1759},[],[1761],{"type":47,"value":1587},{"type":47,"value":1763}," + ",{"type":41,"tag":89,"props":1765,"children":1767},{"className":1766},[],[1768],{"type":47,"value":1557},{"type":47,"value":297},{"type":41,"tag":151,"props":1771,"children":1772},{},[1773,1775,1780,1782,1787],{"type":47,"value":1774},"If GT was uploaded: evaluation returns typical thresholds (",{"type":41,"tag":89,"props":1776,"children":1778},{"className":1777},[],[1779],{"type":47,"value":1195},{"type":47,"value":1781}," \u003C 1.5, ",{"type":41,"tag":89,"props":1783,"children":1785},{"className":1784},[],[1786],{"type":47,"value":1203},{"type":47,"value":1788}," \u003C 5 for your data; \u003C 10 for the bundled sample).",{"type":41,"tag":151,"props":1790,"children":1791},{},[1792,1794,1799],{"type":47,"value":1793},"No ",{"type":41,"tag":89,"props":1795,"children":1797},{"className":1796},[],[1798],{"type":47,"value":1098},{"type":47,"value":1800}," state.",{"type":41,"tag":42,"props":1802,"children":1804},{"id":1803},"key-output-files",[1805],{"type":47,"value":1806},"Key Output Files",{"type":41,"tag":50,"props":1808,"children":1809},{},[1810,1812,1818],{"type":47,"value":1811},"Under ",{"type":41,"tag":89,"props":1813,"children":1815},{"className":1814},[],[1816],{"type":47,"value":1817},"${VSS_APPS_DIR}\u002Fservices\u002Fauto-calibration\u002Fprojects\u002Fproject_\u003Cproject_id>\u002F",{"type":47,"value":924},{"type":41,"tag":729,"props":1820,"children":1823},{"className":1821,"code":1822,"language":47},[732],"project_\u003Cproject_id>\u002F\n├── manual_adjustment\u002F\n│   ├── alignment_data.json\n│   └── layout.png\n├── output\u002F\n│   ├── single_view_results\u002Fcam_XX\u002F\n│   │   ├── camInfo_hyper_XX.yaml\n│   │   └── trajDump_Stream_0_3d.txt\n│   ├── multi_view_results\u002FBA_output\u002Fresults_ba\u002F\n│   │   ├── initial\u002FcamInfo_XX.yaml\n│   │   └── refined\u002FcamInfo_XX.yaml          # ← final calibration\n│   └── multi_view_results\u002FBA_output\u002Fresults_ba_scaled_world\u002F\n│       └── overlay_img_XX.png               # ← visual overlay for review\n└── calibration.log\n",[1824],{"type":41,"tag":89,"props":1825,"children":1826},{"__ignoreMap":737},[1827],{"type":47,"value":1822},{"type":41,"tag":42,"props":1829,"children":1831},{"id":1830},"cross-cutting-troubleshooting",[1832],{"type":47,"value":1833},"Cross-cutting Troubleshooting",{"type":41,"tag":50,"props":1835,"children":1836},{},[1837],{"type":47,"value":1838},"Mode-specific issues live in each reference's own troubleshooting table.",{"type":41,"tag":385,"props":1840,"children":1841},{},[1842,1858],{"type":41,"tag":389,"props":1843,"children":1844},{},[1845],{"type":41,"tag":393,"props":1846,"children":1847},{},[1848,1853],{"type":41,"tag":397,"props":1849,"children":1850},{},[1851],{"type":47,"value":1852},"Issue",{"type":41,"tag":397,"props":1854,"children":1855},{},[1856],{"type":47,"value":1857},"Fix",{"type":41,"tag":413,"props":1859,"children":1860},{},[1861,1884,1904,1936,1971,1992,2028,2057],{"type":41,"tag":393,"props":1862,"children":1863},{},[1864,1879],{"type":41,"tag":420,"props":1865,"children":1866},{},[1867,1872,1874],{"type":41,"tag":89,"props":1868,"children":1870},{"className":1869},[],[1871],{"type":47,"value":314},{"type":47,"value":1873}," state not ",{"type":41,"tag":89,"props":1875,"children":1877},{"className":1876},[],[1878],{"type":47,"value":758},{"type":41,"tag":420,"props":1880,"children":1881},{},[1882],{"type":47,"value":1883},"Confirm videos uploaded\u002Fingested and alignment + layout are present (either via API or via UI manual alignment). Mode-specific upload steps in the reference.",{"type":41,"tag":393,"props":1885,"children":1886},{},[1887,1892],{"type":41,"tag":420,"props":1888,"children":1889},{},[1890],{"type":47,"value":1891},"Manual alignment files missing after UI step",{"type":41,"tag":420,"props":1893,"children":1894},{},[1895,1897,1902],{"type":47,"value":1896},"User didn't click Save; also verify ",{"type":41,"tag":89,"props":1898,"children":1900},{"className":1899},[],[1901],{"type":47,"value":1754},{"type":47,"value":1903}," exists.",{"type":41,"tag":393,"props":1905,"children":1906},{},[1907,1919],{"type":41,"tag":420,"props":1908,"children":1909},{},[1910,1912,1917],{"type":47,"value":1911},"Calibration stuck ",{"type":41,"tag":89,"props":1913,"children":1915},{"className":1914},[],[1916],{"type":47,"value":1064},{"type":47,"value":1918}," > 90 min",{"type":41,"tag":420,"props":1920,"children":1921},{},[1922,1927,1929,1935],{"type":41,"tag":89,"props":1923,"children":1925},{"className":1924},[],[1926],{"type":47,"value":1109},{"type":47,"value":1928}," — usually insufficient tracklets (scene too static). See \"Custom Dataset\" guidelines in root ",{"type":41,"tag":89,"props":1930,"children":1932},{"className":1931},[],[1933],{"type":47,"value":1934},"README.md",{"type":47,"value":297},{"type":41,"tag":393,"props":1937,"children":1938},{},[1939,1951],{"type":41,"tag":420,"props":1940,"children":1941},{},[1942,1944,1949],{"type":47,"value":1943},"Immediate ",{"type":41,"tag":89,"props":1945,"children":1947},{"className":1946},[],[1948],{"type":47,"value":1098},{"type":47,"value":1950}," state",{"type":41,"tag":420,"props":1952,"children":1953},{},[1954,1956,1962,1963,1969],{"type":47,"value":1955},"Check video naming: must be ",{"type":41,"tag":89,"props":1957,"children":1959},{"className":1958},[],[1960],{"type":47,"value":1961},"cam_00.mp4",{"type":47,"value":73},{"type":41,"tag":89,"props":1964,"children":1966},{"className":1965},[],[1967],{"type":47,"value":1968},"cam_01.mp4",{"type":47,"value":1970},", … contiguous (videos mode) \u002F camera_name labels (RTSP mode).",{"type":41,"tag":393,"props":1972,"children":1973},{},[1974,1979],{"type":41,"tag":420,"props":1975,"children":1976},{},[1977],{"type":47,"value":1978},"Low L2 but high reprojection",{"type":41,"tag":420,"props":1980,"children":1981},{},[1982,1984,1990],{"type":47,"value":1983},"Provide explicit ",{"type":41,"tag":89,"props":1985,"children":1987},{"className":1986},[],[1988],{"type":47,"value":1989},"focal_length",{"type":47,"value":1991}," override during input upload (see videos \u002F rtsp references).",{"type":41,"tag":393,"props":1993,"children":1994},{},[1995,2013],{"type":41,"tag":420,"props":1996,"children":1997},{},[1998,2000,2006,2008],{"type":47,"value":1999},"VGGT ",{"type":41,"tag":89,"props":2001,"children":2003},{"className":2002},[],[2004],{"type":47,"value":2005},"INIT",{"type":47,"value":2007},", never ",{"type":41,"tag":89,"props":2009,"children":2011},{"className":2010},[],[2012],{"type":47,"value":758},{"type":41,"tag":420,"props":2014,"children":2015},{},[2016,2018,2026],{"type":47,"value":2017},"VGGT model not loaded — see ",{"type":41,"tag":318,"props":2019,"children":2020},{"href":439},[2021],{"type":41,"tag":89,"props":2022,"children":2024},{"className":2023},[],[2025],{"type":47,"value":439},{"type":47,"value":2027}," Step 2.",{"type":41,"tag":393,"props":2029,"children":2030},{},[2031,2036],{"type":41,"tag":420,"props":2032,"children":2033},{},[2034],{"type":47,"value":2035},"Upload timeout",{"type":41,"tag":420,"props":2037,"children":2038},{},[2039,2041,2047,2049,2055],{"type":47,"value":2040},"Large videos — bump ",{"type":41,"tag":89,"props":2042,"children":2044},{"className":2043},[],[2045],{"type":47,"value":2046},"timeout=300",{"type":47,"value":2048}," to e.g. ",{"type":41,"tag":89,"props":2050,"children":2052},{"className":2051},[],[2053],{"type":47,"value":2054},"600",{"type":47,"value":2056}," in the per-mode Python script.",{"type":41,"tag":393,"props":2058,"children":2059},{},[2060,2065],{"type":41,"tag":420,"props":2061,"children":2062},{},[2063],{"type":47,"value":2064},"Port scan finds no backend",{"type":41,"tag":420,"props":2066,"children":2067},{},[2068,2070,2078],{"type":47,"value":2069},"Backend not running — walk ",{"type":41,"tag":318,"props":2071,"children":2072},{"href":439},[2073],{"type":41,"tag":89,"props":2074,"children":2076},{"className":2075},[],[2077],{"type":47,"value":439},{"type":47,"value":616},{"type":41,"tag":42,"props":2080,"children":2082},{"id":2081},"for-downstream-skills-mv3dt-export",[2083],{"type":47,"value":2084},"For Downstream Skills — MV3DT Export",{"type":41,"tag":50,"props":2086,"children":2087},{},[2088,2090,2096],{"type":47,"value":2089},"Downstream consumers (e.g. a Multi-View 3D Tracking skill owned by another team) fetch the MV3DT-format calibration output directly from the microservice. This skill returns the ",{"type":41,"tag":89,"props":2091,"children":2093},{"className":2092},[],[2094],{"type":47,"value":2095},"project_id",{"type":47,"value":2097},"; the downstream skill calls:",{"type":41,"tag":729,"props":2099,"children":2102},{"className":2100,"code":2101,"language":47},[732],"GET \u002Fv1\u002Fresult\u002F{project_id}\u002Fmv3dt_result?result_type=amc\n# Response: application\u002Fzip — mv3dt_output.zip containing transforms.yml\n",[2103],{"type":41,"tag":89,"props":2104,"children":2105},{"__ignoreMap":737},[2106],{"type":47,"value":2101},{"type":41,"tag":50,"props":2108,"children":2109},{},[2110,2112,2117],{"type":47,"value":2111},"For VGGT-refined output (only available if VGGT ran to ",{"type":41,"tag":89,"props":2113,"children":2115},{"className":2114},[],[2116],{"type":47,"value":1081},{"type":47,"value":2118},", see Step E):",{"type":41,"tag":729,"props":2120,"children":2123},{"className":2121,"code":2122,"language":47},[732],"GET \u002Fv1\u002Fresult\u002F{project_id}\u002Fmv3dt_result?result_type=vggt\n# Response: application\u002Fzip — vggt_mv3dt_output.zip\n",[2124],{"type":41,"tag":89,"props":2125,"children":2126},{"__ignoreMap":737},[2127],{"type":47,"value":2122},{"type":41,"tag":50,"props":2129,"children":2130},{},[2131],{"type":47,"value":2132},"Downstream skill flow:",{"type":41,"tag":2134,"props":2135,"children":2136},"ol",{},[2137,2148,2160,2171],{"type":41,"tag":151,"props":2138,"children":2139},{},[2140,2142,2147],{"type":47,"value":2141},"Call this skill with the user's inputs; capture the printed ",{"type":41,"tag":89,"props":2143,"children":2145},{"className":2144},[],[2146],{"type":47,"value":2095},{"type":47,"value":297},{"type":41,"tag":151,"props":2149,"children":2150},{},[2151,2153,2158],{"type":47,"value":2152},"Wait for the skill to return (it polls until ",{"type":41,"tag":89,"props":2154,"children":2156},{"className":2155},[],[2157],{"type":47,"value":1081},{"type":47,"value":2159}," internally).",{"type":41,"tag":151,"props":2161,"children":2162},{},[2163,2169],{"type":41,"tag":89,"props":2164,"children":2166},{"className":2165},[],[2167],{"type":47,"value":2168},"GET \u002Fv1\u002Fresult\u002F{project_id}\u002Fmv3dt_result?result_type=amc",{"type":47,"value":2170}," — save the ZIP locally.",{"type":41,"tag":151,"props":2172,"children":2173},{},[2174,2176,2182],{"type":47,"value":2175},"If VGGT also ran, optionally fetch ",{"type":41,"tag":89,"props":2177,"children":2179},{"className":2178},[],[2180],{"type":47,"value":2181},"?result_type=vggt",{"type":47,"value":2183}," for the refined MV3DT.",{"type":41,"tag":42,"props":2185,"children":2187},{"id":2186},"related-skills",[2188],{"type":47,"value":2189},"Related Skills",{"type":41,"tag":147,"props":2191,"children":2192},{},[2193],{"type":41,"tag":151,"props":2194,"children":2195},{},[2196,2206,2208,2213],{"type":41,"tag":318,"props":2197,"children":2199},{"href":2198},"..\u002Fvss-manage-video-io-storage\u002FSKILL.md",[2200],{"type":41,"tag":89,"props":2201,"children":2203},{"className":2202},[],[2204],{"type":47,"value":2205},"vss-manage-video-io-storage",{"type":47,"value":2207}," — VIOS API skill; only the ",{"type":41,"tag":89,"props":2209,"children":2211},{"className":2210},[],[2212],{"type":47,"value":499},{"type":47,"value":2214}," calibration mode depends on VIOS being reachable.",{"type":41,"tag":50,"props":2216,"children":2217},{},[2218,2220,2225],{"type":47,"value":2219},"Root ",{"type":41,"tag":89,"props":2221,"children":2223},{"className":2222},[],[2224],{"type":47,"value":1934},{"type":47,"value":2226}," \"Custom Dataset\" and \"Calibration Workflow (UI)\" sections document input-video guidelines and the UI-driven alternative to this API flow.",{"type":41,"tag":50,"props":2228,"children":2229},{},[2230],{"type":47,"value":2231},"bump:1",{"type":41,"tag":2233,"props":2234,"children":2235},"style",{},[2236],{"type":47,"value":2237},"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":2239,"total":2339},[2240,2257,2271,2285,2297,2310,2325],{"slug":2241,"name":2241,"fn":2242,"description":2243,"org":2244,"tags":2245,"stars":20,"repoUrl":21,"updatedAt":2256},"accelerated-computing-cudf","accelerate data processing with cuDF","Official NVIDIA-authored guidance for NVIDIA cuDF GPU DataFrames, pandas acceleration, dask-cuDF, ETL, joins, groupby, CSV\u002FParquet I\u002FO, nullable semantics, and multi-GPU DataFrame workloads.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2246,2249,2252,2253],{"name":2247,"slug":2248,"type":15},"Data Analysis","data-analysis",{"name":2250,"slug":2251,"type":15},"Data Engineering","data-engineering",{"name":9,"slug":8,"type":15},{"name":2254,"slug":2255,"type":15},"Performance","performance","2026-07-14T05:28:43.176466",{"slug":2258,"name":2258,"fn":2259,"description":2260,"org":2261,"tags":2262,"stars":20,"repoUrl":21,"updatedAt":2270},"aiq-deploy","deploy and manage NVIDIA AI-Q infrastructure","Use when asked to install, deploy, run, validate, troubleshoot, or stop NVIDIA AI-Q Blueprint infrastructure.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2263,2266,2269],{"name":2264,"slug":2265,"type":15},"Deployment","deployment",{"name":2267,"slug":2268,"type":15},"Infrastructure","infrastructure",{"name":9,"slug":8,"type":15},"2026-07-14T05:29:06.667109",{"slug":2272,"name":2272,"fn":2273,"description":2274,"org":2275,"tags":2276,"stars":20,"repoUrl":21,"updatedAt":2284},"aiq-research","conduct deep research with AI-Q","Use when asked to run deep research or AI-Q research through a reachable NVIDIA AI-Q Blueprint backend.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2277,2280,2281],{"name":2278,"slug":2279,"type":15},"Agents","agents",{"name":9,"slug":8,"type":15},{"name":2282,"slug":2283,"type":15},"Research","research","2026-07-14T05:28:06.816956",{"slug":2286,"name":2286,"fn":2287,"description":2288,"org":2289,"tags":2290,"stars":20,"repoUrl":21,"updatedAt":2296},"amc-run-sample-calibration","run AMC sample dataset calibration","Run end-to-end calibration on the shipped sample dataset (sdg_08_2_sample_data_010926.zip) against a running AMC microservice. Use when user says 'test sample dataset', 'run sample calibration', 'verify AMC install', or 'launch and test'.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2291,2292,2293],{"name":2247,"slug":2248,"type":15},{"name":9,"slug":8,"type":15},{"name":2294,"slug":2295,"type":15},"Testing","testing","2026-07-17T05:29:03.913266",{"slug":2298,"name":2298,"fn":2299,"description":2300,"org":2301,"tags":2302,"stars":20,"repoUrl":21,"updatedAt":2309},"amc-run-video-calibration","calibrate video datasets with AutoMagicCalib","Calibrate a new dataset from pre-recorded video files via the AutoMagicCalib REST API. Use when user has local MP4s and says 'calibrate my videos', 'run AMC on these videos', or similar. For RTSP\u002Flive streams, use amc-run-rtsp-calibration instead.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2303,2304,2307,2308],{"name":13,"slug":14,"type":15},{"name":2305,"slug":2306,"type":15},"Imaging","imaging",{"name":9,"slug":8,"type":15},{"name":18,"slug":19,"type":15},"2026-07-17T05:28:53.905004",{"slug":2311,"name":2311,"fn":2312,"description":2313,"org":2314,"tags":2315,"stars":20,"repoUrl":21,"updatedAt":2324},"amc-setup-calibration-stack","deploy AutoMagicCalib microservice with Docker","Launch AutoMagicCalib microservice and web UI from NGC release images via Docker Compose. Use when user says 'deploy auto calibration', 'launch auto calibration', 'launch AMC', 'start MS+UI', or 'set up auto-magic-calib'. Requires NGC API key.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2316,2317,2320,2321],{"name":2264,"slug":2265,"type":15},{"name":2318,"slug":2319,"type":15},"Docker","docker",{"name":9,"slug":8,"type":15},{"name":2322,"slug":2323,"type":15},"Operations","operations","2026-07-17T05:28:56.913999",{"slug":2326,"name":2326,"fn":2327,"description":2328,"org":2329,"tags":2330,"stars":20,"repoUrl":21,"updatedAt":2338},"cudaq-guide","develop quantum applications with CUDA-Q","CUDA-Q onboarding guide for installation, test programs, GPU simulation, QPU hardware, and quantum applications.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2331,2332,2335],{"name":9,"slug":8,"type":15},{"name":2333,"slug":2334,"type":15},"Quantum Computing","quantum-computing",{"name":2336,"slug":2337,"type":15},"Simulation","simulation","2026-07-14T05:26:58.898253",305,{"items":2341,"total":2492},[2342,2360,2376,2387,2399,2413,2426,2440,2451,2460,2474,2483],{"slug":2343,"name":2343,"fn":2344,"description":2345,"org":2346,"tags":2347,"stars":2357,"repoUrl":2358,"updatedAt":2359},"nemoclaw-user-guide","retrieve NemoClaw documentation and configuration","Guides human users' AI agents to the NemoClaw docs MCP server and canonical Fern documentation in Markdown form. Use when users ask how to install, configure, operate, troubleshoot, secure, or learn NemoClaw with an AI coding assistant. Trigger keywords - nemoclaw docs, use nemoclaw with ai agent, nemoclaw mcp docs, nemoclaw install help, nemoclaw quickstart, nemoclaw markdown docs, llms.txt, agent skills.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2348,2351,2354],{"name":2349,"slug":2350,"type":15},"Documentation","documentation",{"name":2352,"slug":2353,"type":15},"MCP","mcp",{"name":2355,"slug":2356,"type":15},"Search","search",21777,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FNemoClaw","2026-07-20T06:00:01.461044",{"slug":2361,"name":2361,"fn":2362,"description":2363,"org":2364,"tags":2365,"stars":2373,"repoUrl":2374,"updatedAt":2375},"mcore-build-and-dependency","manage Megatron-LM development environments","Container-based dev environment setup and dependency management for Megatron-LM. Covers acquiring and launching the CI container, uv package management, and updating uv.lock.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2366,2369,2370],{"name":2367,"slug":2368,"type":15},"Containers","containers",{"name":2264,"slug":2265,"type":15},{"name":2371,"slug":2372,"type":15},"Python","python",17049,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FMegatron-LM","2026-07-27T06:06:11.249662",{"slug":2377,"name":2377,"fn":2378,"description":2379,"org":2380,"tags":2381,"stars":2373,"repoUrl":2374,"updatedAt":2386},"mcore-bump-base-image","update NVIDIA PyTorch base images","Bump the NVIDIA PyTorch base image (`nvcr.io\u002Fnvidia\u002Fpytorch:YY.MM-py3`) used by Megatron-LM CI. Covers the two pin sites (GitHub CI in `docker\u002F.ngc_version.dev` and GitLab CI in `.gitlab\u002Fstages\u002F01.build.yml`), the post-bump CI loop (re-run functional tests, refresh golden values, mark broken tests), and the gotchas that bit PRs",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2382,2385],{"name":2383,"slug":2384,"type":15},"CI\u002FCD","ci-cd",{"name":2264,"slug":2265,"type":15},"2026-07-14T05:25:59.97109",{"slug":2388,"name":2388,"fn":2389,"description":2390,"org":2391,"tags":2392,"stars":2373,"repoUrl":2374,"updatedAt":2398},"mcore-cicd","manage CI\u002FCD pipelines for Megatron-LM","CI\u002FCD reference for Megatron-LM. Covers CI pipeline structure, PR scope labels, triggering internal GitLab CI (which force-pushes the current branch to a pull-request\u002FBRANCH ref — always dry-run and verify the destination first; never run against shared or protected branches), and CI failure investigation.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2393,2394,2395],{"name":2383,"slug":2384,"type":15},{"name":2264,"slug":2265,"type":15},{"name":2396,"slug":2397,"type":15},"GitHub","github","2026-07-27T06:06:12.278222",{"slug":2400,"name":2400,"fn":2401,"description":2402,"org":2403,"tags":2404,"stars":2373,"repoUrl":2374,"updatedAt":2412},"mcore-create-issue","investigate CI failures and create issues","Investigate a failing GitHub Actions run or job and create a GitHub issue for the failure.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2405,2408,2409],{"name":2406,"slug":2407,"type":15},"Debugging","debugging",{"name":2396,"slug":2397,"type":15},{"name":2410,"slug":2411,"type":15},"Triage","triage","2026-07-14T05:25:57.442089",{"slug":2414,"name":2414,"fn":2415,"description":2416,"org":2417,"tags":2418,"stars":2373,"repoUrl":2374,"updatedAt":2425},"mcore-linting-and-formatting","lint and format Megatron-LM code","Linting and formatting for Megatron-LM. Covers running autoformat.sh, tools (ruff, black, isort, pylint, mypy), and code style rules.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2419,2422],{"name":2420,"slug":2421,"type":15},"Best Practices","best-practices",{"name":2423,"slug":2424,"type":15},"Code Analysis","code-analysis","2026-07-14T05:25:56.18433",{"slug":2427,"name":2427,"fn":2428,"description":2429,"org":2430,"tags":2431,"stars":2373,"repoUrl":2374,"updatedAt":2439},"mcore-migrate-gpt-to-hybrid","migrate Megatron-LM models to HybridModel","Migration guide for moving Megatron Core GPTModel checkpoints, model providers, training commands, and layer mappings to HybridModel.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2432,2435,2438],{"name":2433,"slug":2434,"type":15},"Machine Learning","machine-learning",{"name":2436,"slug":2437,"type":15},"Migration","migration",{"name":9,"slug":8,"type":15},"2026-07-17T06:07:11.777011",{"slug":2441,"name":2441,"fn":2442,"description":2443,"org":2444,"tags":2445,"stars":2373,"repoUrl":2374,"updatedAt":2450},"mcore-onboard-gb200-1node-tests","onboard functional tests for GB200","Onboard 1-node GitHub MR functional tests for GB200 from existing mr-scoped 2-node tests.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2446,2449],{"name":2447,"slug":2448,"type":15},"QA","qa",{"name":2294,"slug":2295,"type":15},"2026-07-14T05:25:53.673039",{"slug":2452,"name":2452,"fn":2453,"description":2454,"org":2455,"tags":2456,"stars":2373,"repoUrl":2374,"updatedAt":2459},"mcore-run-on-slurm","launch distributed training jobs on SLURM","How to launch distributed Megatron-LM training jobs on a SLURM cluster. Covers a minimal sbatch skeleton, environment-variable setup for torch.distributed.run, CUDA_DEVICE_MAX_CONNECTIONS rules across hardware and parallelism modes, container conventions, monitoring, and per-rank failure diagnosis.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2457,2458],{"name":2264,"slug":2265,"type":15},{"name":2267,"slug":2268,"type":15},"2026-07-14T05:25:49.362534",{"slug":2461,"name":2461,"fn":2462,"description":2463,"org":2464,"tags":2465,"stars":2373,"repoUrl":2374,"updatedAt":2473},"mcore-split-pr","split pull requests to reduce review load","Split a PR into multiple PRs to reduce the number of required CODEOWNERS reviewer groups.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2466,2469,2470],{"name":2467,"slug":2468,"type":15},"Code Review","code-review",{"name":2396,"slug":2397,"type":15},{"name":2471,"slug":2472,"type":15},"Pull Requests","pull-requests","2026-07-14T05:26:01.226578",{"slug":2475,"name":2475,"fn":2476,"description":2477,"org":2478,"tags":2479,"stars":2373,"repoUrl":2374,"updatedAt":2482},"mcore-testing","run and manage Megatron-LM tests","Test system for Megatron-LM. Covers test layout, recipe YAML structure, adding and running unit and functional tests, golden values, marker filters, and CI parity.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2480,2481],{"name":2447,"slug":2448,"type":15},{"name":2294,"slug":2295,"type":15},"2026-07-14T05:25:54.928983",{"slug":2484,"name":2484,"fn":2485,"description":2486,"org":2487,"tags":2488,"stars":2373,"repoUrl":2374,"updatedAt":2491},"nightly-sync","manage nightly main-to-dev sync workflows","Domain knowledge for the nightly main-to-dev sync workflow. Covers merge strategy, CI architecture, failure investigation, and known issues.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2489,2490],{"name":13,"slug":14,"type":15},{"name":2383,"slug":2384,"type":15},"2026-07-30T05:29:03.275638",496]