v10 three-tower union → v11 text-only → diagnosis → ROAD-SS distillation · figures first
weeklyv10v11text-to-3DROAD
TL;DR
v10 (SS folded into one softmax with geo/tex) is the first checkpoint to beat the official TRELLIS.2-4B on conditional sensitivity: G4 1.187 vs 1.159 (v8 was 1.040). But against the clean s3 specialists, 20k steps bought exactly one thing — SS-tower occ_iou +0.072.
Text-to-3D did not move: 5.6× more text data + 5× weight → +0.008 (p=0.60). Five free levers (CFG, cond-norm, data, material captions, 4× sampling steps) all null. Under-training, capacity and image-crowding were each ruled out by measurement; the defect is SS emitting ~half the voxels under text.
Pivot: ROAD-SS — SS tower alone, from stock TRELLIS.2 + stock Qwen3-VL + xf2 adapter, with Uni3D-teacher representation alignment (ROAD, 2026-07). 50k/60k steps now. ULIP text score oscillates 0.84–0.99 of GT; no clean step-change yet.
Four phases in nine days. Green = the run currently training.
1 · v10 — what folding SS into the union actually changed
Union is expensive up-front: dropping s3 into the union breaks texture (tex_mse 0.814 → 2.142); 20k steps only repair it (0.873), never past the specialist.
One real gain: image occ_iou 0.290 → 0.362 (p=0.06) — the SS tower. Text: all three metrics n.s. vs clean s3.
Lesson recorded twice this week: a broken baseline turns 'repair' into 'progress'. Always compare to the clean specialist, not warm@0.
BEFORE — warm start @0 (s3 specialists dropped into the union, own connectors): image / multi-image / text, coords generated by the SS tower.AFTER — v10 @20k, same assets, same columns. Image and multi-image columns track GT; the text column is category-right but a different individual (soap dish → tray with knob, rock monster → bear).GT geometry locked, texture sampled: the union at warm@0 emits confetti (std/GT 232%, 142%, 132%); by 1500 steps v10 has repaired it to 85–101% of GT std. This is the 'union bill' in pictures.Normal channel, SS-generated coords, v10 @1500 vs warm@0: the mushroom base (row 4) loses its speckle, the turtle (row 5) gains a plinth — geometry moves early, then flattens (④ in the chart below).Coupled inference in pictures: cascade vs 2-round without / with SS reading slat. Same house roof pattern in all three, occ_iou within ±0.003 — the eye agrees with the paired test that the read path changes nothing.① cross-modal attention is narrow but precise (geo→tex ×30, SS→geo ×15); ④ the union's bill and the repair; ⑤ net over specialists: only SS occ_iou moved; ⑥ vs official on the same 16 assets.Coupled inference (SS reads slat): real, learned, gate sits on a sharp optimum at 0.6% of the residual — net +0.0003 over cascade. The 30% lag budget buys nothing usable.The other direction works: slat reads SS content (not just presence), geo 2.3× harder than tex, at every noise level.
2 · v11 — did 12× text exposure fix text-to-3D? No.
v10@20k
v11@24k
Δ
p
text occ_iou
0.109
0.117
+0.008
0.60
text self-consistency
0.198
0.184
−0.015
0.54
image occ_iou
0.360
0.336
−0.025
0.32
image self-consistency
0.474
0.419
−0.055
0.06
Pool 379k → 2.13M (1.65M real + 482k synthetic), text weight 0.2 → 1.0, 4000 steps, 32×H200.
Only near-significant effect is image drifting down — the cost of text-only training.
④ is the real defect: under text the SS tower emits roughly half the GT voxel count; ⑤ centroid alignment does not rescue it — the shape itself is short.Same caption, two seeds, v10 vs v11: category right, individual different, no visible gain from v11.
3 · Diagnosis — where text-to-3D breaks
Hypothesis
Measurement
Verdict
under-trained
3 task loss curves same shape; text's late drop is slower (−1.0% vs −1.4%)
✗
crowded out by image
text cond strength rises 0.63→0.84; no loss trade-off
✗
capacity
no task-level trade-off anywhere
✗
representation not shared
text & image share heads, connector, seg code; text→image retrieval 25→66%
shared ✓
caption lacks spatial grounding
59 text tokens, 0 spatially indexed vs 2053 for image; SS tower on text = linear-probe floor
✓
Free lever
Result
CFG sweep
optimum 12 — changes amount, not content
cond-norm scaling
monotone worse, p=0.011
more data + longer training
+0.008, p=0.60
material caption (rung3)
wrong direction, +0.157
sampling steps ×4
n.s. — the flatness is in the weights
B: a linear probe on pooled text cond reaches 0.419 IoU; the SS tower reaches 0.427 — no gain over a global descriptor. Image: 0.474 → 0.641. The caption carries no spatially-grounded tokens.Raw SS output, no slat, no shading: text-conditioned occupancy is systematically thinner (3344 vs 5341, 3750 vs 6114 …).Swap in GT coordinates and the downstream towers render text fine (col 2) — everything wrong is upstream, in SS.SS guidance sweep under text: cfg 12 is the optimum; 20+ collapses. Voxel count rises 31%, IoU 3.6% — the extra voxels land in the wrong place.12 vs 50 sampling steps for SS and slat: indistinguishable. Not a discretisation artefact.
Why: all training-free levers null → fix must be on the training side. Literature: i1 (text adapter capacity is the lever; our 27M xf2 adapter was never active on the geotex path) and ROAD (REPA for 3D shape gen: 2.4× convergence; 2D teachers fail, Uni3D-g required).
Design (Aug 31): SS tower only (coupling gain measured at +0.0003, so SS-alone is production behaviour) · from stock TRELLIS.2, not s3 · xf2 connector · stock Qwen3-VL-2B · full flow tune · mix i1 0.5 / text 0.375 / synthetic 0.125 · eff. batch 256 · 60k steps.
Starting from stock weights makes the Qwen→SS interface genuinely from-scratch, so ROAD's from-scratch acceleration claim is testable here rather than discounted.
Alignment: hook block 10/30 → MLP → cosine to frozen Uni3D-g (10k GT points; global λ=0.5, per-token Hungarian λ=0.1 from step 500). Losses copied verbatim from ROAD code, numerically tested.
8k 'plateau' was largely an EMA-lag artefact: raw weights 0.247 vs EMA 0.218 image occ_iou.
28k: ULIP text jumps to 0.990/GT (t=1.71, 16/24 up) and the user's eyes agreed on the 18k→28k grid; 31k pulls back to 0.902 → treated as a spike, not a step. Uni3D (the teacher space) is saturated and blind to it.
SS progression across 11 checkpoints (2k → 46k), same seeds: image-conditioned SS reaches the old long-run plateau within ~8k steps; text-conditioned SS creeps 0.064 → 0.083 through 33k, then jumps to 0.109 at 46k — the LR-decay tail. Not paired end-to-end (n went 16 → 24 at 28k); 60k final read decides whether the tail gain holds. Checkpoints before 41k have rotated off disk, so the 16k and 28k render grids below are the two visual anchors.ULIP (independent) vs Uni3D (teacher) relative to GT across checkpoints. Only ULIP text has any headroom left (0.84–0.99).Full chain at 28k: new ROAD-SS → s3_t50b geo/tex towers. Text columns are category-correct with varying individuals; image column tracks GT.ROAD-SS at 16k, orthographic occupancy silhouettes: text still under-fills (rows 2, 3, 6) vs image.
5 · Is 'text needs more epochs' even tested?
Budget audit: at 60k steps we will have seen the real pool ~5.6× (synthetic 6.4×). Native text-to-3D models train 200–800 epochs. The hypothesis is untested at its own magnitude — it is neither confirmed nor refuted.
The field mostly stopped training native text: TRELLIS.2, Hunyuan3D 2.x, Step1X-3D, TripoSG, Direct3D, ROAD are image-only and bridge text via T2I.
Baselines chosen for the text track: TRELLIS-text-xlarge (same SS 16³ family — the only SS-level same-ruler comparison), TIGON (512 epochs on the same 500k), 3DTopia-XL text (800 epochs, different representation).
Metrics being implemented now: FD/KD in Inception, DINOv2 and PointNet++ spaces, Hungarian-CLIP, ULIP/Uni3D — official code where it exists.
Two orders of magnitude between our exposure and every native text model in the literature.
6 · Data milestone — synthetic coverage set finished
553,634 latents (shape+ss+tex npz, format-identical to real data) · 535,186 paired with a 1024² condition image (WebP q95) · 18,448 text-only.
QC pass rate 52.3% (unique uid); tier mix fc 76% / soc_gc 20% / exotic 3.3%. Already feeding v11 and ROAD-SS as the 0.125 synthetic slice.
Details and traps in skill trellis2-3d-data §7.5.
Build image→3D sets as latent ∩ image (535,186); plain ls latent/ silently includes 18k assets with no condition image.
7 · Open questions
Does ROAD-SS at 60k (LR→0) hold the 28k ULIP gain or is it noise? Paired 28k→60k on the same 24 assets decides.
Eyes vs metrics: the 18k→28k grid looked better to a human while three metrics said flat. Same-seed side-by-side is queued to split sampling luck from checkpoint effect.
Texture flattening (26% pattern energy lost even under image) is untouched by any of this — a condition-feature ceiling (semantic encoders), needs a reconstruction-style feature or high-frequency loss.
Throughput: 14–28% GPU idle on the 3-tower run survived three falsified explanations (comm, rank skew, host sync). Still open.
compiled from the training-dit session transcripts Aug 24 – Sep 1 · all numbers are measured, paired where stated · v10/v11 n=12–32, ROAD n=24