TL;DR Faithful Contouring sostituisce la pipeline SDF + Marching Cubes, vecchia di decenni, con Faithful Contour Tokens — codificando le mesh triangolari direttamente in token voxel sparsi a 18 dimensioni, senza chiusura stagna, senza campi di distanza. Solo CUDA, 1024³ in ~1,4 s, 2048³ in meno di 5 s su un singolo H100.
L'ultimo anno ha visto un aumento del lavoro sulla generazione 3D — metodi come Trellis e Hunyuan3D che superano i benchmark quasi ogni mese. Ma ecco cosa è facile trascurare: mentre le architetture di rete si sono evolute in DiT, Flow Matching e Sparse Voxel Transformer, la rappresentazione 3D sottostante si basa ancora sull'era 1987 di SDF + Marching Cubes. Faithful Contouring offre un approccio fondamentalmente diverso alla voxelizzazione 3D.
Faithful Contouring (FC), accettato come CVPR 2026 Oral, salta la chiusura stagna, salta la costruzione del campo SDF e salta completamente Marching Cubes. Invece, FC codifica le mesh triangolari direttamente in token voxel sparsi — una nuova rappresentazione 3D che preserva la topologia, i bordi netti e le strutture interne. L'intera pipeline da mesh a voxel è implementata come kernel CUDA puri, completando la voxelizzazione 1024³ in circa 1 secondo e 2048³ in meno di 5 secondi su un singolo NVIDIA H100.
Perché SDF + Marching Cubes è il Collo di Bottiglia nella Voxelizzazione 3D
Per anni, praticamente ogni metodo di ricostruzione e generazione 3D feedforward — DeepSDF, Occupancy Networks, e più recentemente Trellis, Hunyuan3D, Sparc3D, TripoSF — ha seguito la stessa pipeline:
Mesh grezza → Conversione stagna → SDF / UDF → Marching Cubes → Nuova mesh
Questa pipeline sembra generica, ma ogni fase introduce una perdita di informazione non banale:
-
Preprocessamento stagna utilizza tipicamente la dilatazione con ε-ball per sigillare i buchi. Questo riscrive la topologia e trasforma gusci sottili in gusci spessi.
-
Calcolo del segno si basa su algoritmi globali come flood-fill o numeri di avvolgimento per la classificazione dentro/fuori. Questi sono instabili su geometrie non manifolde, superfici aperte e cavità interne — e resistono al parallelismo GPU.
-
Estrazione della superficie iso tramite Marching Cubes liscia i bordi netti, distrugge la struttura interna e lascia dietro di sé artefatti a gradini.
Il collo di bottiglia più pratico è la risoluzione: i metodi basati su SDF esistenti quasi tutti si fermano sotto 2048³ per la voxelizzazione 3D, proprio perché la propagazione globale del segno e i costi di preprocessamento stagna esplodono con la risoluzione. Faithful Contouring è stato progettato per bypassare l'intera pipeline.
![]()
Cosa Rende Faithful Contouring Unico
La maggior parte dei metodi di voxelizzazione 3D segue un percorso fisso: mesh a campo di distanza a superficie iso. Faithful Contouring pone una domanda diversa:
Possiamo saltare la deviazione da mesh → campo di distanza → superficie iso, ed estrarre invece punti di ancoraggio candidati direttamente all'interno di ciascun voxel, quindi riconnetterli in una superficie basata su relazioni topologiche?
Questo è esattamente ciò che Faithful Contouring fa. Codifica le mesh triangolari direttamente in un set di token voxel sparsi chiamati Faithful Contour Tokens (FCT). La pipeline ha tre proprietà chiave:
- Senza campo di distanza — nessun calcolo SDF, nessuna determinazione del segno necessaria
- Senza rendering — nessuna supervisione di rendering differenziabile richiesta
- Completamente locale — ogni voxel interagisce solo con i pochi triangoli che lo attraversano, rendendolo naturalmente parallelo su GPU
Faithful Contouring vs SDF + Marching Cubes
| Proprietà | Pipeline SDF + Marching Cubes | Faithful Contouring |
|---|---|---|
| Superfici aperte / non manifolde | Deve essere stagna prima (perde topologia) | Supportato nativamente |
| Cavità interne | Cancellate da flood-fill | Completamente preservate |
| Bordi netti / angoli | Arrotondati da MC | Catturati naturalmente tramite QEF |
| Rappresentazione per voxel | 1 valore SDF | Token a 18 dimensioni |
| Modifica / assemblaggio | Difficile | Operazioni dirette a livello di token |
| Faithful Contouring supporta superfici aperte, geometrie non-manifold e cavità interne in modo nativo — caratteristiche che i metodi di voxelizzazione basati su SDF perdono durante il preprocessing a tenuta stagna. |
Come Funziona Faithful Contouring: Pipeline di Encoder e Decoder
La pipeline di Faithful Contouring consiste in un Encoder e un Decoder, entrambi costruiti interamente su operatori di geometria classica senza componenti apprese.
![]()
Encoder: Mesh → FCT
Per ogni voxel nella griglia , vengono eseguiti in sequenza quattro passaggi:
-
Rilevamento di Voxel Attivi (SAT) — Utilizzando il Teorema dell'Asse Separatore su 13 assi candidati, si verifica se un triangolo interseca un dato voxel . I voxel intersecati sono contrassegnati come voxel primari attivi.
-
Centroidi di Intersezione — L'algoritmo di Sutherland–Hodgman ritaglia ogni triangolo contro le sei facce del voxel per produrre un poligono convesso , quindi calcola il suo centroide:
Per convessità, questo centroide è garantito di trovarsi all'interno del voxel. Ogni , abbinato alla normale del triangolo di origine , forma un campione di geometria locale.
- Adattamento dell'Ancora (QEF) — Questo è il passaggio centrale. Tutti i campioni vengono inseriti in una minimizzazione della Funzione di Errore Quadrico:
Il primo termine impone la coerenza del piano tangente, spingendo l'ancora verso l'intersezione comune di tutti i piani tangenti — motivo per cui bordi e angoli acuti vengono catturati naturalmente. Il secondo termine fornisce una regolarizzazione del centroide per sopprimere la deriva in caso di input mal condizionati. La soluzione è data in forma chiusa da un'equazione normale 3×3:
Le normali sono risolte tramite regolarizzazione di Tikhonov. L'intera soluzione è completamente indipendente per voxel — la ragione fondamentale per cui FC scala a 2048³.
Alle risoluzioni voxel più basse, le ancore risolte QEF si allineano ancora in modo affidabile alle caratteristiche nitide.
- Intersezioni Semi-Asse — L'intersezione raggio-triangolo di Möller–Trumbore viene eseguita lungo sei direzioni semi-asse, producendo una codifica binaria utilizzata durante la decodifica per determinare l'orientamento della faccia.
Tutte le informazioni sono confezionate per voxel in una singola riga:
Ogni voxel attivo occupa 18 dimensioni.
Decoder: FCT → Mesh
La decodifica consiste in due passaggi:
Raccolta globale — I voxel primari adiacenti che condividono un voxel duale mediano i loro punti di ancoraggio per produrre un set di vertici unificato .
Quad → Tri — Le quattro ancore duali su ciascuna faccia primale formano un quadrilatero. L'orientamento è determinato dal codice semi-asse, e il quad viene diviso in due triangoli lungo la diagonale che minimizza la deviazione normale.
L'intera decodifica è anche completamente locale — non è coinvolta alcuna ricerca globale.
Ingegneria: Voxelizzazione in Sotto-Secondi con Parallelismo CUDA
Il design dell'algoritmo di FC si allinea strettamente con il parallelismo GPU: ogni voxel dipende solo dai pochi triangoli che lo intersecano, la soluzione QEF è un'equazione normale 3×3 in forma chiusa, e l'intera pipeline non contiene operatori globali. Questo è il motivo per cui scala a 2048³.
In particolare, FC evita i seguenti processi globali: propagazione di componenti connesse tramite riempimento a inondazione, integrazione completa della mesh tramite numero di avvolgimento, dilatazione con ε-ball per tenuta stagna, e post-elaborazione Marching Cubes. Il calcolo di ciascun voxel è completamente indipendente e si mappa direttamente a un thread CUDA. Abbiamo implementato tutti gli operatori principali come kernel CUDA puri — intersezione SAT, clipping di Sutherland–Hodgman, QEF in forma chiusa e intersezione dell'asse metà di Möller–Trumbore — eliminando i cicli a livello di Python. Benchmark su un singolo NVIDIA H100:
| Risoluzione | Voxel Attivi | Codifica | Decodifica | Totale |
|---|---|---|---|---|
| 128³ | 71K | 0.27 s | 0.02 s | 0.29 s |
| 256³ | 287K | 0.45 s | 0.06 s | 0.51 s |
| 512³ | 1.1M | 0.52 s | 0.17 s | 0.70 s |
| 1024³ | 4.6M | 0.82 s | 0.61 s | 1.42 s |
| 2048³ | 18.4M | 2.16 s | 2.51 s | 4.68 s |
Numeri chiave: 512³ end-to-end in 0.7 s, 1024³ in circa 1.4 s, 2048³ sotto i 5 s. La latenza complessiva scala approssimativamente in modo lineare con il conteggio dei voxel attivi.
Per confronto, le pipeline tradizionali di ricostruzione SDF basate su flood-fill o numeri di avvolgimento richiedono tipicamente minuti o decine di minuti a 1024³ e non possono scalare praticamente a 2048³ a causa del sovraccarico di memoria e calcolo della propagazione del segno globale. FC non solo funziona direttamente a 2048³ ma mantiene la latenza end-to-end a livello di secondi.
Risultati Sperimentali
Accuratezza della Rappresentazione
Su sottoinsiemi impegnativi da ABO e Objaverse:
| Metodo | Risoluzione | HD ↓ | CD (G→P) ↓ | F-score (0.01) ↑ |
|---|---|---|---|---|
| UDF | 1024 | Alta (artefatti a doppio strato) | Alta | Bassa |
| Flood-fill SDF | 1024 | Alta (superfici gonfiate) | Alta | Media |
| FlexiCubes | 1024 | Media | Media | Media |
| FC | 1024 | 0.11 × 10⁻² | 0.01 × 10⁻⁴ | 99.71 |
| FC | 2048 | 0.11 × 10⁻² | < 0.01 × 10⁻⁴ | 99.99 |
FC è attualmente l'unica rappresentazione voxel che funziona direttamente a 2048³, con errori di distanza stabili alla scala di 10⁻⁵.
![]()
Ricostruzione VAE
Per convalidare FCT come rappresentazione di deep learning, abbiamo costruito un VAE a doppia modalità utilizzando convoluzioni 3D sparse più attenzione leggera, supportando due modalità di input: (a) auto-compressione FCT → FCT, e (b) nuvola di punti → FCT.
Confrontato con Trellis, SparseFlex e Sparc3D sul benchmark Dora e Toys4k:
- Distanza di Chamfer ridotta di circa 93%
- F-score migliorato di circa 35%
Notoriamente, FC-VAE a risoluzione 512³ supera già le ricostruzioni SparseFlex / Sparc3D a 1024³, dimostrando che una rappresentazione senza perdita può ridurre significativamente il carico di apprendimento sui network a valle.
![]()
Modifica e Composizione con Token di Contorno Fedeli
FCT è una rappresentazione voxel sparsa basata su token, il che significa che tutte le operazioni a livello di voxel si trasferiscono direttamente ai token. FCT supporta quattro categorie di operazioni dirette a livello di token:
![]()
- Filtraggio — Il ray-casting calcola la visibilità; i voxel interni nascosti e i loro token vengono rimossi tramite soglia.
- Texture — Canali aggiuntivi vengono aggiunti al token 18D, legando gli attributi di texture agli ancoraggi.
- Manipolazione — Rotazione e deformazione non lineare agiscono direttamente sugli ancoraggi, seguite dalla ricalcolo della connettività.
- Partizione e Assemblaggio — La fusione utilizza l'aggregazione media nelle posizioni degli ancoraggi e l'aggregazione massima per l'orientamento; la divisione copia e separa i gruppi di token tramite maschere geometriche o semantiche.
Questo rende FCT non solo una rappresentazione di input ma un contenitore di token di geometria che supporta composizione, modifica, texturizzazione e trasferimento di stile — ben allineato con la prossima fase della generazione 3D: a livello di parti, modificabile e multimodale.
Open Source e Riproducibilità
Il codice è completamente open-source. A partire dalla versione v1.5, il codice è stato rifattorizzato in puro Python + Atom3d, con kernel CUDA distribuiti come wheel precompilati — non è richiesto alcun toolchain C++ locale. Forniamo sia un ambiente Pixi con un click che l'installazione tradizionale tramite pip, coprendo tutto, dalla riproduzione della ricerca all'integrazione in produzione.
Il repository include:
- Codec FCT completo (FCTEncoder / FCTDecoder), supportando risoluzioni arbitrarie da 128³ a 2048³
- Backend di intersezione mesh accelerato BVH Atom3d
- Script demo e mesh di esempio (icosfera, nave pirata, ecc.) — pronti per essere eseguiti e confrontare gli output GLB direttamente
- Codice di addestramento FCT-VAE e pesi del modello di diffusione (in arrivo)
Repository: github.com/Luo-Yihao/FaithC
Sommario
Ciò che Faithful Contouring fa può essere riassunto in una frase:
Migra lo strato di rappresentazione 3D dal paradigma del campo di distanza al paradigma del token di contorno.
I campi di distanza e i Marching Cubes risalgono agli anni '80. I loro contemporanei 2D sono stati a lungo superati da spline, rasterizzatori di font SDF e rendering neurale attraverso cicli di iterazione multipli. Sul lato 3D, il profondo accoppiamento tra la pipeline e i dataset e i framework di valutazione consolidati ha a lungo impedito una ripensamento sistematico dello strato di rappresentazione stesso. FC offre una nuova base: risolvibile in forma chiusa, compatibile con GPU e scalabile fino a 2048³ — gestendo nativamente superfici aperte e geometrie non-manifold, preservando completamente le strutture interne e i bordi netti, tutto entro 18 dimensioni per voxel.
Una corroborazione degna di nota: poco dopo che questo lavoro è stato reso pubblico, Microsoft ha rilasciato TRELLIS.2 nel gennaio 2026, introducendo O-Voxel — una rappresentazione voxel sparsa senza campo che allo stesso modo bypassa i campi SDF / di occupazione e codifica la topologia arbitraria (incluse superfici non-manifold e aperte) direttamente tramite mesh duali. Due percorsi indipendenti che convergono su conclusioni simili in un breve lasso di tempo suggeriscono che le iso-superfici non sono più l'unica opzione per la rappresentazione 3D.
Limitazioni
La versione attuale di FC presenta diverse limitazioni evidenti:
- Auto-intersezione grave e strutture strettamente stratificate — Quando più superfici sottili si intersecano o si comprimono a scala sub-voxel, i campioni all'interno di un singolo voxel provengono da fogli diversi. L'ancora risolta da QEF diventa ambigua e mostra una deriva locale.
- Capacità VAE sottoutilizzata — L'attuale FCT-VAE adotta la backbone di convoluzione sparsa + attenzione locale da Sparc3D / SparseFlex. La sua capacità di modellazione per rami estremamente fini, decorazioni dense e altre strutture altamente irregolari ha ancora margine di miglioramento.
- Degradazione della nitidezza attraverso la decodifica — FCT decodificato tramite il VAE mostra una leggera perdita di nitidezza e levigatezza rispetto all'adattamento diretto, intrinseca alla compressione latente. Questo indica anche la necessità di un allineamento più fine tra le rappresentazioni dei token e le dimensioni latenti.
Cosa c'è dopo: Anteprima Vision 2
Nella prossima Faithful Contouring 2.0, estendiamo FCT a una forma multi-ancora — un singolo voxel non è più limitato a un'ancora ma può ospitare più ancore per rappresentare strutture complesse intersecanti. Questo migliorerà sistematicamente le prestazioni di FC su auto-intersezioni, geometrie strettamente stratificate e gusci sottili annidati, fornendo alle reti a valle informazioni geometriche locali più dettagliate. Restate sintonizzati.
Citazione
@inproceedings{luo2026faithfulcontouring,
title = {Faithful Contouring: Near-Lossless 3D Voxel Representation Free from Iso-surface},
author = {Luo, Yihao and He, Xianglong and Pan, Chuanyu and Chen, Yiwen and Wu, Jiaqi
and Li, Yangguang and Ouyang, Wanli and Hu, Yuanming and Yang, Guang and Yap, ChoonHwai},
booktitle = {CVPR},
year = {2026}
}Abbastanza con SDF + Marching Cubes? È ora di riportare la geometria — fedelmente.
CVPR 2026 Oral · arXiv 2511.04029 · GitHub: Luo-Yihao/FaithC
Yihao Luo, Imperial College London — y.luo23@imperial.ac.uk


