You need to agree to share your contact information to access this model

This repository is publicly accessible, but you have to accept the conditions to access its files and content.

This is a RESEARCH CHECKPOINT, not a driving system. It was evaluated open-loop only and has known, measured failure modes documented in the model card — including a route head that never predicts a turn and a systematic over-speed bias. It must not be used to control a vehicle. By requesting access you confirm you have read the Limitations section.

Log in or Sign Up to review the conditions and access this model content.

TanitAD flagship-v1arch-v2bal-30k

A sub-300M-parameter hierarchical 4-brain latent world model for autonomous driving (operative / tactical / strategic + imagination), trained from scratch. Step 29999, clean finish.

⚠️ This is a research artifact evaluated OPEN-LOOP only. It is not a driving system. See Limitations before anything else.


What this checkpoint is, precisely

It is the v1 ARCHITECTURE trained on a larger, better-distributed corpus — every v2_* architecture lever in its own config.json is false:

v2_anchor_tactical  false   v2_ego_to_planners     false   v2_gated_intent   false
v2_goal_decode      false   v2_labels              false   v2_route_from_vision false
v2_encoder_ego_decorr false v2_ego_dropout  0.0    v2_fa_dropout     0.0
v2_nav_dropout      0.0     v2_traj_jerk    0.0    v21_route_labels  false
speed_input         true    predictor.action_dim   3

Architecture held constant, data varied. That is the entire point of this run, and it is why it is a clean comparison against the v1 baseline rather than a confounded one.

predictor d_model 768, depth 10, heads 12, window 8, action_dim 3
tactical policy 5-way manoeuvre head, waypoint horizons [5,10,15,20], cadence 5
strategic policy 4 nav commands, 3 route classes, d_ctx 256, cadence 20
state dim 2048 · horizon 2 s @ 10 Hz · input 3 stacked RGB frames at 256×256

Files

file what
ckpt.pt the exact evaluated artifact, bit-identical to what produced every number below. Keys: model, grounding, opt, step. Includes optimiser state (that is why it is 3.3 GB).
config.json the run's own config — load the model from this, not from a library default
train_log.jsonl full training log
summary.json final summary

Evaluation — the complete four-family block

Evaluated on PhysicalAI-AV's own official OOD eval split (290 clips, 6,382 windows), zero overlap with the training pool. Estimator: episode-cluster bootstrap over the 290 clips, n_boot 2000.

ADE is one row of four. Reporting it alone is incomplete.

value 95 % CI
ADE (mean over 4 waypoints to 2 s) 0.5752 m [0.5370, 0.6142]
FDE @ 2 s 1.4018 m [1.3040, 1.5010]

LONGITUDINALspeed_mae 0.8491 m/s · speed_bias +0.484 m/s · along_final_bias +0.943 m · ego_progress 1.0795× · distance-keeping over 2,846 lead-bearing windows: headway 25.53 m, time-gap 5.76 s, min-TTC 14.73 s.

LATERALcross_mae 0.0552 m [0.0500, 0.0611] · heading_mae 0.806° · curvature_bias −0.000126 (essentially unbiased).

TACTICAL — manoeuvre-vs-trajectory κ 0.6033 (substantial), agreement 0.8881 [0.8740, 0.9021]. But 0 of 3 hierarchy seams are beneficial at this checkpoint.

STRATEGIC — see Limitations. It has no vision-only route capability at all.


Limitations

⛔ 1. The strategic route head is a constant predictor

Vision-only route accuracy is 0.8031, which equals the always-predict-straight baseline 0.8031 to four decimal places — because the head predicts straight on 1,737 of 1,737 valid windows and never once predicts a turn.

The apparently perfect route_acc_nav = 1.0000 is an echo: the nav command is derived from the ego's own future, so feeding it in hands the model the answer. Do not quote it as skill.

⛔ 2. Systematic over-speed — a prior, not a tail

The prediction runs ahead of the human at 2 s on 71.95 % of windows (median overshoot +0.72 m) and is faster than the human on 75.51 %. A mean bias could be a heavy tail; a 72–76 % rate cannot. Any correction has to move the central tendency.

At 15+ m/s the mean minimum time-gap to the lead vehicle is 1.43 s — inside the range a human would call tailgating, and the regime where the over-speed bias costs most.

⛔ 3. It has a training-data leak against the canonical TanitAD val split

This run was trained on a 9,000-clip pool that was not parity-checked ("v2_parity": {"parity": false, "checked": false}, "require_parity": false). 21 of the 40 episodes in the programme's canonical validation split are inside that training pool.

Do not evaluate this checkpoint on the canonical TanitAD val split — the numbers are train-contaminated. Every number in this card is on PhysicalAI's official OOD split instead, which has zero overlap.

⚠️ 4. ADE correlates 0.64 with speed

r(v0, per-window ADE) = 0.6408. ADE is a displacement over a fixed 2 s horizon, so it scales with distance travelled. Any per-episode ADE ranking is partly a speed ranking and must be speed-matched before it is read as a quality difference.

⚠️ 5. Open-loop only, and the scored rollout is fed the expert's actions

Every number here comes from an open-loop pass: the ego follows the logged trajectory and the rollout decodes the expert's true future actions. That measures world-model fidelity, not autonomous driving, and it is not a hierarchy result. There is no closed-loop evaluation of this checkpoint.

⛔ 6. Not for vehicle control

Research artifact. Not validated for, and must not be used for, controlling a vehicle.


Data

Trained on NVIDIA PhysicalAI-Autonomous-Vehicles (front wide camera, 120° FOV). That dataset is gated — this repository ships model weights only and contains no dataset imagery or labels. You must obtain the data from NVIDIA under its own terms.

Frames are JPEG q90 at 256×256, 3-frame stacks, 10 Hz, f-theta → pinhole calibrated per clip. ⚠️ Evaluate on q90-round-tripped frames: raw pristine pixels are off-distribution for this checkpoint (measured max pixel delta 185, though the metric effect is < 0.03 across every family).

Loading

import torch, json
ck  = torch.load("ckpt.pt", map_location="cpu", weights_only=False)
cfg = json.load(open("config.json"))["cfg"]      # the RUN'S OWN config

# rebuild from cfg (not from a library default) so the state_dict loads STRICT
model.load_state_dict(ck["model"])               # strict=True
readout = ck["grounding"].step["op"]             # grounded operative step readout
print(ck["step"])                                # 29999

The architecture lives in the TanitAD stack (tanitad.models.fourbrain.WorldModel). Rebuilding from a library default instead of config.json risks a silently different architecture.

Citation

Part of the TanitAD programme (PI: Sayed). If you use this checkpoint, please cite the programme and state which split you evaluated on — the canonical-val leak in §3 makes that distinction load-bearing.

Downloads last month
-
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support