[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71QBFAYN9K6EWW8CT037C1V":3,"skill-same:01M71QBFAYN9K6EWW8CT037C1V":134},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":26,"publishedAt":47,"linkOnly":48,"markdownContent":49,"markdownBody":50,"frontMatter":51,"refName":57,"commitSha":58,"skillDirectory":59,"forksCount":14,"repositoryHtmlUrl":60,"repositoryHomepageUrl":61,"ownerHtmlUrl":62,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":63,"install":64,"resources":77},"01M71QBFAYN9K6EWW8CT037C1V","vss-deploy-detection-tracking-3d",null,"Deploy and operate the RTVI-CV-3D microservice as MV3DT (`MODE=mv3dt`): per-camera DeepStream perception plus BEV Fusion over calibrated cameras. Supports the bundled sample dataset, custom video files, and RTSP streams, and chains to `vss-generate-video-calibration` when calibration is missing. Use `vss-deploy-profile` for the full warehouse blueprint and `vss-deploy-detection-tracking-2d` for single-camera 2D detection.","pattanation\u002FNorvik","pattanation","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F235419268?v=4","01M71M5THHYYB15ME8R2E4FCZG","Patta","01M71M5TJM1NDM992M8PDKYR2K",0,"Apache-2.0","https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fvss-deploy-detection-tracking-3d\u002FSKILL.md",[18,23],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000011","运维与部署","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000016","图像与多媒体",[27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],"3D","detection","deploy","tracking","vss deploy detection tracking 3d","full","calibration","perception","generate","sample","dataset","when","Blueprint","fusion","files","streams","mode","search","operate","Video","2026-11-10 13:02:02",false,"---\nname: vss-deploy-detection-tracking-3d\ndescription: >\n  Deploy and operate the RTVI-CV-3D microservice as MV3DT (`MODE=mv3dt`):\n  per-camera DeepStream perception plus BEV Fusion over calibrated cameras.\n  Supports the bundled sample dataset, custom video files, and RTSP streams,\n  and chains to `vss-generate-video-calibration` when calibration is missing.\n  Use `vss-deploy-profile` for the full warehouse blueprint and\n  `vss-deploy-detection-tracking-2d` for single-camera 2D detection.\nlicense: Apache-2.0\nmetadata:\n  version: \"3.2.0\"\n  github-url: \"https:\u002F\u002Fgithub.com\u002FNVIDIA-AI-Blueprints\u002Fvideo-search-and-summarization\"\n  tags: \"nvidia blueprint rtvi-cv-3d mv3dt detection tracking 3d warehouse\"\n---\n\n## Purpose\n\nDeploy and operate the RTVI-CV-3D microservice as MV3DT (`MODE=mv3dt`) — per-camera DeepStream perception plus BEV Fusion over multiple calibrated cameras — on the bundled sample dataset, custom videos, or live RTSP, without the full warehouse agent \u002F LLM \u002F VLM stack.\n\n## Instructions\n\nWork top-to-bottom: answer the routing questions (Q0–Q3) under [Routing](#routing), then follow the reference for the chosen path. Detailed step-by-step procedures live in `references\u002F` (deploy, calibration chain, camera configuration, verification, teardown, troubleshooting).\n\n## Examples\n\n- Enable multi-camera tracking on the sample dataset.\n- Deploy RTVI-CV-3D on my videos here: `\u003Cpath\u002Fto\u002Fvideos>`.\n- Run MV3DT on RTSP streams after calibration.\n\n# VSS Deploy Detection & Tracking — 3D (RTVI-CV-3D \u002F MV3DT)\n\nBring up the RTVI-CV-3D microservice as the MV3DT stack (`MODE=mv3dt`) from the warehouse blueprint: per-camera DeepStream perception (`vss-rtvi-cv-mv3dt`) + BEV Fusion (`vss-rtvi-cv-bev-fusion`) + mosquitto MQTT bus + broker + VST sensor stack — without the agent \u002F LLM \u002F VLM stack that comes with the full warehouse blueprint.\n\nThe actual compose machinery lives in `deploy\u002Fdocker\u002Findustry-profiles\u002Fwarehouse-operations\u002Fwarehouse-mv3dt-app\u002F`. This skill drives the env overrides, calibration chain, and verification.\n\n## Routing\n\nAsk the user **at most four questions**, then dispatch.\n\n### Q0 — Profile size (overlays or not)\n\nDefault to **extended** unless the user explicitly asks for minimal. Extended deploys ELK + `vss-video-analytics-api-mv3dt` + `vss-kibana-init-mv3dt` + `vss-import-calibration-output-mv3dt` on top of MV3DT core — these are what the VST video wall needs to render bounding-box overlays. Without them, the video wall works but shows raw streams without overlays.\n\n| User answer | `MINIMAL_PROFILE` | What you get | When to choose |\n|---|---|---|---|\n| **extended** (default) | `\"\"` | MV3DT core + ELK + analytics API + Kibana. **Overlays work in VST video wall.** Recommended for a complete e2e experience. | \"I want the full e2e experience\", \"I want to see bounding boxes\", or no preference stated |\n| **minimal** | `\"true\"` | MV3DT core only. ~5 fewer containers. **No overlays in VST.** Metadata still on Kafka\u002FRedis. | \"I only need the data\", \"edge \u002F Thor host\", \"minimum footprint\" |\n\n> **Note on selective ELK:** there's no \"minimal + ELK only\" middle path in the current compose. Every `${MINIMAL_PROFILE:+_extended}`-gated service comes up together (ES, Logstash, Kibana, video-analytics-api, kibana-init, import-calibration). `bash`'s `:+` parameter expansion produces the `_extended` suffix when `MINIMAL_PROFILE` is set; extended switches the gating string back to plain `bp_wh_kafka_mv3dt` which the active compose profile already matches. Either you accept the full extended bundle or you stay minimal.\n\n### Q1 — Data source\n\nAsk this unless the source is explicit in the user's first message. A bare request\nlike \"deploy rtvi-cv-3d\" routes to this MV3DT skill (`MODE=mv3dt`), but does\n**not** imply `sample`.\n\n- **sample** — the bundled 4-camera synthetic dataset (`warehouse-4cams-20mx20m-synthetic`). Calibration ships in-tree; no AMC run needed.\n- **videos** — the user has local video files (any `*.mp4` named after their cameras). Standalone AMC (`auto_calib` profile) will run if calibration is missing.\n- **rtsp** — the user has live RTSP URLs. Calibration via VIOS-driven AMC; final deploy also needs a Sensor Info File (`camera_info.json`) with those RTSP URLs.\n\n### Q2 — Calibration coverage (skip for `sample`)\n\nFor `videos` and `rtsp`, check whether calibration is already on disk at the mount path the perception container expects:\n\n```bash\nDATASET=\"${SAMPLE_VIDEO_DATASET:?}\"          # the user's dataset slug; see Q3\nCAL_DIR=\"${VSS_APPS_DIR}\u002Findustry-profiles\u002Fwarehouse-operations\u002Fwarehouse-mv3dt-app\u002Fcalibration\u002Fsample-data\u002F${DATASET}\"\n\n# Look for ANY of: calibration.json, plus camInfo\u002F*.yml or *.yaml with either\n# 'cam_*' or 'Camera*' naming (the shipped sample uses Camera*.yml, AMC may\n# produce cam_*.yaml — broaden accordingly)\ntest -f \"${CAL_DIR}\u002Fcalibration.json\" \\\n  && ls \"${CAL_DIR}\u002FcamInfo\u002F\"*.{yml,yaml} 2>\u002Fdev\u002Fnull\n```\n\nIf the user supplied a calibration path themselves, validate that path instead — don't recompute. See `configure-cameras.md` for camera-name normalization and authoritative camera-count discovery (parses `calibration.json`).\n\n### Q3 — Detector + dataset slug (only when Q2 triggers AMC)\n\n- `resnet` (default, fast) or `transformer` (slower, better under occlusion) — passed to the AMC `\u002Fv1\u002Fcalibrate\u002F\u003Cid>` API at Step B (see `vss-generate-video-calibration\u002FSKILL.md:48-62`).\n- A short kebab-case dataset slug used as `SAMPLE_VIDEO_DATASET` (e.g. `customer-aisle-4cams`). This drives the calibration mount path and gets persisted in `.env`.\n\n### Routing table\n\n| Q1 | Q2 result | Path |\n|---|---|---|\n| `sample` | (cal ships in-tree and already normalized) | [`references\u002Fdeploy-rtvi-cv-3d-stack.md`](references\u002Fdeploy-rtvi-cv-3d-stack.md) directly |\n| `videos` | cal present | [`references\u002Fconfigure-cameras.md`](references\u002Fconfigure-cameras.md) → [`references\u002Fdeploy-rtvi-cv-3d-stack.md`](references\u002Fdeploy-rtvi-cv-3d-stack.md) |\n| `videos` | cal missing | [`references\u002Fcalibration-workflow.md`](references\u002Fcalibration-workflow.md) (videos mode) → [`references\u002Fconfigure-cameras.md`](references\u002Fconfigure-cameras.md) → [`references\u002Fdeploy-rtvi-cv-3d-stack.md`](references\u002Fdeploy-rtvi-cv-3d-stack.md) |\n| `rtsp` | cal present | [`references\u002Fconfigure-cameras.md`](references\u002Fconfigure-cameras.md) → [`references\u002Fdeploy-rtvi-cv-3d-stack.md`](references\u002Fdeploy-rtvi-cv-3d-stack.md) |\n| `rtsp` | cal missing | [`references\u002Fcalibration-workflow.md`](references\u002Fcalibration-workflow.md) (rtsp mode) → [`references\u002Fconfigure-cameras.md`](references\u002Fconfigure-cameras.md) → [`references\u002Fdeploy-rtvi-cv-3d-stack.md`](references\u002Fdeploy-rtvi-cv-3d-stack.md) |\n\nEvery path converges on [`references\u002Fverify-and-view.md`](references\u002Fverify-and-view.md) once `up -d` completes. [`references\u002Ftroubleshooting.md`](references\u002Ftroubleshooting.md) and [`references\u002Fteardown.md`](references\u002Fteardown.md) are linked but off the happy path.\n\n**Disambiguation rule.** In this skill, \"RTVI-CV-3D\" means the MV3DT microservice deployment and uses `MODE=mv3dt`. Route to [`..\u002Fvss-deploy-profile\u002Freferences\u002Fwarehouse.md`](..\u002Fvss-deploy-profile\u002Freferences\u002Fwarehouse.md) only when the user asks for the full warehouse blueprint, Sparse4D, `MODE=3d`, or `warehouse-3d-app`. This skill is for **MV3DT only** without the agent stack \u002F LLM \u002F VLM.\n\n## Prerequisites\n\n### 1. Repo path\n\nLocate `video-search-and-summarization\u002F` on disk. All compose commands run from `\u003Crepo>\u002Fdeploy\u002Fdocker\u002F`. If unknown, ask the user.\n\n### 2. NGC CLI + key\n\n`$NGC_CLI_API_KEY` must be set and must have access to `nvidia\u002Fvss-core\u002F*` images. See `vss-deploy-profile\u002Freferences\u002Fngc.md` for setup if missing.\n\nIf the user previously ran `ngc config set` but `$NGC_CLI_API_KEY` isn't exported in this shell, the key is already on disk:\n\n```bash\nNGC_CLI_API_KEY=$(awk -F'= ' '\u002F^apikey\u002F{print $2}' ~\u002F.ngc\u002Fconfig 2>\u002Fdev\u002Fnull)\ntest -n \"${NGC_CLI_API_KEY}\" && echo \"key sourced from ~\u002F.ngc\u002Fconfig\"\n```\n\nMake sure the key value also lands in `industry-profiles\u002Fwarehouse-operations\u002F.env:164` (`NGC_CLI_API_KEY=...`) — compose only reads it from there at `up` time, not from your shell env.\n\n### 3. `HARDWARE_PROFILE` slug\n\n> The public MV3DT supported stream counts are listed in the Warehouse Quickstart Guide under \"MV3DT Vision AI Profile Supported Deployment Options.\" Use the matching `HARDWARE_PROFILE` slug below.\n\nPick from `nvidia-smi --query-gpu=name --format=csv,noheader`:\n\n| GPU name | `HARDWARE_PROFILE` | MV3DT supported streams |\n|---|---|---|\n| RTX PRO 6000 Blackwell | `RTXPRO6000BW` | 18 |\n| H100 (NVL, SXM HBM3) | `H100` | 13 |\n| L40S | `L40S` | 7 |\n| IGX Thor | `IGX-THOR` | 4 |\n| DGX Spark | `DGX-SPARK` | 4 |\n\nIf the user's GPU is not listed here, check `industry-profiles\u002Fwarehouse-operations\u002F.env` for available `HARDWARE_PROFILE` values, then confirm the matching profile exists in `blueprint-configurator\u002Fblueprint_config.yml` before using it. Do not infer a stream count from the slug alone.\n\n**The per-GPU MV3DT cap is enforced at deploy time.** `vss-configurator-mv3dt` computes `final_stream_count = min(NUM_STREAMS, max_streams_supported)` and applies a `keep_count` file-management op against `${VSS_DATA_DIR}\u002Fvideos\u002F${SAMPLE_VIDEO_DATASET}\u002F` so only `final_stream_count` `.mp4` files remain (sorted lexicographically, last N kept). If your GPU's MV3DT supported stream count (above table) is below your camera count, perception \u002F `mdx-raw` \u002F `mdx-bev` run with the supported stream count. Either pick a GPU with a higher supported stream count or surface the cap explicitly to the user so they're aware which streams will be processed.\n\n### 4. App data on disk\n\n`VSS_DATA_DIR` must point at the **extracted `vss-warehouse-app-data` directory** (separate from the repo). Pointing it at the repo's `deploy\u002Fdocker\u002F` causes the deploy to stall: the configurator can't find the dataset, redis can't open its log file, and perception stays in `Created`. Verify the path before deploy.\n\nPre-flight check before deploy:\n\n```bash\nDATA_DIR=\"${VSS_DATA_DIR:?VSS_DATA_DIR not set in .env}\"\nDATASET=\"${SAMPLE_VIDEO_DATASET:-warehouse-4cams-20mx20m-synthetic}\"\n\nfor sub in videos models data_log; do\n  test -d \"${DATA_DIR}\u002F${sub}\" || { echo \"ERROR: ${DATA_DIR}\u002F${sub} missing\"; exit 1; }\ndone\n\n# For sample \u002F videos modes — videos directory must exist\ntest -d \"${DATA_DIR}\u002Fvideos\u002F${DATASET}\" \\\n  || { echo \"ERROR: ${DATA_DIR}\u002Fvideos\u002F${DATASET} missing — wrong slug or app-data not extracted\"; exit 1; }\n\n# Sanity: video count should match calibration count.\n# Some published app-data tarballs are known to ship the sample dataset with\n# fewer videos than the dataset name implies — verify and source any missing\n# cams separately if your GPU's mv3dt cap is high enough to use them all.\nls \"${DATA_DIR}\u002Fvideos\u002F${DATASET}\u002F\"*.mp4 2>\u002Fdev\u002Fnull | wc -l\n\n# Ensure every per-service subdir under data_log\u002F exists. kafka \u002F elasticsearch \u002F\n# redis \u002F postgres and the video-analytics API upload path (`\u002Fweb-api-app\u002Ffiles`)\n# run as non-root UIDs against these bind mounts. Without write access the daemons\n# or calibration\u002Fimage import can fail with permission errors.\nmkdir -p \\\n  \"${DATA_DIR}\u002Fdata_log\u002Fanalytics_cache\" \\\n  \"${DATA_DIR}\u002Fdata_log\u002Fcalibration_toolkit\" \\\n  \"${DATA_DIR}\u002Fdata_log\u002Felastic\u002Fdata\" \\\n  \"${DATA_DIR}\u002Fdata_log\u002Felastic\u002Flogs\" \\\n  \"${DATA_DIR}\u002Fdata_log\u002Fkafka\" \\\n  \"${DATA_DIR}\u002Fdata_log\u002Fredis\u002Fdata\" \\\n  \"${DATA_DIR}\u002Fdata_log\u002Fredis\u002Flog\" \\\n  \"${DATA_DIR}\u002Fdata_log\u002Fvss_video_analytics_api\"\n\n# Grant write access to the specific container UIDs only — scoped ACLs, NOT 777 and\n# NOT chown. UIDs (per data-directory.md): postgres=70, redis=999, elasticsearch \u002F VST \u002F\n# kafka=1000. The first call covers existing files; the second sets *default* ACLs so\n# files\u002Fdirs the daemons create at runtime (e.g. postgres PGDATA) inherit the access.\nACL='u:70:rwx,u:999:rwx,u:1000:rwx'\nsetfacl -R    -m \"$ACL\" \"${DATA_DIR}\u002Fdata_log\"\nsetfacl -R -d -m \"$ACL\" \"${DATA_DIR}\u002Fdata_log\"\n```\n\n> **Scoped ACLs, not `chmod 777`.** This grants only the known container UIDs access — it does\n> **not** make `data_log` world-writable, and it does **not** `chown` (which would break postgres \u002F\n> Elasticsearch, since they re-own their dirs on first start). Prefer this for agent-driven runs and\n> shared hosts. The canonical [`..\u002Fvss-deploy-profile\u002Freferences\u002Fdata-directory.md`](..\u002Fvss-deploy-profile\u002Freferences\u002Fdata-directory.md)\n> documents the broad `chmod -R 777` and the per-container UID table; this skill uses the scoped-ACL\n> equivalent instead. **Ask the user for confirmation before changing host permissions.**\n>\n> Requires a POSIX-ACL filesystem (ext4 \u002F xfs — the default) and the `acl` package (`setfacl`). If a\n> daemon still logs a permission error after deploy, find its UID\n> (`docker inspect \u003Ccontainer> --format '{{.Config.User}}'`) and add `-m u:\u003Cuid>:rwx` to both calls.\n\nIf app-data isn't extracted yet: download via `ngc registry resource download-version \"nvidia\u002Fvss-warehouse\u002Fvss-warehouse-app-data:\u003Cversion>\"` and `tar -xvf` (see [`references\u002Fdeploy-rtvi-cv-3d-stack.md`](references\u002Fdeploy-rtvi-cv-3d-stack.md) for tag discovery and full steps).\n\n### 5. Pre-flight (system)\n\n`nvidia-smi`, NVIDIA Docker runtime visible (`docker info | grep -i runtimes`), and `docker run --rm --gpus all ubuntu:24.04 nvidia-smi` all green. Full driver \u002F kernel \u002F sysctl checks live in `vss-deploy-profile\u002Freferences\u002Fprerequisites.md`.\n\nIf any check fails, fix before continuing — don't proceed to deploy.\n\n### 6. Browser reachability (cloud \u002F corp-VPN hosts only)\n\nIf the user will view the VST video wall through a browser on a different network than the deploy host (cloud VM, corp VPN, ssh-tunnelled session), upstream firewall rules may block VST WebRTC (STUN to `stun.l.google.com:19302`, plus random UDP for media). See [`references\u002Fverify-and-view.md#browser-reachability`](references\u002Fverify-and-view.md) for symptoms and workarounds. Also: some hosts block the AMC microservice's default port (TCP\u002F8010); if the user reports the AMC UI on `:5000` works but its data calls fail, retry with a different `VSS_AUTO_CALIBRATION_PORT`.\n\n## Troubleshooting\n\nWhen any deploy, calibration, or verification step fails, stop and classify the failure before retrying. The quick checks below cover the most common MV3DT errors; use [`references\u002Ftroubleshooting.md`](references\u002Ftroubleshooting.md) for full diagnostic commands and fixes, [`..\u002Fvss-generate-video-calibration\u002FSKILL.md`](..\u002Fvss-generate-video-calibration\u002FSKILL.md) for AMC workflow failures, and [`..\u002Fvss-deploy-profile\u002Freferences\u002Fwarehouse-debug.md`](..\u002Fvss-deploy-profile\u002Freferences\u002Fwarehouse-debug.md) for broader warehouse-stack issues.\n\n| Symptom | Likely cause | First check or fix |\n|---|---|---|\n| `vss-rtvi-cv-bev-fusion` is unhealthy or `\u002Ftmp\u002Ffusion_ready` is missing | Broker not ready, `MAX_EXPECTED_SENSORS` mismatch, or `STREAM_TYPE` mismatch | Check `broker-health-check`, `docker inspect --format '{{.State.Health.Status}}' vss-rtvi-cv-bev-fusion`, and `mdx-raw` \u002F `mdx-bev`; then re-run [`references\u002Fconfigure-cameras.md`](references\u002Fconfigure-cameras.md) if stream counts differ |\n| Perception shows `Active sources : 0`, no FPS, or fewer cameras than expected | Stale VST sensor state, wrong dataset slug, missing calibration, or per-GPU stream cap | Verify `SAMPLE_VIDEO_DATASET`, `NUM_STREAMS`, `camInfo\u002F`, and the VST sensor list; if old sensors remain, follow [`references\u002Fteardown.md`](references\u002Fteardown.md) before redeploying |\n| `vss-rtvi-cv-mv3dt` exits with `MqttCommunicator` \"invalid node\" or tracker submit failures | Camera names in videos, `calibration.json`, and `camInfo\u002F` do not match the `Camera`, `Camera_01`, ... convention | Normalize all camera names together with [`references\u002Fconfigure-cameras.md`](references\u002Fconfigure-cameras.md) Step 0, then clear stale VST state and redeploy |\n| AMC project creation, upload, calibration, or MV3DT export fails | AutoMagicCalib service\u002FAPI issue outside this MV3DT deploy path | Use [`..\u002Fvss-generate-video-calibration\u002FSKILL.md`](..\u002Fvss-generate-video-calibration\u002FSKILL.md) to deploy\u002Fdebug AMC, then return to [`references\u002Fcalibration-workflow.md`](references\u002Fcalibration-workflow.md) after export succeeds |\n| `vss-behavior-analytics-mv3dt` restarts with calibration schema validation errors | AMC export has empty `group`, `region`, or `place` fields | Apply the placeholder patch in [`references\u002Fcalibration-workflow.md`](references\u002Fcalibration-workflow.md) Step 4a, or populate those fields in AMC before export |\n| Extended profile has no overlays and `vss-import-calibration-output-mv3dt` logs `imageMetadata.json not found` | AMC MV3DT export did not produce `images\u002FTop.png` and `images\u002FimageMetadata.json` | Synthesize both files with [`references\u002Fcalibration-workflow.md`](references\u002Fcalibration-workflow.md) Step 4b, then restart the one-shot importer |\n| Image pulls, model load, or first-start engine build fail | Missing \u002F expired `NGC_CLI_API_KEY`, incorrect `VSS_DATA_DIR`, missing BodyPose3DNet files, or GPU OOM | Re-check NGC auth, confirm `${VSS_DATA_DIR}\u002Fmodels\u002Fmv3dt\u002FBodyPose3DNet\u002F`, tail `vss-rtvi-cv-mv3dt` logs, and free or change `RT_CV_DEVICE_ID` if the GPU is exhausted |\n\nBefore destructive recovery (`docker compose down -v`, clearing `data_log`, deleting VST sensor state, or changing host ACLs), explain the impact and get user confirmation. Capture the failing command, relevant `.env` values, `docker compose ps`, and the last container logs before making state-reset changes.\n\n## How it fits together\n\n```\nSKILL.md (this file — Q0\u002FQ1\u002FQ2\u002FQ3 routing)\n  └─ if cal missing ─> calibration-workflow.md\n  │                     └─ chains to vss-generate-video-calibration (deploy + drive API)\n  │                     └─ fetches \u002Fv1\u002Fresult\u002F{project_id}\u002Fmv3dt_result?result_type=amc (plus vggt when refinement is enabled)\n  │                     └─ lands calibration files at warehouse-mv3dt-app\u002Fcalibration\u002Fsample-data\u002F\u003Cslug>\u002F\n  ├─> configure-cameras.md (camera-name normalization, NUM_STREAMS sync, VST sensor trim)\n  └─> deploy-rtvi-cv-3d-stack.md (compose up with bp_wh_kafka_mv3dt + extended\u002Fminimal)\n        └─> verify-and-view.md (FPS, fusion_ready, mdx-bev, VST video wall + WebRTC checks)\n```\n\n## Related Skills\n\n- [`vss-generate-video-calibration`](..\u002Fvss-generate-video-calibration\u002FSKILL.md) — the AMC skill. Owns AMC deployment, RTSP capture, calibration API, and the `\u002Fv1\u002Fresult\u002F...\u002Fmv3dt_result` export hook this skill consumes. `calibration-workflow.md` chains into it.\n- [`vss-deploy-profile`](..\u002Fvss-deploy-profile\u002FSKILL.md) — cross-profile umbrella. Use that instead when the user wants the **full warehouse blueprint** (with agents \u002F LLM \u002F VLM), not just MV3DT.\n- [`vss-manage-video-io-storage`](..\u002Fvss-manage-video-io-storage\u002FSKILL.md) — VIOS \u002F VST API skill. Useful for the VST video wall (overlay viz) and for sensor management referenced in `configure-cameras.md`.\n\nThe repo's authoritative warehouse-blueprint reference at [`..\u002Fvss-deploy-profile\u002Freferences\u002Fwarehouse.md`](..\u002Fvss-deploy-profile\u002Freferences\u002Fwarehouse.md) covers 2D \u002F 3D \u002F MV3DT inside the full warehouse stack — this skill is the **MV3DT-only** companion that trims the agent \u002F LLM \u002F VLM layer.\n","## Purpose\n\nDeploy and operate the RTVI-CV-3D microservice as MV3DT (`MODE=mv3dt`) — per-camera DeepStream perception plus BEV Fusion over multiple calibrated cameras — on the bundled sample dataset, custom videos, or live RTSP, without the full warehouse agent \u002F LLM \u002F VLM stack.\n\n## Instructions\n\nWork top-to-bottom: answer the routing questions (Q0–Q3) under [Routing](#routing), then follow the reference for the chosen path. Detailed step-by-step procedures live in `references\u002F` (deploy, calibration chain, camera configuration, verification, teardown, troubleshooting).\n\n## Examples\n\n- Enable multi-camera tracking on the sample dataset.\n- Deploy RTVI-CV-3D on my videos here: `\u003Cpath\u002Fto\u002Fvideos>`.\n- Run MV3DT on RTSP streams after calibration.\n\n# VSS Deploy Detection & Tracking — 3D (RTVI-CV-3D \u002F MV3DT)\n\nBring up the RTVI-CV-3D microservice as the MV3DT stack (`MODE=mv3dt`) from the warehouse blueprint: per-camera DeepStream perception (`vss-rtvi-cv-mv3dt`) + BEV Fusion (`vss-rtvi-cv-bev-fusion`) + mosquitto MQTT bus + broker + VST sensor stack — without the agent \u002F LLM \u002F VLM stack that comes with the full warehouse blueprint.\n\nThe actual compose machinery lives in `deploy\u002Fdocker\u002Findustry-profiles\u002Fwarehouse-operations\u002Fwarehouse-mv3dt-app\u002F`. This skill drives the env overrides, calibration chain, and verification.\n\n## Routing\n\nAsk the user **at most four questions**, then dispatch.\n\n### Q0 — Profile size (overlays or not)\n\nDefault to **extended** unless the user explicitly asks for minimal. Extended deploys ELK + `vss-video-analytics-api-mv3dt` + `vss-kibana-init-mv3dt` + `vss-import-calibration-output-mv3dt` on top of MV3DT core — these are what the VST video wall needs to render bounding-box overlays. Without them, the video wall works but shows raw streams without overlays.\n\n| User answer | `MINIMAL_PROFILE` | What you get | When to choose |\n|---|---|---|---|\n| **extended** (default) | `\"\"` | MV3DT core + ELK + analytics API + Kibana. **Overlays work in VST video wall.** Recommended for a complete e2e experience. | \"I want the full e2e experience\", \"I want to see bounding boxes\", or no preference stated |\n| **minimal** | `\"true\"` | MV3DT core only. ~5 fewer containers. **No overlays in VST.** Metadata still on Kafka\u002FRedis. | \"I only need the data\", \"edge \u002F Thor host\", \"minimum footprint\" |\n\n> **Note on selective ELK:** there's no \"minimal + ELK only\" middle path in the current compose. Every `${MINIMAL_PROFILE:+_extended}`-gated service comes up together (ES, Logstash, Kibana, video-analytics-api, kibana-init, import-calibration). `bash`'s `:+` parameter expansion produces the `_extended` suffix when `MINIMAL_PROFILE` is set; extended switches the gating string back to plain `bp_wh_kafka_mv3dt` which the active compose profile already matches. Either you accept the full extended bundle or you stay minimal.\n\n### Q1 — Data source\n\nAsk this unless the source is explicit in the user's first message. A bare request\nlike \"deploy rtvi-cv-3d\" routes to this MV3DT skill (`MODE=mv3dt`), but does\n**not** imply `sample`.\n\n- **sample** — the bundled 4-camera synthetic dataset (`warehouse-4cams-20mx20m-synthetic`). Calibration ships in-tree; no AMC run needed.\n- **videos** — the user has local video files (any `*.mp4` named after their cameras). Standalone AMC (`auto_calib` profile) will run if calibration is missing.\n- **rtsp** — the user has live RTSP URLs. Calibration via VIOS-driven AMC; final deploy also needs a Sensor Info File (`camera_info.json`) with those RTSP URLs.\n\n### Q2 — Calibration coverage (skip for `sample`)\n\nFor `videos` and `rtsp`, check whether calibration is already on disk at the mount path the perception container expects:\n\n```bash\nDATASET=\"${SAMPLE_VIDEO_DATASET:?}\"          # the user's dataset slug; see Q3\nCAL_DIR=\"${VSS_APPS_DIR}\u002Findustry-profiles\u002Fwarehouse-operations\u002Fwarehouse-mv3dt-app\u002Fcalibration\u002Fsample-data\u002F${DATASET}\"\n\n# Look for ANY of: calibration.json, plus camInfo\u002F*.yml or *.yaml with either\n# 'cam_*' or 'Camera*' naming (the shipped sample uses Camera*.yml, AMC may\n# produce cam_*.yaml — broaden accordingly)\ntest -f \"${CAL_DIR}\u002Fcalibration.json\" \\\n  && ls \"${CAL_DIR}\u002FcamInfo\u002F\"*.{yml,yaml} 2>\u002Fdev\u002Fnull\n```\n\nIf the user supplied a calibration path themselves, validate that path instead — don't recompute. See `configure-cameras.md` for camera-name normalization and authoritative camera-count discovery (parses `calibration.json`).\n\n### Q3 — Detector + dataset slug (only when Q2 triggers AMC)\n\n- `resnet` (default, fast) or `transformer` (slower, better under occlusion) — passed to the AMC `\u002Fv1\u002Fcalibrate\u002F\u003Cid>` API at Step B (see `vss-generate-video-calibration\u002FSKILL.md:48-62`).\n- A short kebab-case dataset slug used as `SAMPLE_VIDEO_DATASET` (e.g. `customer-aisle-4cams`). This drives the calibration mount path and gets persisted in `.env`.\n\n### Routing table\n\n| Q1 | Q2 result | Path |\n|---|---|---|\n| `sample` | (cal ships in-tree and already normalized) | [`references\u002Fdeploy-rtvi-cv-3d-stack.md`](references\u002Fdeploy-rtvi-cv-3d-stack.md) directly |\n| `videos` | cal present | [`references\u002Fconfigure-cameras.md`](references\u002Fconfigure-cameras.md) → [`references\u002Fdeploy-rtvi-cv-3d-stack.md`](references\u002Fdeploy-rtvi-cv-3d-stack.md) |\n| `videos` | cal missing | [`references\u002Fcalibration-workflow.md`](references\u002Fcalibration-workflow.md) (videos mode) → [`references\u002Fconfigure-cameras.md`](references\u002Fconfigure-cameras.md) → [`references\u002Fdeploy-rtvi-cv-3d-stack.md`](references\u002Fdeploy-rtvi-cv-3d-stack.md) |\n| `rtsp` | cal present | [`references\u002Fconfigure-cameras.md`](references\u002Fconfigure-cameras.md) → [`references\u002Fdeploy-rtvi-cv-3d-stack.md`](references\u002Fdeploy-rtvi-cv-3d-stack.md) |\n| `rtsp` | cal missing | [`references\u002Fcalibration-workflow.md`](references\u002Fcalibration-workflow.md) (rtsp mode) → [`references\u002Fconfigure-cameras.md`](references\u002Fconfigure-cameras.md) → [`references\u002Fdeploy-rtvi-cv-3d-stack.md`](references\u002Fdeploy-rtvi-cv-3d-stack.md) |\n\nEvery path converges on [`references\u002Fverify-and-view.md`](references\u002Fverify-and-view.md) once `up -d` completes. [`references\u002Ftroubleshooting.md`](references\u002Ftroubleshooting.md) and [`references\u002Fteardown.md`](references\u002Fteardown.md) are linked but off the happy path.\n\n**Disambiguation rule.** In this skill, \"RTVI-CV-3D\" means the MV3DT microservice deployment and uses `MODE=mv3dt`. Route to [`..\u002Fvss-deploy-profile\u002Freferences\u002Fwarehouse.md`](..\u002Fvss-deploy-profile\u002Freferences\u002Fwarehouse.md) only when the user asks for the full warehouse blueprint, Sparse4D, `MODE=3d`, or `warehouse-3d-app`. This skill is for **MV3DT only** without the agent stack \u002F LLM \u002F VLM.\n\n## Prerequisites\n\n### 1. Repo path\n\nLocate `video-search-and-summarization\u002F` on disk. All compose commands run from `\u003Crepo>\u002Fdeploy\u002Fdocker\u002F`. If unknown, ask the user.\n\n### 2. NGC CLI + key\n\n`$NGC_CLI_API_KEY` must be set and must have access to `nvidia\u002Fvss-core\u002F*` images. See `vss-deploy-profile\u002Freferences\u002Fngc.md` for setup if missing.\n\nIf the user previously ran `ngc config set` but `$NGC_CLI_API_KEY` isn't exported in this shell, the key is already on disk:\n\n```bash\nNGC_CLI_API_KEY=$(awk -F'= ' '\u002F^apikey\u002F{print $2}' ~\u002F.ngc\u002Fconfig 2>\u002Fdev\u002Fnull)\ntest -n \"${NGC_CLI_API_KEY}\" && echo \"key sourced from ~\u002F.ngc\u002Fconfig\"\n```\n\nMake sure the key value also lands in `industry-profiles\u002Fwarehouse-operations\u002F.env:164` (`NGC_CLI_API_KEY=...`) — compose only reads it from there at `up` time, not from your shell env.\n\n### 3. `HARDWARE_PROFILE` slug\n\n> The public MV3DT supported stream counts are listed in the Warehouse Quickstart Guide under \"MV3DT Vision AI Profile Supported Deployment Options.\" Use the matching `HARDWARE_PROFILE` slug below.\n\nPick from `nvidia-smi --query-gpu=name --format=csv,noheader`:\n\n| GPU name | `HARDWARE_PROFILE` | MV3DT supported streams |\n|---|---|---|\n| RTX PRO 6000 Blackwell | `RTXPRO6000BW` | 18 |\n| H100 (NVL, SXM HBM3) | `H100` | 13 |\n| L40S | `L40S` | 7 |\n| IGX Thor | `IGX-THOR` | 4 |\n| DGX Spark | `DGX-SPARK` | 4 |\n\nIf the user's GPU is not listed here, check `industry-profiles\u002Fwarehouse-operations\u002F.env` for available `HARDWARE_PROFILE` values, then confirm the matching profile exists in `blueprint-configurator\u002Fblueprint_config.yml` before using it. Do not infer a stream count from the slug alone.\n\n**The per-GPU MV3DT cap is enforced at deploy time.** `vss-configurator-mv3dt` computes `final_stream_count = min(NUM_STREAMS, max_streams_supported)` and applies a `keep_count` file-management op against `${VSS_DATA_DIR}\u002Fvideos\u002F${SAMPLE_VIDEO_DATASET}\u002F` so only `final_stream_count` `.mp4` files remain (sorted lexicographically, last N kept). If your GPU's MV3DT supported stream count (above table) is below your camera count, perception \u002F `mdx-raw` \u002F `mdx-bev` run with the supported stream count. Either pick a GPU with a higher supported stream count or surface the cap explicitly to the user so they're aware which streams will be processed.\n\n### 4. App data on disk\n\n`VSS_DATA_DIR` must point at the **extracted `vss-warehouse-app-data` directory** (separate from the repo). Pointing it at the repo's `deploy\u002Fdocker\u002F` causes the deploy to stall: the configurator can't find the dataset, redis can't open its log file, and perception stays in `Created`. Verify the path before deploy.\n\nPre-flight check before deploy:\n\n```bash\nDATA_DIR=\"${VSS_DATA_DIR:?VSS_DATA_DIR not set in .env}\"\nDATASET=\"${SAMPLE_VIDEO_DATASET:-warehouse-4cams-20mx20m-synthetic}\"\n\nfor sub in videos models data_log; do\n  test -d \"${DATA_DIR}\u002F${sub}\" || { echo \"ERROR: ${DATA_DIR}\u002F${sub} missing\"; exit 1; }\ndone\n\n# For sample \u002F videos modes — videos directory must exist\ntest -d \"${DATA_DIR}\u002Fvideos\u002F${DATASET}\" \\\n  || { echo \"ERROR: ${DATA_DIR}\u002Fvideos\u002F${DATASET} missing — wrong slug or app-data not extracted\"; exit 1; }\n\n# Sanity: video count should match calibration count.\n# Some published app-data tarballs are known to ship the sample dataset with\n# fewer videos than the dataset name implies — verify and source any missing\n# cams separately if your GPU's mv3dt cap is high enough to use them all.\nls \"${DATA_DIR}\u002Fvideos\u002F${DATASET}\u002F\"*.mp4 2>\u002Fdev\u002Fnull | wc -l\n\n# Ensure every per-service subdir under data_log\u002F exists. kafka \u002F elasticsearch \u002F\n# redis \u002F postgres and the video-analytics API upload path (`\u002Fweb-api-app\u002Ffiles`)\n# run as non-root UIDs against these bind mounts. Without write access the daemons\n# or calibration\u002Fimage import can fail with permission errors.\nmkdir -p \\\n  \"${DATA_DIR}\u002Fdata_log\u002Fanalytics_cache\" \\\n  \"${DATA_DIR}\u002Fdata_log\u002Fcalibration_toolkit\" \\\n  \"${DATA_DIR}\u002Fdata_log\u002Felastic\u002Fdata\" \\\n  \"${DATA_DIR}\u002Fdata_log\u002Felastic\u002Flogs\" \\\n  \"${DATA_DIR}\u002Fdata_log\u002Fkafka\" \\\n  \"${DATA_DIR}\u002Fdata_log\u002Fredis\u002Fdata\" \\\n  \"${DATA_DIR}\u002Fdata_log\u002Fredis\u002Flog\" \\\n  \"${DATA_DIR}\u002Fdata_log\u002Fvss_video_analytics_api\"\n\n# Grant write access to the specific container UIDs only — scoped ACLs, NOT 777 and\n# NOT chown. UIDs (per data-directory.md): postgres=70, redis=999, elasticsearch \u002F VST \u002F\n# kafka=1000. The first call covers existing files; the second sets *default* ACLs so\n# files\u002Fdirs the daemons create at runtime (e.g. postgres PGDATA) inherit the access.\nACL='u:70:rwx,u:999:rwx,u:1000:rwx'\nsetfacl -R    -m \"$ACL\" \"${DATA_DIR}\u002Fdata_log\"\nsetfacl -R -d -m \"$ACL\" \"${DATA_DIR}\u002Fdata_log\"\n```\n\n> **Scoped ACLs, not `chmod 777`.** This grants only the known container UIDs access — it does\n> **not** make `data_log` world-writable, and it does **not** `chown` (which would break postgres \u002F\n> Elasticsearch, since they re-own their dirs on first start). Prefer this for agent-driven runs and\n> shared hosts. The canonical [`..\u002Fvss-deploy-profile\u002Freferences\u002Fdata-directory.md`](..\u002Fvss-deploy-profile\u002Freferences\u002Fdata-directory.md)\n> documents the broad `chmod -R 777` and the per-container UID table; this skill uses the scoped-ACL\n> equivalent instead. **Ask the user for confirmation before changing host permissions.**\n>\n> Requires a POSIX-ACL filesystem (ext4 \u002F xfs — the default) and the `acl` package (`setfacl`). If a\n> daemon still logs a permission error after deploy, find its UID\n> (`docker inspect \u003Ccontainer> --format '{{.Config.User}}'`) and add `-m u:\u003Cuid>:rwx` to both calls.\n\nIf app-data isn't extracted yet: download via `ngc registry resource download-version \"nvidia\u002Fvss-warehouse\u002Fvss-warehouse-app-data:\u003Cversion>\"` and `tar -xvf` (see [`references\u002Fdeploy-rtvi-cv-3d-stack.md`](references\u002Fdeploy-rtvi-cv-3d-stack.md) for tag discovery and full steps).\n\n### 5. Pre-flight (system)\n\n`nvidia-smi`, NVIDIA Docker runtime visible (`docker info | grep -i runtimes`), and `docker run --rm --gpus all ubuntu:24.04 nvidia-smi` all green. Full driver \u002F kernel \u002F sysctl checks live in `vss-deploy-profile\u002Freferences\u002Fprerequisites.md`.\n\nIf any check fails, fix before continuing — don't proceed to deploy.\n\n### 6. Browser reachability (cloud \u002F corp-VPN hosts only)\n\nIf the user will view the VST video wall through a browser on a different network than the deploy host (cloud VM, corp VPN, ssh-tunnelled session), upstream firewall rules may block VST WebRTC (STUN to `stun.l.google.com:19302`, plus random UDP for media). See [`references\u002Fverify-and-view.md#browser-reachability`](references\u002Fverify-and-view.md) for symptoms and workarounds. Also: some hosts block the AMC microservice's default port (TCP\u002F8010); if the user reports the AMC UI on `:5000` works but its data calls fail, retry with a different `VSS_AUTO_CALIBRATION_PORT`.\n\n## Troubleshooting\n\nWhen any deploy, calibration, or verification step fails, stop and classify the failure before retrying. The quick checks below cover the most common MV3DT errors; use [`references\u002Ftroubleshooting.md`](references\u002Ftroubleshooting.md) for full diagnostic commands and fixes, [`..\u002Fvss-generate-video-calibration\u002FSKILL.md`](..\u002Fvss-generate-video-calibration\u002FSKILL.md) for AMC workflow failures, and [`..\u002Fvss-deploy-profile\u002Freferences\u002Fwarehouse-debug.md`](..\u002Fvss-deploy-profile\u002Freferences\u002Fwarehouse-debug.md) for broader warehouse-stack issues.\n\n| Symptom | Likely cause | First check or fix |\n|---|---|---|\n| `vss-rtvi-cv-bev-fusion` is unhealthy or `\u002Ftmp\u002Ffusion_ready` is missing | Broker not ready, `MAX_EXPECTED_SENSORS` mismatch, or `STREAM_TYPE` mismatch | Check `broker-health-check`, `docker inspect --format '{{.State.Health.Status}}' vss-rtvi-cv-bev-fusion`, and `mdx-raw` \u002F `mdx-bev`; then re-run [`references\u002Fconfigure-cameras.md`](references\u002Fconfigure-cameras.md) if stream counts differ |\n| Perception shows `Active sources : 0`, no FPS, or fewer cameras than expected | Stale VST sensor state, wrong dataset slug, missing calibration, or per-GPU stream cap | Verify `SAMPLE_VIDEO_DATASET`, `NUM_STREAMS`, `camInfo\u002F`, and the VST sensor list; if old sensors remain, follow [`references\u002Fteardown.md`](references\u002Fteardown.md) before redeploying |\n| `vss-rtvi-cv-mv3dt` exits with `MqttCommunicator` \"invalid node\" or tracker submit failures | Camera names in videos, `calibration.json`, and `camInfo\u002F` do not match the `Camera`, `Camera_01`, ... convention | Normalize all camera names together with [`references\u002Fconfigure-cameras.md`](references\u002Fconfigure-cameras.md) Step 0, then clear stale VST state and redeploy |\n| AMC project creation, upload, calibration, or MV3DT export fails | AutoMagicCalib service\u002FAPI issue outside this MV3DT deploy path | Use [`..\u002Fvss-generate-video-calibration\u002FSKILL.md`](..\u002Fvss-generate-video-calibration\u002FSKILL.md) to deploy\u002Fdebug AMC, then return to [`references\u002Fcalibration-workflow.md`](references\u002Fcalibration-workflow.md) after export succeeds |\n| `vss-behavior-analytics-mv3dt` restarts with calibration schema validation errors | AMC export has empty `group`, `region`, or `place` fields | Apply the placeholder patch in [`references\u002Fcalibration-workflow.md`](references\u002Fcalibration-workflow.md) Step 4a, or populate those fields in AMC before export |\n| Extended profile has no overlays and `vss-import-calibration-output-mv3dt` logs `imageMetadata.json not found` | AMC MV3DT export did not produce `images\u002FTop.png` and `images\u002FimageMetadata.json` | Synthesize both files with [`references\u002Fcalibration-workflow.md`](references\u002Fcalibration-workflow.md) Step 4b, then restart the one-shot importer |\n| Image pulls, model load, or first-start engine build fail | Missing \u002F expired `NGC_CLI_API_KEY`, incorrect `VSS_DATA_DIR`, missing BodyPose3DNet files, or GPU OOM | Re-check NGC auth, confirm `${VSS_DATA_DIR}\u002Fmodels\u002Fmv3dt\u002FBodyPose3DNet\u002F`, tail `vss-rtvi-cv-mv3dt` logs, and free or change `RT_CV_DEVICE_ID` if the GPU is exhausted |\n\nBefore destructive recovery (`docker compose down -v`, clearing `data_log`, deleting VST sensor state, or changing host ACLs), explain the impact and get user confirmation. Capture the failing command, relevant `.env` values, `docker compose ps`, and the last container logs before making state-reset changes.\n\n## How it fits together\n\n```\nSKILL.md (this file — Q0\u002FQ1\u002FQ2\u002FQ3 routing)\n  └─ if cal missing ─> calibration-workflow.md\n  │                     └─ chains to vss-generate-video-calibration (deploy + drive API)\n  │                     └─ fetches \u002Fv1\u002Fresult\u002F{project_id}\u002Fmv3dt_result?result_type=amc (plus vggt when refinement is enabled)\n  │                     └─ lands calibration files at warehouse-mv3dt-app\u002Fcalibration\u002Fsample-data\u002F\u003Cslug>\u002F\n  ├─> configure-cameras.md (camera-name normalization, NUM_STREAMS sync, VST sensor trim)\n  └─> deploy-rtvi-cv-3d-stack.md (compose up with bp_wh_kafka_mv3dt + extended\u002Fminimal)\n        └─> verify-and-view.md (FPS, fusion_ready, mdx-bev, VST video wall + WebRTC checks)\n```\n\n## Related Skills\n\n- [`vss-generate-video-calibration`](..\u002Fvss-generate-video-calibration\u002FSKILL.md) — the AMC skill. Owns AMC deployment, RTSP capture, calibration API, and the `\u002Fv1\u002Fresult\u002F...\u002Fmv3dt_result` export hook this skill consumes. `calibration-workflow.md` chains into it.\n- [`vss-deploy-profile`](..\u002Fvss-deploy-profile\u002FSKILL.md) — cross-profile umbrella. Use that instead when the user wants the **full warehouse blueprint** (with agents \u002F LLM \u002F VLM), not just MV3DT.\n- [`vss-manage-video-io-storage`](..\u002Fvss-manage-video-io-storage\u002FSKILL.md) — VIOS \u002F VST API skill. Useful for the VST video wall (overlay viz) and for sensor management referenced in `configure-cameras.md`.\n\nThe repo's authoritative warehouse-blueprint reference at [`..\u002Fvss-deploy-profile\u002Freferences\u002Fwarehouse.md`](..\u002Fvss-deploy-profile\u002Freferences\u002Fwarehouse.md) covers 2D \u002F 3D \u002F MV3DT inside the full warehouse stack — this skill is the **MV3DT-only** companion that trims the agent \u002F LLM \u002F VLM layer.\n",{"name":5,"license":15,"metadata":52,"description":56},{"tags":53,"version":54,"github-url":55},"nvidia blueprint rtvi-cv-3d mv3dt detection tracking 3d warehouse","3.2.0","https:\u002F\u002Fgithub.com\u002FNVIDIA-AI-Blueprints\u002Fvideo-search-and-summarization","Deploy and operate the RTVI-CV-3D microservice as MV3DT (`MODE=mv3dt`): per-camera DeepStream perception plus BEV Fusion over calibrated cameras. Supports the bundled sample dataset, custom video files, and RTSP streams, and chains to `vss-generate-video-calibration` when calibration is missing. Use `vss-deploy-profile` for the full warehouse blueprint and `vss-deploy-detection-tracking-2d` for single-camera 2D detection.\n","claude\u002Finstall-gsd-build-foQdV","d86cd127f527124b5fd0fd0bc679a4d79b7d01d7",".agents\u002Fskills\u002Fvss-deploy-detection-tracking-3d","https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik","https:\u002F\u002Fnorvik-orpin.vercel.app","https:\u002F\u002Fgithub.com\u002Fpattanation","2026-07-17 11:17:04",{"source":8,"skillName":5,"commands":65,"prompt":75,"zipAvailable":76},[66,69,72],{"tool":67,"command":68},"npx","npx skills add pattanation\u002FNorvik --skill vss-deploy-detection-tracking-3d",{"tool":70,"command":71},"bunx","bunx skills add pattanation\u002FNorvik --skill vss-deploy-detection-tracking-3d",{"tool":73,"command":74},"pnpm","pnpm dlx skills add pattanation\u002FNorvik --skill vss-deploy-detection-tracking-3d","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fvss-deploy-detection-tracking-3d\u002FSKILL.md",true,[78,84,88,92,96,100,104,108,112,116,120,124,128],{"path":79,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":82,"sourceHtmlUrl":83},"BENCHMARK.md","REFERENCE","参考文档",4379,"https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fvss-deploy-detection-tracking-3d\u002FBENCHMARK.md",{"path":85,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":86,"sourceHtmlUrl":87},"evals\u002Fcalibration-chain.json",7291,"https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fvss-deploy-detection-tracking-3d\u002Fevals\u002Fcalibration-chain.json",{"path":89,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":90,"sourceHtmlUrl":91},"evals\u002Fdeploy.json",6958,"https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fvss-deploy-detection-tracking-3d\u002Fevals\u002Fdeploy.json",{"path":93,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":94,"sourceHtmlUrl":95},"evals\u002Fevals.json",2476,"https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fvss-deploy-detection-tracking-3d\u002Fevals\u002Fevals.json",{"path":97,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":98,"sourceHtmlUrl":99},"evals\u002Frouting.json",6477,"https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fvss-deploy-detection-tracking-3d\u002Fevals\u002Frouting.json",{"path":101,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":102,"sourceHtmlUrl":103},"references\u002Fcalibration-workflow.md",24698,"https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fvss-deploy-detection-tracking-3d\u002Freferences\u002Fcalibration-workflow.md",{"path":105,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":106,"sourceHtmlUrl":107},"references\u002Fconfigure-cameras.md",16854,"https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fvss-deploy-detection-tracking-3d\u002Freferences\u002Fconfigure-cameras.md",{"path":109,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":110,"sourceHtmlUrl":111},"references\u002Fdeploy-rtvi-cv-3d-stack.md",31304,"https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fvss-deploy-detection-tracking-3d\u002Freferences\u002Fdeploy-rtvi-cv-3d-stack.md",{"path":113,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":114,"sourceHtmlUrl":115},"references\u002Fteardown.md",7667,"https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fvss-deploy-detection-tracking-3d\u002Freferences\u002Fteardown.md",{"path":117,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":118,"sourceHtmlUrl":119},"references\u002Ftroubleshooting.md",29721,"https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fvss-deploy-detection-tracking-3d\u002Freferences\u002Ftroubleshooting.md",{"path":121,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":122,"sourceHtmlUrl":123},"references\u002Fverify-and-view.md",21173,"https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fvss-deploy-detection-tracking-3d\u002Freferences\u002Fverify-and-view.md",{"path":125,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":126,"sourceHtmlUrl":127},"skill-card.md",4128,"https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fvss-deploy-detection-tracking-3d\u002Fskill-card.md",{"path":129,"resourceType":130,"resourceTypeDesc":131,"sizeBytes":132,"sourceHtmlUrl":133},"skill.oms.sig","OTHER","其他",6773,"https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fvss-deploy-detection-tracking-3d\u002Fskill.oms.sig",[135,166,192,216,238,253],{"skillNo":136,"name":137,"nameZh":6,"description":138,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":139,"sourceHtmlUrl":140,"categories":141,"keywords":148,"publishedAt":47},"01M71QDV4DM8T19HEHWATEF1K4","webapp-testing","Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs.","https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fwebapp-testing\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fwebapp-testing\u002FSKILL.md",[142,145],{"categoryNo":143,"categoryName":144,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":146,"categoryName":147,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000009","前端开发",[149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165],"webapp","testing","webapp testing","for","applications","local","frontend","debugging","toolkit","logs","browser","with","playwright","web","behavior","ui","screenshots",{"skillNo":167,"name":168,"nameZh":6,"description":169,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":170,"sourceHtmlUrl":171,"categories":172,"keywords":174,"publishedAt":47},"01M71QDH2GGMXGA9105C9W1N7B","web-artifacts-builder","Suite of tools for creating elaborate, multi-component claude.ai HTML artifacts using modern frontend web technologies (React, Tailwind CSS, shadcn\u002Fui). Use for complex artifacts requiring state management, routing, or shadcn\u002Fui components - not for simple single-file HTML\u002FJSX artifacts.","https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fweb-artifacts-builder\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fweb-artifacts-builder\u002FSKILL.md",[173],{"categoryNo":146,"categoryName":147,"taxonomyType":21,"taxonomyTypeDesc":22},[175,176,177,162,178,179,180,152,181,182,155,183,184,185,186,187,188,189,190,191],"builder","artifacts builder","artifacts","web artifacts builder","single-file","css","Tailwind","ui components","single","use","file","components","react","multi","state","routing","state management",{"skillNo":193,"name":194,"nameZh":6,"description":195,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":196,"licenseFileUrl":197,"sourceHtmlUrl":198,"categories":199,"keywords":201,"publishedAt":47},"01M71QD9T2XC3EWMQNN9ACNWQ1","vueuse-functions","Apply VueUse composables where appropriate to build concise, maintainable Vue.js \u002F Nuxt features.","MIT","https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fvueuse-functions\u002FLICENSE.md","https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fvueuse-functions\u002FSKILL.md",[200],{"categoryNo":146,"categoryName":147,"taxonomyType":21,"taxonomyTypeDesc":22},[202,203,204,205,206,207,208,209,210,211,212,213,214,215],"functions","vueuse","vueuse functions","project","nuxt","apply","github","concise","build","https","features","vue","js","composables",{"skillNo":217,"name":218,"nameZh":6,"description":219,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":196,"licenseFileUrl":220,"sourceHtmlUrl":221,"categories":222,"keywords":225,"publishedAt":47},"01M71QD51HWSGYMCMB7RW7PGK8","vue-testing-best-practices","Use for Vue.js testing. Covers Vitest, Vue Test Utils, component testing, mocking, testing patterns, and Playwright for E2E testing.","https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fvue-testing-best-practices\u002FLICENSE.md","https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fvue-testing-best-practices\u002FSKILL.md",[223,224],{"categoryNo":143,"categoryName":144,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":146,"categoryName":147,"taxonomyType":21,"taxonomyTypeDesc":22},[226,150,227,213,228,161,229,230,231,208,232,152,233,234,235,184,236,214,237],"vue testing best practices","testing best practices","best practices","test","testing patterns","component","vitest","mocking","e2e","utils","patterns","e2e testing",{"skillNo":239,"name":240,"nameZh":6,"description":241,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":196,"licenseFileUrl":242,"sourceHtmlUrl":243,"categories":244,"keywords":246,"publishedAt":47},"01M71QD358H2DJ9THJRBP77T3T","vue-router-best-practices","Vue Router 4 patterns, navigation guards, route params, and route-component lifecycle interactions.","https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fvue-router-best-practices\u002FLICENSE.md","https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fvue-router-best-practices\u002FSKILL.md",[245],{"categoryNo":146,"categoryName":147,"taxonomyType":21,"taxonomyTypeDesc":22},[247,213,248,228,249,231,250,208,236,251,252],"router","vue router best practices","route","guards","navigation","lifecycle",{"skillNo":254,"name":255,"nameZh":6,"description":256,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":196,"licenseFileUrl":257,"sourceHtmlUrl":258,"categories":259,"keywords":261,"publishedAt":47},"01M71QCYPNWDE2MQZ1TF3ED5S4","vue-best-practices","MUST be used for Vue.js tasks. Strongly recommends Composition API with `\u003Cscript setup>` and TypeScript as the standard approach. Covers Vue 3, SSR, Volar, vue-tsc. Load for any Vue, .vue files, Vue Router, Pinia, or Vite with Vue work. ALWAYS use Composition API unless the project explicitly requires Options API.","https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fvue-best-practices\u002FLICENSE.md","https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fvue-best-practices\u002FSKILL.md",[260],{"categoryNo":146,"categoryName":147,"taxonomyType":21,"taxonomyTypeDesc":22},[262,213,228,263,205,41,264,265,247,266,267,268,269,270,271,152,272,184,273,274],"vue best practices","Composition","tasks","api","pinia","work","options","ssr","typescript","as","vite","load","standard"]