Spaces:
Running
Running
| <html lang="en"><head> | |
| <meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"> | |
| <title>Cosmos gen-7b — overfit & cross-architecture</title> | |
| <style> | |
| :root{ | |
| --bg:#f7f7f8; --panel:#ffffff; --ink:#16181d; --sub:#5c6270; --line:#e6e8ec; | |
| --accent:#4f46e5; --accent2:#0ea5e9; | |
| --ok:#0f9d58; --okbg:#e7f6ee; --warn:#c77700; --warnbg:#fdf3e3; --bad:#d92d20; --badbg:#fdeceb; | |
| --win:#0f9d58; --winbg:#e7f6ee; | |
| --radius:16px; --shadow:0 1px 2px rgba(16,24,40,.04),0 8px 24px rgba(16,24,40,.06); | |
| } | |
| @media(prefers-color-scheme:dark){:root{ | |
| --bg:#0d0f14; --panel:#151922; --ink:#eaecef; --sub:#98a1b3; --line:#232936; | |
| --accent:#8b8cf7; --accent2:#38bdf8; | |
| --ok:#37d399; --okbg:#0f2a20; --warn:#f2b34b; --warnbg:#2a2110; --bad:#f77066; --badbg:#2a1414; | |
| --win:#37d399; --winbg:#0f2a20; | |
| --shadow:0 1px 2px rgba(0,0,0,.3),0 8px 24px rgba(0,0,0,.35); | |
| }} | |
| *{box-sizing:border-box} | |
| html{scroll-behavior:smooth;scroll-padding-top:96px} | |
| body{margin:0;background:var(--bg);color:var(--ink); | |
| font:15px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased} | |
| .wrap{max-width:1200px;margin:0 auto;padding:0 20px} | |
| .hero{padding:56px 0 26px} | |
| .hero .kick{color:var(--accent);font-weight:700;letter-spacing:.08em;text-transform:uppercase;font-size:12px} | |
| .hero h1{margin:.25em 0 .35em;font-size:clamp(26px,4vw,40px);line-height:1.1;letter-spacing:-.02em} | |
| .hero p.lede{margin:0;color:var(--sub);max-width:74ch;font-size:16px} | |
| .reading{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius); | |
| padding:14px 18px;margin:18px 0 4px;box-shadow:var(--shadow);font-size:13.5px;color:var(--sub)} | |
| .reading b{color:var(--ink)} | |
| .dot{display:inline-block;width:9px;height:9px;border-radius:2px;margin-right:5px} | |
| .legend{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;margin:22px 0 4px} | |
| .chip{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px 14px;box-shadow:var(--shadow)} | |
| .chip b{display:block;font-size:14px;margin-bottom:3px}.chip span{color:var(--sub);font-size:12.5px;line-height:1.45} | |
| nav.sticky{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--bg) 82%,transparent); | |
| backdrop-filter:saturate(150%) blur(10px);border-bottom:1px solid var(--line);margin-top:24px} | |
| nav.sticky .wrap{display:flex;gap:7px;flex-wrap:wrap;align-items:center;padding-top:10px;padding-bottom:10px} | |
| nav.sticky a{color:var(--sub);text-decoration:none;font-weight:600;font-size:13px;padding:5px 11px;border-radius:999px;border:1px solid transparent} | |
| nav.sticky a:hover{color:var(--ink);border-color:var(--line);background:var(--panel)} | |
| nav.sticky .ngrp{color:var(--accent);font-weight:700;text-transform:uppercase;letter-spacing:.06em;font-size:10.5px;padding-left:8px} | |
| .band{border-top:1px solid var(--line);margin-top:8px} | |
| .band-h{padding:34px 0 2px}.band-h .t{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)} | |
| .band-h h2.big{margin:.2em 0 .1em;font-size:24px;letter-spacing:-.01em} | |
| .band-h p{margin:0;color:var(--sub);max-width:80ch;font-size:14.5px} | |
| section.run{padding:30px 0;border-top:1px solid var(--line)} | |
| .run-head h2{margin:0 0 4px;font-size:20px;letter-spacing:-.01em} | |
| .run-head p{margin:0 0 18px;color:var(--sub);max-width:82ch} | |
| .cols{display:grid;grid-template-columns:minmax(400px,1fr) minmax(430px,1.15fr);gap:26px;align-items:start} | |
| @media(max-width:980px){.cols{grid-template-columns:1fr}} | |
| .xwrap{display:grid;grid-template-columns:minmax(280px,.7fr) minmax(520px,1.6fr);gap:26px;align-items:start} | |
| @media(max-width:980px){.xwrap{grid-template-columns:1fr}} | |
| h3{font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--sub);margin:0 0 12px} | |
| .qt{width:100%;border-collapse:collapse;background:var(--panel);border:1px solid var(--line); | |
| border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);font-variant-numeric:tabular-nums} | |
| .qt th{text-align:right;font-size:12px;color:var(--sub);font-weight:600;padding:11px 14px;border-bottom:1px solid var(--line)} | |
| .qt th:first-child{text-align:left} | |
| .qt td{padding:9px 14px;border-bottom:1px solid var(--line)} | |
| .qt tr:last-child td{border-bottom:none} | |
| .qt .mname{font-weight:500}.qt .arrow{color:var(--sub);font-size:11px} | |
| .qt .num{text-align:right} | |
| .qt tr.grp td{background:color-mix(in srgb,var(--accent) 7%,var(--panel));font-size:11px;text-transform:uppercase; | |
| letter-spacing:.05em;color:var(--sub);font-weight:700;padding:7px 14px} | |
| .gap-ok{color:var(--ok);background:var(--okbg);font-weight:600;border-radius:6px} | |
| .gap-warn{color:var(--warn);background:var(--warnbg);font-weight:600;border-radius:6px} | |
| .gap-bad{color:var(--bad);background:var(--badbg);font-weight:700;border-radius:6px} | |
| .win{color:var(--win);background:var(--winbg);font-weight:700;border-radius:6px} | |
| .seg{display:inline-flex;background:var(--panel);border:1px solid var(--line);border-radius:999px;padding:3px;margin-bottom:14px} | |
| .seg-b{border:none;background:transparent;color:var(--sub);font:inherit;font-weight:600;font-size:13px;padding:5px 16px;border-radius:999px;cursor:pointer} | |
| .seg-b.active{background:var(--accent);color:#fff} | |
| .pane{display:none}.pane.show{display:block} | |
| .grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px} | |
| @media(max-width:560px){.grid{grid-template-columns:1fr}} | |
| .xgal{display:grid;grid-template-columns:1fr 1fr;gap:16px} | |
| @media(max-width:720px){.xgal{grid-template-columns:1fr}} | |
| .xcol-h{font-size:12px;font-weight:700;letter-spacing:.03em;color:var(--ink);margin:0 0 10px; | |
| padding:6px 10px;background:var(--panel);border:1px solid var(--line);border-radius:8px;display:inline-block} | |
| .cgrid{display:grid;grid-template-columns:1fr;gap:12px} | |
| .scard{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:10px;box-shadow:var(--shadow)} | |
| .scard-h{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--sub);font-weight:700;margin:2px 4px 8px} | |
| .vid{margin:0 0 8px}.vid:last-of-type{margin-bottom:2px} | |
| .vid video{width:100%;display:block;border-radius:8px;background:#000;aspect-ratio:2/1;object-fit:cover} | |
| .vid figcaption{font-size:11.5px;color:var(--sub);margin-top:4px;display:flex;justify-content:space-between} | |
| .vid .gtp{color:var(--accent2);font-weight:600} | |
| .empty{color:var(--sub);font-style:italic;padding:16px} | |
| .ctrl{display:flex;align-items:center;gap:9px;margin-top:8px;padding:2px 2px 0} | |
| .pp{flex:0 0 auto;width:30px;height:30px;border-radius:8px;border:1px solid var(--line);background:var(--panel); | |
| color:var(--ink);font-size:12px;cursor:pointer;display:grid;place-items:center} | |
| .pp:hover{border-color:var(--accent)} | |
| .scrub{flex:1 1 auto;-webkit-appearance:none;appearance:none;height:5px;border-radius:999px;background:var(--line);cursor:pointer;outline:none} | |
| .scrub::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;border-radius:50%;background:var(--accent);border:2px solid var(--panel);box-shadow:0 1px 3px rgba(0,0,0,.3)} | |
| .scrub::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:var(--accent);border:2px solid var(--panel)} | |
| .tlabel{flex:0 0 auto;font-size:11px;color:var(--sub);font-variant-numeric:tabular-nums;min-width:38px;text-align:right} | |
| footer{border-top:1px solid var(--line);padding:26px 0 50px;color:var(--sub);font-size:12.5px;margin-top:20px} | |
| </style></head> | |
| <body> | |
| <header class="hero"><div class="wrap"> | |
| <div class="kick">Visuo-tactile world model · Cosmos gen-7b</div> | |
| <h1>Overfit test & cross-architecture</h1> | |
| <p class="lede">Short-horizon (16-frame) Cosmos-decoded rollouts. <b>Part 1</b> compares | |
| the <b>train</b> vs <b>val</b> set (overfit test) for the full V+T models. <b>Part 2</b> swaps | |
| the diffusion backbone <b>causal ↔ noncausal</b> across three modality configs | |
| (V+T, vision-only, tactile-only). Vision and tactile clips are latency-corrected and play in lockstep.</p> | |
| <div class="reading"> | |
| <b>Gap column (Part 1):</b> | |
| <span class="dot" style="background:var(--ok)"></span>≤10% generalizing | |
| <span class="dot" style="background:var(--warn)"></span>10–35% mild | |
| <span class="dot" style="background:var(--bad)"></span>>35% strong overfit. · | |
| <b>Green cell (Part 2)</b> = the winning backbone for that metric. | |
| </div> | |
| <div class="legend"><div class="chip"><b>v3 · baseline</b><span>Bidirectional temporal attention (full-window). The original Cosmos-tokenizer world model.</span></div><div class="chip"><b>v3 · causal</b><span>Causal temporal attention (per-frame tril mask) — matches the causal tokenizer and AR rollout regime.</span></div><div class="chip"><b>v3 · contact-aware</b><span>Adds the contact-aware tactile aux loss (x0-space, alpha_bar-weighted) on top of v3.</span></div></div> | |
| </div></header> | |
| <nav class="sticky"><div class="wrap"><span class="ngrp">Overfit</span><a href="#v3">v3 · baseline</a><a href="#causal">v3 · causal</a><a href="#contact">v3 · contact-aware</a><span class="ngrp">Cross-arch</span><a href="#x-vt">Full V + T</a><a href="#x-vision">Vision-only</a><a href="#x-tactile">Tactile-only</a><span class="ngrp">Ref frame</span><a href="#ref-v3">fixed p01 ref · baseline</a><a href="#ref-p01rand">random no-contact ref</a><a href="#ref-p01rand_v2t">random ref + V→T aux</a><span class="ngrp">Refinements</span><a href="#rf-p01rand">random ref (in-video)</a><a href="#rf-difflat">clean reference bank</a><a href="#rf-diffimg">difference image</a></div></nav> | |
| <main class="wrap"> | |
| <div class="band-h"><div class="t">Part 1</div><h2 class="big">Overfit test — full V + T</h2> | |
| <p>Same recipe, three backbones. Does the model memorize the ~30 training episodes?</p></div> | |
| <section class="run" id="v3"> | |
| <div class="run-head"><h2>v3 · baseline</h2><p>Bidirectional temporal attention (full-window). The original Cosmos-tokenizer world model.</p></div> | |
| <div class="cols"> | |
| <div class="col-q"><h3>Overfit test — train vs val</h3><table class="qt"><thead><tr><th>metric</th><th>train (n=16)</th><th>val (n=16)</th><th>gap</th></tr></thead><tbody><tr class="grp"><td colspan="4">Visual — middle view</td></tr><tr><td class="mname">LPIPS <span class="arrow">↓</span></td><td class="num">0.0955</td><td class="num">0.0827</td><td class="num gap-ok">-13%</td></tr><tr><td class="mname">SSIM <span class="arrow">↑</span></td><td class="num">0.8190</td><td class="num">0.8529</td><td class="num gap-ok">-4%</td></tr><tr><td class="mname">PSNR <span class="arrow">↑</span></td><td class="num">25.3119</td><td class="num">26.5329</td><td class="num gap-ok">-5%</td></tr><tr class="grp"><td colspan="4">Tactile — perceptual</td></tr><tr><td class="mname">LPIPS · left <span class="arrow">↓</span></td><td class="num">0.1508</td><td class="num">0.0839</td><td class="num gap-ok">-44%</td></tr><tr><td class="mname">LPIPS · right <span class="arrow">↓</span></td><td class="num">0.1933</td><td class="num">0.0661</td><td class="num gap-ok">-66%</td></tr><tr class="grp"><td colspan="4">Tactile — contact / physics</td></tr><tr><td class="mname">mask IoU (τ8) <span class="arrow">↑</span></td><td class="num">0.3559</td><td class="num">0.1712</td><td class="num gap-bad">+52%</td></tr><tr><td class="mname">contact MSE <span class="arrow">↓</span></td><td class="num">131.7636</td><td class="num">34.5099</td><td class="num gap-ok">-74%</td></tr><tr><td class="mname">onset err <span class="arrow">↓</span></td><td class="num">0.0000</td><td class="num">104.3420</td><td class="num ">—</td></tr><tr><td class="mname">intensity spearman <span class="arrow">↑</span></td><td class="num">0.3031</td><td class="num">0.5875</td><td class="num gap-ok">-94%</td></tr></tbody></table></div> | |
| <div class="col-v"><h3>Short-horizon rollouts</h3><div class="qual"><div class="seg"><button class="seg-b active" data-t="train">Train set</button><button class="seg-b" data-t="val">Val set</button></div><div class="pane" data-split="train"><div class="grid"><div class="scard"><div class="scard-h">sample 000</div><figure class="vid"><video src="media/v3/train/sample_000/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/v3/train/sample_000/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/v3/train/sample_000/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div><div class="scard"><div class="scard-h">sample 001</div><figure class="vid"><video src="media/v3/train/sample_001/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/v3/train/sample_001/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/v3/train/sample_001/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div><div class="scard"><div class="scard-h">sample 002</div><figure class="vid"><video src="media/v3/train/sample_002/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/v3/train/sample_002/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/v3/train/sample_002/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div><div class="scard"><div class="scard-h">sample 003</div><figure class="vid"><video src="media/v3/train/sample_003/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/v3/train/sample_003/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/v3/train/sample_003/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div></div></div><div class="pane" data-split="val"><div class="grid"><div class="scard"><div class="scard-h">sample 000</div><figure class="vid"><video src="media/v3/val/sample_000/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/v3/val/sample_000/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/v3/val/sample_000/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div><div class="scard"><div class="scard-h">sample 001</div><figure class="vid"><video src="media/v3/val/sample_001/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/v3/val/sample_001/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/v3/val/sample_001/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div><div class="scard"><div class="scard-h">sample 002</div><figure class="vid"><video src="media/v3/val/sample_002/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/v3/val/sample_002/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/v3/val/sample_002/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div><div class="scard"><div class="scard-h">sample 003</div><figure class="vid"><video src="media/v3/val/sample_003/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/v3/val/sample_003/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/v3/val/sample_003/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div></div></div></div></div> | |
| </div></section><section class="run" id="causal"> | |
| <div class="run-head"><h2>v3 · causal</h2><p>Causal temporal attention (per-frame tril mask) — matches the causal tokenizer and AR rollout regime.</p></div> | |
| <div class="cols"> | |
| <div class="col-q"><h3>Overfit test — train vs val</h3><table class="qt"><thead><tr><th>metric</th><th>train (n=16)</th><th>val (n=16)</th><th>gap</th></tr></thead><tbody><tr class="grp"><td colspan="4">Visual — middle view</td></tr><tr><td class="mname">LPIPS <span class="arrow">↓</span></td><td class="num">0.0530</td><td class="num">0.0454</td><td class="num gap-ok">-14%</td></tr><tr><td class="mname">SSIM <span class="arrow">↑</span></td><td class="num">0.8789</td><td class="num">0.9016</td><td class="num gap-ok">-3%</td></tr><tr><td class="mname">PSNR <span class="arrow">↑</span></td><td class="num">28.0306</td><td class="num">29.3914</td><td class="num gap-ok">-5%</td></tr><tr class="grp"><td colspan="4">Tactile — perceptual</td></tr><tr><td class="mname">LPIPS · left <span class="arrow">↓</span></td><td class="num">0.1612</td><td class="num">0.0856</td><td class="num gap-ok">-47%</td></tr><tr><td class="mname">LPIPS · right <span class="arrow">↓</span></td><td class="num">0.2013</td><td class="num">0.0667</td><td class="num gap-ok">-67%</td></tr><tr class="grp"><td colspan="4">Tactile — contact / physics</td></tr><tr><td class="mname">mask IoU (τ8) <span class="arrow">↑</span></td><td class="num">0.2755</td><td class="num">0.1542</td><td class="num gap-bad">+44%</td></tr><tr><td class="mname">contact MSE <span class="arrow">↓</span></td><td class="num">144.7365</td><td class="num">33.4357</td><td class="num gap-ok">-77%</td></tr><tr><td class="mname">onset err <span class="arrow">↓</span></td><td class="num">27.4073</td><td class="num">0.0000</td><td class="num gap-ok">-100%</td></tr><tr><td class="mname">intensity spearman <span class="arrow">↑</span></td><td class="num">0.3281</td><td class="num">0.5312</td><td class="num gap-ok">-62%</td></tr></tbody></table></div> | |
| <div class="col-v"><h3>Short-horizon rollouts</h3><div class="qual"><div class="seg"><button class="seg-b active" data-t="train">Train set</button><button class="seg-b" data-t="val">Val set</button></div><div class="pane" data-split="train"><div class="grid"><div class="scard"><div class="scard-h">sample 000</div><figure class="vid"><video src="media/causal/train/sample_000/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/causal/train/sample_000/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/causal/train/sample_000/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div><div class="scard"><div class="scard-h">sample 001</div><figure class="vid"><video src="media/causal/train/sample_001/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/causal/train/sample_001/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/causal/train/sample_001/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div><div class="scard"><div class="scard-h">sample 002</div><figure class="vid"><video src="media/causal/train/sample_002/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/causal/train/sample_002/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/causal/train/sample_002/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div><div class="scard"><div class="scard-h">sample 003</div><figure class="vid"><video src="media/causal/train/sample_003/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/causal/train/sample_003/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/causal/train/sample_003/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div></div></div><div class="pane" data-split="val"><div class="grid"><div class="scard"><div class="scard-h">sample 000</div><figure class="vid"><video src="media/causal/val/sample_000/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/causal/val/sample_000/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/causal/val/sample_000/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div><div class="scard"><div class="scard-h">sample 001</div><figure class="vid"><video src="media/causal/val/sample_001/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/causal/val/sample_001/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/causal/val/sample_001/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div><div class="scard"><div class="scard-h">sample 002</div><figure class="vid"><video src="media/causal/val/sample_002/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/causal/val/sample_002/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/causal/val/sample_002/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div><div class="scard"><div class="scard-h">sample 003</div><figure class="vid"><video src="media/causal/val/sample_003/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/causal/val/sample_003/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/causal/val/sample_003/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div></div></div></div></div> | |
| </div></section><section class="run" id="contact"> | |
| <div class="run-head"><h2>v3 · contact-aware</h2><p>Adds the contact-aware tactile aux loss (x0-space, alpha_bar-weighted) on top of v3.</p></div> | |
| <div class="cols"> | |
| <div class="col-q"><h3>Overfit test — train vs val</h3><table class="qt"><thead><tr><th>metric</th><th>train (n=16)</th><th>val (n=16)</th><th>gap</th></tr></thead><tbody><tr class="grp"><td colspan="4">Visual — middle view</td></tr><tr><td class="mname">LPIPS <span class="arrow">↓</span></td><td class="num">0.0659</td><td class="num">0.0508</td><td class="num gap-ok">-23%</td></tr><tr><td class="mname">SSIM <span class="arrow">↑</span></td><td class="num">0.8553</td><td class="num">0.8887</td><td class="num gap-ok">-4%</td></tr><tr><td class="mname">PSNR <span class="arrow">↑</span></td><td class="num">26.7893</td><td class="num">28.5571</td><td class="num gap-ok">-7%</td></tr><tr class="grp"><td colspan="4">Tactile — perceptual</td></tr><tr><td class="mname">LPIPS · left <span class="arrow">↓</span></td><td class="num">0.1350</td><td class="num">0.0735</td><td class="num gap-ok">-46%</td></tr><tr><td class="mname">LPIPS · right <span class="arrow">↓</span></td><td class="num">0.1952</td><td class="num">0.0639</td><td class="num gap-ok">-67%</td></tr><tr class="grp"><td colspan="4">Tactile — contact / physics</td></tr><tr><td class="mname">mask IoU (τ8) <span class="arrow">↑</span></td><td class="num">0.3481</td><td class="num">0.2051</td><td class="num gap-bad">+41%</td></tr><tr><td class="mname">contact MSE <span class="arrow">↓</span></td><td class="num">130.1456</td><td class="num">32.8804</td><td class="num gap-ok">-75%</td></tr><tr><td class="mname">onset err <span class="arrow">↓</span></td><td class="num">0.0000</td><td class="num">0.3817</td><td class="num ">—</td></tr><tr><td class="mname">intensity spearman <span class="arrow">↑</span></td><td class="num">0.4219</td><td class="num">0.5844</td><td class="num gap-ok">-39%</td></tr></tbody></table></div> | |
| <div class="col-v"><h3>Short-horizon rollouts</h3><div class="qual"><div class="seg"><button class="seg-b active" data-t="train">Train set</button><button class="seg-b" data-t="val">Val set</button></div><div class="pane" data-split="train"><div class="grid"><div class="scard"><div class="scard-h">sample 000</div><figure class="vid"><video src="media/contact/train/sample_000/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/contact/train/sample_000/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/contact/train/sample_000/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div><div class="scard"><div class="scard-h">sample 001</div><figure class="vid"><video src="media/contact/train/sample_001/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/contact/train/sample_001/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/contact/train/sample_001/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div><div class="scard"><div class="scard-h">sample 002</div><figure class="vid"><video src="media/contact/train/sample_002/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/contact/train/sample_002/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/contact/train/sample_002/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div><div class="scard"><div class="scard-h">sample 003</div><figure class="vid"><video src="media/contact/train/sample_003/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/contact/train/sample_003/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/contact/train/sample_003/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div></div></div><div class="pane" data-split="val"><div class="grid"><div class="scard"><div class="scard-h">sample 000</div><figure class="vid"><video src="media/contact/val/sample_000/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/contact/val/sample_000/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/contact/val/sample_000/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div><div class="scard"><div class="scard-h">sample 001</div><figure class="vid"><video src="media/contact/val/sample_001/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/contact/val/sample_001/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/contact/val/sample_001/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div><div class="scard"><div class="scard-h">sample 002</div><figure class="vid"><video src="media/contact/val/sample_002/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/contact/val/sample_002/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/contact/val/sample_002/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div><div class="scard"><div class="scard-h">sample 003</div><figure class="vid"><video src="media/contact/val/sample_003/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/contact/val/sample_003/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/contact/val/sample_003/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div></div></div></div></div> | |
| </div></section> | |
| <div class="band band-h"><div class="t">Part 2</div><h2 class="big">Cross-architecture — causal vs noncausal</h2> | |
| <p>The same causal-backbone swap under three modality configurations. Val metrics; the winning backbone per metric is highlighted.</p></div> | |
| <section class="run xa" id="x-vt"> | |
| <div class="run-head"><h2>Full V + T — causal vs noncausal</h2><p>Three views + two tactile sensors. Swapping the backbone from bidirectional (v3) to causal.</p></div> | |
| <div class="xwrap"> | |
| <div class="xtab"><h3>noncausal vs causal (val)</h3><table class="qt"><thead><tr><th>metric (val)</th><th>noncausal</th><th>causal</th></tr></thead><tbody><tr class="grp"><td colspan="3">Visual — middle view</td></tr><tr><td class="mname">LPIPS <span class="arrow">↓</span></td><td class="num ">0.0827</td><td class="num win">0.0454</td></tr><tr><td class="mname">SSIM <span class="arrow">↑</span></td><td class="num ">0.8529</td><td class="num win">0.9016</td></tr><tr><td class="mname">PSNR <span class="arrow">↑</span></td><td class="num ">26.5329</td><td class="num win">29.3914</td></tr><tr class="grp"><td colspan="3">Tactile</td></tr><tr><td class="mname">LPIPS · left <span class="arrow">↓</span></td><td class="num win">0.0839</td><td class="num ">0.0856</td></tr><tr><td class="mname">LPIPS · right <span class="arrow">↓</span></td><td class="num win">0.0661</td><td class="num ">0.0667</td></tr><tr><td class="mname">mask IoU (τ8) <span class="arrow">↑</span></td><td class="num win">0.1712</td><td class="num ">0.1542</td></tr><tr><td class="mname">contact MSE <span class="arrow">↓</span></td><td class="num ">34.5099</td><td class="num win">33.4357</td></tr><tr><td class="mname">onset err ms <span class="arrow">↓</span></td><td class="num ">104.3420</td><td class="num win">0.0000</td></tr></tbody></table></div> | |
| <div class="xvid"><h3>Rollouts — noncausal | causal</h3><div class="qual"><div class="seg"><button class="seg-b active" data-t="val">Val set</button><button class="seg-b" data-t="train">Train set</button></div><div class="xgal"><div class="xcol"><div class="xcol-h">noncausal · val_loss 0.1234</div><div class="pane show" data-split="val"><div class="cgrid"><div class="scard"><div class="scard-h">sample 000</div><figure class="vid"><video src="media/v3/val/sample_000/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/v3/val/sample_000/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/v3/val/sample_000/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div><div class="scard"><div class="scard-h">sample 001</div><figure class="vid"><video src="media/v3/val/sample_001/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/v3/val/sample_001/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/v3/val/sample_001/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div><div class="scard"><div class="scard-h">sample 002</div><figure class="vid"><video src="media/v3/val/sample_002/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/v3/val/sample_002/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/v3/val/sample_002/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div><div class="scard"><div class="scard-h">sample 003</div><figure class="vid"><video src="media/v3/val/sample_003/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/v3/val/sample_003/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/v3/val/sample_003/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div></div></div><div class="pane" data-split="train"><div class="cgrid"><div class="scard"><div class="scard-h">sample 000</div><figure class="vid"><video src="media/v3/train/sample_000/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/v3/train/sample_000/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/v3/train/sample_000/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div><div class="scard"><div class="scard-h">sample 001</div><figure class="vid"><video src="media/v3/train/sample_001/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/v3/train/sample_001/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/v3/train/sample_001/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div><div class="scard"><div class="scard-h">sample 002</div><figure class="vid"><video src="media/v3/train/sample_002/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/v3/train/sample_002/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/v3/train/sample_002/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div><div class="scard"><div class="scard-h">sample 003</div><figure class="vid"><video src="media/v3/train/sample_003/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/v3/train/sample_003/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/v3/train/sample_003/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div></div></div></div><div class="xcol"><div class="xcol-h">causal · val_loss 0.1647</div><div class="pane show" data-split="val"><div class="cgrid"><div class="scard"><div class="scard-h">sample 000</div><figure class="vid"><video src="media/causal/val/sample_000/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/causal/val/sample_000/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/causal/val/sample_000/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div><div class="scard"><div class="scard-h">sample 001</div><figure class="vid"><video src="media/causal/val/sample_001/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/causal/val/sample_001/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/causal/val/sample_001/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div><div class="scard"><div class="scard-h">sample 002</div><figure class="vid"><video src="media/causal/val/sample_002/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/causal/val/sample_002/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/causal/val/sample_002/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div><div class="scard"><div class="scard-h">sample 003</div><figure class="vid"><video src="media/causal/val/sample_003/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/causal/val/sample_003/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/causal/val/sample_003/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div></div></div><div class="pane" data-split="train"><div class="cgrid"><div class="scard"><div class="scard-h">sample 000</div><figure class="vid"><video src="media/causal/train/sample_000/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/causal/train/sample_000/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/causal/train/sample_000/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div><div class="scard"><div class="scard-h">sample 001</div><figure class="vid"><video src="media/causal/train/sample_001/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/causal/train/sample_001/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/causal/train/sample_001/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div><div class="scard"><div class="scard-h">sample 002</div><figure class="vid"><video src="media/causal/train/sample_002/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/causal/train/sample_002/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/causal/train/sample_002/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div><div class="scard"><div class="scard-h">sample 003</div><figure class="vid"><video src="media/causal/train/sample_003/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/causal/train/sample_003/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/causal/train/sample_003/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div></div></div></div></div></div></div> | |
| </div></section><section class="run xa" id="x-vision"> | |
| <div class="run-head"><h2>Vision-only — causal vs noncausal</h2><p>Tactile stream removed — isolates how the causal backbone affects pure visual prediction.</p></div> | |
| <div class="xwrap"> | |
| <div class="xtab"><h3>noncausal vs causal (val)</h3><table class="qt"><thead><tr><th>metric (val)</th><th>noncausal</th><th>causal</th></tr></thead><tbody><tr class="grp"><td colspan="3">Visual — middle view</td></tr><tr><td class="mname">LPIPS <span class="arrow">↓</span></td><td class="num ">0.0687</td><td class="num win">0.0584</td></tr><tr><td class="mname">SSIM <span class="arrow">↑</span></td><td class="num ">0.8555</td><td class="num win">0.8767</td></tr><tr><td class="mname">PSNR <span class="arrow">↑</span></td><td class="num ">26.5801</td><td class="num win">27.8866</td></tr></tbody></table></div> | |
| <div class="xvid"><h3>Rollouts — noncausal | causal</h3><div class="qual"><div class="seg"><button class="seg-b active" data-t="val">Val set</button><button class="seg-b" data-t="train">Train set</button></div><div class="xgal"><div class="xcol"><div class="xcol-h">noncausal · val_loss 0.0297</div><div class="pane show" data-split="val"><div class="cgrid"><div class="scard"><div class="scard-h">sample 000</div><figure class="vid"><video src="media/vo_noncausal/val/sample_000/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div><div class="scard"><div class="scard-h">sample 001</div><figure class="vid"><video src="media/vo_noncausal/val/sample_001/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div><div class="scard"><div class="scard-h">sample 002</div><figure class="vid"><video src="media/vo_noncausal/val/sample_002/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div><div class="scard"><div class="scard-h">sample 003</div><figure class="vid"><video src="media/vo_noncausal/val/sample_003/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div></div></div><div class="pane" data-split="train"><div class="cgrid"><div class="scard"><div class="scard-h">sample 000</div><figure class="vid"><video src="media/vo_noncausal/train/sample_000/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div><div class="scard"><div class="scard-h">sample 001</div><figure class="vid"><video src="media/vo_noncausal/train/sample_001/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div><div class="scard"><div class="scard-h">sample 002</div><figure class="vid"><video src="media/vo_noncausal/train/sample_002/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div><div class="scard"><div class="scard-h">sample 003</div><figure class="vid"><video src="media/vo_noncausal/train/sample_003/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div></div></div></div><div class="xcol"><div class="xcol-h">causal · val_loss 0.0347</div><div class="pane show" data-split="val"><div class="cgrid"><div class="scard"><div class="scard-h">sample 000</div><figure class="vid"><video src="media/vo_causal/val/sample_000/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div><div class="scard"><div class="scard-h">sample 001</div><figure class="vid"><video src="media/vo_causal/val/sample_001/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div><div class="scard"><div class="scard-h">sample 002</div><figure class="vid"><video src="media/vo_causal/val/sample_002/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div><div class="scard"><div class="scard-h">sample 003</div><figure class="vid"><video src="media/vo_causal/val/sample_003/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div></div></div><div class="pane" data-split="train"><div class="cgrid"><div class="scard"><div class="scard-h">sample 000</div><figure class="vid"><video src="media/vo_causal/train/sample_000/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div><div class="scard"><div class="scard-h">sample 001</div><figure class="vid"><video src="media/vo_causal/train/sample_001/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div><div class="scard"><div class="scard-h">sample 002</div><figure class="vid"><video src="media/vo_causal/train/sample_002/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div><div class="scard"><div class="scard-h">sample 003</div><figure class="vid"><video src="media/vo_causal/train/sample_003/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div></div></div></div></div></div></div> | |
| </div></section><section class="run xa" id="x-tactile"> | |
| <div class="run-head"><h2>Tactile-only — causal vs noncausal</h2><p>Visual stream removed — isolates the causal backbone's effect on tactile / contact prediction.</p></div> | |
| <div class="xwrap"> | |
| <div class="xtab"><h3>noncausal vs causal (val)</h3><table class="qt"><thead><tr><th>metric (val)</th><th>noncausal</th><th>causal</th></tr></thead><tbody><tr class="grp"><td colspan="3">Tactile</td></tr><tr><td class="mname">LPIPS · left <span class="arrow">↓</span></td><td class="num win">0.0790</td><td class="num ">0.0790</td></tr><tr><td class="mname">LPIPS · right <span class="arrow">↓</span></td><td class="num win">0.0667</td><td class="num ">0.0676</td></tr><tr><td class="mname">mask IoU (τ8) <span class="arrow">↑</span></td><td class="num win">0.1748</td><td class="num ">0.1674</td></tr><tr><td class="mname">contact MSE <span class="arrow">↓</span></td><td class="num win">34.2550</td><td class="num ">34.4423</td></tr><tr><td class="mname">onset err ms <span class="arrow">↓</span></td><td class="num win">0.0000</td><td class="num ">87.2179</td></tr></tbody></table></div> | |
| <div class="xvid"><h3>Rollouts — noncausal | causal</h3><div class="qual"><div class="seg"><button class="seg-b active" data-t="val">Val set</button><button class="seg-b" data-t="train">Train set</button></div><div class="xgal"><div class="xcol"><div class="xcol-h">noncausal · val_loss 0.1084</div><div class="pane show" data-split="val"><div class="cgrid"><div class="scard"><div class="scard-h">sample 000</div><figure class="vid"><video src="media/to_noncausal/val/sample_000/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/to_noncausal/val/sample_000/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div><div class="scard"><div class="scard-h">sample 001</div><figure class="vid"><video src="media/to_noncausal/val/sample_001/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/to_noncausal/val/sample_001/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div><div class="scard"><div class="scard-h">sample 002</div><figure class="vid"><video src="media/to_noncausal/val/sample_002/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/to_noncausal/val/sample_002/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div><div class="scard"><div class="scard-h">sample 003</div><figure class="vid"><video src="media/to_noncausal/val/sample_003/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/to_noncausal/val/sample_003/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div></div></div><div class="pane" data-split="train"><div class="cgrid"><div class="scard"><div class="scard-h">sample 000</div><figure class="vid"><video src="media/to_noncausal/train/sample_000/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/to_noncausal/train/sample_000/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div><div class="scard"><div class="scard-h">sample 001</div><figure class="vid"><video src="media/to_noncausal/train/sample_001/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/to_noncausal/train/sample_001/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div><div class="scard"><div class="scard-h">sample 002</div><figure class="vid"><video src="media/to_noncausal/train/sample_002/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/to_noncausal/train/sample_002/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div><div class="scard"><div class="scard-h">sample 003</div><figure class="vid"><video src="media/to_noncausal/train/sample_003/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/to_noncausal/train/sample_003/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div></div></div></div><div class="xcol"><div class="xcol-h">causal · val_loss 0.1208</div><div class="pane show" data-split="val"><div class="cgrid"><div class="scard"><div class="scard-h">sample 000</div><figure class="vid"><video src="media/to_causal/val/sample_000/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/to_causal/val/sample_000/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div><div class="scard"><div class="scard-h">sample 001</div><figure class="vid"><video src="media/to_causal/val/sample_001/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/to_causal/val/sample_001/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div><div class="scard"><div class="scard-h">sample 002</div><figure class="vid"><video src="media/to_causal/val/sample_002/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/to_causal/val/sample_002/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div><div class="scard"><div class="scard-h">sample 003</div><figure class="vid"><video src="media/to_causal/val/sample_003/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/to_causal/val/sample_003/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div></div></div><div class="pane" data-split="train"><div class="cgrid"><div class="scard"><div class="scard-h">sample 000</div><figure class="vid"><video src="media/to_causal/train/sample_000/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/to_causal/train/sample_000/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div><div class="scard"><div class="scard-h">sample 001</div><figure class="vid"><video src="media/to_causal/train/sample_001/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/to_causal/train/sample_001/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div><div class="scard"><div class="scard-h">sample 002</div><figure class="vid"><video src="media/to_causal/train/sample_002/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/to_causal/train/sample_002/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div><div class="scard"><div class="scard-h">sample 003</div><figure class="vid"><video src="media/to_causal/train/sample_003/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/to_causal/train/sample_003/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div></div></div></div></div></div></div> | |
| </div></section> | |
| <div class="band band-h"><div class="t">Part 3</div><h2 class="big">Tactile reference frame — fixed vs random</h2> | |
| <p>Does sampling a random no-contact reference (vs one fixed p01 anchor) fix the tactile train/val divergence? The gap collapses and visual val LPIPS roughly halves — but held-out tactile contact quality (val IoU / spearman) stays flat: the pathology is removed, the data ceiling remains. The V→T aux head adds nothing.</p></div> | |
| <section class="run" id="ref-v3"> | |
| <div class="run-head"><h2>fixed p01 ref · baseline</h2><p>Tactile delta measured against ONE fixed no-contact anchor per episode. The suspected-overfit baseline (train↓ / val plateau).</p></div> | |
| <div class="cols"> | |
| <div class="col-q"><h3>Overfit test — train vs val</h3><table class="qt"><thead><tr><th>metric</th><th>train (n=16)</th><th>val (n=16)</th><th>gap</th></tr></thead><tbody><tr class="grp"><td colspan="4">Visual — middle view</td></tr><tr><td class="mname">LPIPS <span class="arrow">↓</span></td><td class="num">0.0955</td><td class="num">0.0827</td><td class="num gap-ok">-13%</td></tr><tr><td class="mname">SSIM <span class="arrow">↑</span></td><td class="num">0.8190</td><td class="num">0.8529</td><td class="num gap-ok">-4%</td></tr><tr><td class="mname">PSNR <span class="arrow">↑</span></td><td class="num">25.3119</td><td class="num">26.5329</td><td class="num gap-ok">-5%</td></tr><tr class="grp"><td colspan="4">Tactile — perceptual</td></tr><tr><td class="mname">LPIPS · left <span class="arrow">↓</span></td><td class="num">0.1508</td><td class="num">0.0839</td><td class="num gap-ok">-44%</td></tr><tr><td class="mname">LPIPS · right <span class="arrow">↓</span></td><td class="num">0.1933</td><td class="num">0.0661</td><td class="num gap-ok">-66%</td></tr><tr class="grp"><td colspan="4">Tactile — contact / physics</td></tr><tr><td class="mname">mask IoU (τ8) <span class="arrow">↑</span></td><td class="num">0.3559</td><td class="num">0.1712</td><td class="num gap-bad">+52%</td></tr><tr><td class="mname">contact MSE <span class="arrow">↓</span></td><td class="num">131.7636</td><td class="num">34.5099</td><td class="num gap-ok">-74%</td></tr><tr><td class="mname">onset err <span class="arrow">↓</span></td><td class="num">0.0000</td><td class="num">104.3420</td><td class="num ">—</td></tr><tr><td class="mname">intensity spearman <span class="arrow">↑</span></td><td class="num">0.3031</td><td class="num">0.5875</td><td class="num gap-ok">-94%</td></tr></tbody></table></div> | |
| <div class="col-v"><h3>Short-horizon rollouts</h3><div class="qual"><div class="seg"><button class="seg-b active" data-t="train">Train set</button><button class="seg-b" data-t="val">Val set</button></div><div class="pane" data-split="train"><div class="grid"><div class="scard"><div class="scard-h">sample 000</div><figure class="vid"><video src="media/v3/train/sample_000/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/v3/train/sample_000/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/v3/train/sample_000/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div><div class="scard"><div class="scard-h">sample 001</div><figure class="vid"><video src="media/v3/train/sample_001/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/v3/train/sample_001/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/v3/train/sample_001/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div><div class="scard"><div class="scard-h">sample 002</div><figure class="vid"><video src="media/v3/train/sample_002/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/v3/train/sample_002/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/v3/train/sample_002/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div><div class="scard"><div class="scard-h">sample 003</div><figure class="vid"><video src="media/v3/train/sample_003/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/v3/train/sample_003/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/v3/train/sample_003/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div></div></div><div class="pane" data-split="val"><div class="grid"><div class="scard"><div class="scard-h">sample 000</div><figure class="vid"><video src="media/v3/val/sample_000/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/v3/val/sample_000/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/v3/val/sample_000/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div><div class="scard"><div class="scard-h">sample 001</div><figure class="vid"><video src="media/v3/val/sample_001/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/v3/val/sample_001/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/v3/val/sample_001/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div><div class="scard"><div class="scard-h">sample 002</div><figure class="vid"><video src="media/v3/val/sample_002/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/v3/val/sample_002/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/v3/val/sample_002/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div><div class="scard"><div class="scard-h">sample 003</div><figure class="vid"><video src="media/v3/val/sample_003/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/v3/val/sample_003/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/v3/val/sample_003/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div></div></div></div></div> | |
| </div></section><section class="run" id="ref-p01rand"> | |
| <div class="run-head"><h2>random no-contact ref</h2><p>A random pixel-labeled no-contact frame is sampled as the reference per window (train aug). Collapses the tactile train/val loss gap 1.39→1.09 and roughly halves visual val LPIPS.</p></div> | |
| <div class="cols"> | |
| <div class="col-q"><h3>Overfit test — train vs val</h3><table class="qt"><thead><tr><th>metric</th><th>train (n=16)</th><th>val (n=16)</th><th>gap</th></tr></thead><tbody><tr class="grp"><td colspan="4">Visual — middle view</td></tr><tr><td class="mname">LPIPS <span class="arrow">↓</span></td><td class="num">0.0395</td><td class="num">0.0419</td><td class="num gap-ok">+6%</td></tr><tr><td class="mname">SSIM <span class="arrow">↑</span></td><td class="num">0.9061</td><td class="num">0.9001</td><td class="num gap-ok">+1%</td></tr><tr><td class="mname">PSNR <span class="arrow">↑</span></td><td class="num">29.2115</td><td class="num">29.1317</td><td class="num gap-ok">+0%</td></tr><tr class="grp"><td colspan="4">Tactile — perceptual</td></tr><tr><td class="mname">LPIPS · left <span class="arrow">↓</span></td><td class="num">0.0839</td><td class="num">0.0813</td><td class="num gap-ok">-3%</td></tr><tr><td class="mname">LPIPS · right <span class="arrow">↓</span></td><td class="num">0.1151</td><td class="num">0.0698</td><td class="num gap-ok">-39%</td></tr><tr class="grp"><td colspan="4">Tactile — contact / physics</td></tr><tr><td class="mname">mask IoU (τ8) <span class="arrow">↑</span></td><td class="num">0.4778</td><td class="num">0.1734</td><td class="num gap-bad">+64%</td></tr><tr><td class="mname">contact MSE <span class="arrow">↓</span></td><td class="num">92.2412</td><td class="num">35.5656</td><td class="num gap-ok">-61%</td></tr><tr><td class="mname">onset err <span class="arrow">↓</span></td><td class="num">0.0000</td><td class="num">0.0000</td><td class="num ">—</td></tr><tr><td class="mname">intensity spearman <span class="arrow">↑</span></td><td class="num">0.3500</td><td class="num">0.5219</td><td class="num gap-ok">-49%</td></tr></tbody></table></div> | |
| <div class="col-v"><h3>Short-horizon rollouts</h3><div class="qual"><div class="seg"><button class="seg-b active" data-t="train">Train set</button><button class="seg-b" data-t="val">Val set</button></div><div class="pane" data-split="train"><div class="grid"><div class="scard"><div class="scard-h">sample 000</div><figure class="vid"><video src="media/p01rand/train/sample_000/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/p01rand/train/sample_000/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/p01rand/train/sample_000/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div><div class="scard"><div class="scard-h">sample 001</div><figure class="vid"><video src="media/p01rand/train/sample_001/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/p01rand/train/sample_001/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/p01rand/train/sample_001/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div><div class="scard"><div class="scard-h">sample 002</div><figure class="vid"><video src="media/p01rand/train/sample_002/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/p01rand/train/sample_002/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/p01rand/train/sample_002/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div><div class="scard"><div class="scard-h">sample 003</div><figure class="vid"><video src="media/p01rand/train/sample_003/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/p01rand/train/sample_003/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/p01rand/train/sample_003/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div></div></div><div class="pane" data-split="val"><div class="grid"><div class="scard"><div class="scard-h">sample 000</div><figure class="vid"><video src="media/p01rand/val/sample_000/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/p01rand/val/sample_000/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/p01rand/val/sample_000/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div><div class="scard"><div class="scard-h">sample 001</div><figure class="vid"><video src="media/p01rand/val/sample_001/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/p01rand/val/sample_001/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/p01rand/val/sample_001/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div><div class="scard"><div class="scard-h">sample 002</div><figure class="vid"><video src="media/p01rand/val/sample_002/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/p01rand/val/sample_002/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/p01rand/val/sample_002/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div><div class="scard"><div class="scard-h">sample 003</div><figure class="vid"><video src="media/p01rand/val/sample_003/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/p01rand/val/sample_003/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/p01rand/val/sample_003/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div></div></div></div></div> | |
| </div></section><section class="run" id="ref-p01rand_v2t"> | |
| <div class="run-head"><h2>random ref + V→T aux</h2><p>Same random reference plus the V→T auxiliary head (weight 0.5). Adds no gain — slightly worse tactile/visual than random-ref alone; V→T can be dropped.</p></div> | |
| <div class="cols"> | |
| <div class="col-q"><h3>Overfit test — train vs val</h3><table class="qt"><thead><tr><th>metric</th><th>train (n=16)</th><th>val (n=16)</th><th>gap</th></tr></thead><tbody><tr class="grp"><td colspan="4">Visual — middle view</td></tr><tr><td class="mname">LPIPS <span class="arrow">↓</span></td><td class="num">0.0473</td><td class="num">0.0460</td><td class="num gap-ok">-3%</td></tr><tr><td class="mname">SSIM <span class="arrow">↑</span></td><td class="num">0.8962</td><td class="num">0.8977</td><td class="num gap-ok">-0%</td></tr><tr><td class="mname">PSNR <span class="arrow">↑</span></td><td class="num">28.5951</td><td class="num">28.8901</td><td class="num gap-ok">-1%</td></tr><tr class="grp"><td colspan="4">Tactile — perceptual</td></tr><tr><td class="mname">LPIPS · left <span class="arrow">↓</span></td><td class="num">0.1010</td><td class="num">0.0765</td><td class="num gap-ok">-24%</td></tr><tr><td class="mname">LPIPS · right <span class="arrow">↓</span></td><td class="num">0.1582</td><td class="num">0.0687</td><td class="num gap-ok">-57%</td></tr><tr class="grp"><td colspan="4">Tactile — contact / physics</td></tr><tr><td class="mname">mask IoU (τ8) <span class="arrow">↑</span></td><td class="num">0.4096</td><td class="num">0.1762</td><td class="num gap-bad">+57%</td></tr><tr><td class="mname">contact MSE <span class="arrow">↓</span></td><td class="num">115.7422</td><td class="num">34.2311</td><td class="num gap-ok">-70%</td></tr><tr><td class="mname">onset err <span class="arrow">↓</span></td><td class="num">27.3989</td><td class="num">0.0000</td><td class="num gap-ok">-100%</td></tr><tr><td class="mname">intensity spearman <span class="arrow">↑</span></td><td class="num">0.3625</td><td class="num">0.5844</td><td class="num gap-ok">-61%</td></tr></tbody></table></div> | |
| <div class="col-v"><h3>Short-horizon rollouts</h3><div class="qual"><div class="seg"><button class="seg-b active" data-t="train">Train set</button><button class="seg-b" data-t="val">Val set</button></div><div class="pane" data-split="train"><div class="grid"><div class="scard"><div class="scard-h">sample 000</div><figure class="vid"><video src="media/p01rand_v2t/train/sample_000/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/p01rand_v2t/train/sample_000/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/p01rand_v2t/train/sample_000/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div><div class="scard"><div class="scard-h">sample 001</div><figure class="vid"><video src="media/p01rand_v2t/train/sample_001/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/p01rand_v2t/train/sample_001/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/p01rand_v2t/train/sample_001/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div><div class="scard"><div class="scard-h">sample 002</div><figure class="vid"><video src="media/p01rand_v2t/train/sample_002/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/p01rand_v2t/train/sample_002/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/p01rand_v2t/train/sample_002/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div><div class="scard"><div class="scard-h">sample 003</div><figure class="vid"><video src="media/p01rand_v2t/train/sample_003/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/p01rand_v2t/train/sample_003/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/p01rand_v2t/train/sample_003/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div></div></div><div class="pane" data-split="val"><div class="grid"><div class="scard"><div class="scard-h">sample 000</div><figure class="vid"><video src="media/p01rand_v2t/val/sample_000/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/p01rand_v2t/val/sample_000/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/p01rand_v2t/val/sample_000/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div><div class="scard"><div class="scard-h">sample 001</div><figure class="vid"><video src="media/p01rand_v2t/val/sample_001/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/p01rand_v2t/val/sample_001/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/p01rand_v2t/val/sample_001/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div><div class="scard"><div class="scard-h">sample 002</div><figure class="vid"><video src="media/p01rand_v2t/val/sample_002/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/p01rand_v2t/val/sample_002/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/p01rand_v2t/val/sample_002/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div><div class="scard"><div class="scard-h">sample 003</div><figure class="vid"><video src="media/p01rand_v2t/val/sample_003/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/p01rand_v2t/val/sample_003/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/p01rand_v2t/val/sample_003/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div></div></div></div></div> | |
| </div></section> | |
| <div class="band band-h"><div class="t">Part 4</div><h2 class="big">Reference refinements — clean bank & difference-image</h2> | |
| <p>Two principled attempts to push past the random-reference result: (1) guarantee the reference latent is clean via a replicate-16 bank; (2) target the encoded pixel-difference instead of the latent-difference. Neither beats plain random-reference — clean-bank is a wash (pool contamination was negligible), and difference-image is worst (its decode+ref reconstruction adds error, even though the model predicts the diff latent near-perfectly). The tactile ceiling is data + tokenizer fidelity, not reference cleanliness or diff-space.</p></div> | |
| <section class="run" id="rf-p01rand"> | |
| <div class="run-head"><h2>random ref (in-video)</h2><p>The winner so far: random in-video no-contact reference, difference-LATENT target. Baseline for the two refinements.</p></div> | |
| <div class="cols"> | |
| <div class="col-q"><h3>Overfit test — train vs val</h3><table class="qt"><thead><tr><th>metric</th><th>train (n=16)</th><th>val (n=16)</th><th>gap</th></tr></thead><tbody><tr class="grp"><td colspan="4">Visual — middle view</td></tr><tr><td class="mname">LPIPS <span class="arrow">↓</span></td><td class="num">0.0395</td><td class="num">0.0419</td><td class="num gap-ok">+6%</td></tr><tr><td class="mname">SSIM <span class="arrow">↑</span></td><td class="num">0.9061</td><td class="num">0.9001</td><td class="num gap-ok">+1%</td></tr><tr><td class="mname">PSNR <span class="arrow">↑</span></td><td class="num">29.2115</td><td class="num">29.1317</td><td class="num gap-ok">+0%</td></tr><tr class="grp"><td colspan="4">Tactile — perceptual</td></tr><tr><td class="mname">LPIPS · left <span class="arrow">↓</span></td><td class="num">0.0839</td><td class="num">0.0813</td><td class="num gap-ok">-3%</td></tr><tr><td class="mname">LPIPS · right <span class="arrow">↓</span></td><td class="num">0.1151</td><td class="num">0.0698</td><td class="num gap-ok">-39%</td></tr><tr class="grp"><td colspan="4">Tactile — contact / physics</td></tr><tr><td class="mname">mask IoU (τ8) <span class="arrow">↑</span></td><td class="num">0.4778</td><td class="num">0.1734</td><td class="num gap-bad">+64%</td></tr><tr><td class="mname">contact MSE <span class="arrow">↓</span></td><td class="num">92.2412</td><td class="num">35.5656</td><td class="num gap-ok">-61%</td></tr><tr><td class="mname">onset err <span class="arrow">↓</span></td><td class="num">0.0000</td><td class="num">0.0000</td><td class="num ">—</td></tr><tr><td class="mname">intensity spearman <span class="arrow">↑</span></td><td class="num">0.3500</td><td class="num">0.5219</td><td class="num gap-ok">-49%</td></tr></tbody></table></div> | |
| <div class="col-v"><h3>Short-horizon rollouts</h3><div class="qual"><div class="seg"><button class="seg-b active" data-t="train">Train set</button><button class="seg-b" data-t="val">Val set</button></div><div class="pane" data-split="train"><div class="grid"><div class="scard"><div class="scard-h">sample 000</div><figure class="vid"><video src="media/p01rand/train/sample_000/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/p01rand/train/sample_000/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/p01rand/train/sample_000/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div><div class="scard"><div class="scard-h">sample 001</div><figure class="vid"><video src="media/p01rand/train/sample_001/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/p01rand/train/sample_001/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/p01rand/train/sample_001/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div><div class="scard"><div class="scard-h">sample 002</div><figure class="vid"><video src="media/p01rand/train/sample_002/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/p01rand/train/sample_002/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/p01rand/train/sample_002/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div><div class="scard"><div class="scard-h">sample 003</div><figure class="vid"><video src="media/p01rand/train/sample_003/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/p01rand/train/sample_003/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/p01rand/train/sample_003/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div></div></div><div class="pane" data-split="val"><div class="grid"><div class="scard"><div class="scard-h">sample 000</div><figure class="vid"><video src="media/p01rand/val/sample_000/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/p01rand/val/sample_000/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/p01rand/val/sample_000/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div><div class="scard"><div class="scard-h">sample 001</div><figure class="vid"><video src="media/p01rand/val/sample_001/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/p01rand/val/sample_001/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/p01rand/val/sample_001/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div><div class="scard"><div class="scard-h">sample 002</div><figure class="vid"><video src="media/p01rand/val/sample_002/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/p01rand/val/sample_002/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/p01rand/val/sample_002/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div><div class="scard"><div class="scard-h">sample 003</div><figure class="vid"><video src="media/p01rand/val/sample_003/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/p01rand/val/sample_003/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/p01rand/val/sample_003/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div></div></div></div></div> | |
| </div></section><section class="run" id="rf-difflat"> | |
| <div class="run-head"><h2>clean reference bank</h2><p>Guarantee the reference latent is clean via a replicate-16 bank (no in-video ti≥1 contamination). No gain — decoded LPIPS slightly worse, contact IoU tied: pool contamination was negligible in practice.</p></div> | |
| <div class="cols"> | |
| <div class="col-q"><h3>Overfit test — train vs val</h3><table class="qt"><thead><tr><th>metric</th><th>train (n=16)</th><th>val (n=16)</th><th>gap</th></tr></thead><tbody><tr class="grp"><td colspan="4">Visual — middle view</td></tr><tr><td class="mname">LPIPS <span class="arrow">↓</span></td><td class="num">0.0476</td><td class="num">0.0433</td><td class="num gap-ok">-9%</td></tr><tr><td class="mname">SSIM <span class="arrow">↑</span></td><td class="num">0.8970</td><td class="num">0.9040</td><td class="num gap-ok">-1%</td></tr><tr><td class="mname">PSNR <span class="arrow">↑</span></td><td class="num">28.8151</td><td class="num">29.3747</td><td class="num gap-ok">-2%</td></tr><tr class="grp"><td colspan="4">Tactile — perceptual</td></tr><tr><td class="mname">LPIPS · left <span class="arrow">↓</span></td><td class="num">0.1007</td><td class="num">0.0876</td><td class="num gap-ok">-13%</td></tr><tr><td class="mname">LPIPS · right <span class="arrow">↓</span></td><td class="num">0.1427</td><td class="num">0.0743</td><td class="num gap-ok">-48%</td></tr><tr class="grp"><td colspan="4">Tactile — contact / physics</td></tr><tr><td class="mname">mask IoU (τ8) <span class="arrow">↑</span></td><td class="num">0.4012</td><td class="num">0.1763</td><td class="num gap-bad">+56%</td></tr><tr><td class="mname">contact MSE <span class="arrow">↓</span></td><td class="num">122.4160</td><td class="num">35.8125</td><td class="num gap-ok">-71%</td></tr><tr><td class="mname">onset err <span class="arrow">↓</span></td><td class="num">0.0000</td><td class="num">51.4189</td><td class="num ">—</td></tr><tr><td class="mname">intensity spearman <span class="arrow">↑</span></td><td class="num">0.3344</td><td class="num">0.4750</td><td class="num gap-ok">-42%</td></tr></tbody></table></div> | |
| <div class="col-v"><h3>Short-horizon rollouts</h3><div class="qual"><div class="seg"><button class="seg-b active" data-t="train">Train set</button><button class="seg-b" data-t="val">Val set</button></div><div class="pane" data-split="train"><div class="grid"><div class="scard"><div class="scard-h">sample 000</div><figure class="vid"><video src="media/difflat/train/sample_000/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/difflat/train/sample_000/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/difflat/train/sample_000/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div><div class="scard"><div class="scard-h">sample 001</div><figure class="vid"><video src="media/difflat/train/sample_001/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/difflat/train/sample_001/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/difflat/train/sample_001/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div><div class="scard"><div class="scard-h">sample 002</div><figure class="vid"><video src="media/difflat/train/sample_002/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/difflat/train/sample_002/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/difflat/train/sample_002/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div><div class="scard"><div class="scard-h">sample 003</div><figure class="vid"><video src="media/difflat/train/sample_003/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/difflat/train/sample_003/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/difflat/train/sample_003/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div></div></div><div class="pane" data-split="val"><div class="grid"><div class="scard"><div class="scard-h">sample 000</div><figure class="vid"><video src="media/difflat/val/sample_000/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/difflat/val/sample_000/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/difflat/val/sample_000/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div><div class="scard"><div class="scard-h">sample 001</div><figure class="vid"><video src="media/difflat/val/sample_001/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/difflat/val/sample_001/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/difflat/val/sample_001/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div><div class="scard"><div class="scard-h">sample 002</div><figure class="vid"><video src="media/difflat/val/sample_002/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/difflat/val/sample_002/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/difflat/val/sample_002/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div><div class="scard"><div class="scard-h">sample 003</div><figure class="vid"><video src="media/difflat/val/sample_003/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/difflat/val/sample_003/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/difflat/val/sample_003/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div></div></div></div></div> | |
| </div></section><section class="run" id="rf-diffimg"> | |
| <div class="run-head"><h2>difference image</h2><p>Target = encode((tac−ref)/255) on the fly; reconstruct tac ≈ decode(pred)+ref. The model predicts the diff latent near-perfectly, but the decode+ref roundtrip adds error → WORST decoded quality. (Its latent contact metrics are in diff-space, not comparable.)</p></div> | |
| <div class="cols"> | |
| <div class="col-q"><h3>Overfit test — train vs val</h3><table class="qt"><thead><tr><th>metric</th><th>train (n=16)</th><th>val (n=16)</th><th>gap</th></tr></thead><tbody><tr class="grp"><td colspan="4">Visual — middle view</td></tr><tr><td class="mname">LPIPS <span class="arrow">↓</span></td><td class="num">0.0505</td><td class="num">0.0453</td><td class="num gap-ok">-10%</td></tr><tr><td class="mname">SSIM <span class="arrow">↑</span></td><td class="num">0.8939</td><td class="num">0.8965</td><td class="num gap-ok">-0%</td></tr><tr><td class="mname">PSNR <span class="arrow">↑</span></td><td class="num">28.7100</td><td class="num">28.8675</td><td class="num gap-ok">-1%</td></tr><tr class="grp"><td colspan="4">Tactile — perceptual</td></tr><tr><td class="mname">LPIPS · left <span class="arrow">↓</span></td><td class="num">0.1271</td><td class="num">0.0928</td><td class="num gap-ok">-27%</td></tr><tr><td class="mname">LPIPS · right <span class="arrow">↓</span></td><td class="num">0.1670</td><td class="num">0.0779</td><td class="num gap-ok">-53%</td></tr><tr class="grp"><td colspan="4">Tactile — contact / physics</td></tr><tr><td class="mname">mask IoU (τ8) <span class="arrow">↑</span></td><td class="num">0.2804</td><td class="num">0.0672</td><td class="num gap-bad">+76%</td></tr><tr><td class="mname">contact MSE <span class="arrow">↓</span></td><td class="num">149.4884</td><td class="num">46.5032</td><td class="num gap-ok">-69%</td></tr><tr><td class="mname">onset err <span class="arrow">↓</span></td><td class="num">0.0000</td><td class="num">—</td><td class="num ">—</td></tr><tr><td class="mname">intensity spearman <span class="arrow">↑</span></td><td class="num">0.2656</td><td class="num">0.5062</td><td class="num gap-ok">-91%</td></tr></tbody></table></div> | |
| <div class="col-v"><h3>Short-horizon rollouts</h3><div class="qual"><div class="seg"><button class="seg-b active" data-t="train">Train set</button><button class="seg-b" data-t="val">Val set</button></div><div class="pane" data-split="train"><div class="grid"><div class="scard"><div class="scard-h">sample 000</div><figure class="vid"><video src="media/diffimg/train/sample_000/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/diffimg/train/sample_000/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/diffimg/train/sample_000/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div><div class="scard"><div class="scard-h">sample 001</div><figure class="vid"><video src="media/diffimg/train/sample_001/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/diffimg/train/sample_001/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/diffimg/train/sample_001/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div><div class="scard"><div class="scard-h">sample 002</div><figure class="vid"><video src="media/diffimg/train/sample_002/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/diffimg/train/sample_002/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/diffimg/train/sample_002/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div><div class="scard"><div class="scard-h">sample 003</div><figure class="vid"><video src="media/diffimg/train/sample_003/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/diffimg/train/sample_003/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/diffimg/train/sample_003/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div></div></div><div class="pane" data-split="val"><div class="grid"><div class="scard"><div class="scard-h">sample 000</div><figure class="vid"><video src="media/diffimg/val/sample_000/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/diffimg/val/sample_000/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/diffimg/val/sample_000/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div><div class="scard"><div class="scard-h">sample 001</div><figure class="vid"><video src="media/diffimg/val/sample_001/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/diffimg/val/sample_001/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/diffimg/val/sample_001/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div><div class="scard"><div class="scard-h">sample 002</div><figure class="vid"><video src="media/diffimg/val/sample_002/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/diffimg/val/sample_002/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/diffimg/val/sample_002/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div><div class="scard"><div class="scard-h">sample 003</div><figure class="vid"><video src="media/diffimg/val/sample_003/view.mp4" muted playsinline preload="auto" data-lead="1"></video><figcaption>middle view <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/diffimg/val/sample_003/tl.mp4" muted playsinline preload="auto"></video><figcaption>tactile · left <span class="gtp">GT · pred</span></figcaption></figure><figure class="vid"><video src="media/diffimg/val/sample_003/tr.mp4" muted playsinline preload="auto"></video><figcaption>tactile · right <span class="gtp">GT · pred</span></figcaption></figure><div class="ctrl"><button class="pp" aria-label="play/pause">▶</button><input class="scrub" type="range" min="0" max="1000" value="0" step="1" aria-label="scrub"><span class="tlabel">0/16</span></div></div></div></div></div></div> | |
| </div></section> | |
| </main> | |
| <footer><div class="wrap">Visuo-tactile world model · decoded with Cosmos CV4x8x8 · GT | pred are future-half predictions (history skipped for metrics).</div></footer> | |
| <script> | |
| document.querySelectorAll('.qual').forEach(q=>{ | |
| const panes=q.querySelectorAll('.pane'), btns=q.querySelectorAll('.seg-b'); | |
| function sel(t){panes.forEach(p=>p.classList.toggle('show',p.dataset.split===t)); | |
| btns.forEach(b=>b.classList.toggle('active',b.dataset.t===t));} | |
| btns.forEach(b=>b.addEventListener('click',()=>sel(b.dataset.t))); | |
| }); | |
| const FPS=6; | |
| document.querySelectorAll('.scard').forEach(card=>{ | |
| const vids=[...card.querySelectorAll('video')]; | |
| const lead=card.querySelector('video[data-lead]')||vids[0]; | |
| const bar=card.querySelector('.scrub'), btn=card.querySelector('.pp'), lbl=card.querySelector('.tlabel'); | |
| let userPaused=false, visible=false, dur=0, nF=16; | |
| function seekAll(t){vids.forEach(v=>{if(Math.abs(v.currentTime-t)>0.03){try{v.currentTime=t;}catch(e){}}});} | |
| function paint(){const t=lead.currentTime; if(dur) bar.value=Math.round(t/dur*1000); | |
| lbl.textContent=Math.min(Math.round(t*FPS),nF)+'/'+nF;} | |
| lead.addEventListener('loadedmetadata',()=>{dur=lead.duration||0;nF=Math.max(1,Math.round(dur*FPS));paint();}); | |
| lead.addEventListener('timeupdate',()=>{ | |
| vids.forEach(v=>{if(v!==lead&&Math.abs(v.currentTime-lead.currentTime)>0.05){try{v.currentTime=lead.currentTime;}catch(e){}}});paint();}); | |
| lead.addEventListener('ended',()=>{seekAll(0); if(!userPaused&&visible) playAll();}); | |
| function playAll(){btn.textContent='⏸';vids.forEach(v=>v.play().catch(()=>{}));} | |
| function pauseAll(){btn.textContent='▶';vids.forEach(v=>v.pause());} | |
| btn.addEventListener('click',()=>{ if(lead.paused){userPaused=false;playAll();} else {userPaused=true;pauseAll();} }); | |
| bar.addEventListener('input',()=>{userPaused=true;pauseAll();seekAll(parseInt(bar.value,10)/1000*(dur||0));paint();}); | |
| new IntersectionObserver(es=>es.forEach(e=>{visible=e.isIntersecting; | |
| if(visible&&!userPaused) playAll(); else if(!visible) pauseAll();}),{threshold:0.2}).observe(card); | |
| }); | |
| </script> | |
| </body></html> |