Deepstream Run Mv3dt logo

Deepstream Run Mv3dt

OrganizationPopular
NVIDIA
deepstream-run-mv3dt

Run and operate the DeepStream Multi-View 3D Tracking reference app, also known as MV3DT. Use when the user asks to set up prerequisites, run shipped MV3DT samples, run Multi-View 3D Tracking on custom synchronized MP4 datasets, import camera calibration, delegate missing calibration to AutoMagicCalib, inspect OSD or BEV visualization, consume MV3DT Kafka metadata, or clean up MV3DT run state in the DeepStream MV3DT app directory.

Overview

PublisherNVIDIA
Repositoryskills
Skill namedeepstream-run-mv3dt
Stars
3.3K
Forks
397
Bundled files
10
LicenseApache-2.0
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 10 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by NVIDIA on GitHub. Read the source before you install it.

Installation

Install the Deepstream Run Mv3dt AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/NVIDIA/skills.git /tmp/skills
mkdir -p .claude/skills
cp -r /tmp/skills/skills/deepstream-run-mv3dt .claude/skills/deepstream-run-mv3dt
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Deepstream Run Mv3dt in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Deepstream Run Mv3dt on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Deepstream Run Mv3dt is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Skill: Run DeepStream MV3DT

When to Use This Skill

Activate this skill when the user wants to set up, run, verify, or debug the DeepStream Multi-View 3D Tracking reference app. Typical prompts:

  • "set up MV3DT DeepStream"
  • "run the 4-camera MV3DT sample"
  • "run the 12-camera MV3DT sample"
  • "run MV3DT on my synchronized MP4s"
  • "I have videos but no calibration; calibrate and run MV3DT"
  • "show the BEV visualizer or Kafka metadata"
  • "stop MV3DT" / "clean up MV3DT" / "tear down MV3DT"

Do not use this skill for single-view 3D tracking, generic DeepStream app development, or live-stream onboarding unless the user explicitly maps that work to this repo's MV3DT pipeline.

Examples

  • "Deploy the DeepStream MV3DT 4-camera sample and show the OSD and BEV windows."
  • "Run the MV3DT 12-camera sample headlessly with RTDETR and save videos."
  • "Run MV3DT on synchronized MP4s under /data/mv3dt-demo using PeopleNetTransformer."
  • "My custom MV3DT videos do not have calibration; use AutoMagicCalib, then run MV3DT."

Overview

Operate the Multi-View 3D Tracking reference app in DeepStream/src/apps/reference_apps/deepstream-tracker-3d-multi-view using the DeepStream Container path. The skill supports setup, shipped sample runs, custom synchronized MP4 datasets, calibration handoff to AutoMagicCalib, display/headless execution, OSD/BEV outputs, and Kafka metadata inspection.

Prerequisites

  • MV3DT reference app directory on disk under DeepStream/src/apps/reference_apps/deepstream-tracker-3d-multi-view; if it is absent, ask before cloning the public DeepStream repo
  • Docker with NVIDIA GPU support
  • DeepStream container image access
  • MV3DT sample datasets, models, custom parser libraries, Kafka, Mosquitto, and mv3dt_venv prepared by the repo setup script
  • Working X11/VNC display for live OSD/BEV windows, or the saved-output headless path for tiled DeepStream MP4 plus Kafka-derived BEV MP4

Instructions

Step 0: Resolve MV3DT App Checkout

The skill can be installed outside the DeepStream repo. Resolve REPO_ROOT to the MV3DT app directory, not necessarily the Git top-level directory.

bash
MV3DT_APP_SUBDIR="src/apps/reference_apps/deepstream-tracker-3d-multi-view"

is_mv3dt_app_dir() {
  test -f "$1/README.md" || return 1
  test -d "$1/config_templates" || return 1
  test -d "$1/scripts" || return 1
  grep -q "Multi-View 3D Tracking" "$1/README.md"
}

GIT_TOP="$(git rev-parse --show-toplevel 2>/dev/null || true)"
CANDIDATES=()
if [ -n "${MV3DT_REPO_ROOT:-}" ]; then CANDIDATES+=("${MV3DT_REPO_ROOT}"); fi
if [ -n "${DEEPSTREAM_REPO_ROOT:-}" ]; then CANDIDATES+=("${DEEPSTREAM_REPO_ROOT}/${MV3DT_APP_SUBDIR}"); fi
CANDIDATES+=("${PWD}")
if [ -n "${GIT_TOP}" ]; then
  CANDIDATES+=("${GIT_TOP}" "${GIT_TOP}/${MV3DT_APP_SUBDIR}")
fi
CANDIDATES+=("${HOME}/DeepStream/${MV3DT_APP_SUBDIR}" "${HOME}/deepstream/${MV3DT_APP_SUBDIR}")

REPO_ROOT=""
for candidate in "${CANDIDATES[@]}"; do
  if [ -n "$candidate" ] && is_mv3dt_app_dir "$candidate"; then
    REPO_ROOT="$(cd "$candidate" && pwd)"
    break
  fi
done

if [ -z "${REPO_ROOT}" ]; then
  cat <<'EOF'
ERROR: MV3DT reference app directory was not found.
Set MV3DT_REPO_ROOT to an existing deepstream-tracker-3d-multi-view app directory, or ask the user to approve cloning the public DeepStream repo and then run:

  DEEPSTREAM_REPO_ROOT="${DEEPSTREAM_REPO_ROOT:-$HOME/DeepStream}"
  git clone https://github.com/NVIDIA/DeepStream.git "$DEEPSTREAM_REPO_ROOT"
  export MV3DT_REPO_ROOT="$DEEPSTREAM_REPO_ROOT/src/apps/reference_apps/deepstream-tracker-3d-multi-view"

Do not clone silently.
EOF
  exit 1
fi

cd "${REPO_ROOT}"
export REPO_ROOT MV3DT_REPO_ROOT="${REPO_ROOT}"

If the app directory cannot be resolved, ask the user for an existing checkout path or for approval to clone https://github.com/NVIDIA/DeepStream. Do not clone silently.

Step 1: Select The Primary Workflow

Load exactly one primary reference for the user's current request:

User intentReference
Install, prepare, or verify prerequisitesreferences/setup.md
Run bundled 4-camera or 12-camera samplereferences/sample-run.md
Run custom synchronized MP4sreferences/custom-dataset.md
Missing custom calibrationreferences/amc-calibration-handoff.md, then return to references/custom-dataset.md
View OSD, BEV, screenshots, recordings, or Kafka metadatareferences/visualization-metadata.md
Stop a run, clean generated artifacts, or stop prerequisite servicesreferences/setup.md

If setup, datasets, models, Kafka, Mosquitto, Docker GPU runtime, or the Python venv are missing, load references/setup.md before continuing to the user's original workflow.

When sample-run.md or custom-dataset.md needs to regenerate DeepStream configs, load references/generate-configs.md as the canonical shared config-generation reference rather than duplicating the shell logic.

Step 2: Follow The Run Stages

For every run, use this stage order:

StageAction
ValidateCheck app directory, prerequisites, dataset shape, display/headless mode, Docker GPU support, and output-directory writability.
PrepareState the selected sample/custom dataset, detector, run mode, output directory, expected output surfaces, and the Docker security decision for --privileged --net=host before launch.
ExecuteGenerate configs, start offline BEV capture first in headless mode or when saved BEV MP4 is explicitly requested, then run DeepStream or delegate missing calibration to AutoMagicCalib.
VerifyConfirm functional readiness with App run successful, fresh MP4 artifacts when file output is enabled, Kafka offsets/messages, and BEV message/frame counts when BEV MP4 capture runs.
ReportSummarize selected options, generated files, artifact paths, file sizes/counts, and any skipped or failed output surface; after a default 4-camera sample run, mention that the 12-camera sample is also available as a follow-up.

Step 3: Apply Defaults Explicitly

  • Runtime path: DeepStream Container.
  • Display path: if a working X11/VNC display is available, use the repo quick-start path with OSD and BEV windows. The OSD window does not save MP4 by default; when the user explicitly asks to save output in display mode, regenerate configs with both --enable-osd and --enable-file-output plus --enable-msg-broker.
  • Headless path: if no working display is available, use saved outputs by default. Generate configs with --enable-file-output and --enable-msg-broker; start offline BEV capture before DeepStream so the run produces both the tiled DeepStream MP4 and the Kafka-derived BEV MP4.
  • Sample dataset: support both shipped 4-camera and 12-camera datasets. If the user does not specify a sample, run the 4-camera sample first, then mention in the final report that the 12-camera sample is also available and can be run next.
  • Detector: PeopleNetTransformer unless the user asks for RTDETR or PeopleNet2.6.3; carry the selected DETECTOR_MODEL through config generation and AMC camInfo modelInfo normalization. For custom calibration handoff, ask the user to choose the AutoMagicCalib detector instead of silently defaulting.
  • Custom data source: synchronized MP4 files. Live-stream handling is outside this first-release skill.
  • Calibration handoff: use standalone AutoMagicCalib skills instead of duplicating their setup or API workflow.

Step 4: Preserve Idempotency And User Data

  • Readiness checks are safe to rerun.
  • Setup may install packages, pull containers, download models, and start services; ask first.
  • Config generation and DeepStream runs update generated files under EXPERIMENT_DIR; record RUN_STARTED_AT and do not report old artifacts as current-run success.
  • Normal teardown stops only current run processes and leaves Kafka, Mosquitto, models, datasets, and generated artifacts in place unless the user explicitly asks to stop services or delete files.
  • Custom datasets are user data. Copy missing calibration-format variants by default, and ask before renaming, overwriting, clearing, or deleting dataset files.

Success Criteria

  • Prerequisite checks pass or the missing prerequisite is reported with a narrow next step.
  • DeepStream run eventually prints App run successful.
  • Display mode shows the DeepStream OSD grid and live BEV visualizer by default.
  • Headless mode produces a fresh ${EXPERIMENT_DIR}/outVideos/tiled_display_raw.mp4 and attempts BEV MP4 capture by default.
  • Kafka topic mv3dt receives current-run protobuf metadata when message broker output is enabled.
  • BEV MP4 is reported as successful only when the separate BEV capture process produced nonzero messages and frames.

Key Output

  • Generated configs: ${EXPERIMENT_DIR}/config_deepstream.txt, ${EXPERIMENT_DIR}/config_tracker.yml, ${EXPERIMENT_DIR}/config_msgconv.txt
  • Saved DeepStream tiled MP4 when file output is enabled: ${EXPERIMENT_DIR}/outVideos/tiled_display_raw.mp4
  • Saved BEV MP4 when offline capture is used: ${EXPERIMENT_DIR}/bev_outputs/trajectory_video_<timestamp>.mp4
  • Kafka topic: mv3dt
  • Sample output roots: ${REPO_ROOT}/experiments/deepstream/4cam and ${REPO_ROOT}/experiments/deepstream/12cam

Troubleshooting

IssueFirst action
Setup prerequisites missingLoad references/setup.md and run the check-only path before setup.
Docker cannot access GPUFix NVIDIA Container Toolkit or Docker runtime before launching samples.
Display window missingCheck DISPLAY and /tmp/.X11-unix; use the headless saved-output path when no display is available.
DeepStream MP4 missingConfirm configs were generated with --enable-file-output and verify the artifact is newer than RUN_STARTED_AT.
BEV MP4 missing or zero messagesStart offline BEV capture with --from-end before DeepStream, use a long enough --first-message-timeout, and verify Kafka offsets move during the run.
Kafka client shows no messagesRegenerate configs with --enable-msg-broker and verify topic mv3dt exists.
Custom dataset lacks calibrationLoad references/amc-calibration-handoff.md; ask detector/settings choices before delegating.
Generated files are root-ownedReport the ownership issue and ask before applying a narrow generated-directory permission fix.

Safety Notes

  • Ask before commands that use sudo, install packages, pull containers, download models, start or stop services, change host display access, overwrite dataset files, or clear generated state.
  • Treat deleting Kafka, Mosquitto, models, datasets, or experiment outputs as destructive cleanup. Show the exact targets and get explicit confirmation before removing anything.
  • Before running docker run --privileged --net=host, explicitly state that the container gets broad host, device, network, and mounted-repo access, then get user approval.
  • Do not silently clone repositories, change host permissions outside the repo, rename or delete user datasets, or report old artifacts as current-run success.
  • Treat custom videos, calibration, saved visualizations, and tracking metadata as potentially sensitive local data. Keep outputs local unless the user explicitly asks to move or share them.
  • If permission fixes are needed for generated outputs, propose the narrowest generated-directory-only fix and ask first; never recommend broad world-writable recursive permission changes.

Related Skills

  • amc-setup-calibration-stack - Launch the standalone AutoMagicCalib stack when calibration is needed.
  • amc-run-video-calibration - Generate calibration from synchronized local MP4s before returning to MV3DT.

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Deepstream Run Mv3dt AI skill do?

Run and operate the DeepStream Multi-View 3D Tracking reference app, also known as MV3DT. Use when the user asks to set up prerequisites, run shipped MV3DT samples, run Multi-View 3D Tracking on custom synchronized MP4 datasets, import camera calibration, delegate missing calibration to AutoMagicCalib, inspect OSD or BEV visualization, consume MV3DT Kafka metadata, or clean up MV3DT run state in the DeepStream MV3DT app directory.

Why use Deepstream Run Mv3dt on TypingMind?

Because you install it once and use it with any model. Deepstream Run Mv3dt is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Deepstream Run Mv3dt in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/NVIDIA/skills/tree/main/skills/deepstream-run-mv3dt. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Deepstream Run Mv3dt?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Deepstream Run Mv3dt?

As many as you like. As long as a model supports skills, you can use Deepstream Run Mv3dt with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Deepstream Run Mv3dt AI skill free?

Yes. It is published on GitHub by NVIDIA under the Apache-2.0 license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇