Measured evidence ยท Jetson AGX Thor

Physical AI Safety Observability

Every number on this page is read from a run artifact under reports/thor/; each row links to its JSON. Device: jetsonthor, tegra264, # R38 (release), REVISION: 4.0, GCID: 43443517, BOARD: generic, EABI: aarch64, DATE: Wed Dec 31 00:15:19 UTC 2025, NV Power Mode: 120W 1. Runs on 2026-09-09, repository commit 254ef27. These are runtime-overhead and inference-cost measurements on simulation footage; none is a detection-quality number.

28.588 frames/sworker at 30 fps pacing, mock model, rule evaluation p95 0.99 ms
2.69 s p50Cosmos-Reason2-2B per frame under a JSON-schema grammar, 0 out-of-vocabulary labels, 6 phantom persons
3.2 s p50Cosmos-Reason2-8B under the same grammar, 0 phantom persons, 0 false events
not measuredprecision and recall: no labelled ground truth exists yet

Runtime overhead, mock adapter

The mock adapter returns fixed detections at microsecond cost, so this is the price of frame sampling, the policy engine, event construction and the backend path. Events are four per frame by construction.

RunFramesFrames/sRule eval p95, msBackend POST p50, msVIN p50, mWPeak RSS, GBEvents
mock, 30 fps pacing, no posting
mock_30fps_no_post.json
1,80028.5880.9877n/a24,6040.0617,200
mock, 30 fps pacing, per-event POST to FastAPI + SQLite
mock_30fps_backend.json
4004.3570.7123160.925,5700.0511,600
mock, 30 fps pacing, one batch POST per frame
mock_30fps_backend_batched.json
4007.0750.856568.225,1580.0571,600
mock, unpaced, no posting
mock_no_post.json
5003,077.5560.2257n/an/a0.0412,000

Real-model inference cost, Cosmos-Reason2 via vLLM on the same device

Same 60 frames (one every 60 from an Isaac Sim recording with no people in it), same server image, same device. Inference in seconds per frame. "Phantom persons" are detections labelled person on people-free footage; "events" are the safety events those detections fired, all false by construction.

RunFramesp50, sp95, smax, sFrames/sCompletion tokens p50VIN p50, mWVIN peak, mWDetectionsOut-of-vocab labelsPhantom personsEvents
Cosmos-Reason2-2B, think block, 4096 cap
cosmos2b_video_60.json
604.3512.8515.410.15426066,568107,102975900
Cosmos-Reason2-2B, no think, 512 cap
cosmos2b_video_60_nothink.json
603.576.589.350.24115760,338105,2061065700
Cosmos-Reason2-2B, grammar, original prompt
cosmos2b_video_60_schema_v1prompt.json
600.310.334.192.303737,052101,4480000
Cosmos-Reason2-2B, grammar, JSON-only prompt
cosmos2b_video_60_schema.json
602.693.368.030.36713562,52283,120193067
Cosmos-Reason2-8B, no think, 512 cap
cosmos8b_video_60_nothink.json
608.2927.7833.670.09812669,136108,376812000
Cosmos-Reason2-8B, grammar, JSON-only prompt
cosmos8b_video_60_schema.json
603.28.2614.960.2344765,976131,58274000
Inference latency per frame, Cosmos-Reason2 on Thor p50 p95 2B, think 4.35 s 12.9 s 2B, no think 3.57 s 6.58 s 2B, grammar, old prompt 0.309 s 0.329 s 2B, grammar 2.69 s 3.36 s 8B, no think 8.29 s 27.8 s 8B, grammar 3.2 s 8.26 s values from reports/thor/*.json
Per-frame inference latency, p50 and p95, seconds. Reasoning length drives the tail; the grammar removes most of it.
Vocabulary and phantom persons on people-free footage out-of-vocab labels phantom persons false events 2B, think 59 0 0 2B, no think 57 0 0 2B, grammar, old prompt 0 0 0 2B, grammar 0 6 7 8B, no think 20 0 0 8B, grammar 0 0 0 values from reports/thor/*.json
Counts over 60 frames. Zero out-of-vocabulary labels under the grammar; the 2B then reports people that are not there, the 8B does not.
Worker throughput, mock adapter frames/s mock, no post 28.6 frames/s mock, per-event POST 4.36 frames/s mock, batched POST 7.08 frames/s mock, unpaced 3,078 frames/s log scale, values from reports/thor/*.json
Achieved frames per second against a 30 fps source; the synchronous POST to the backend is the bottleneck, batching lifts it from 4.4 to 7.1.
Board input power, VIN p50 VIN p50 mock, no post 24.6 W mock, per-event POST 25.6 W mock, batched POST 25.2 W mock, unpaced not measured 2B, think 66.6 W 2B, no think 60.3 W 2B, grammar, old prompt 37.1 W 2B, grammar 62.5 W 8B, no think 69.1 W 8B, grammar 66 W values from reports/thor/*.json
Board input power at p50 over each run, watts; about 24 W is the device's idle level.

What is not established