<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>bijective map | About Zhongshi</title><link>https://jiangzhongshi.github.io/tag/bijective-map/</link><atom:link href="https://jiangzhongshi.github.io/tag/bijective-map/index.xml" rel="self" type="application/rss+xml"/><description>bijective map</description><generator>Wowchemy (https://wowchemy.com)</generator><language>en-us</language><copyright>Profile photo credit to Rainie Zhang</copyright><lastBuildDate>Thu, 20 May 2021 15:33:20 -0400</lastBuildDate><image><url>https://jiangzhongshi.github.io/images/icon_hu0b7a4cb9992c9ac0e91bd28ffd38dd00_9727_512x512_fill_lanczos_center_3.png</url><title>bijective map</title><link>https://jiangzhongshi.github.io/tag/bijective-map/</link></image><item><title>Bijective and Coarse High-Order Tetrahedral Meshes</title><link>https://jiangzhongshi.github.io/publication/bichon/</link><pubDate>Thu, 20 May 2021 15:33:20 -0400</pubDate><guid>https://jiangzhongshi.github.io/publication/bichon/</guid><description>
&lt;link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bulma@0.9.4/css/bulma.min.css">
&lt;link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/jpswalsh/academicons@1/css/academicons.min.css">
&lt;link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
&lt;style>
.publication-title{font-family:'Google Sans',sans-serif;font-weight:700;}
.author-block{display:inline-block;margin-right:8px;}
.publication-authors a{color:#3273dc;}
.publication-links .link-block{display:inline-block;margin:6px;}
.publication-video iframe{width:100%;height:420px;}
.content img{border-radius:8px;box-shadow:0 2px 8px rgba(0,0,0,0.12);}
.hero.teaser img{max-height:480px;width:auto;margin:0 auto;display:block;}
.interp-row{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;}
.interp-row img{max-width:48%;}
.bibtex{background:#f5f5f5;padding:16px;border-radius:8px;font-size:0.85em;overflow-x:auto;}
&lt;/style>
&lt;section class="hero">
&lt;div class="hero-body">
&lt;div class="container is-max-desktop">
&lt;div class="columns is-centered">
&lt;div class="column has-text-centered">
&lt;h1 class="title is-1 publication-title">Bijective and Coarse High-Order Tetrahedral Meshes&lt;/h1>
&lt;div class="is-size-5 publication-authors">
&lt;span class="author-block">&lt;a href="https://jiangzhongshi.github.io/">&lt;u>&lt;strong>Zhongshi Jiang&lt;/strong>&lt;/u>&lt;/a>&lt;sup>1&lt;/sup>,&lt;/span>
&lt;span class="author-block">&lt;a href="https://www.ziyizhang.org/">Ziyi Zhang&lt;/a>&lt;sup>1&lt;/sup>,&lt;/span>
&lt;span class="author-block">&lt;a href="https://yixinhu.github.io/">Yixin Hu&lt;/a>&lt;sup>1&lt;/sup>,&lt;/span>
&lt;span class="author-block">&lt;a href="https://www.teseo-schneider.com/">Teseo Schneider&lt;/a>&lt;sup>1&lt;/sup>,&lt;/span>
&lt;span class="author-block">&lt;a href="https://cims.nyu.edu/gcl/denis.html">Denis Zorin&lt;/a>&lt;sup>1&lt;/sup>,&lt;/span>
&lt;span class="author-block">&lt;a href="https://cims.nyu.edu/gcl/daniele.html">Daniele Panozzo&lt;/a>&lt;sup>1&lt;/sup>&lt;/span>
&lt;/div>
&lt;div class="is-size-5 publication-authors">
&lt;span class="author-block">&lt;sup>1&lt;/sup>New York University, Courant Institute&lt;/span>
&lt;/div>
&lt;div class="is-size-6 publication-authors" style="margin-top:6px;">
&lt;em>SIGGRAPH 2021 / ACM Transactions on Graphics 2021&lt;/em>
&lt;/div>
&lt;div class="column has-text-centered">
&lt;div class="publication-links">
&lt;span class="link-block">
&lt;a href="https://cims.nyu.edu/gcl/papers/2021-Bichon.pdf" class="external-link button is-normal is-rounded is-dark">
&lt;span class="icon">&lt;i class="fas fa-file-pdf">&lt;/i>&lt;/span>&lt;span>Paper&lt;/span>
&lt;/a>
&lt;/span>
&lt;span class="link-block">
&lt;a href="https://arxiv.org/abs/2103.12096" class="external-link button is-normal is-rounded is-dark">
&lt;span class="icon">&lt;i class="ai ai-arxiv">&lt;/i>&lt;/span>&lt;span>arXiv&lt;/span>
&lt;/a>
&lt;/span>
&lt;span class="link-block">
&lt;a href="https://youtu.be/yfztQw78gnE" class="external-link button is-normal is-rounded is-dark">
&lt;span class="icon">&lt;i class="fab fa-youtube">&lt;/i>&lt;/span>&lt;span>Video&lt;/span>
&lt;/a>
&lt;/span>
&lt;span class="link-block">
&lt;a href="https://github.com/jiangzhongshi/bichon" class="external-link button is-normal is-rounded is-dark">
&lt;span class="icon">&lt;i class="fab fa-github">&lt;/i>&lt;/span>&lt;span>Code&lt;/span>
&lt;/a>
&lt;/span>
&lt;span class="link-block">
&lt;a href="https://jiangzhongshi.github.io/bichon/" class="external-link button is-normal is-rounded is-dark">
&lt;span class="icon">&lt;i class="fas fa-globe">&lt;/i>&lt;/span>&lt;span>Project&lt;/span>
&lt;/a>
&lt;/span>
&lt;span class="link-block">
&lt;a href="https://drive.google.com/file/d/1Gw3vza0GkY0pMf4kLcrOzQeCIlbEp4Cs/view?usp=sharing" class="external-link button is-normal is-rounded is-dark">
&lt;span class="icon">&lt;i class="far fa-images">&lt;/i>&lt;/span>&lt;span>Data&lt;/span>
&lt;/a>
&lt;/span>
&lt;span class="link-block">
&lt;a href="https://doi.org/10.1145/3450626.3459840" class="external-link button is-normal is-rounded is-dark">
&lt;span class="icon">&lt;i class="fas fa-link">&lt;/i>&lt;/span>&lt;span>DOI&lt;/span>
&lt;/a>
&lt;/span>
&lt;/div>
&lt;/div>
&lt;/div>
&lt;/div>
&lt;/div>
&lt;/div>
&lt;/section>
&lt;section class="hero teaser">
&lt;div class="container is-max-desktop">
&lt;div class="hero-body has-text-centered">
&lt;img src="teaser.png" alt="Coarse high-order tet mesh via shell optimization" style="max-width:760px; width:100%; border-radius:12px; box-shadow:0 6px 24px rgba(0,0,0,0.18); display:block; margin:0 auto;">
&lt;h2 class="subtitle has-text-centered" style="margin-top:12px;">
&lt;b>Coarse high-order tet mesh via shell optimization&lt;/b> – converting dense linear surfaces into &lt;em>coarse, curved, valid&lt;/em> quartic tetrahedral meshes that preserve features, bound Hausdorff error, and stay bijective.
&lt;/h2>
&lt;p class="is-size-7 has-text-centered" style="margin-top:4px;color:#666;">Pipeline: dense input → coarse shell → curved quartic Bézier tets → optimization → bijective transfer. Fig 1 ACM TOG 2021.&lt;/p>
&lt;/div>
&lt;/div>
&lt;/section>
&lt;section class="hero is-small">
&lt;div class="hero-body" style="padding-top:0;">
&lt;div class="container is-max-desktop has-text-centered">
&lt;img src="featured.jpg" alt="dense vs coarse single-subject aesthetic" style="max-width:640px; width:100%; height:auto; border-radius:10px; box-shadow:0 3px 12px rgba(0,0,0,0.12); object-fit:contain; display:block; margin:0 auto;">
&lt;p class="is-size-7" style="margin-top:6px;color:#777;">Aesthetic thumbnail – single-subject coarse quartic, responsive preserved aspect, no stretch.&lt;/p>
&lt;/div>
&lt;/div>
&lt;/section>
&lt;section class="section">
&lt;div class="container is-max-desktop">
&lt;div class="columns is-centered has-text-centered">
&lt;div class="column is-four-fifths">
&lt;h2 class="title is-3">Abstract&lt;/h2>
&lt;div class="content has-text-justified">
&lt;p>
Piecewise-linear meshes dominate geometry processing, but isoparametric finite element simulation demands &lt;em>curved&lt;/em>, high-order elements to capture curved boundaries without excessive refinement. &lt;strong>Bichon&lt;/strong> is a robust, automatic pipeline that converts a dense linear triangle mesh with annotated features into a &lt;strong>coarse, curved, high-order tetrahedral mesh&lt;/strong>. 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.
&lt;/p>
&lt;p>
&lt;strong>Input&lt;/strong>: manifold, watertight triangle mesh, no self-intersection (+ optional feature edges/corners, constraint points).&lt;br>
&lt;strong>Output&lt;/strong>: Quartic (p=4) Bézier tet mesh that is coarse, valid, collision-free, ε-close, feature-conforming, and equipped with f: M&lt;sub>in&lt;/sub> ↔ ∂M&lt;sub>out&lt;/sub> bijective.
&lt;/p>
&lt;/div>
&lt;/div>
&lt;/div>
&lt;div class="columns is-centered has-text-centered">
&lt;div class="column is-four-fifths">
&lt;h2 class="title is-3">Video&lt;/h2>
&lt;div class="publication-video">
&lt;iframe src="https://www.youtube.com/embed/yfztQw78gnE?rel=0&amp;amp;showinfo=0" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen>&lt;/iframe>
&lt;/div>
&lt;/div>
&lt;/div>
&lt;/div>
&lt;/section>
&lt;section class="section">
&lt;div class="container is-max-desktop">
&lt;div class="columns is-centered">
&lt;div class="column is-full-width">
&lt;h2 class="title is-3">Why Coarse High-Order?&lt;/h2>
&lt;div class="content has-text-justified">
&lt;p>&lt;b>h- vs p-refinement:&lt;/b> 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.&lt;/p>
&lt;p>The gap: &lt;b>Gmsh, CGAL&lt;/b> generate fine linear meshes but not coarse curved guarantee; &lt;b>Quartet, DistMesh&lt;/b> 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.&lt;/p>
&lt;/div>
&lt;img src="teaser.png" alt="Pipeline Fig 1" style="max-width:100%;">
&lt;p class="has-text-centered is-size-7" style="margin-top:6px;">&lt;b>Figure 1&lt;/b> – 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.&lt;/p>
&lt;/div>
&lt;/div>
&lt;div class="columns is-centered">
&lt;div class="column is-full-width">
&lt;h2 class="title is-3">Method Overview&lt;/h2>
&lt;div class="content has-text-justified">
&lt;pre style="background:#fafafa;padding:12px;border-radius:6px;">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 &amp; 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)&lt;/pre>
&lt;h4>Bézier Tet Formalism&lt;/h4>
&lt;p>Degree p tetrahedron with barycentric λ=(α,β,γ,δ), Σλᵢ=1:&lt;/p>
&lt;p>$$ \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} $$&lt;/p>
&lt;p>Jacobian J(λ)=[∂x/∂α,∂x/∂β,∂x/∂γ]∈ℝ³ˣ³. Validity requires positivity on control lattice sufficient condition: Bernstein coefficients of det J >0. We use:&lt;/p>
&lt;p>$$ \det J(\lambda)=\sum_{|I|=4p-3} b_I B_I^p(\lambda) $$&lt;/p>
&lt;p>If min_I b_I >0 ⇒ element valid. We optimize to enforce b_I ≥ ε.&lt;/p>
&lt;h4>Shell &amp; Feature&lt;/h4>
&lt;p>Shell S is offset surfaces S&lt;sup>±ε&lt;/sup> 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.&lt;/p>
&lt;p>Dihedral heuristic --feature-dihedral_threshold auto-tags features if H5 not supplied. Corners junction of ≥3 feature edges auto-inferred. Features frozen during optimization.&lt;/p>
&lt;h4>Curved Optimization&lt;/h4>
&lt;p>$$ E = w_d\,E_{distance}+w_q\,E_{AMIPS}+w_b\,E_{barrier} $$&lt;/p>
&lt;p>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.&lt;/p>
&lt;h4>Bijective Map &amp; Transfer&lt;/h4>
&lt;p>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).&lt;/p>
&lt;/div>
&lt;img src="method.png" alt="method comparison" style="max-width:100%; border:1px solid #e0e0e0; border-radius:8px; box-shadow:0 2px 8px rgba(0,0,0,0.1);">
&lt;p class="has-text-centered is-size-7">&lt;b>Figure 2&lt;/b> – Left: dense linear vs right: coarse curved quartic wireframe. Hausdorff error heatmap. Boundary curvature captured with ~1/30th faces.&lt;/p>
&lt;/div>
&lt;/div>
&lt;div class="columns is-centered">
&lt;div class="column is-full-width">
&lt;h2 class="title is-3">Theoretical Guarantees&lt;/h2>
&lt;div class="content">
&lt;p>&lt;b>Theorem 1 (Validity).&lt;/b> 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.&lt;/p>
&lt;p>&lt;em>Proof sketch.&lt;/em> Bernstein convex hull: det J(λ)=Σ b_I B_I(λ), B_I≥0, ΣB_I=1. So det J(λ)≥ min_I b_I >0.&lt;/p>
&lt;p>&lt;b>Theorem 2 (Hausdorff).&lt;/b> 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.&lt;/p>
&lt;p>&lt;b>Theorem 3 (Feature exactness).&lt;/b> If feature edges tagged, control points on those edges remain on input piecewise-linear feature polyline up to 1e-9 tolerance, preserving sharpness.&lt;/p>
&lt;/div>
&lt;/div>
&lt;/div>
&lt;div class="columns is-centered">
&lt;div class="column is-full-width">
&lt;h2 class="title is-3">Results &amp; Applications&lt;/h2>
&lt;div class="content has-text-justified">
&lt;p>&lt;b>Thingi10K subset&lt;/b> (1000 manifold watertight meshes): 98.7% success to quartic within 10 min. CAD ABC 50 models, organic 30 high-genus.&lt;/p>
&lt;table class="table is-bordered is-striped is-narrow is-fullwidth" style="font-size:0.9em;">
&lt;thead>&lt;tr>&lt;th>Input |F|&lt;/th>&lt;th>Output |F_coarse|&lt;/th>&lt;th>|T|&lt;/th>&lt;th>Ratio&lt;/th>&lt;th>ε (bb %)&lt;/th>&lt;th>Valid %&lt;/th>&lt;/tr>&lt;/thead>
&lt;tbody>
&lt;tr>&lt;td>Bunny 69k&lt;/td>&lt;td>2.1k&lt;/td>&lt;td>5.4k&lt;/td>&lt;td>32×&lt;/td>&lt;td>0.008&lt;/td>&lt;td>100&lt;/td>&lt;/tr>
&lt;tr>&lt;td>Fertility 480k&lt;/td>&lt;td>12k&lt;/td>&lt;td>18k&lt;/td>&lt;td>40×&lt;/td>&lt;td>0.01&lt;/td>&lt;td>100&lt;/td>&lt;/tr>
&lt;tr>&lt;td>Fandisk 12.9k&lt;/td>&lt;td>0.6k&lt;/td>&lt;td>1.2k&lt;/td>&lt;td>21×&lt;/td>&lt;td>0.005&lt;/td>&lt;td>100&lt;/td>&lt;/tr>
&lt;tr>&lt;td>Armadillo 346k&lt;/td>&lt;td>9.5k&lt;/td>&lt;td>22k&lt;/td>&lt;td>36×&lt;/td>&lt;td>0.012&lt;/td>&lt;td>100&lt;/td>&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>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.&lt;/p>
&lt;p>&lt;b>FEM&lt;/b>: quartic coarse (5k tet) matches dense linear (200k tet) stress error &amp;lt;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.&lt;/p>
&lt;p>Applications: simulation coarse proxy, isogeometric analysis (Bézier tets as shape functions), shape optimization bijective pullback, neural fields occupancy training.&lt;/p>
&lt;/div>
&lt;div class="interp-row" style="margin-top:12px;">
&lt;img src="featured.jpg" alt="dense vs coarse" style="max-width:48%; height:auto; object-fit:contain; border-radius:8px;">
&lt;img src="method.png" alt="heatmap" style="max-width:48%; height:auto; object-fit:contain; border-radius:8px; border:1px solid #e0e0e0;">
&lt;/div>
&lt;/div>
&lt;/div>
&lt;div class="columns is-centered">
&lt;div class="column is-full-width">
&lt;h2 class="title is-3">System &amp; Implementation&lt;/h2>
&lt;div class="content">
&lt;p>&lt;b>Output .h5 fields&lt;/b>: 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.&lt;/p>
&lt;pre>&lt;code>git clone --recursive https://github.com/jiangzhongshi/bichon
mkdir build &amp;&amp; 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&lt;/code>&lt;/pre>
&lt;p>Flags: -i/--input mesh .obj/.off/.ply/.stl, -g/--graph feature HDF5, --curve-distance_threshold, --curve-order, --feature-dihedral_threshold, --shell-target_edge_length.&lt;/p>
&lt;p>Limitations: requires manifold watertight no self-intersection (precondition via TetWild), thin features &amp;lt; ε cause shell self-intersection → exit 2, degree ≤4 tested, feature tagging manual for complex CAD.&lt;/p>
&lt;/div>
&lt;/div>
&lt;/div>
&lt;div class="columns is-centered">
&lt;div class="column is-full-width">
&lt;h2 class="title is-3">BibTeX&lt;/h2>
&lt;pre class="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}
}&lt;/pre>
&lt;/div>
&lt;/div>
&lt;div class="columns is-centered">
&lt;div class="column is-full-width">
&lt;h2 class="title is-3">Acknowledgements&lt;/h2>
&lt;div class="content has-text-justified" style="font-size:0.9em;">
&lt;p>NYU Courant GCL, NSF award, ERC, NSERC. Based on Bijective Projection in a Shell (TOG 2020) &amp; TetWild. Influenced later Guarding, high-order interpolation. Name Bichon – small curly dog, like small curly mesh! Thanks to readers of &lt;a href="https://cims.nyu.edu/gcl/papers/2021-Bichon.pdf">paper&lt;/a> and &lt;a href="https://github.com/jiangzhongshi/bichon">code&lt;/a> community.&lt;/p>
&lt;/div>
&lt;/div>
&lt;/div>
&lt;/div>
&lt;/section></description></item></channel></rss>