Files
OneCAD-Simulation/docs/meshing/literature.md
T
jyvikoandClaude Opus 5.5 9469ac0853 Tet mesh quality: one validity criterion, Delaunay refinement, ODT, Klingner–Shewchuk, tet10
The end-to-end demo met a raw-CDT sliver that the validity gate accepted (exactly positive) and
the solver refused. Now:

- One validity criterion, `fieldcraft_model::admissible_jacobian` (normalized Jacobian above
  1e-12), used by the implicit solver (fem `positive_inverse`), the explicit tet4/hex8
  kinematics and the mesh gate, which proves it on the whole element (tet4: the solvers' own
  Jacobian; curved kinds: a Bernstein floor), so whatever passes the gate passes the solvers.
- CDT rounding repaired by flips on the rounded mesh (Diazzi et al. 2023 §5.1) instead of the
  ±2-ulp nudge.
- `fieldcraft-mesh::tet`: a mutable tetrahedral complex whose every change is a checked
  replacement (positive and admissible tetrahedra, faces matched with opposite orientation) with
  an exact undo log; edge removal (Klincsek), multi-face removal, Delaunay insertion with
  boundary faces, edge collapse; a curvature- and thickness-graded size field; constrained
  Delaunay refinement with encroachment splits; ODT smoothing; the Klingner–Shewchuk schedule;
  boundary vertices moved onto the exact B-rep surfaces at the end; tet10 with mid-edge nodes on
  the geometry.
- `mesh.tet.generate` gains size, order, quality, quality_target, curvature_angle, grading,
  max_passes, max_points and reports the CDT's and the mesh's quality; `solve.probe` takes a set
  and reports its largest von Mises stress.
- Oracle cases filleted-bracket-fillet-stress(-coarse): the fillet's peak von Mises stress on
  tet10 meshes of 2k and 13.5k elements, 213.3 MPa (a four-level study stays within 1.8%); the
  CDT cases keep the raw tetrahedralization.
- Corpus quality columns: all 20 valid parts mesh and pass the gate.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NmAttHhUZTokgPeEJia8sm
2026-10-14 08:28:49 -04:00

85 KiB
Raw Blame History

Volume meshing literature survey for FieldCraft (tet → hex)

Compiled 2026-10-13. Scope: watertight triangulated B-rep tessellation in, then (1) tetrahedral mesh by Delaunay methods with Voronoi/ODT improvement, then (2) all-hex and hex-dominant meshes.

How this was verified

  • DOIs. Every DOI below resolved through the DOI handle API (doi.org/api/handles/<doi> → responseCode 1). Each title, first author, year and venue was also checked against Crossref metadata. One wrong DOI was caught and fixed: 10.1145/276884.276889 is Amenta's Voronoi filtering, and Shewchuk's SoCG'98 paper is .276894.
  • Other URLs (author PDFs, arXiv, project pages, repos) returned HTTP 200 on 2026-10-13. Two exceptions: cs.nyu.edu/~yixinhu/tetwild.pdf (403) and zenodo.org/record/6642020 (403 to a scripted client, though the Zenodo REST API returned the record). Neither is used as a primary link; I cite the DOI instead.
  • Section numbers were read from the PDFs for: Shewchuk 1997, 1998, 2002; Klingner–Shewchuk; Labelle–Shewchuk; Diazzi 2021 and 2023; fTetWild; Attene 2020; Livesu 2021; Garanzha 2021; Pietroni survey; HexMe; DualCube. For any other paper I give no section number rather than guess one.
  • Licences come from GitHub/GitLab licence metadata, LICENSE files or README licence statements. I read no source code. "none" means the repo has no licence, which makes it all-rights-reserved: treat it as unreadable for a clean-room project, same as GPL.

Licence legend for associated code

Status Meaning
READ OK Permissive (MIT, BSD, Apache-2.0, ISC, MPL-2.0 file-level, public domain). May be read for reference. Still re-implement from the paper.
FORBIDDEN GPL, LGPL or AGPL. Do not open.
NO LICENCE All rights reserved. Do not open.

Part A: Tetrahedral meshing

A0. Robust predicates and exactness (foundation for everything)

A0.1 Shewchuk 1997, adaptive-precision predicates. Verdict: build on.

  • Citation. J. R. Shewchuk. Adaptive Precision Floating-Point Arithmetic and Fast Robust Geometric Predicates. Discrete & Computational Geometry 18(3):305–363, 1997.
  • Links. DOI 10.1007/PL00009321. PDF: https://people.eecs.berkeley.edu/~jrs/papers/robustr.pdf
  • Method. Floating-point expansions (non-overlapping sums of doubles) with error-free transforms:
    • Two-Sum and Fast-Two-Sum (§2.3).
    • Expansion-Sum / Fast-Expansion-Sum (§2.4).
    • Two-Product with Dekker splitting (§2.5).
    • Scale-Expansion (§2.6).
    • Compression (§2.7).
    • Adaptive evaluation (§3): compute the determinant in plain doubles with a certified error bound. Escalate through increasingly exact stages only when the sign is uncertain.
  • Predicates. orient2d, orient3d, incircle and insphere, each with stage-wise error bounds (§4.2). §5 lists caveats: overflow, underflow, and the assumption of round-to-even IEEE arithmetic.
  • Problem solved. Exact sign of the core Delaunay predicates at near-double speed.
  • Robustness. Exact for inputs in double precision. It does not handle constructed points such as intersections or Steiner points; that is what A0.3 is for. It does not resolve true degeneracies (cospherical points); that is what A0.2 is for.
  • Complexity. Low to moderate: about 1–2k lines. The error-bound constants must be derived exactly as in the paper.
  • Code.
  • Why. Every downstream algorithm (Bowyer–Watson, CDT, refinement, octree/surface classification) assumes exact orient3d and insphere.

A0.2 Symbolic perturbation (Simulation of Simplicity). Verdict: build on.

  • Citations.
    • H. Edelsbrunner, E. P. Mücke. Simulation of Simplicity: a technique to cope with degenerate cases in geometric algorithms. ACM TOG 9(1):66–104, 1990. DOI 10.1145/77635.77639.
    • O. Devillers, M. Teillaud. Perturbations for Delaunay and weighted Delaunay 3D triangulations. CGTA 44(3):160–168, 2011. DOI 10.1016/j.comgeo.2010.09.010.
  • Method. When insphere is exactly zero, break the tie with a consistent symbolic perturbation. Devillers–Teillaud give a perturbation for insphere that needs only orient3d evaluations on sorted point indices. That is much simpler than general SoS.
  • Problem solved. Cospherical and coplanar inputs, which are ubiquitous in CAD tessellations (grids, cylinders, regular polygons). The Delaunay triangulation stays unique and the Bowyer–Watson cavity stays a star-shaped ball.
  • Complexity. Low, given A0.1.
  • Code. No code was read.

A0.3 Attene 2020, indirect predicates. Verdict: build on (from the paper only).

  • Citation. M. Attene. Indirect Predicates for Geometric Constructions. Computer-Aided Design 126:102856, 2020.
  • Links. DOI 10.1016/j.cad.2020.102856. arXiv: https://arxiv.org/abs/2105.09772
  • Method. Represent constructed points implicitly, never rounding them:
    • LPI: line–plane intersection.
    • TPI: three-plane intersection.
    • LNC: point on a segment.
  • Evaluation. Predicates on implicit points are expanded symbolically into homogeneous polynomials. They are then evaluated with a three-level filter (§5):
    • static/semi-static floating-point filter (§5.1);
    • interval arithmetic (§5.2);
    • exact expansions (§5.3).
  • The paper also covers caching (§5.4) and generating predicate code automatically from a description (§6).
  • Problem solved. Exact predicates on Steiner and intersection points without rational or bignum arithmetic. This is the enabling trick of A2.3 and A2.4.
  • Robustness. Exact. The cost grows with the "depth" of the construction, so the method is designed for one level of implicit points defined by explicit inputs.
  • Complexity. Moderate: about 3–5k lines, mostly generated. Write a small Rust code generator, as the paper does.
  • Code. MarcoAttene/Indirect_Predicates is LGPL-2.1: FORBIDDEN.
  • Reference alternative. Lévy's PCK (next entry) is BSD.

A0.4 Lévy 2016, Predicate Construction Kit (PCK). Verdict: reference.

  • Citation. B. Lévy. Robustness and efficiency of geometric programs: The Predicate Construction Kit (PCK). Computer-Aided Design 72:3–12, 2016. DOI 10.1016/j.cad.2015.10.004.
  • Method. A code generator from a predicate formula to:
    • a semi-static filter;
    • an exact expansion fallback;
    • SoS for degenerate cases.
  • It is used in geogram's Delaunay and restricted-Voronoi code.
  • Code. BrunoLevy/geogram is BSD-3-Clause (LICENSE file): READ OK, with one caveat. geogram vendors third_party/tetgen (AGPL) and third_party/triangle (non-free), and has wrappers delaunay/delaunay_tetgen.* and delaunay/delaunay_triangle.*. Never open those. Geogram's own delaunay_3d.cpp, parallel_delaunay_3d.cpp, voronoi/RVD*.cpp, CVT.cpp and its numerics/PCK files are BSD.
  • Verdict reason. It is the best permissively licensed reference for a production Delaunay + RVD + predicate stack.

A0.5 Boundary surface preparation (implemented in fieldcraft-mesh::surface). Verdict: BUILD ON.

  • Guigue and Devillers 2003. P. Guigue, O. Devillers. Fast and Robust Triangle–Triangle Overlap Test Using Orientation Predicates. Journal of Graphics Tools 8(1):25–32, 2003. Triangle overlap decided from orient3d / orient2d signs alone, so it is exact on the A0.1 predicates. We use the equivalent edge–triangle reduction (two closed triangles meet exactly when an edge of one meets the other) and add the cases of triangles that share a vertex or an edge, which may meet only there.
  • Ericson 2005. C. Ericson. Real-Time Collision Detection. Morgan Kaufmann, 2005, ch. 6. Bounding volume hierarchies: top-down median-split construction and the self-collision traversal that pairs the triangles to test.
  • Jacobson, Kavan, Sorkine-Hornung 2013. Robust Inside-Outside Segmentation using Generalized Winding Numbers. ACM TOG 32(4):33, 2013. DOI 10.1145/2461912.2461916. The winding number of a vertex of one shell with respect to another tells nesting, so voids must face inwards.
  • van Oosterom and Strackee 1983. The Solid Angle of a Plane Triangle. IEEE Trans. Biomed. Eng. 30(2):125–126, 1983. DOI 10.1109/TBME.1983.325207. The triangle solid angle the winding number sums.

A1. Delaunay construction

A1.1 Bowyer 1981 / Watson 1981, incremental cavity insertion. Verdict: build on.

  • Citations.
    • A. Bowyer. Computing Dirichlet tessellations. The Computer Journal 24(2):162–166, 1981. DOI 10.1093/comjnl/24.2.162.
    • D. F. Watson. Computing the n-dimensional Delaunay tessellation with application to Voronoi polytopes. The Computer Journal 24(2):167–172, 1981. DOI 10.1093/comjnl/24.2.167.
  • Method. Insert a point, find all tetrahedra whose circumsphere contains it (the cavity), delete them, and star the cavity boundary to the new point.
  • Robustness. With exact insphere/orient3d (A0.1) and SoS (A0.2) the cavity is always a star-shaped ball and the method never fails. With floating-point predicates it corrupts the mesh on degenerate CAD input.
  • Complexity. Low for the core. Practical speed needs:
    • BRIO insertion order: N. Amenta, S. Choi, G. Rote, Incremental constructions con BRIO, SoCG 2003, 211–219, DOI 10.1145/777792.777824. Use it together with Hilbert/Morton sorting.
    • Visibility or straight walking for point location: O. Devillers, S. Pion, M. Teillaud, Walking in a triangulation, IJFCS 13(2):181–199, 2002, DOI 10.1142/S0129054102001047.
    • A compact tet-adjacency array.
    • Termination of the visibility walk in a Delaunay triangulation: H. Edelsbrunner, An acyclicity theorem for cell complexes in d dimensions, Combinatorica 10(3):251–260, 1990, DOI 10.1007/BF02122779.
    • Hilbert index: J. Skilling, Programming the Hilbert curve, AIP Conf. Proc. 707:381–387, 2004, DOI 10.1063/1.1751381.
  • Code. For a permissive reference, see geogram delaunay_3d.cpp (BSD).
  • Implemented in fieldcraft-mesh::delaunay (ghost vertex for the hull, Devillers–Teillaud perturbation for cospherical points, exact verifier).

A1.2 Marot, Pellerin, Remacle 2019, "One machine, one minute, three billion tetrahedra". Verdict: reference (later).

  • Citation. IJNME 117(9):967–990, 2019. DOI 10.1002/nme.5987.
  • Method. Parallel Delaunay kernel: domain partitioning on a space-filling curve, lock-free cavity work, cache-friendly data layout.
  • Use. Only once single-threaded correctness is nailed down.
  • Code. HXT lives inside Gmsh (GPL): FORBIDDEN.

A2. Boundary recovery: constrained or conforming Delaunay

A2.1 Shewchuk 2002, CDTs and provably good boundary recovery. Verdict: build on (theory).

  • Citation. J. R. Shewchuk. Constrained Delaunay Tetrahedralizations and Provably Good Boundary Recovery. Proc. 11th International Meshing Roundtable, 2002.
  • Links. No DOI exists. PDF: https://people.eecs.berkeley.edu/~jrs/papers/cdtbasic.pdf
  • Method. A PLC does not always have a CDT. If every segment is strongly Delaunay, a CDT exists. The paper protects edges by splitting them (§3 Edge Protection, §5 Provably Good Edge Protection) until this holds. Then it builds the CDT (§6), for example by incremental facet insertion (§7).
  • Problem solved. The existence theory behind every practical CDT code.
  • Robustness. Proven termination and existence. The provable protection inserts more Steiner points than needed.
  • Complexity. Medium.
  • Companion papers.

A2.2 Si and Gärtner 2005; Si 2010; Si 2015; Shewchuk and Si 2014. Verdict: reference (papers only; TetGen is AGPL).

  • Citations.
  • Method.
    1. Delaunay tetrahedralization of the vertices.
    2. Segment recovery, with Steiner points placed using a protecting-ball rule that needs far fewer points than Shewchuk 2002.
    3. Face recovery by cavity retriangulation.
    4. Optional quality refinement (radius–edge bound) under the CDT.
  • Limitations.
    • Steiner points are rounded to doubles, which needs tolerances and can fail.
    • Diazzi et al. 2023 §3.5 ("Possible failures in tetgen") also show a theoretical gap: cavity expansion can fail even in exact arithmetic (their Fig. 4).
  • Code. TetGen is AGPL: FORBIDDEN. Read the papers only.

A2.3 Diazzi, Panozzo, Vaxman, Attene 2023, robust CDT. Verdict: BUILD ON. This is the recommended boundary-recovery algorithm.

  • Citation. L. Diazzi, D. Panozzo, A. Vaxman, M. Attene. Constrained Delaunay Tetrahedrization: A Robust and Practical Approach. ACM TOG 42(6):181 (SIGGRAPH Asia), 2023.
  • Links. DOI 10.1145/3618352. arXiv: https://arxiv.org/abs/2309.09805
  • Method. Si–Gärtner's pipeline with every Steiner point represented implicitly with indirect predicates (A0.3), so no geometric tolerance is ever needed.
    • Background, §3:
      • §3.1 problem statement;
      • §3.2 PLC characteristics;
      • §3.3 segment recovery;
      • §3.4 face recovery;
      • §3.5 TetGen failure modes.
    • Algorithm, §4:
      • §4.1 why exact rational numbers are not enough;
      • §4.2 rational Steiner points;
      • §4.3 implicit Steiner points (§4.3.1 indirect orient3d/inSphere);
      • §4.4 a modified gift-wrapping algorithm that replaces Si's cavity expansion where that can fail;
      • §4.5 interior/exterior labelling;
      • §4.6 the full algorithm.
    • Rounding, §5.1: output can be rounded to floating-point coordinates afterwards.
  • Results. 100% success on the 4,408 valid Thingi10K models. The output conforms exactly to the input. It is parameter-free.
  • Problem solved. Exact boundary conformity, which CAE needs for face groups, contact pairs, shared interfaces between parts and boundary-condition tagging, together with a termination guarantee.
  • Limitations.
    • The input must be a valid PLC (no self-intersections). Fine for a B-rep tessellator that guarantees watertight, non-self-intersecting output. Otherwise run A2.4 or A2.5 first.
    • Rounding to doubles "almost always" stays valid but is not guaranteed. Keep implicit points through the quality phase, or round with a validity check.
    • Steiner counts can be large on nasty inputs. The paper notes about 9% of models needing over 50k.
  • Complexity. High: about 8–12k lines of Rust including the predicate generator. It is the single most valuable investment in the tet pipeline.
  • Code. MarcoAttene/CDT is GPL, or LGPL by build option (README): FORBIDDEN.
  • Implemented in fieldcraft-mesh::cdt from the paper only, with these choices:
    • Steiner points are LNC points (§4.3) on the original segment, a + t (b − a) with t a double; the in-sphere test on them is exact (interval filter, then exact dyadic integers) and perturbed with the same lexicographic lift as the Delaunay step, so Bowyer–Watson insertion of Steiner points stays consistent with it.
    • Facet recovery uses the modified gift-wrapping (§4.4) for every cavity, not only after Si's cavity expansion fails: it is the always-correct path, and Si's expansion is a speed-up. Condition (ii) is an exact proper-intersection test of closed simplices (separating plane through three of the vertices, then recursion into the contact plane), which handles the coplanar configurations of CAD tessellations; recovered facets inside a cavity stay constraints.
    • Reference points (§3.3) are searched among the tetrahedra whose boxes meet the missing subsegment's box (they contain the tetrahedra the subsegment crosses); on the corpus this picks the same point as searching the whole diametral ball.
    • Rounding (§5.1): the flips of §5.1 run on the rounded coordinates (cdt::repair), decided by exact orient3d on the doubles: every tetrahedron that rounding (or nearly cospherical input) leaves flat, inverted or below FieldCraft's validity criterion is targeted by edge removal and multi-face removal that never touch a segment, and a flat tetrahedron lying on one input triangle is deleted. What survives (a flat tetrahedron spanning two nearly coplanar input triangles: 1–65 per part on 7 corpus parts) is counted by the gate and removed by the quality stage, whose boundary is the B-rep faces rather than the input triangles.

A2.4 Diazzi and Attene 2021, convex polyhedral meshing. Verdict: reference.

  • Citation. L. Diazzi, M. Attene. Convex polyhedral meshing for robust solid modeling. ACM TOG 40(6):259, 2021.
  • Links. DOI 10.1145/3478513.3480564. arXiv: https://arxiv.org/abs/2109.14434
  • Method.
    1. Delaunay of the vertices.
    2. Map tets to the constraints they intersect (§3.3).
    3. Binary space partition of the tets by constraint planes, with implicit points (§3.4).
    4. Virtual constraints (§3.5).
    5. Identify constrained facets (§3.6).
    6. Partition cells into inside/outside (§3.7).
  • Output. A convex polyhedral mesh that conforms exactly even to self-intersecting input. It can be tetrahedralized afterwards.
  • Use for us. A repair path for dirty B-reps: overlapping faces, booleans, imported STEP/STL with intersections.
  • Code. MarcoAttene/VolumeMesher is GPL-3: FORBIDDEN.

A2.5 Hu et al. 2018, TetWild; Hu et al. 2020, fTetWild (envelope approach). Verdict: reference; use as a fallback design for dirty input.

  • Citations.
  • Method. The input surface may move within an ε-envelope:
    • §3.2 envelope test;
    • §3.3 preprocessing;
    • §3.4 incremental triangle insertion into a floating-point tet mesh. Each insertion is rejected if it would create an inverted tet;
    • §3.5 AMIPS-driven split/collapse/swap/smooth improvement that never leaves the envelope.
  • Results. fTetWild guarantees a valid floating-point output (TetWild produced rational coordinates that may invert after rounding). It meshes 98.7% of Thingi10K in under 2 minutes.
  • Limitations.
    • fTetWild does not guarantee every input triangle is in the output.
    • The output surface only approximates the input. Sharp features and face IDs must be re-projected.
    • That is acceptable for "meshes in the wild" but awkward for CAE, where face groups must match B-rep faces exactly.
  • Complexity. High.
  • Code.
    • wildmeshing/fTetWild is MPL-2.0: READ OK (its own src/; it pulls in geogram and libigl).
    • Original Yixin-Hu/TetWild is GPL-3.0 per GitHub metadata: FORBIDDEN.
    • wildmeshing/wildmeshing-toolkit is MIT: READ OK.

A2.6 Cherchi, Livesu, Scateni, Attene 2020, mesh arrangements. Verdict: reference (needed only for self-intersecting input).

  • Citation. Fast and robust mesh arrangements using floating-point arithmetic. ACM TOG 39(6):250, 2020. DOI 10.1145/3414685.3417818.
  • Method. Resolves all self-intersections of a triangle soup with indirect predicates.
  • Code. mlivesu/InteractiveAndRobustMeshBooleans is MIT per GitHub, a related later work. Caution: check whether it bundles Attene's LGPL predicate headers before opening any file.

A3. Quality: Delaunay refinement, ODT/CVT, sliver removal

A3.1 Shewchuk 1998, tetrahedral Delaunay refinement; thesis 1997. Verdict: build on.

  • Citation. J. R. Shewchuk. Tetrahedral Mesh Generation by Delaunay Refinement. SoCG 1998, 86–95.

  • Links.

  • Method. Insert the circumcentres of tets whose radius–edge ratio exceeds B. Encroached subsegments are split first, then encroached subfacets.

  • Guarantee. Termination with B = 2 when input angles are at least 90°.

  • Limitations. It bounds radius–edge ratio, not dihedral angles. Slivers survive, so pair it with A3.3–A3.6. Small input angles, common in CAD, need the CDT-based variants: Si 2010 (A2.2), and Shewchuk & Si, SoCG 2014, DOI 10.1145/2582112.2582138.

  • Complexity. Medium, on top of A2.3.

  • Code. None read.

  • Implemented in fieldcraft-mesh::tet::refine: circumcentres of tetrahedra whose radius–edge ratio exceeds B = 2 (when their circumradius is at least half the local size) or whose circumradius exceeds 0.75 of the local size; a circumcentre outside the domain or inside a boundary face's diametral sphere splits that face instead (at its circumcentre when inside it, else at its longest edge's midpoint, a feature edge split when that edge is one), every boundary point projected onto its B-rep face or curve. Small input angles are handled by bounds rather than Si's theory: faces below half the local size are not split, no vertex closer than 0.05 of the size to another, a tetrahedron whose point could not go in is not retried, caps on insertions and tetrahedra. Before refinement, edge collapse coarsens the boundary recovery's dense Steiner points (X. Li, M. S. Shephard, M. W. Beall, 3D anisotropic mesh adaptation by mesh modification, CMAME 194(48–49):4915–4950, 2005).

A3.2 Cheng, Dey, Shewchuk, Delaunay Mesh Generation (CRC, 2012). Verdict: reference (the textbook).

  • Links. DOI 10.1201/b12987.
  • Use. The consolidated treatment of 3D refinement, small-angle handling and sliver theory. Buy it.

A3.3 Alliez, Cohen-Steiner, Yvinec, Desbrun 2005, Variational Tetrahedral Meshing. Verdict: build on (ODT smoothing).

  • Citation. ACM TOG 24(3):617–625, 2005. DOI 10.1145/1073204.1073238.
  • Method. Minimize the ODT energy: the L1 error between the paraboloid and its piecewise-linear interpolant. Alternate between:
    • moving each interior vertex to the volume-weighted average of its incident tets' circumcentres (closed form);
    • re-Delaunaying the connectivity.
  • Findings. ODT outperforms CVT for tet quality. Results improve with a sizing field.
  • Limitations.
    • Boundary vertices need special handling, and the paper's boundary treatment is the weak point.
    • Slivers remain at the end. The paper uses a final perturbation/exudation pass.
  • Complexity. Low to moderate, given a Delaunay kernel.

A3.4 Chen and Xu 2004; Chen and Holst 2011, Optimal Delaunay Triangulations. Verdict: build on (theory and update formulas).

  • Citations.
  • Method. The Delaunay triangulation minimizes the interpolation error of ‖x‖² over all triangulations of a point set. Chen–Holst give the exact and approximate vertex-update rules (ODT smoothing), including a boundary-aware variant.
  • Complexity. Low.

A3.5 Tournois, Wormser, Alliez, Desbrun 2009, Delaunay refinement interleaved with optimization. Verdict: build on (the overall schedule).

  • Citation. Interleaving Delaunay Refinement and Optimization for Practical Isotropic Tetrahedron Mesh Generation. ACM TOG 28(3):75, 2009. DOI 10.1145/1531326.1531381.

  • Method. Alternate Delaunay refinement and ODT/NODT smoothing. The refinement uses the radius–edge and boundary criteria. NODT is a Natural ODT variant for boundary vertices. Finish with sliver perturbation and exudation.

  • Results. Minimum dihedral angles are substantially better than refinement alone.

  • Problem solved. The practical recipe used by CGAL Mesh_3-style generators.

  • Complexity. Moderate.

  • Code. CGAL is GPL: FORBIDDEN. This paper is the readable source of the scheme.

  • Implemented in fieldcraft-mesh::tet::smooth as the density-weighted ODT update (Chen–Xu, Alliez et al.; weight h⁻³), interleaved with refinement in three rounds as in A3.5; boundary vertices move in their face's tangent plane and are projected back onto the B-rep face, curve vertices move along their curve, corners stay. A move is kept when every tetrahedron stays positive and its star's worst quality stays above min(old worst, sin 17.5°). Tetrahedra whose circumcentre is further than their longest edge from their centroid contribute their centroid instead.

A3.6 Klingner and Shewchuk 2007, Aggressive Tetrahedral Mesh Improvement. Verdict: BUILD ON (final sliver-removal stage).

  • Citation. B. M. Klingner, J. R. Shewchuk. IMR 16, 3–23, 2007.
  • Links. DOI 10.1007/978-3-540-75103-8_1. PDF: https://people.eecs.berkeley.edu/~jrs/papers/aggress.pdf
  • Method.
    • §2: quality measures. Use volume–length, or the minimum sine of dihedral angles.
    • §3, operations:
      • §3.1 optimization-based smoothing with an active-set method on the worst quality;
      • §3.2 edge removal;
      • §3.3 multi-face removal;
      • §3.4 vertex insertion;
      • §3.5 composites.
    • §4.2: hill-climbing schedule that accepts only operations improving the local minimum quality.
  • Results. Dihedral angles are usually between 31° and 149°, or 23°–136° with another objective.
  • Problem solved. Kills slivers that ODT and refinement leave behind. Works on any valid tet mesh.
  • Robustness. Monotone in worst quality, so it never makes the mesh worse.
  • Limitations. Slow. Boundary vertices are constrained.
  • Complexity. Moderate: edge removal requires Shewchuk's dynamic programming over the edge ring. PDF: https://people.eecs.berkeley.edu/~jrs/papers/edge.pdf, not separately verified.
  • Code. The Stellar code's licence was not verified, so it is not read.
  • Implemented in fieldcraft-mesh::tet::{ops, improve} from the two papers: Klincsek's dynamic programming for edge removal (interior edges; boundary edges of one flat B-rep face end in a 2-2 flip), multi-face removal grown greedily over the sandwiched faces, nonsmooth optimization smoothing (active set, smallest vector of the convex hull of the active gradients, line search; gradients by central differences), and the composite vertex insertion with rollback (barycentres of boundary faces, of the tetrahedron, midpoints of boundary edges, and a point inside off a flat boundary edge). Deviations: the inserted vertex takes the Delaunay cavity rather than the optimal cut of §3.4; each pass smooths and flips the tetrahedra below sin 40° and inserts only when the worst did not improve; passes and the insertion list are capped. Objective: the minimum dihedral sine. Every operation is a checked replacement of a region (positive by exact orient3d, faces matched with opposite orientation, removed vertices fully inside), so the mesh is valid after each step.

A3.7 Cheng, Dey, Edelsbrunner, Facello, Teng 2000, Sliver exudation. Verdict: reference.

  • Citation. J. ACM 47(5):883–904, 2000. DOI 10.1145/355483.355487.
  • Method. Assign weights to vertices so the weighted Delaunay triangulation contains no slivers. This gives a provable but tiny dihedral bound.
  • Use. Klingner–Shewchuk dominates it in practice. Useful as a cheap pass inside the A3.5 schedule.

A3.8 Labelle and Shewchuk 2007, Isosurface stuffing. Verdict: reference (useful only for organic, smooth domains).

  • Citation. ACM TOG 26(3):57, 2007.
  • Links. DOI 10.1145/1276377.1276448. PDF: https://people.eecs.berkeley.edu/~jrs/papers/stuffing.pdf
  • Method. BCC lattice plus snapping and warping with stencils (§3). It has guaranteed dihedral bounds (§4).
  • Limitations. It does not preserve sharp features, so it is wrong for CAD.
  • Code. crawforddoran/quartet is ISC: READ OK. Do not read alecjacobson/isostuffer (LGPL-3).

A4. Voronoi-based: CVT, restricted Voronoi diagrams, Lp-CVT

A4.1 Du, Faber, Gunzburger 1999; Du and Wang 2003. Verdict: reference.

  • Citations.
    • Centroidal Voronoi Tessellations: Applications and Algorithms. SIAM Review 41(4):637–676, 1999. DOI 10.1137/S0036144599352836.
    • Q. Du, D. Wang. Tetrahedral mesh generation and optimization based on centroidal Voronoi tessellations. IJNME 56(9):1355–1373, 2003. DOI 10.1002/nme.616.
  • Method. Lloyd relaxation toward a CVT. The dual Delaunay triangulation gives well-shaped tets apart from slivers.
  • Assessment. Alliez 2005 shows ODT beats CVT for tet quality, so CVT is not our tet smoother.

A4.2 Liu, Wang, Lévy, Sun, Yan, Lu, Yang 2009, CVT energy smoothness and quasi-Newton. Verdict: build on (the CVT solver).

  • Citation. ACM TOG 28(4):101, 2009. DOI 10.1145/1559755.1559758.
  • Method. The CVT energy is C². Minimize it with L-BFGS instead of Lloyd for an order-of-magnitude speedup.

A4.3 Yan, Lévy, Liu, Sun, Wang 2009 (restricted Voronoi diagram); Yan et al. 2013 (clipped Voronoi diagram). Verdict: build on (the RVD and clipped-VD kernel).

  • Citations.
    • Yan et al. Isotropic Remeshing with Fast and Exact Computation of Restricted Voronoi Diagram. CGF 28(5):1445–1454, 2009. DOI 10.1111/j.1467-8659.2009.01521.x.
    • D.-M. Yan, W. Wang, B. Lévy, Y. Liu. Efficient computation of clipped Voronoi diagram for mesh generation. CAD 45(4):843–852, 2013. DOI 10.1016/j.cad.2011.09.004.
  • Method. Compute the Voronoi diagram restricted to a surface (or clipped by a volume). Propagate over triangles and clip each against the bisector half-spaces of the nearest seeds (Sutherland–Hodgman).
  • Problem solved. The integration domain for surface remeshing and for CVT/Lp-CVT inside a closed volume.
  • Robustness. Exact with PCK-style predicates (geogram).
  • Complexity. Moderate.
  • Code. geogram voronoi/RVD*.cpp (BSD): READ OK.

A4.4 Lévy and Liu 2010, Lp Centroidal Voronoi Tessellation. Verdict: reference (hex-dominant point placement, superseded for that purpose by Sokolov 2016).

  • Citation. B. Lévy, Y. Liu. Lp Centroidal Voronoi Tessellation and its Applications. ACM TOG 29(4):119, 2010. DOI 10.1145/1778765.1778856.
  • Method. Replace the L2 CVT energy with an Lp norm in a local frame (anisotropy tensor). As p grows, Voronoi cells become cubes aligned to a field. Feature constraints come from integrating over the RVD of the surface and its sharp edges.
  • Use. Produces cube-like point sets for hex-dominant meshing.
  • Limitations. Non-convex energy. Needs a smooth frame field.

Part B: Hexahedral meshing

B0. Survey and benchmark (read first)

B0.1 Pietroni et al. 2022, survey. Verdict: reference (required reading).

  • Citation. N. Pietroni, M. Campen, A. Sheffer, G. Cherchi, D. Bommes, X. Gao, R. Scateni, F. Ledoux, J.-F. Remacle, M. Livesu. Hex-Mesh Generation and Processing: a Survey. ACM TOG 42(2):16, 2022.
  • Links. DOI 10.1145/3554920. arXiv: https://arxiv.org/abs/2202.12670
  • Structure.
    • §2.5 integer-grid maps;
    • §4.6 grid-based;
    • §4.7 polycube;
    • §4.8 frame fields;
    • §4.9 hex-dominant;
    • §5 topological operators;
    • §6 geometric optimization;
    • §8 open problems;
    • §9 resources.
  • Key quote (§4.6). Grid-based methods "really stand out in terms of robustness. To date, they are the only fully automatic methods capable of successfully hex-meshing any input shape... they are the only automatic methods currently implemented in professional software." It also notes their cost: orientation dependence, intricate high-valence singular structure, and no coarse block structure.
  • §8.1. Frame-field methods are "limited to rather simple shapes" fully automatically. No characterization of hex-meshable fields exists. Polycube graph characterization is limited to 3-connected graphs and, in the Eppstein–Mumford form, genus 0.

B0.2 Beaufort, Reberol, Kalmykov, Liu, Ledoux, Bommes 2022, Hex Me If You Can (HexMe). Verdict: reference (benchmark, with a provenance caveat in C).

  • Citation. CGF 41(5):125–134 (SGP), 2022.
  • Links.
  • Contents. 189 tet meshes from 63 CAD models in three categories: simple, nasty and industrial. Each comes with feature tags.
  • Baseline result. A state-of-the-art frame-field → IGM → HexEx pipeline meshes all features correctly on only 19 of 189. On nasty and industrial shapes about half the meshes preserve under 1–8% of surfaces.
  • Why it matters. This is the evidence that frame-field methods are not production-ready for CAD.

B1. Grid / octree-based (robust family)

B1.1 Schneiders 1996. Verdict: reference (historical).

  • Citation. R. Schneiders. A grid-based algorithm for the generation of hexahedral element meshes. Engineering with Computers 12:168–177, 1996. DOI 10.1007/BF01198732.
  • Method. An octree with templates resolves hanging nodes (3-refinement). The boundary layer is projected onto the surface.

B1.2 Zhang and Bajaj 2006. Verdict: reference.

  • Citation. Adaptive and quality quadrilateral/hexahedral meshing from volumetric data. CMAME 195:942–960, 2006. DOI 10.1016/j.cma.2005.02.016.
  • Method. Dual contouring on an octree with templates, followed by quality improvement.

B1.3 Maréchal 2009, octree-based all-hex with sharp features. Verdict: reference (feature handling ideas).

  • Citation. L. Maréchal. Advances in Octree-Based All-Hexahedral Mesh Generation: Handling Sharp Features. IMR 18, 65–84, 2009. DOI 10.1007/978-3-642-04319-2_5.
  • Method. A 2-refinement octree. Hanging nodes are removed by dualization with flat transition schemes. Sharp features are captured by snapping dual vertices and by padding.
  • Significance. The basis of commercial octree hex meshers.
  • Limitation. The scheme set is incomplete: Livesu 2021 shows it misses some transitions.

B1.4 Gao, Shen, Panozzo 2019, Feature Preserving Octree-Based Hexahedral Meshing. Verdict: reference (pipeline design).

  • Citation. CGF 38(5):135–149 (SGP), 2019. DOI 10.1111/cgf.13795.
  • Pipeline.
    1. Octree refinement driven by surface approximation.
    2. Dual-based hex extraction.
    3. Feature-preserving surface projection.
    4. Padding.
    5. Global optimization that maximizes the minimum scaled Jacobian while fitting features.
  • Results. The authors report high robustness on a large dataset.
  • Code. gaoxifeng/Feature-Preserving-Octree-Hex-Meshing has NO LICENCE: do not read.

B1.5 Livesu, Pitzalis, Cherchi 2021, Optimal Dual Schemes for Adaptive Grid Based Hexmeshing. Verdict: BUILD ON (the core of the first hex mesher).

  • Citation. ACM TOG 41(2):15, 2022 (online 2021).
  • Links. DOI 10.1145/3494456. arXiv: https://arxiv.org/abs/2103.07745
  • Method, part 1.
    • Enumerates all transitions dual methods must handle (§4: §4.1 convex, §4.2 concave, §4.3 around corners).
    • Shows prior schemes miss some of them.
    • Gives the minimal scheme set with the simplest singular structure (§5).
  • Method, part 2.
    • Extends support from strongly to weakly balanced grids (§6; discussion in §7.1). Coarser meshes for the same accuracy.
    • Compares with Gao 2019 and Maréchal 2009 (§7.2).
    • Spells out the implementation details that earlier papers left implicit.
  • Robustness. Combinatorially complete for balanced grids, so the dual is always all-hex. Geometry (projection/padding/untangling) is outside the paper's scope.
  • Limitations.
    • Most grid methods do not guarantee the output keeps the input's genus or component count (survey §4.6).
    • Sharp features need a separate projection and optimization stage.
  • Complexity. Moderate: the schemes are tables plus a balancing pass.
  • Code. Integrated into mlivesu/cinolib, MIT (paper p. 2 and §8): READ OK. Do not open cinolib's optional TetGen/Triangle wrappers if present.

B1.6 Pitzalis, Livesu, Cherchi, Gobbetti, Scateni 2021, Generalized Adaptive Refinement. Verdict: build on (refinement and balancing stage).

  • Citation. ACM TOG 40(6):257, 2021. DOI 10.1145/3478513.3480508.
  • Method. Generalizes balanced adaptive refinement so it works on any input hex mesh, not just a regular grid, with conforming templates and no dualization.
  • Use. Lets us refine a coarse aligned hex mesh, for example polycube output, as well as an octree.
  • Code. cg3hci/Gen-Adapt-Ref-for-Hexmeshing is MIT: READ OK.
  • Finding (2026-10). The reference pipeline chooses transition vertices with an integer linear program (Gurobi) and installs CinoLib's schemes by heuristics that are retried with other parameters when they fail; neither was adopted (see B1.10).

B1.7 Schneiders, Algorithms for quadrilateral and hexahedral mesh generation (VKI lecture notes, 2000), §5. Verdict: built on (the transition templates of fieldcraft-mesh::octree).

  • Link. https://www.robertschneiders.de/papers/vki.pdf (author's copy).
  • Method. 3-refinement driven by nodal marks: an element is split by the template of its marked corners, and faces split by their own marks only, so the refinement is conforming.
  • Limit (stated there). The 2D templates of the original set make some 3D mark patterns impossible: a hexahedron with seven marked corners has 51 boundary quads, an odd number, so no hexahedral mesh of it exists (Mitchell's parity condition). Concave refined regions therefore need their concave cells refined. The fix is a modified edge rule (an edge with a marked end splits in three) with buffer layers in the face templates.

B1.8 Ito, Shih, Soni 2009, Octree-based reasonable-quality hexahedral mesh generation using a new set of refinement templates. Verdict: reference.

  • Citation. IJNME 77(13):1809–1833, 2009. Templates for concave edges of the refined region (paper not obtained; cited after Tong and Zhang 2025).

B1.9 Tong, Halilaj, Zhang 2024, HybridOctree_Hex. Verdict: reference (buffer-zone rule adopted).

  • Citation. H. Tong, E. Halilaj, Y. J. Zhang, HybridOctree_Hex: Hybrid octree-based adaptive all-hexahedral mesh generation with Jacobian control, arXiv 2401.05984, 2024.
  • Method. Dual of a strongly balanced, paired octree with five templates (a 13-hexahedron frustum per transition face plus four transition-edge templates); a core cleared at the boundary so that the normals of the quads around each core boundary vertex lie in one half-space, then a buffer layer projected onto the surface and optimised.
  • Code. CMU-CBML/HybridOctree_Hex is BSD-3-Clause: READ OK (hard-coded template geometry, not adopted).

B1.10 Tong, Zhang 2025, MCHex. Verdict: reference (next boundary stage to evaluate).

  • Citation. H. Tong, Y. J. Zhang, MCHex: Marching cubes based adaptive hexahedral mesh generation with guaranteed positive Jacobian, arXiv 2511.02064, 2025.
  • Method. The same 3-refinement templates (B1.7); the boundary cells are cut by marching cubes on a signed distance field, every cut cell's pieces are 3-regular polyhedra, and their midpoint subdivision gives hexahedra with a proven positive Jacobian (Bernstein coefficients) and a boundary that is pillowed by construction; 17 of the 31 cube cases are refined locally first.
  • Limits (stated there). Sharp edges and corners are lost (marching cubes smooths them), and the convex-only transitions over-refine. FieldCraft keeps the core-padding-pillow boundary with feature capture for CAD parts; MCHex's cut cells are the candidate for organic shapes.

Implemented (fieldcraft-mesh::octree, mesh.hex.octree, 2026-10). B1.7 templates on a 27-tree refined by curvature, thickness and narrow faces; a core cleared by the B1.9 rule; the feature map of B1.4 (patches first); padding plus a pillow per patch (B1.4 §3.4); the B6.4 energy with a fitting term (B1.4 §3.5); the certified check of B6.6 with local repair. The dual schemes of B1.5 were not adopted (B1.6 finding); concave refined regions are closed by refinement (B1.7 limit), so curvature refines one level only.


B2. Polycube maps

B2.1 Tarini, Hormann, Cignoni, Montani 2004, PolyCube-Maps. Verdict: reference (the concept).

B2.2 Gregson, Sheffer, Zhang 2011, All-hex mesh generation via volumetric polycube deformation. Verdict: reference.

  • Citation. CGF 30(5):1407–1416, 2011. DOI 10.1111/j.1467-8659.2011.02015.x.
  • Method. Rotation-driven volumetric deformation toward axis-aligned normals, then labelling, then hex sampling.
  • Limitation. Heuristic cleanup of invalid labellings.

B2.3 Livesu, Vining, Sheffer, Gregson, Scateni 2013, PolyCut. Verdict: reference.

B2.4 Huang et al. 2014 (ℓ1 polycube); Fang et al. 2016 (closed-form induced polycube); Fu et al. 2016. Verdict: reference.

  • Citations.
    • Huang, Jiang, Shi, Tong, Bao, Desbrun. ℓ1-Based Construction of Polycube Maps from Complex Shapes. ACM TOG 33(3):25, 2014. DOI 10.1145/2602141.
    • Fang, Xu, Bao, Huang. All-hex meshing using closed-form induced polycube. ACM TOG 35(4):124, 2016. DOI 10.1145/2897824.2925957.
    • Fu, Bai, Liu. Efficient volumetric PolyCube-map construction. CGF 35(7):97–106, 2016. DOI 10.1111/cgf.13007.
  • Method. Deformation-based polycube construction with different energies.
  • Limitation. They "seldom converge to a topologically consistent polyhedron" without a valid guiding labelling (survey §4.7).

B2.5 Guo, Liu, Yan, Liu 2020, Cut-enhanced PolyCube-maps. Verdict: reference.

  • Citation. Cut-enhanced PolyCube-maps for feature-aware all-hex meshing. ACM TOG 39(4):106, 2020. DOI 10.1145/3386569.3392378.
  • Method. Interior cuts let polycubes align to features that a plain polycube cannot.

B2.6 Dumery, Protais, Mestrallet, Bourcier, Ledoux 2022, Evocube. Verdict: reference.

  • Citation. Evocube: a Genetic Labelling Framework for Polycube-Maps. CGF 41(6):467–479, 2022.
  • Links. DOI 10.1111/cgf.14649. arXiv: https://arxiv.org/abs/2205.00738
  • Method. Genetic search over labellings, scored by validity and distortion. Slow, and still with no guarantee.
  • Code. LIHPC-Computational-Geometry/evocube is GPL-3: FORBIDDEN.

B2.7 Protais, Reberol, Ray, Corman, Ledoux, Sokolov 2022, Robust Quantization for Polycube Maps. Verdict: build on (when polycube is built).

  • Citation. CAD 150:103321, 2022. DOI 10.1016/j.cad.2022.103321.
  • Method. Robust integer quantization of a polycube map's chart sizes. Guarantees a valid hex layout from a valid labelling.
  • Code. fprotais/robustPolycube is AGPL-3: FORBIDDEN.

B2.8 Mandad, Chen, Bommes, Campen 2022, Intrinsic Mixed-Integer Polycubes. Verdict: reference.

B2.9 Snoep, Speckmann, Verbeek 2025, DualCube. Verdict: BUILD ON (when polycube is built). The first labelling method with a validity guarantee.

  • Citation. Robust Construction of Polycube Segmentations via Dual Loops. CGF 44(5):e70195 (SGP), 2025.
  • Links. DOI 10.1111/cgf.70195. arXiv: https://arxiv.org/abs/2402.00652
  • Method.
    • Work in the dual loop structure of a polycube. §3 gives the dual structure, its characterization and the valid modifications.
    • §4: start from a trivial polycube of the right genus, then iteratively add loops (§4.1) while keeping validity. Primalize into a segmentation (§4.2) and optimize the loop structure (§4.3).
    • §5.2 covers hex meshing.
  • Guarantee. "Guaranteed to return a valid polycube segmentation for 3D models of any genus." It is valid at every iteration, so it can be stopped at any time.
  • Limitations. Quality and feature alignment trade against complexity. Feature preservation is weaker than with feature-driven labellings.
  • Companion. Polycubes via Dual Loops, arXiv https://arxiv.org/abs/2410.16865 (2024): the dual-loop characterization for arbitrary genus.
  • Code. The repo named in search results (maximsnoep/polycube-layouts-via-iterative-dual-loops) returned 404. Licence unknown.

B3. Frame fields and integer-grid maps (IGM)

B3.1 Nieser, Reitebuch, Polthier 2011, CubeCover. Verdict: reference (defines the IGM pipeline).

  • Citation. CubeCover – Parameterization of 3D Volumes. CGF 30(5):1397–1406, 2011. DOI 10.1111/j.1467-8659.2011.02014.x.
  • Method. Frame field → seamless volumetric parametrization whose integer iso-surfaces form hexes. It is the 3D analogue of Bommes, Zimmer, Kobbelt, Mixed-integer quadrangulation, ACM TOG 28(3):77, 2009, DOI 10.1145/1531326.1531383.

B3.2 Huang, Tong, Wei, Bao 2011, Boundary aligned smooth 3D cross-frame field. Verdict: reference.

  • Citation. ACM TOG 30(6):143, 2011. DOI 10.1145/2070781.2024177.
  • Method. Spherical-harmonic (SH) frame representation, which removes the octahedral-symmetry ambiguity.

B3.3 Li, Liu, Xu, Wang, Guo 2012, All-hex meshing using singularity-restricted field. Verdict: reference.

  • Citation. ACM TOG 31(6):177, 2012. DOI 10.1145/2366145.2366196.
  • Method. Local operations repair singularity graphs to be hex-meshable.

B3.4 Ray, Sokolov, Lévy 2016, Practical 3D frame field generation. Verdict: build on (only if the frame-field family is pursued).

  • Citation. ACM TOG 35(6):233, 2016. DOI 10.1145/2980179.2982408.
  • Method. SH-based smoothing with local Euler-angle optimization and boundary alignment. Fast and simple.

B3.5 Solomon, Vaxman, Bommes 2017, Boundary element octahedral fields. Verdict: reference.

B3.6 Liu, Zhang, Chien, Solomon, Bommes 2018, Singularity-constrained octahedral fields. Verdict: reference.

  • Citation. ACM TOG 37(4):93, 2018. DOI 10.1145/3197517.3201344.
  • Method. Enumerates local meshability conditions for valence-3 and valence-5 singular edges. Computes a field conforming to a given singularity graph.
  • Limitation. The singular graph is user- or heuristic-supplied.

B3.7 Corman and Crane 2019, Symmetric Moving Frames. Verdict: reference.

B3.8 Palmer, Bommes, Solomon 2020, Algebraic representations for volumetric frame fields. Verdict: reference.

  • Citation. ACM TOG 39(2):16, 2020.
  • Links. DOI 10.1145/3366786. arXiv: https://arxiv.org/abs/1908.05411
  • Method. Octahedral and odeco frames as varieties. Manifold-optimization (MBO-style) field computation. Supports non-orthogonal frames.

B3.9 Lyon, Bommes, Kobbelt 2016, HexEx; Kohler, Heistermann, Bommes 2025, HexHex. Verdict: reference (needed only for the frame-field family).

  • Citations.
  • Method. Extract the hex mesh from an IGM, tolerating some defects (HexEx). HexHex assumes a locally injective map and is unconditionally robust, with about 30× speedup through a propeller data structure and conservative rasterization.
  • Code.
    • libHexEx is GPLv3 (RWTH page): FORBIDDEN.
    • cgg-bern/libHexHex LICENSE is GPL (header plus GPL.txt): FORBIDDEN.

B3.10 Brückler, Bommes, Campen: 3D motorcycle complex (CGF 2022), QGP3D (TOG 2022), cell-complex collapsing (TOG 2023), Integer-Sheet-Pump (CGF 2024). Verdict: reference.

  • Citations.
    • DOI 10.1111/cgf.14470: The 3D Motorcycle Complex for Structured Volume Decomposition, CGF 41(2):221–235.
    • DOI 10.1145/3528223.3530123: Volume parametrization quantization for hexahedral meshing, TOG 41(4):60.
    • DOI 10.1145/3618384: Collapsing Embedded Cell Complexes for Safer Hexahedral Meshing, TOG 42(6):205.
    • DOI 10.1111/cgf.15131: Integer-Sheet-Pump Quantization, CGF 43(5).
  • Method. Robust quantization of seamless volume maps into valid IGMs through the motorcycle complex.
  • Code. QGP3D, MC3D, TrulySeamless3D and C4HexMeshing are all GPL-3: FORBIDDEN.

B3.11 Liu and Bommes 2023, Locally Meshable Frame Fields. Verdict: reference (best current evidence of the family's state).

  • Citation. ACM TOG 42(4), 2023. DOI 10.1145/3592457.
  • Result. Raises the valid-IGM success rate on HexMe "from 2% to 58%" (project page abstract). Local meshability is necessary but not sufficient.
  • Code. No code link on the project page.

B3.12 Nigolian, Campen, Bommes 2023, Expansion Cones. Verdict: reference (injective volumetric maps).

  • Citation. ACM TOG 42(4), 2023. DOI 10.1145/3592421.
  • Use. Relevant for polycube maps too.

B4. Loop- and sweep-based block decomposition

B4.1 Livesu, Pietroni, Puppo, Sheffer, Cignoni 2020, LoopyCuts. Verdict: reference.

  • Citation. LoopyCuts: Practical Feature-Preserving Block Decomposition for Strongly Hex-Dominant Meshing. ACM TOG 39(4):121, 2020. DOI 10.1145/3386569.3392472.
  • Method. Trace field-aligned surface loops, cut the volume along them into simple blocks, then mesh the blocks.
  • Guarantee. Strongly hex-dominant output, not all-hex.
  • Fit. Good for CAD with features.
  • Complexity. High.
  • Code. mlivesu/LoopyCuts has NO LICENCE: do not read.

B4.2 Reberol, Verhetsel, Henrotte, Bommes, Remacle 2023, all-hex boundary layers. Verdict: reference (CFD boundary layers later).

  • Citation. Robust Topological Construction of All-hexahedral Boundary Layer Meshes. ACM TOMS 49(1), 2023. DOI 10.1145/3577196.

B5. Hex-dominant via tet recombination or aligned points

B5.1 Meshkat and Talmor 2000. Verdict: reference.

B5.2 Yamakawa and Shimada 2003, rectangular-solid cell packing. Verdict: reference.

  • Citation. IJNME 57(15):2099–2129, 2003. DOI 10.1002/nme.754.
  • Method. Pack cells to place hex-friendly points, then recombine.

B5.3 Baudouin, Remacle, Marchandise, Henrotte, Geuzaine 2014, frontal hex-dominant. Verdict: reference.

  • Citation. Adv. Model. Simul. Eng. Sci. 1:8, 2014. DOI 10.1186/2213-7467-1-8.
  • Method. Frontal point insertion along a cross field, Delaunay of the points, then recombination.

B5.4 Botella, Lévy, Caumon 2016, tet recombination. Verdict: reference.

  • Citation. Indirect unstructured hex-dominant mesh generation using tetrahedra recombination. Comput. Geosci. 20(3):437–451, 2016. DOI 10.1007/s10596-015-9484-9.

B5.5 Sokolov, Ray, Untereiner, Lévy 2016, Hexahedral-Dominant Meshing. Verdict: reference (strong candidate for the hex-dominant product).

  • Citation. ACM TOG 35(5):157, 2016. DOI 10.1145/2930662.
  • Method.
    1. Frame field.
    2. Global parametrization, tolerating defects.
    3. Point set from the integer iso-values.
    4. Delaunay of the points.
    5. Recombine tets into hexes.
    6. Fill the rest with tets, prisms and pyramids.
  • Result. Robust hex-dominant output even where the parametrization is defective.
  • Code. Graphite is GPL-2: FORBIDDEN.

B5.6 Gao, Jakob, Tarini, Panozzo 2017, field-guided polyhedral agglomeration. Verdict: reference.

  • Citation. ACM TOG 36(4):114, 2017. DOI 10.1145/3072959.3073676.
  • Method. Instant-Meshes-style position field in 3D, giving a polyhedral, mostly-hex mesh.
  • Code. gaoxifeng/robust_hex_dominant_meshing is MIT: READ OK.

B5.7 Pellerin, Johnen, Verhetsel, Remacle 2018, vertex-based tet-to-hex identification. Verdict: build on (the recombination step).

  • Citation. Identifying combinations of tetrahedra into hexahedra: a vertex based strategy. CAD 105:1–10, 2018. DOI 10.1016/j.cad.2018.05.004.
  • Method. Enumerate all potential hexes in a tet mesh exhaustively from vertex neighbourhoods. This is faster and complete compared with pattern-matching on tet groups. A selection step (maximum compatible set) then follows.
  • Fit. Reuses our tet pipeline directly.
  • Code. Implemented in Gmsh (GPL): FORBIDDEN.

B5.8 Verhetsel, Pellerin, Remacle 2019, hexahedrizations of small quadrangulations. Verdict: skip for now (research).

  • Citation. Finding hexahedrizations for small quadrangulations of the sphere. ACM TOG 38(4):53, 2019. DOI 10.1145/3306346.3323017.

B6. Hex quality improvement and untangling

B6.1 Livesu, Sheffer, Vining, Tarini 2015, edge-cone rectification. Verdict: reference.

  • Citation. Practical hex-mesh optimization via edge-cone rectification. ACM TOG 34(4):141, 2015. DOI 10.1145/2766905.
  • Method. Local-global optimization that makes each corner's edge cone well-shaped. It fixes inverted elements, with surface constraints.

B6.2 Xu, Gao, Chen 2018, edge-angle optimization. Verdict: reference.

  • Citation. Hexahedral mesh quality improvement via edge-angle optimization. Computers & Graphics 70:17–27, 2018. DOI 10.1016/j.cag.2017.07.002.
  • Note. This is the "Xu et al. 2018" hex improvement and untangling paper.

B6.3 Marschner, Palmer, Zhang, Solomon 2020, sum-of-squares hex repair. Verdict: reference.

  • Citation. Hexahedral Mesh Repair via Sum-of-Squares Relaxation. CGF 39(5):133–147, 2020. DOI 10.1111/cgf.14074.
  • Method. Polynomial (SOS) relaxation of the trilinear-hex Jacobian positivity. It certifies validity of the trilinear element, not just its corners.
  • Assessment. Heavy machinery, since it needs an SDP solver. Reference for the validity check: corner Jacobians are insufficient for trilinear hexes.

B6.4 Garanzha, Kaporin, Kudryavtseva, Protais, Ray, Sokolov 2021, Foldover-free maps in 50 lines of code. Verdict: BUILD ON (the untangler for every hex family and for polycube/IGM maps).

  • Citation. ACM TOG 40(4):102, 2021.
  • Links. DOI 10.1145/3450626.3459847. arXiv: https://arxiv.org/abs/2102.03069
  • Method.
    • §2.1: a variational barrier energy, with χ-regularization of det J.
    • §2.2: penalty method. ε_k is driven to zero (§4.2).
    • §2.3: L-BFGS resolution scheme.
  • Result. Untangles meshes reliably and is simple to implement. The paper reports it on a large benchmark (§3.1).
  • Code. ssloy/invertible-maps is AGPL-3: FORBIDDEN. The paper itself is enough, by design.

B6.5 Visualization and metrics. Verdict: reference.

B6.6 Element validity and quality metrics (implemented in fieldcraft-mesh::quality). Verdict: BUILD ON.

  • Johnen, Remacle, Geuzaine 2013. Geometrical validity of curvilinear finite elements. J. Comput. Phys. 233:359–372, 2013. The Jacobian determinant in Bernstein form is bounded by its coefficients, equals them at the vertices and converges under subdivision: a proof of det J > 0 on the whole element. We use it for every solid kind, including the trilinear hex whose corner Jacobians do not certify it (B6.3). (The paper's authors also wrote Gmsh code, which stays forbidden; the paper is enough.)
  • Shewchuk 2002. What is a good linear finite element? Interpolation, conditioning, anisotropy, and quality measures. Unpublished preprint, https://people.eecs.berkeley.edu/~jrs/papers/elemj.pdf. Tet dihedral angles, radius ratio and aspect ratio; with Klingner–Shewchuk's volume–length measure (A3.6).
  • Knupp 2001. Algebraic mesh quality metrics. SIAM J. Sci. Comput. 23(1):193–218. Corner-Jacobian scaled Jacobian and shape metrics for hexes, wedges and quads.

B7. Planar quadrilateral meshing

Shell (curved-face) quad meshing — advancing front in (u,v) with a cross field, recombination and cleanup — is surveyed separately in shell-quad-literature.md.

(implemented in fieldcraft-mesh::quad)

The face meshers under mapped and swept hex meshing and shell meshing. All quads on prescribed boundary nodes, so faces sharing an edge share its nodes. DOIs below were checked through doi.org/api/handles and Crossref on 2026-10-13; papers without a DOI are cited by venue only.

B7.1 Gordon and Hall 1973, transfinite interpolation. Verdict: BUILD ON (mapped meshing).

  • Citation. W. J. Gordon, C. A. Hall. Construction of curvilinear co-ordinate systems and applications to mesh generation. IJNME 7(4):461–477, 1973. DOI 10.1002/nme.1620070405.
  • Use. The bilinearly blended Coons map of a four-sided region, dimension-generic (quad::transfinite_grid), with arc-length blending parameters for unequal spacing on opposite sides.

B7.2 Free all-quad: the methods compared.

  • Paving. T. D. Blacker, M. B. Stephenson. Paving: a new approach to automated quadrilateral mesh generation. IJNME 32(4):811–847, 1991. DOI 10.1002/nme.1620320410. Verdict: reference. Best boundary rows; front collisions are its failure mode.
  • Q-Morph. S. J. Owen, M. L. Staten, S. A. Canann, S. Saigal. Q-Morph: an indirect approach to advancing front quad meshing. IJNME 44(9):1317–1340, 1999. DOI 10.1002/(SICI)1097-0207(19990330)44:9<1317::AID-NME532>3.0.CO;2-N. Verdict: reference (upgrade path for boundary alignment). Front states, side-edge recovery by swaps, seam closing.
  • Blossom-Quad. J.-F. Remacle, J. Lambrechts, B. Seny, E. Marchandise, A. Johnen, C. Geuzaine. Blossom-Quad: a non-uniform quadrilateral mesh generator using a minimum-cost perfect-matching algorithm. IJNME 89(9):1102–1119, 2012. DOI 10.1002/nme.3279. Verdict: reference (upgrade path for the matching). Paper only: the implementation lives in Gmsh, which is GPL and forbidden.
  • Recombination and split. C. K. Lee, S. H. Lo. A new scheme for the generation of a graded quadrilateral mesh. Computers & Structures 52(5):847–857, 1994. DOI 10.1016/0045-7949(94)90070-1. Verdict: BUILD ON. Triangles merged into quads, then every element split once, which makes the mesh all-quad whatever the merge found. The split topology is that of E. Catmull, J. Clark, CAD 10(6):350–355, 1978, DOI 10.1016/0010-4485(78)90110-0.
  • Why the split method. All-quad by construction given an even point count per loop; robustness is that of the constrained Delaunay triangulation (exists for every valid input; exact predicates); low implementation risk. Its cost is irregular nodes and 120° corners in triangle-born quads, reduced by smoothing. The reasoning in full is in the quad module docs.

B7.3 Planar constrained Delaunay triangulation and refinement. Verdict: BUILD ON.

  • A. Bowyer, Computing Dirichlet tessellations, Comput. J. 24(2):162–166, 1981, DOI 10.1093/comjnl/24.2.162; D. F. Watson, Computing the n-dimensional Delaunay tessellation…, Comput. J. 24(2):167–172, 1981, DOI 10.1093/comjnl/24.2.167.
  • S. W. Sloan. A fast algorithm for generating constrained Delaunay triangulations. Computers & Structures 47(3):441–450, 1993. DOI 10.1016/0045-7949(93)90239-A. Edge recovery by flipping.
  • J. Ruppert. A Delaunay refinement algorithm for quality 2-dimensional mesh generation. J. Algorithms 18(3):548–585, 1995. DOI 10.1006/jagm.1995.1021; J. R. Shewchuk, Delaunay refinement algorithms for triangular mesh generation, CGTA 22:21–74, 2002, DOI 10.1016/S0925-7721(01)00047-5. Used without segment splitting (boundary nodes are prescribed).

B7.3a Free triangle meshes on prescribed boundary nodes (free_tri_mesh, used by mesh.planar for tri3/tri6 2D models): the same constrained Delaunay triangulation of the full resolution loops, refined to the size by circumcentre insertion that never splits a boundary segment (J. Ruppert, A Delaunay refinement algorithm for quality 2-dimensional mesh generation, J. Algorithms 18(3):548–585, 1995, without segment splitting, so the boundary nodes stay the input points), Steiner points kept half the local spacing from the boundary.

B7.4 Smoothing and untangling of the quads. Verdict: BUILD ON.

  • L. A. Freitag. On combining Laplacian and optimization-based mesh smoothing techniques. AMD-Vol. 220, ASME 1997; S. A. Canann, J. R. Tristano, M. L. Staten, An approach to combined Laplacian and optimization-based smoothing for triangular, quadrilateral, and quad-dominant meshes, IMR 1998. Laplacian moves kept only when the worst element does not get worse.
  • L. A. Freitag, P. Plassmann. Local optimization-based simplicial mesh untangling and improvement. IJNME 49(1–2):109–125, 2000. DOI 10.1002/1097-0207(20000910/20)49:1/2<109::AID-NME925>3.0.CO;2-U. Untangling by maximizing the smallest (linear) corner area.

B7.5 Quadrilateral quality. Verdict: BUILD ON.

  • Knupp 2001 (B6.6) for the scaled Jacobian. J. Robinson, CRE method of element testing and the Jacobian shape parameters, Eng. Comput. 4(2):113–118, 1987, for aspect ratio and skew from the principal axes. Planar validity is exact: a planar bilinear quad's Jacobian is affine in each reference coordinate, so four exact orient2d corner tests decide it.

B8. Mapped and swept hexahedral meshing (implemented in fieldcraft-mesh::hex)

mesh.hex.generate (and mesh.hex.sweep, mesh.hex.mapped, mesh.hex.blocks). Every method below is implemented from its paper; no code was read. DOIs marked "checked" were confirmed on 2026-10-13 through a repository record or the publisher; the others are cited by venue only.

B8.1 Blacker 1996, the Cooper tool. Verdict: BUILD ON (sweep recognition).

  • Citation. T. D. Blacker. The Cooper tool. Proc. 5th International Meshing Roundtable, 1996, pp. 13–29.
  • Use. Source, target and linking faces from B-rep topology: rings of logically rectangular linking faces followed from the source loops until they close on one target (hex::sweep).

B8.2 Lai, Benzley, White 2000, many-to-many sweeping. Verdict: BUILD ON (multi-level extrusions).

  • Citation. M. Lai, S. Benzley, D. White. Automated hexahedral mesh generation by generalized multiple source to multiple target sweeping. IJNME 49(1–2):261–275, 2000.
  • Use. Imprinting every level's outline into one projection plane so each region of the arrangement is a one-to-one column (hex::layered, hex::arrangement); here done in a straight or rotating frame, with the regions' fill decided by the generalized winding number (Jacobson et al. 2013).

B8.3 Knupp 1998, next-generation sweep tool. Verdict: BUILD ON (residual correction).

  • Citation. P. M. Knupp. Next-generation sweep tool: a method for generating all-hex meshes on two-and-one-half dimensional geometries. Proc. 7th International Meshing Roundtable, 1998, pp. 505–513.
  • Use. The boundary residual of each layer's map interpolated into the interior.

B8.4 Roca and Sarrate 2010, least-squares sweeping. Verdict: BUILD ON (inner nodes).

  • Citation. X. Roca, J. Sarrate. An automatic and general least-squares projection procedure for sweep meshing. Engineering with Computers 26(4):391–406, 2010. DOI 10.1007/s00366-009-0172-z (checked, repository record). Conference version: Proc. 15th IMR, 2006, pp. 487–506.
  • Use. Each layer's interior nodes from the source mesh by the least-squares affine map of the source ring onto the layer's ring (hex::sweep::Affine). Related: Roca, Sarrate, Huerta, A new least-squares approximation of affine mappings for sweep algorithms, Eng. Comput. 26(3):327–337, 2010.

B8.5 Interval assignment: Tam and Armstrong 1993; Mitchell 1997/2021. Verdict: BUILD ON.

  • Citations. T. K. H. Tam, C. G. Armstrong. Finite element mesh control by integer programming. IJNME 36:2581–2605, 1993. S. A. Mitchell. High fidelity interval assignment. Proc. 6th IMR, 1997 (IJCGA 10(4):399–415, 2000). S. A. Mitchell. Incremental interval assignment by integer linear algebra. International Meshing Roundtable 2021 (Zenodo 5559025); extended in Computer-Aided Design 158:103485, 2023.
  • Use. Division counts of all curves together: side equalities of mapped faces and linking faces, even (or multiple-of-four) loop sums, minimum loop sums. hex::interval uses incremental repair from the rounded goals with increments only, chosen by squared relative error; it is bounded and reports an infeasible system instead of looping. Mitchell's integer-linear-algebra solver (Hermite normal form plus nullspace improvement) is the upgrade if the increment-only scheme proves too coarse.

B8.6 Whiteley, White, Benzley, Blacker 1996, submapping. Verdict: BUILD ON (vertex classification).

  • Citation. M. Whiteley, D. White, S. Benzley, T. Blacker. Two and three-quarter dimensional meshing facilitators. Engineering with Computers 12:144–154, 1996.
  • Use. Corners by interior angle (≤ 135° end, ≥ 225° reflex); cross-section regions are cut from their reflex corners to the boundary, which decomposes rectilinear sections into rectangles (an explicit form of submapping's virtual decomposition), then mapped.

B8.7 Gordon and Thiel 1982, trivariate transfinite interpolation. Verdict: BUILD ON (mapped blocks).

  • Citation. W. J. Gordon, L. C. Thiel. Transfinite mappings and their application to grid generation. Applied Mathematics and Computation 10–11:171–233, 1982.
  • Use. Interior nodes of a logical cube from its six face grids (hex::mapped).

B8.8 Multi-block meshing of partitioned parts. Verdict: BUILD ON (conforming cells).

  • Citations. J. F. Thompson, B. K. Soni, N. P. Weatherill (eds.). Handbook of Grid Generation. CRC Press, 1999, ch. 3 (transfinite and algebraic grids) and ch. 13 (multiblock grids). A. Sheffer, M. Bercovier, T. Blacker, J. Clements. Virtual topology operators for meshing. IJCGA 10(3):309–331, 2000.
  • Use. hex::cells (mesh.hex.blocks): cells that meet face to face, each a logical cube after smoothly meeting faces are joined into composite faces (virtual topology); vertices, edges and faces shared by identity; interval assignment over all cells (B8.5); each edge divided once, each face's transfinite grid made once and used by both cells; edges that leave a curved face graded from the spacing along it with a growth of 1.2 per element; interiors by B8.7. The merged mesh is checked for free internal faces.

B8.9 Support. Generalized winding number for the inside test (A. Jacobson, L. Kavan, O. Sorkine-Hornung, Robust inside-outside segmentation using generalized winding numbers, ACM TOG 32(4):33, 2013; solid angle of a triangle: Van Oosterom and Strackee 1983); closest point on a triangle (C. Ericson, Real-Time Collision Detection, 2005, §5.1.5).

Part C: Datasets and benchmarks

Dataset Content Licence Usable for FieldCraft?
Thingi10K: Zhou & Jacobson 2016, arXiv https://arxiv.org/abs/1605.04797; site https://ten-thousand-models.appspot.com; tooling https://github.com/Thingi10K/Thingi10K 10,000 STL meshes. 45% self-intersecting, 50% non-solid. The 4,408 "valid" subset is the standard tet-meshing robustness benchmark (fTetWild, Diazzi 2023). Tooling Apache-2.0. Each model has its own licence (10 licences, including CC-BY-NC and GPL). Filter by the license field. Conditionally. Use CC-BY / CC0 / public-domain models for robustness testing. Provenance risk: Thingiverse records no authoring tool, and many uploads were modelled in commercial CAD. Under the "no test data produced with commercial CAD products" rule this is an owner decision.
HexMe: DOI 10.5281/zenodo.6642020, https://hexme.algohex.eu 189 tet meshes from 63 CAD models, with feature tags. Dataset CC-BY-4.0. The source models come from the ABC dataset (Onshape terms), GrabCAD (GrabCAD terms), MAMBO (Apache-2.0), and models made with Gmsh and Siemens NX (the paper's own statement). Only a filtered subset. The ABC/Onshape, GrabCAD and Siemens NX models are produced with commercial CAD: exclude them. Gmsh-authored ones are acceptable as data.
MAMBO: https://gitlab.com/franck.ledoux/mambo STEP models: basic, simple, medium. Designed for hex block-meshing evaluation. Apache-2.0 Risky. The STEP headers I sampled say 'Spatial InterOp 3D' as originating system and authors 'Cubit 15.2' / 'MGX'. These are commercial or closed tools. Treat as commercial-CAD-produced unless the owner rules otherwise.
ABC: Koch et al., CVPR 2019, DOI 10.1109/CVPR.2019.00983, arXiv https://arxiv.org/abs/1812.06216, https://deep-geometry.github.io/abc-dataset/ 1M CAD models (B-rep and meshes). "Copyright of the CAD models is owned by their creators", under Onshape Terms of Use. The models come from Onshape. No. Produced with a commercial CAD product, and the licence is not open. Skip.

Recommendation for test data. Build FieldCraft's own corpus:

  • Generated cases. Parametric primitives plus booleans from our own kernel:
    • cubes and cylinders with holes;
    • fillets;
    • thin walls;
    • multi-material interfaces;
    • genus-n plates;
    • a "nasty" series modelled on HexMe's categories by description, not by copying its models.
  • Analytic cases. Sphere and torus volumes, with exact volumes for checks.
  • Robustness stress. The CC-licensed Thingi10K subset, if the owner approves.
  • Hex-meshing claims. Report results on our own corpus. Report the HexMe Gmsh-authored subset separately.

Step 1: Robust predicates (weeks 1–3)

  1. Shewchuk adaptive orient2d, orient3d, incircle and insphere (A0.1, §2–§4).
    • Port the expansion primitives from the paper.
    • Use predicates.c (public domain) and georust/robust (Apache-2.0) only as differential oracles in tests.
  2. Devillers–Teillaud symbolic perturbation for insphere (A0.2).
  3. Indirect predicates for LPI/TPI implicit points (A0.3, §4–§5). Use a small build-time code generator that emits a floating-point filter, an interval filter and an expansion fallback. Model it on PCK (A0.4, BSD-readable). Do not use Attene's LGPL code.
  4. Tests. Exhaustive near-degenerate fuzzing against an exact rational reference (num-rational / BigInt in tests only).

If wrong. Every later stage inherits silent topological corruption. This is the one stage where "almost right" is fatal.

Step 2: Delaunay plus boundary recovery (weeks 3–12)

  1. Bowyer–Watson with BRIO and Hilbert order, straight walking, and a compact adjacency array (A1.1).
  2. Boundary recovery: implement Diazzi et al. 2023 (A2.3).
    • Si–Gärtner segment recovery (§3.3) and face recovery (§3.4).
    • Implicit Steiner points (§4.3).
    • The gift-wrapping fallback (§4.4), which is mandatory: it closes the theoretical gap in TetGen.
    • Inside/outside labelling (§4.5).
    • Why CDT over the envelope approach. The B-rep tessellator gives a watertight, non-self-intersecting PLC. CAE needs exact face conformity: B-rep face IDs on boundary triangles, shared interfaces in assemblies, contact surfaces. CDT preserves this by construction. fTetWild (A2.5) does not preserve all input triangles.
  3. Keep fTetWild's design (MPL-2.0, readable) as the documented fallback for imported dirty geometry. Do not build it now. Convex polyhedral meshing (A2.4) is the alternative if exact conformity on self-intersecting input is ever required.

If wrong. If the tessellator emits self-intersections (common at tolerant B-rep edges), the CDT rejects the input.

  • Mitigation. Run an exact self-intersection check before CDT.
  • Then route to repair. Use the arrangement method (A2.6), or the fTetWild path once it exists.

Step 3: Quality (weeks 12–18)

  1. Constrained Delaunay refinement with a radius–edge bound of about 2 and a sizing field (A3.1, A2.2/Si 2010 for small input angles).
  2. Interleave with ODT vertex smoothing following Tournois 2009 (A3.5). Use the Chen–Holst update formulas (A3.4) and keep boundary vertices on their B-rep faces.
  3. Final pass: the Klingner–Shewchuk schedule (A3.6, §3–§4.2). Smoothing, edge removal, multi-face removal and vertex insertion, monotone in worst quality.
  4. Targets. Report min/max dihedral angles and an FE quality metric. Use Shewchuk's What is a good linear element?, PDF https://people.eecs.berkeley.edu/~jrs/papers/elemj.pdf, for the metric choice.
  5. CVT/RVD (A4.2–A4.3). Build only for surface remeshing and for Lp-CVT if needed later. Not for tet smoothing, where ODT is better.

If wrong. ODT alone leaves boundary slivers, which can make FE results wrong. Step 3.3 is the guard. Do not ship without it.

Step 4: Hex meshing. Build the grid/octree dual family first.

Order.

  1. (a) Octree dual all-hex. Livesu 2021 schemes (B1.5) with Pitzalis 2021 refinement (B1.6). Then the Gao 2019 stage list (B1.4): feature projection, padding layer, and global min-scaled-Jacobian optimization. Use the Garanzha 2021 untangler (B6.4) for any inverted elements. Validate with the Marschner 2020 insight (B6.3) that corner Jacobians do not certify trilinear hexes; use a subdivided or Bernstein Jacobian check.
  2. (b) Hex-dominant by recombination. Frame-field-aligned point placement:
    • Ray 2016 field (B3.4);
    • frontal or Sokolov-style points (B5.3/B5.5);
    • our own Delaunay;
    • Pellerin 2018 vertex-based hex identification (B5.7) and selection;
    • pyramids, prisms and tets for the rest. This reuses all of steps 1–3.
  3. (c) Polycube for blocky CAD parts.
    • DualCube labelling (B2.9): guaranteed valid.
    • Volumetric map with an injective solve (B6.4).
    • Robust quantization (B2.7, from the paper only).
    • Pitzalis refinement (B1.6) for grading.
  4. (d) Frame-field/IGM all-hex last, as R&D. All mature implementations are GPL. HexMe shows 19/189 fully correct outputs, and the best 2023 method reaches 58% valid IGMs.

Why octree first.

  • It is the only family with a robustness guarantee on arbitrary input (survey §4.6, quoted in B0.1).
  • It is the only family shipped in professional automatic hex meshers.
  • Every component has a permissive reference: CinoLib MIT for the dual schemes, Gen-Adapt-Ref MIT for refinement, geogram BSD.
  • A CAE customer gets a valid all-hex mesh for any part on day one, which polycube and frame-field methods cannot promise.

Risks per family.

Family Main risk Mitigation
Octree dual Poor element quality at the boundary (low scaled Jacobian near concave features); orientation dependence; high element count; edges where more than 3 faces meet; genus not guaranteed (survey §4.6). Padding layer. Feature-aware projection plus global optimization (B1.4). Align the octree to the part's principal axes. Weakly balanced grids (B1.5 §6) reduce element count. A topology check rejects genus changes.
Hex-dominant recombination Solvers must support pyramids and prisms; hex ratio is often only 60–90%; pyramids hurt accuracy. Check the solver targets (Abaqus/Nastran element libraries support mixed meshes). Report the hex ratio honestly.
Polycube High distortion on organic or highly non-axis-aligned parts; features at oblique angles are lost; the injective volumetric map can fail. Use only when the labelling distortion score is acceptable; otherwise fall back to octree. The Garanzha untangler handles the map.
Frame-field IGM Low success rate on CAD (HexMe, Liu & Bommes 2023); mixed-integer solves; all reference code is GPL. Treat as R&D. Keep it out of the critical path.

If the octree-first call is wrong. Customers wanting high-quality structured hex for thin-walled or extruded parts would find octree meshes too unstructured. The answer then is sweeping and block decomposition (LoopyCuts-style, B4.1), not frame fields. That family is not covered in depth here and would need a follow-up survey on sweeping and multi-sweeping.


Licence summary of associated code (metadata only; no source read)

Repo / code Licence Status
Shewchuk predicates.c Public domain READ OK
Shewchuk Triangle Proprietary (non-commercial) FORBIDDEN
georust/robust Apache-2.0 (GitHub metadata) READ OK
BrunoLevy/geogram BSD-3, except third_party/tetgen (AGPL), third_party/triangle and the delaunay_tetgen/triangle wrappers READ OK, with exclusions
wildmeshing/fTetWild MPL-2.0 READ OK
wildmeshing/wildmeshing-toolkit MIT READ OK
Yixin-Hu/TetWild GPL-3.0 FORBIDDEN
TetGen AGPL FORBIDDEN
CGAL, Gmsh (incl. HXT, recombination), Netgen GPL / LGPL FORBIDDEN
MarcoAttene/CDT, Delaunay3D GPL, or LGPL by option FORBIDDEN
MarcoAttene/Indirect_Predicates LGPL-2.1 FORBIDDEN
MarcoAttene/VolumeMesher GPL-3 FORBIDDEN
libigl/libigl MPL-2.0 core; GPL copyleft/ modules (GitHub reports GPL-3 because both licence files exist) Core READ OK; copyleft/ FORBIDDEN
mlivesu/cinolib MIT READ OK
cg3hci/Gen-Adapt-Ref-for-Hexmeshing MIT READ OK
mlivesu/HexaLab MIT READ OK
crawforddoran/quartet (isosurface stuffing) ISC READ OK
alecjacobson/isostuffer LGPL-3 FORBIDDEN
gaoxifeng/robust_hex_dominant_meshing MIT READ OK
gaoxifeng/Feature-Preserving-Octree-Hex-Meshing none NO LICENCE
mlivesu/LoopyCuts none NO LICENCE
LIHPC-Computational-Geometry/evocube GPL-3 FORBIDDEN
LIHPC-Computational-Geometry/dds-hexmeshing (HexMe-related workflow) MIT READ OK
fprotais/robustPolycube, ultimaille, marchinghex AGPL-3 FORBIDDEN
ssloy/invertible-maps (foldover-free) AGPL-3 FORBIDDEN
libHexEx (RWTH) GPLv3 FORBIDDEN
cgg-bern/libHexHex GPL FORBIDDEN
HendrikBrueckler/QGP3D, MC3D, TrulySeamless3D, C4HexMeshing GPL-3 FORBIDDEN
mlivesu/CoMISo (mixed-integer solver fork) GPL-3 FORBIDDEN
Graphite (BrunoLevy/GraphiteThree) GPL-2 FORBIDDEN
OpenVolumeMesh, CGoGN Not checked in this pass. Believed LGPL. Treat as FORBIDDEN until verified

Unverified items

  • Stellar (Klingner's mesh improvement code): licence not checked.
  • https://people.eecs.berkeley.edu/~jrs/papers/edge.pdf: listed on Shewchuk's page but not fetched.
  • The DualCube code repo: 404 at the name given in search results.
  • The HexMe workflow repo URL: not stated in the paper. dds-hexmeshing is a related LIHPC repo, not confirmed as the HexMe workflow.