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></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=10)</th><th>val (n=10)</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.0985</td><td class="num">0.0735</td><td class="num gap-ok">-25%</td></tr><tr><td class="mname">SSIM <span class="arrow">↑</span></td><td class="num">0.8107</td><td class="num">0.8555</td><td class="num gap-ok">-6%</td></tr><tr><td class="mname">PSNR <span class="arrow">↑</span></td><td class="num">25.0741</td><td class="num">26.5707</td><td class="num gap-ok">-6%</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.0618</td><td class="num">0.0457</td><td class="num gap-ok">-26%</td></tr><tr><td class="mname">LPIPS · right <span class="arrow">↓</span></td><td class="num">0.0217</td><td class="num">0.0665</td><td class="num gap-bad">+206%</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.2959</td><td class="num">0.2469</td><td class="num gap-warn">+17%</td></tr><tr><td class="mname">contact MSE <span class="arrow">↓</span></td><td class="num">29.4892</td><td class="num">37.3549</td><td class="num gap-warn">+27%</td></tr><tr><td class="mname">onset err <span class="arrow">↓</span></td><td class="num">94.0515</td><td class="num">4.9556</td><td class="num gap-ok">-95%</td></tr><tr><td class="mname">intensity spearman <span class="arrow">↑</span></td><td class="num">0.5550</td><td class="num">0.7600</td><td class="num gap-ok">-37%</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=10)</th><th>val (n=10)</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.0531</td><td class="num">0.0441</td><td class="num gap-ok">-17%</td></tr><tr><td class="mname">SSIM <span class="arrow">↑</span></td><td class="num">0.8772</td><td class="num">0.9008</td><td class="num gap-ok">-3%</td></tr><tr><td class="mname">PSNR <span class="arrow">↑</span></td><td class="num">28.0965</td><td class="num">29.1089</td><td class="num gap-ok">-4%</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.0630</td><td class="num">0.0531</td><td class="num gap-ok">-16%</td></tr><tr><td class="mname">LPIPS · right <span class="arrow">↓</span></td><td class="num">0.0203</td><td class="num">0.0761</td><td class="num gap-bad">+274%</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.2870</td><td class="num">0.2067</td><td class="num gap-warn">+28%</td></tr><tr><td class="mname">contact MSE <span class="arrow">↓</span></td><td class="num">32.1382</td><td class="num">38.6478</td><td class="num gap-warn">+20%</td></tr><tr><td class="mname">onset err <span class="arrow">↓</span></td><td class="num">133.9037</td><td class="num">59.3774</td><td class="num gap-ok">-56%</td></tr><tr><td class="mname">intensity spearman <span class="arrow">↑</span></td><td class="num">0.5750</td><td class="num">0.6100</td><td class="num gap-ok">-6%</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=10)</th><th>val (n=10)</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.0674</td><td class="num">0.0460</td><td class="num gap-ok">-32%</td></tr><tr><td class="mname">SSIM <span class="arrow">↑</span></td><td class="num">0.8538</td><td class="num">0.8894</td><td class="num gap-ok">-4%</td></tr><tr><td class="mname">PSNR <span class="arrow">↑</span></td><td class="num">26.9559</td><td class="num">28.2838</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.0593</td><td class="num">0.0430</td><td class="num gap-ok">-28%</td></tr><tr><td class="mname">LPIPS · right <span class="arrow">↓</span></td><td class="num">0.0270</td><td class="num">0.0816</td><td class="num gap-bad">+203%</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.2849</td><td class="num">0.2296</td><td class="num gap-warn">+19%</td></tr><tr><td class="mname">contact MSE <span class="arrow">↓</span></td><td class="num">30.9060</td><td class="num">38.3891</td><td class="num gap-warn">+24%</td></tr><tr><td class="mname">onset err <span class="arrow">↓</span></td><td class="num">41.5967</td><td class="num">14.6901</td><td class="num gap-ok">-65%</td></tr><tr><td class="mname">intensity spearman <span class="arrow">↑</span></td><td class="num">0.7150</td><td class="num">0.6800</td><td class="num gap-ok">+5%</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.0735</td><td class="num win">0.0441</td></tr><tr><td class="mname">SSIM <span class="arrow">↑</span></td><td class="num ">0.8555</td><td class="num win">0.9008</td></tr><tr><td class="mname">PSNR <span class="arrow">↑</span></td><td class="num ">26.5707</td><td class="num win">29.1089</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.0457</td><td class="num ">0.0531</td></tr><tr><td class="mname">LPIPS · right <span class="arrow">↓</span></td><td class="num win">0.0665</td><td class="num ">0.0761</td></tr><tr><td class="mname">mask IoU (τ8) <span class="arrow">↑</span></td><td class="num win">0.2469</td><td class="num ">0.2067</td></tr><tr><td class="mname">contact MSE <span class="arrow">↓</span></td><td class="num win">37.3549</td><td class="num ">38.6478</td></tr><tr><td class="mname">onset err ms <span class="arrow">↓</span></td><td class="num win">4.9556</td><td class="num ">59.3774</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.0498</td><td class="num win">0.0343</td></tr><tr><td class="mname">SSIM <span class="arrow">↑</span></td><td class="num ">0.8870</td><td class="num win">0.9162</td></tr><tr><td class="mname">PSNR <span class="arrow">↑</span></td><td class="num ">28.3848</td><td class="num win">30.1398</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 ">0.0514</td><td class="num win">0.0499</td></tr><tr><td class="mname">LPIPS · right <span class="arrow">↓</span></td><td class="num win">0.0698</td><td class="num ">0.0713</td></tr><tr><td class="mname">mask IoU (τ8) <span class="arrow">↑</span></td><td class="num win">0.2448</td><td class="num ">0.2183</td></tr><tr><td class="mname">contact MSE <span class="arrow">↓</span></td><td class="num win">38.4460</td><td class="num ">38.8099</td></tr><tr><td class="mname">onset err ms <span class="arrow">↓</span></td><td class="num ">0.0000</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.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> | |
| </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> |