Downloads · 30 days
0
chomeed/dinov2-latent-wm-265d-threading-d0
dinov2-latent-wm-265d-threading-d0 is a robotics model from chomeed. Use it for the robotics task on the model card, and read the license before you ship it in a product. The card lists the license as mit.
A wider-bottleneck sibling of chomeed/dinov2-latent-wm-threading-d0 (56-d): identical data, encoder, dynamics, horizon and step count — only the latent width differs. Two cameras (agentview, robot0eyeinhand), hist=1,…
Downloads · 30 days
0
Access
Public
Updated Sep 5, 2026
Repo size
37.6 MB
Likes
0
Public
Click a slice to open those files.
.safetensors37.6 MB · 100%
From the Hugging Face model README
threading_d0)A wider-bottleneck sibling of chomeed/dinov2-latent-wm-threading-d0
(56-d): identical data, encoder, dynamics, horizon and step count — only the latent width differs.
Two cameras (agentview, robot0_eye_in_hand), hist=1, horizon=8 (one 8×7 action chunk = one
decision step).
All rows: conv encoder, hist=1, horizon=8, n=40000, 25k steps, 2 cameras. Millimetres, per split.
| latent | target | expert needle / tripod / offset | flow_success | flow_failure |
|---|---|---|---|---|
| 56 | tokens | 2.14 / 1.45 / 2.83 | 4.23 | 20.40 |
| 265 | tokens | 2.13 / 1.16 / 2.67 | 3.63 | 19.94 |
| 56 | segdepth | 1.67 / 0.88 / 1.96 | 3.03 | 18.85 |
| 265 | segdepth | 1.72 / 0.69 / 1.92 | 2.87 | 18.91 |
Widening the bottleneck 4.7× buys almost nothing. On the token objective it is 6% better expert offset (2.83 → 2.67 mm); on the segdepth objective it is 2% (1.96 → 1.92 mm), which is inside the σ ≈ 0.15 mm seed noise measured on this rig. The gain that does exist is entirely in the tripod term (0.88 → 0.69 mm); needle is flat or slightly worse.
The useful conclusion is the negative one: 56 dimensions was already enough. What the latent was
missing is not capacity — it is information the two cameras never captured. For comparison, adding a
third camera that actually sees the insertion bore reaches 2.27 mm at 56 dims
(…-3cam-…), beating 265 dims
at two cameras (2.67 mm). A better view is worth more than 4.7× the bottleneck, and costs nothing in
state size.
ratio across latent widthsratio = pred_mse / copy_mse is reported per run, but it is not comparable between these models:
| latent | target | pred | copy | ratio |
|---|---|---|---|---|
| 56 | tokens | 0.0092 | 0.0430 | 0.214 |
| 265 | tokens | 0.0020 | 0.0064 | 0.313 |
| 56 | segdepth | 0.0111 | 0.1559 | 0.071 |
| 265 | segdepth | 0.0045 | 0.0584 | 0.077 |
LayerNorm pins each latent to norm √L, so with more dimensions the per-dimension change between
t and t+8 shrinks and the copy baseline becomes much stronger — copy falls 6.7× from 56 to 265
dims. The ratio therefore looks worse at 265 while absolute prediction error is 4.6× better.
Compare ratios only within a fixed latent width (and a fixed horizon); across either, use the
millimetre numbers.
tokens265/ — decoder reconstructs frozen DINOv2 tokenssegdepth265/ — decoder reconstructs {segmentation, depth, RGB} at 56×56 (the stronger objective)Each holds encoder, dynamics, decoder, pose_probe (safetensors) and a config.json carrying
every normalisation statistic (prop_mean/std, target_mean/std, token_mean/std) plus the measured
pred_mse / copy_mse / ratio. Normalise tokens with token_* before the encoder, proprioception
with prop_* before the dynamics, and de-normalise probe output with target_*.
2 cams (B,2,3,224,224) → frozen DINOv2-small → (B,2,256,384) # 16x16 grid, prefix=1
→ Enc (conv, LayerNorm) → z ∈ R^265
→ Dyn: z_{t+1} = z_t + MLP([z_t, action_chunk(8x7), proprio(9)])
RL state = [z (265), proprio (9)] = 274 dims; replay buffer 51 MB at 100k capacity
The latent is never supervised on object pose — trained only on reconstruction, latent dynamics and future proprioception. Pose is read out afterwards by a probe, for evaluation only.