| # | Edit type | Example | Generation method (V1 final) | Idea source | FlowEdit? | Phase | Target |
|---|---|---|---|---|---|---|---|
| E1a | Global material change | “make it brushed metal” | Geometry latents FROZEN → re-sample TRELLIS.2 texture flow conditioned on the Qwen-edited view. Geometry identity is exact by construction. | TRELLIS.2 native staging (“texture generation for a given shape”) | ❌ | 1 | 70K |
| E1b | Part-local material change | “red leather cushion only” | Same texture re-sample + merge texture latents by P3-SAM part mask (new inside, original outside, feathered boundary). | Merge idea from Nano3D, mask from P3-SAM | ❌ | 1 | 50K |
| E1c | Pattern-preserving / non-part-aligned appearance | “keep the motif, change base color”, “add rust on one side” | FlowEdit on texture flow only (velocity-difference anchoring keeps texture layout). | FlowEdit (Nano3D’s use), texture-only variant is ours | ✅ | 2 | 20K |
| E2 | Part addition | “add a hat” | FlowEdit on all three flows + Voxel-XOR-Merge (τ-connected components). Optional: X-Part generates the new part given a bbox (procedural-exact alternative). | Nano3D; X-Part (Hunyuan3D-Part) | ✅ (or ❌ via X-Part) | 2 | 60K |
| E3 | Part removal | “remove the sword” | PRIMARY: procedural — delete P3-SAM part voxels/glb node, exact pair. X-Part/HoloPart-style completion for exposed interiors when judge flags them. | Native-3D-Editing (procedural deletion at 109K scale); EVA01 𝒪_rigid | ❌ | 1 | 60K |
| E4 | Part replacement | “wheels → skis” | FlowEdit + merge (diff region = removed ∪ added). | Nano3D “Replace”; UniVerse3D scaled it to 400K | ✅ | 2 | 50K |
| E5 | Global stylization | “carved-wood look” | Qwen-edited view → full TRELLIS.2-4B image-to-3D regeneration (everything changes; drift is meaningless here). ~3s/asset at 512³. | EVA01 semantic track; Steer3D | ❌ | 1 | 40K |
| E6 | Part rigid transform | “longer legs”, “tilt head” | Procedural: affine ops on part voxels/latents (P3-SAM mask), template+LLM-paraphrased instruction. | EVA01 𝒪_rigid; Part-X-MLLM <mods> | ❌ | 1 | 150K |
| E7 | Duplicate / mirror part | “second exhaust, mirrored” | Procedural copy/mirror of part block. | EVA01 𝒪_rigid | ❌ | 1 | 50K |
| E8 | Cross-asset composition | “B’s wings on A” | Procedural paste of part block across assets; optional X-Part re-synthesis for seam coherence. | EVA01 𝒪_topo; X-Part | ❌ | 1 | 100K |
| E9 | Mesh boolean / deformation | “carve a cavity” | Blender node ops / boolean on SketchfabV1 raw glbs → mesh→O-Voxel re-encode (<10s CPU). | EVA01 𝒪_topo; P3-SAM’s connected-component label recipe | ❌ | 1 | 50K |
| E10 | Multi-turn chains | 2–4 edits composed | Assembly of accepted pairs on the same asset (no new generation). | EVA01 interleaved format | — | 3 | 100K traj. |
| — | DPO negatives | original as rejected | Free byproduct: one (instruction, original) per accepted pair. | Steer3D (no-edit 18.7%→10.7%) | — | 3 | ~650K |
| Stage | What | Tooling (all self-hosted, all MIT/open) | Unit cost |
|---|---|---|---|
| 0. Part annotation | geometric part masks + names + bboxes, 440K assets | P3-SAM (~8s/obj full-auto; weights on HF) → project masks to existing 16-view renders → Qwen3.6-27B names parts (vlmcap TASK=parts) | ~8s + ~2s |
| 1. Instructions | 3–5 typed instructions/asset, judge-axis quotas | vlmcap TASK=edit_instr; holistic/texture captions + real part list in prompt | merged w/ 0 |
| 2. Pair synthesis | per-type methods in the taxonomy above | TRELLIS.2-4B (frozen, official ckpt; 512³ ≈3s; mesh↔O-Voxel <10s/<100ms) + Qwen-Image-Edit-2511(+Lightning) + Blender + X-Part (optional) | 1–20s/pair by type |
| 3. Verification | render 4 views both sides → filter | dual-blind LLM (Steer3D protocol) + 6-axis judge re-score (ours) + DINO sim on unedited region; procedural pairs skip blind check | ~2s/pair |
| 4. Packaging | pairs manifest + multi-turn + DPO negatives | pairs/{id}/{meta.json, after.glb, renders_before/, renders_after/} + manifest.jsonl; before stored as sha reference | cheap |
| Paper | What V1 takes | Key evidence |
|---|---|---|
| TRELLIS.2-4B (microsoft, MIT) | THE engine: 3-stage flows (ss/shape/tex), texture-given-shape sampling, mesh↔O-Voxel instant conversion | 512³ in ~3s (H100); O-Voxel→mesh <100ms (kills Nano3D’s 4.5-min export); PBR native (basecolor/roughness/metallic/opacity) |
| Nano3D (2510.15019, MIT code) | FlowEdit + XOR-Merge recipe for E1c/E2/E4 | CD 0.013 vs 0.019; 95%-vs-5% shape-preservation preference; its dataset templates are Add/Remove/Replace only — material edits were never its scope |
| UniVerse3D (CVPR’26) | Scale precedent (400K via improved Nano3D/VoxHammer) + arch lessons for the future editor (source-token concat; VLM must see 3D) | Beats VoxHammer/Instant3DiT/MVEdit end-to-end; 2:1 gen-data mixing vs forgetting |
| Native 3D Editing w/ Full Attention (2511.17501) | Procedural deletion at scale is trainable signal; token-concat conditioning | 109K deletion pairs from scene-graph ops; concat ≫ cross-attn (FID 91.9 vs 169.6 VoxHammer); trained on 16–18×A800 only |
| EVA01 (2605.16745) | Two-track split, 𝒪_rigid/𝒪_topo taxonomy, multi-turn format, ratio flip (proc-heavy→sem-heavy) | 3M procedural + 300K semantic (its semantic track is 2D-edit+lift, NOT FlowEdit); mask-free CD 0.018 |
| Steer3D (2512.13678) | Dual-blind verification; DPO original-as-negative | Filter −70%; DPO no-edit 18.67%→10.67%; monotone data scaling 8K→96K |
| P3-SAM / X-Part (Hunyuan3D-Part, open) | Stage-0 segmentation engine + part generator for E2/E8/completion | ~8s/obj native 3D seg (SAMPart3D ~15min); mIoU 81.1; X-Part: bbox→complete part generation |
| VoxHammer (2508.19247) | High-precision fallback (inversion+KV) — our P3-SAM masks make it free of its main cost | Masked PSNR 41.68 / CD 0.012, but 133s/edit → fallback only |
| 3DEditVerse / ShapeLLM-Omni / Part-X-MLLM / 2D engines | Scale ladder + cautionary tales + part-annotation recipe + 25-type taxonomy reference | 62K “far too few” (ShapeLLM); 116K (3DEditVerse); part grounding is the precision bottleneck (edit IoU 0.41–0.70) |
| Item | Volume | Compute |
|---|---|---|
| Stage 0: P3-SAM + naming + instructions | 440K assets | ~1.2K GPU-h |
| Qwen-Image-Edit (E1/E5/E2/E4 target views) | ~350K edits | ~700 GPU-h (Lightning) |
| E1a/E1b texture re-sample + merge | ~120K | ~80 GPU-h (≈1s tex flow + merge) |
| E5 full regeneration | ~40K | ~40 GPU-h (≈3s) |
| E1c/E2/E4 FlowEdit | ~130K | ~550 GPU-h (≈15s/pair) |
| E3/E6–E9 procedural | ~410K | mostly CPU (m7i) + ~100 GPU-h decode checks |
| Verification (render + dual-blind + judge) | ~650K pairs | ~500 GPU-h |
| Total | ~650K single-turn + 100K multi-turn + 650K DPO | ~3.2K GPU-h ≈ 2 low-pri nodes × 8–10 days · $0 cash |