Skip to content

Releases: polydera/trueform

v0.5.0

07 Feb 18:49

Choose a tag to compare

Mesh Registration

  • ICP alignment (fit_icp_alignment): Iterative Closest Point registration with point-to-point and point-to-plane modes, configurable convergence criteria, and correct transform composition for all source/target combinations (#9)
  • 40× faster than VTK, 93× faster than libigl at 1M polygons - TrueForm's random subsampling maintains near-constant time regardless of mesh size

Mesh Processing

  • Taubin smoothing (taubin_smoothed): λ-μ smoothing for mesh fairing without shrinkage
  • Embedded intersection curves (embedded_intersection_curves): Extract mesh-mesh intersection curves embedded in the first mesh, useful for cutting guides and contact visualization (#8)

Interactive Examples

  • Mesh registration demo: Drag to misalign, click to align with OBB + ICP pipeline

Full API Support

  • C++, Python, and VTK bindings for all new features
  • Comprehensive documentation and benchmarks

v0.4.0

03 Feb 16:45

Choose a tag to compare

v0.4.0: point-to-plane ICP, topology analysis, blender tools

Point-to-plane ICP with parallel TSQR least squares solver, converging
2-3x faster than point-to-point on smooth surfaces. Tag normals on the
target to enable: `target | tf::tag(tree) | tf::tag_normals(normals)`.

Topology mesh analysis: is_closed, is_manifold, is_non_manifold, is_open
with parallel edge traversal. Python bindings included.

Blender plugin tools for boolean operations and curve extraction with
undo support and proper mesh conversion utilities.

Also: mod_tree benchmarks, min/max_edge_length, parallelized concatenated,
VTK double support, laplacian_smoothed python bindings.

v0.3.0

30 Jan 08:02

Choose a tag to compare

v0.3.0: integrate mod_tree for incremental spatial updates

Add mod_tree to public API with full support across all spatial operations.
mod_tree enables O(delta) updates instead of O(n) rebuilds for interactive
applications with frequent local geometry changes.

New features:
- aabb_mod_tree, obb_mod_tree, obbrss_mod_tree convenience aliases
- tree_index_map for managing ID remapping during updates
- All spatial queries (distance, intersects, neighbor_search, ray_cast,
  gather_ids, search, search_self) work identically with tree and mod_tree
- VTK module now uses aabb_mod_tree as its default spatial structure

Documentation:
- Comprehensive mod_tree usage guide with update patterns
- tree_index_map API reference

Examples:
- Free-form smoothing: interactive mesh smoothing with incremental tree updates
- VTK laplacian_smoothing: demonstrates mod_tree integration with VTK

Tests:
- Systematic mod_tree query tests covering dirty/non-dirty region results

v0.2.0

27 Jan 17:57

Choose a tag to compare

trueform v0.2.0

Real-time geometric processing. Easy to use, robust on real-world data. Try it live.

Spatial queries, mesh booleans, isocontours, topology — at interactive speed on million-polygon meshes. Robust to non-manifold flaps, inconsistent winding, and pipeline artifacts. C++ header-only; Python with NumPy in, NumPy out.

Benchmarks — vs CGAL, VTK, libigl, Coal, FCL, nanoflann.

Documentation — tutorials, examples, and more.

Installation

pip install trueform
python -m trueform.conan create

v0.1.1

27 Jan 09:05

Choose a tag to compare

v0.1.1: cross-section examples, isobands improvements, build fixes

cross-section examples
- new live example with WASM, VTK C++, and Python VTK implementations
- extracts isocontours and triangulates into filled polygons
- interactive plane movement with scroll

isobands improvements
- make_isobands with return_curves now only returns curves for selected
  bands instead of all intersection edges
- fixed lifetime bug in segments reindexed() where block_indirect_range
  held iterators to temporaries from a lazy mapped_range
- examples updated to match cross-section style: single viewport,
  semi-transparent mesh, teal colors, fixed plane through centroid

triangulation
- ear cutter auto-detects and corrects clockwise polygons
- added 2D and clockwise polygon tests

build
- sdist now included in PyPI publish workflow
- ninja required for sdist builds

v0.1.0

26 Jan 21:27

Choose a tag to compare

Fix Windows CI and Blender packaging: use py launcher, extract wheel …