amc-run-sample-calibration
Runs end-to-end calibration tests on the provided sample dataset to verify AMC service installation.
Install
mkdir -p .claude/skills/amc-run-sample-calibration && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/19498" && unzip -o skill.zip -d .claude/skills/amc-run-sample-calibration && rm skill.zipInstalls to .claude/skills/amc-run-sample-calibration
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
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'.Key capabilities
- →Verify AMC microservice installation
- →Run end-to-end calibration on sample data
- →Generate evaluation metrics like L2 distance
- →Calculate reprojection error
- →Perform VGGT refinement
How it works
The skill extracts the bundled sample dataset and executes a calibration script against a running AMC microservice to verify stack functionality.
Inputs & outputs
When to use amc-run-sample-calibration
- →Verify AMC service installation
- →Run sample calibration test
- →Test AMC stack with bundled data
About this skill
Skill: Calibrate Sample Dataset
When to Use This Skill
Activate this skill when the user wants to sanity-check a running AMC stack with the bundled sample dataset. Typical prompts:
- "test the sample dataset" / "run sample calibration"
- "verify AMC install"
- "launch and test" (chain with
amc-setup-calibration-stackif the MS isn't already running)
Do NOT use this skill when:
- The user references their own video paths (e.g.
/data/videos/,cam_*.mp4not from the bundled zip) — route toamc-run-video-calibration. - The user provides live RTSP streams or
rtsp://...URLs — route toamc-run-rtsp-calibration. - This skill is exclusively for
assets/sdg_08_2_sample_data_010926.zip.
Prerequisite: AMC microservice running on a port in 8000-8009. If no backend is detected, delegate to amc-setup-calibration-stack first.
If execution cannot proceed in the current environment (no backend, missing sample data, etc.), surface the blocker AND describe the expected workflow + API sequence concisely so the user understands what will run once prerequisites are met. Do not fabricate calibration outputs, evaluation metrics, or trajectories.
Overview
Run a full calibration on the bundled sample dataset (sdg_08_2_sample_data_010926.zip, 4 synthetic warehouse cameras with ground truth) against a running AutoMagicCalib microservice. Useful for verifying that a freshly-launched stack works end-to-end before throwing real data at it.
The sample includes GT, so the run produces evaluation metrics (L2 distance, reprojection error) — no calibration parameter tuning needed.
Prerequisites
- AMC microservice running (follow
skills/amc-setup-calibration-stack/SKILL.mdif not) - Sample zip present at
assets/sdg_08_2_sample_data_010926.zip - Python 3 with
requestsavailable, or use the Swagger UI path below- The bundled script self-heals: if
requestsis missing it creates a throwaway venv under${TMPDIR:-/tmp}/amc-sample-test-venv(nothing written to the repo) - If
python3 -m venvitself fails withensurepip not available:sudo apt install -y python3-venv python3-pip
- The bundled script self-heals: if
Instructions
"launch AMC and test sample dataset" (or similar):
- Run
skills/amc-setup-calibration-stack/SKILL.mdfirst. - Wait for
/v1/readyto return OK. - Extract sample data (snippet below) — idempotent, safe to re-run.
- Run the bundled script in Run Script.
- Report final metrics + UI URL for manual inspection.
- VGGT refinement is attempted by default when the project reports
vggt_state: READY; otherwise the script explains that VGGT setup is optional and can be enabled later for refinement.
"test sample dataset" (MS already running):
- Detect backend: scan ports 8000–8009 for a
/v1/readyresponse. - If none → point to the setup skill.
- Extract sample data if not already cached.
- Run the bundled script.
- Report metrics.
Detect Running Backend
MS_PORT=""
for port in {8000..8009}; do
if curl -s "http://localhost:$port/v1/ready" | grep -q '"code":0'; then
MS_PORT=$port; break
fi
done
[ -z "$MS_PORT" ] && { echo "No running backend. Run amc-setup-calibration-stack skill first."; exit 1; }
echo "Backend on port $MS_PORT"
Locate + Extract Sample Data (idempotent)
: "${REPO_ROOT:?set REPO_ROOT to the auto-magic-calib checkout. Run amc-setup-calibration-stack Step 0b first.}"
grep -q "AutoMagicCalib" "$REPO_ROOT/README.md" 2>/dev/null && grep -q "auto-magic-calib-ms" "$REPO_ROOT/compose/ms/compose.yml" 2>/dev/null || { echo "ERROR: REPO_ROOT is not an auto-magic-calib checkout: $REPO_ROOT" >&2; exit 1; }
SAMPLE_ZIP="$REPO_ROOT/assets/sdg_08_2_sample_data_010926.zip"
[ -f "$SAMPLE_ZIP" ] || { echo "Sample zip not found at $SAMPLE_ZIP"; exit 1; }
# Cache directory next to the zip.
SAMPLE_DIR="$(dirname "$SAMPLE_ZIP")/.cache/sdg_08_2_sample_data_010926"
if [ ! -d "$SAMPLE_DIR" ]; then
mkdir -p "$SAMPLE_DIR"
unzip -q "$SAMPLE_ZIP" -d "$SAMPLE_DIR"
fi
ls "$SAMPLE_DIR"
# Expected (possibly inside a wrapper folder): alignment_data/ GT.zip videos/
Run Script
Run the bundled script from the amc-run-sample-calibration skill package, not from the auto-magic-calib repo root. If the user points the agent at this skill folder directly instead of installing it, set AMC_SAMPLE_SKILL_DIR to the directory containing this SKILL.md, or run the command from that directory. Set REPO_ROOT to the AutoMagicCalib checkout resolved by amc-setup-calibration-stack; the script reads compose/.env from that checkout for the backend port, accepts BASE_URL, MS_PORT, SAMPLE_DIR, and RUN_VGGT overrides, creates a fresh project each run, attempts VGGT when ready, and prints the NGC warehouse dataset note at the end.
# REPO_ROOT must point to the auto-magic-calib checkout, not the DeepStream repo.
: "${REPO_ROOT:?set REPO_ROOT to the auto-magic-calib checkout. Run amc-setup-calibration-stack Step 0b first.}"
grep -q "AutoMagicCalib" "$REPO_ROOT/README.md" 2>/dev/null && grep -q "auto-magic-calib-ms" "$REPO_ROOT/compose/ms/compose.yml" 2>/dev/null || { echo "ERROR: REPO_ROOT is not an auto-magic-calib checkout: $REPO_ROOT" >&2; exit 1; }
# If AMC was resolved from DeepStream's tools/auto-magic-calib submodule,
# derive the DeepStream root so the unpacked repo skill can be used directly.
if [ -z "${DEEPSTREAM_REPO_ROOT:-}" ] && [ -d "$REPO_ROOT/../../skills/amc-run-sample-calibration" ]; then
DEEPSTREAM_REPO_ROOT="$(cd "$REPO_ROOT/../.." && pwd)"
fi
SCRIPT_PATH=""
for candidate in \
"${AMC_SAMPLE_SKILL_DIR:+$AMC_SAMPLE_SKILL_DIR/scripts/run_sample_calibration.py}" \
"$PWD/scripts/run_sample_calibration.py" \
"${DEEPSTREAM_REPO_ROOT:+$DEEPSTREAM_REPO_ROOT/skills/amc-run-sample-calibration/scripts/run_sample_calibration.py}" \
"$PWD/skills/amc-run-sample-calibration/scripts/run_sample_calibration.py" \
"$HOME/.claude/skills/amc-run-sample-calibration/scripts/run_sample_calibration.py" \
"$HOME/.codex/skills/amc-run-sample-calibration/scripts/run_sample_calibration.py" \
"$HOME/.cursor/skills/amc-run-sample-calibration/scripts/run_sample_calibration.py"; do
if [ -f "$candidate" ]; then
SCRIPT_PATH="$candidate"
break
fi
done
[ -n "$SCRIPT_PATH" ] || {
echo "ERROR: could not find amc-run-sample-calibration/scripts/run_sample_calibration.py" >&2
echo "Set AMC_SAMPLE_SKILL_DIR to the amc-run-sample-calibration skill directory, or run this block from that directory." >&2
exit 1
}
python3 "$SCRIPT_PATH"
Alternative: Swagger UI Walkthrough
Agent shortcut: if the user explicitly requested a Swagger UI walkthrough (or said "no Python"), emit the table below and stop — do not invoke shell tooling, read other sections, or run the bundled Python script.
The microservice exposes an interactive OpenAPI UI at http://<HOST_IP>:<MS_PORT>/docs. If you prefer clicking through the API by hand:
-
Open
http://<HOST_IP>:<MS_PORT>/docsin a browser. -
Unzip
sdg_08_2_sample_data_010926.zipinto a cache directory next to it. -
Execute these endpoints in order, copying the
project_idfrom step 1 into subsequent paths:# Endpoint Body / Files 1 POST /v1/create_projectproject_name: any string2 POST /v1/upload_video_files/{project_id}files: upload all 4videos/cam_0*.mp4sorted by name3 POST /v1/upload_alignment/{project_id}alignment_file:alignment_data/alignment_data.json4 POST /v1/upload_layout/{project_id}layout_file:alignment_data/layout.png5 POST /v1/upload_gt_file/{project_id}gt_file:GT.zip6 POST /v1/verify_project/{project_id}— (expect project_state: READY)7 POST /v1/calibrate/{project_id}JSON: {"detector_type": "resnet"}8 GET /v1/get_project_info/{project_id}Refresh every ~10 s until project_state=COMPLETED9 GET /v1/result/{project_id}/evaluation_statisticsRead L2 distance + reprojection error 10 optional POST /v1/vggt/calibrate/{project_id}thenGET /v1/vggt_results/{project_id}/evaluation_statisticsRun only when vggt_stateisREADY; pollvggt_stateuntilCOMPLETED
This is the same sequence the bundled Python script runs, just executed manually. Step 10 is attempted by default when vggt_state is READY; otherwise it is skipped with setup guidance.
Status Fields from get_project_info
project_info.project_state is the AMC calibration lifecycle for the project. Poll it until it reaches COMPLETED (or stop on ERROR).
project_info.vggt_state is a per-project VGGT refinement lifecycle, a project-scoped status rather than a direct global service or model-load status. A newly created project can report vggt_state: "INIT" even when the VGGT model is present and mounted. The expected lifecycle is INIT → READY after AMC calibration completes → RUNNING while VGGT refinement runs → COMPLETED (or ERROR). Interpret INIT on a new or uncalibrated project as normal project state. If AMC calibration is complete and the project remains in a non-ready VGGT state, confirm VGGT setup and model availability with the setup skill checks and service logs.
Success Criteria
- Project reaches
project_state == "COMPLETED"within ~30 min. /v1/result/{id}/evaluation_statisticsreturns non-emptystatistics(GT was uploaded).- VGGT either runs to
vggt_state == "COMPLETED"and reports/v1/vggt_results/{id}/evaluation_statistics, or is skipped with setup guidance because the project is notREADYfor VGGT. - No
ERRORstate encountered.
Representative metrics for the sample (yours should be similar):
Average L2 distance(m) : < 1.5
Average reprojection error 0(px) : < 10
Key Output Files (on the server)
Results persist under $REPO_ROOT/projects/project_<project_id>/:
projects/pro
---
*Content truncated.*
When not to use it
- →Calibration using custom video paths
- →Calibration using live RTSP streams
Prerequisites
Limitations
- →Exclusively for sdg_08_2_sample_data_010926.zip
- →Requires backend running on specific port range
- →Calibration times out if tracklets are insufficient
How it compares
This is a specialized sanity-check workflow for bundled synthetic data, distinct from production video or live stream calibration.
Compared to similar skills
amc-run-sample-calibration side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| amc-run-sample-calibration (this skill) | 0 | 13d | Caution | Intermediate |
| dev | 2 | 5mo | Review | Advanced |
| examples-auto-run | 2 | 2mo | Review | Intermediate |
| netalertx-plugin-run-development | 1 | 6mo | Review | Intermediate |
Try saying
Example prompts that trigger this skill in your AI assistant.
More by NVIDIA
View all by NVIDIA →You might also like
dev
atopile
LLM-focused workflow for working in this repo: compile Zig, run the orchestrated test runner, consume test-report.json/html artifacts, and discover/debug ConfigFlags.
examples-auto-run
openai
Run python examples in auto mode with logging, rerun helpers, and background control.
netalertx-plugin-run-development
netalertx
Create and run NetAlertX plugins. Use this when asked to create plugin, run plugin, test plugin, plugin development, or execute plugin script.
lora-manager-e2e
willmiao
End-to-end testing and validation for LoRa Manager features. Use when performing automated E2E validation of LoRa Manager standalone mode, including starting/restarting the server, using Chrome DevTools MCP to interact with the web UI at http://127.0.0.1:8188/loras, and verifying frontend-to-backend functionality. Covers workflow validation, UI interaction testing, and integration testing between the standalone Python backend and the browser frontend.
migrate
alirezarezvani
Migrate from Cypress or Selenium to Playwright. Use when user mentions "cypress", "selenium", "migrate tests", "convert tests", "switch to playwright", "move from cypress", or "replace selenium".
sentry-hello-world
jeremylongshore
Execute capture your first error with Sentry and verify it appears in the dashboard. Use when testing Sentry integration or verifying error capture works. Trigger with phrases like "test sentry", "sentry hello world", "verify sentry", "first sentry error".