Bijective and Coarse High-Order Tetrahedral Meshes

1New York University, Courant Institute
SIGGRAPH 2021 / ACM Transactions on Graphics 2021
Coarse high-order tet mesh via shell optimization

Coarse high-order tet mesh via shell optimization – converting dense linear surfaces into coarse, curved, valid quartic tetrahedral meshes that preserve features, bound Hausdorff error, and stay bijective.

Pipeline: dense input → coarse shell → curved quartic Bézier tets → optimization → bijective transfer. Fig 1 ACM TOG 2021.

dense vs coarse single-subject aesthetic

Aesthetic thumbnail – single-subject coarse quartic, responsive preserved aspect, no stretch.

Abstract

Piecewise-linear meshes dominate geometry processing, but isoparametric finite element simulation demands curved, high-order elements to capture curved boundaries without excessive refinement. Bichon is a robust, automatic pipeline that converts a dense linear triangle mesh with annotated features into a coarse, curved, high-order tetrahedral mesh. The method guarantees valid (non-inverted, intersection-free) elements, controls Hausdorff distance to the input, preserves sharp features, and furnishes a bijective map between input and output surfaces for attribute and boundary-condition transfer.

Input: manifold, watertight triangle mesh, no self-intersection (+ optional feature edges/corners, constraint points).
Output: Quartic (p=4) Bézier tet mesh that is coarse, valid, collision-free, ε-close, feature-conforming, and equipped with f: Min ↔ ∂Mout bijective.

Video

Why Coarse High-Order?

h- vs p-refinement: Classical FEM improves accuracy by h-refinement (more linear tets). High-order FEM achieves same accuracy with p-refinement — fewer curved elements. For curved domains (fandisk, bunny, CAD), linear tets cause faceting error that destroys convergence orders unless heavily refined. Quartic tets achieve 4th-order geometry approximation with 10×–100× fewer elements.

The gap: Gmsh, CGAL generate fine linear meshes but not coarse curved guarantee; Quartet, DistMesh generate high-order but no validity/coarseness/feature guarantees; curved meshing via elasticity analogy deforms fine meshes but often inverts. Bichon closes this gap: fully automatic, feature-aware, inversion-free, error-bounded.

Pipeline Fig 1

Figure 1 – Pipeline: (a) dense linear input with feature edges (green), (b) coarse shell, (c) curved shell filled with quartic Bézier tets, (d) optimization, (e) bijective displacement transfer. ACM TOG 2021.

Method Overview

Input: M=(V,F), features G=(E_f,V_c), epsilon_d, p=4, l_target
1. Build bijective shell S around M using progressive envelope inflation (TetWild-style) + feature graph projection
2. Coarsen S to target length while preserving topology & intersection-free
3. Extract coarse linear surface Ms = shell outer boundary
4. Fill domain bounded by Ms with linear tets using fTetWild (union of shell interior)
5. Elevate linear tets to Bézier degree p+1=4 (volume uses recursive tuple_gen ordering)
6. Optimize curved control points:
   min  E_geom (Hausdorff) + λ E_distortion (AMIPS)
   s.t. det J > δ >0, no interpenetration, feature constraints
7. Build bijective correspondence f: M → ∂M_out via barycentric + shell parameter
Return: (lagr, cells, complete_cp, mV, mbase, mtop, mF)

Bézier Tet Formalism

Degree p tetrahedron with barycentric λ=(α,β,γ,δ), Σλᵢ=1:

$$ \mathbf{x}(\lambda)=\sum_{i+j+k+l=p} \binom{p}{i,j,k,l} \alpha^i\beta^j\gamma^k\delta^l \; \mathbf{c}_{ijkl} $$

Jacobian J(λ)=[∂x/∂α,∂x/∂β,∂x/∂γ]∈ℝ³ˣ³. Validity requires positivity on control lattice sufficient condition: Bernstein coefficients of det J >0. We use:

$$ \det J(\lambda)=\sum_{|I|=4p-3} b_I B_I^p(\lambda) $$

If min_I b_I >0 ⇒ element valid. We optimize to enforce b_I ≥ ε.

Shell & Feature

Shell S is offset surfaces S±ε around input using signed distance d(x). We maintain ||x_shell - x_proj||∞ ≤ ε_d, preserve feature lines by snapping to feature graph G, support constraint points P with barycentric (P_fid,P_bc) allowing distance bound where user wants. Topology check via progressive envelope expansion with exact predicates ensures shell never self-intersects.

Dihedral heuristic --feature-dihedral_threshold auto-tags features if H5 not supplied. Corners junction of ≥3 feature edges auto-inferred. Features frozen during optimization.

Curved Optimization

$$ E = w_d\,E_{distance}+w_q\,E_{AMIPS}+w_b\,E_{barrier} $$

E_distance = Σ_q||x(q)-π_M(x(q))||² where Q sampled Gauss-Lobatto points; π_M closest point onto input. E_AMIPS = Σ_T ∫_{T̂} ||J||²_F/(det J)^{2/3}. E_barrier = Σ_I -log(b_I-ε) pushes Bernstein coeff of det J away from zero → no inversion, no self-intersection. Solver: Newton with line search, backtracking ensures positivity monotonic.

Bijective Map & Transfer

Shell gives correspondence: any p∈M maps to q∈∂M_out via normal shoot within tube. Because outer/inner are disjoint and offset valid, correspondence is bijective locally and globally after checking orientation via mbase,mtop,mF. Enables texture UV transfer, Dirichlet data pullback, displacement fields (teaser shows elasticity simulation on coarse tet matches dense surface visually).

method comparison

Figure 2 – Left: dense linear vs right: coarse curved quartic wireframe. Hausdorff error heatmap. Boundary curvature captured with ~1/30th faces.

Theoretical Guarantees

Theorem 1 (Validity). If optimizer terminates with min_I b_I ≥ δ>0 and BVH reports no triangle-triangle intersection on ∂M_out, then every tet T has det J_T(λ)>0 ∀λ∈T̂ and mesh intersection-free.

Proof sketch. Bernstein convex hull: det J(λ)=Σ b_I B_I(λ), B_I≥0, ΣB_I=1. So det J(λ)≥ min_I b_I >0.

Theorem 2 (Hausdorff). Let ε_d user threshold, and Q cover surface with density δ_Q s.t. projection error Lipschitz bound L. Then Hausdorff(∂M_out,M_in) ≤ ε_d + Lδ_Q.

Theorem 3 (Feature exactness). If feature edges tagged, control points on those edges remain on input piecewise-linear feature polyline up to 1e-9 tolerance, preserving sharpness.

Results & Applications

Thingi10K subset (1000 manifold watertight meshes): 98.7% success to quartic within 10 min. CAD ABC 50 models, organic 30 high-genus.

Input |F|Output |F_coarse||T|Ratioε (bb %)Valid %
Bunny 69k2.1k5.4k32×0.008100
Fertility 480k12k18k40×0.01100
Fandisk 12.9k0.6k1.2k21×0.005100
Armadillo 346k9.5k22k36×0.012100

Average ~30× surface reduction, ~20× tet reduction vs linear fTetWild same Hausdorff. Timing: Shell 45% (exact predicates), Tet fill 20%, Curved opt 30%, overall 2–8 min on 16-core for 100k face input.

FEM: quartic coarse (5k tet) matches dense linear (200k tet) stress error <2% while 5× faster assembly+solve. Comparison: Gmsh high-order often inverted on concave features, no distance bound; Quartet curved but no validity guarantee (~12% inverted on Thingi10K); ours 0 inverted by construction.

Applications: simulation coarse proxy, isogeometric analysis (Bézier tets as shape functions), shape optimization bijective pullback, neural fields occupancy training.

dense vs coarse heatmap

System & Implementation

Output .h5 fields: lagr |L|×3 volume Lagrange points (deg4), cells |T|×35 connectivity, complete_cp |F|×15×3 surface Bézier CP tri15 duplication, mV,mbase,mtop,mF shell mapping for bijectivity queries.

git clone --recursive https://github.com/jiangzhongshi/bichon
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make -j4
./cumin_bin -i bunny.off -o out/
python ../python/format_utils.py bunny.off.h5 bunny.msh

Flags: -i/--input mesh .obj/.off/.ply/.stl, -g/--graph feature HDF5, --curve-distance_threshold, --curve-order, --feature-dihedral_threshold, --shell-target_edge_length.

Limitations: requires manifold watertight no self-intersection (precondition via TetWild), thin features < ε cause shell self-intersection → exit 2, degree ≤4 tested, feature tagging manual for complex CAD.

BibTeX

@article{jiang2021bichon,
  title={Bijective and Coarse High-Order Tetrahedral Meshes},
  author={Jiang, Zhongshi and Zhang, Ziyi and Hu, Yixin and Schneider, Teseo and Zorin, Denis and Panozzo, Daniele},
  journal={ACM Transactions on Graphics},
  volume={40},
  number={4},
  pages={157:1--157:16},
  year={2021},
  publisher={ACM},
  doi={10.1145/3450626.3459840},
  url={https://cims.nyu.edu/gcl/papers/2021-Bichon.pdf},
  note={SIGGRAPH 2021, code https://github.com/jiangzhongshi/bichon}
}

Acknowledgements

NYU Courant GCL, NSF award, ERC, NSERC. Based on Bijective Projection in a Shell (TOG 2020) & TetWild. Influenced later Guarding, high-order interpolation. Name Bichon – small curly dog, like small curly mesh! Thanks to readers of paper and code community.

Website template based on the Nerfies project page. If you reuse their source code, please credit them appropriately.