Spaces:
Running
Running
File size: 138,656 Bytes
bf97704 aa21804 9b1dd5d aa21804 9b1dd5d aa21804 9b1dd5d aa21804 9b1dd5d aa21804 9b1dd5d aa21804 9b1dd5d aa21804 9b1dd5d aa21804 9b1dd5d aa21804 9b1dd5d aa21804 9b1dd5d aa21804 9b1dd5d aa21804 9b1dd5d aa21804 9b1dd5d aa21804 9b1dd5d aa21804 9b1dd5d aa21804 9b1dd5d 5fd6d07 9b1dd5d 5fd6d07 9b1dd5d 5fd6d07 9b1dd5d aa21804 9b1dd5d aa21804 9b1dd5d aa21804 13f71a9 9b1dd5d aa21804 91687bb 9b1dd5d aa21804 91687bb 9b1dd5d aa21804 91687bb 9b1dd5d 91687bb 9b1dd5d 91687bb 9b1dd5d 91687bb 9b1dd5d 95f9932 13f71a9 9b1dd5d aa21804 5fd6d07 9b1dd5d 5fd6d07 9b1dd5d 5fd6d07 aa21804 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 | <!doctype html>
<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> |