Wildmeshing Toolkit¶
Robust, parallel triangle and tetrahedral mesh generation and editing.
The toolkit writes mesh algorithms as local operations — split, collapse, swap, smooth — together with the invariants every operation must keep and the rules that update attributes. It schedules the operations in parallel, checks the invariants, and rolls back any operation that would break them. On this foundation it implements TetWild, TriWild, QSlim, isotropic remeshing, multi-region meshing, topological offsets and more, each callable from the command line, Python and C++ with the same JSON options.
import wildmeshing as wm
bunny = wm.read_mesh(str(DATA / "bunny.obj"))
outputs, report = wm.tetwild({"input": ["bunny"], "num_threads": 4}, {"bunny": bunny})
print(report["#t"], "tets, max energy", report["max_energy"])
wm.write_mesh("bunny_tets.vtu", outputs["mesh"])
Where to go¶
- Getting started: install, run a first component, and learn the two ways to call one.
- Tutorials: each component, its key settings, with examples in JSON, Python and C++.
- Gallery: the components' results, interactive.
- Reference: every option of every component, the Python API, the C++ API.
- Concepts: local operations, scheduling, robust geometry, quality.
- Developer guide: the code, and how to add an operation or a component.
The toolkit is described in Declarative Specification for Unstructured Mesh Editing Algorithms (ACM Transactions on Graphics, SIGGRAPH Asia 2022): see Citing. It is MIT licensed.
