Releases: elalish/manifold
v2.1.0
This is a significant update, primarily centered on replacing MeshRelation
with MeshGL
, which accomplishes the goal of maintaining material properties across operations much better and with a simpler, more performant API. I'm not considering this a breaking change, as MeshRelation
turned out to be broken enough that I doubt it was getting much use anyway. For the WASM build on npm, this is definitely a breaking change as we've updated its API more significantly and switched to an ES6 module. This brings us up from v1.0 to v2.1 to keep a consistent version from now on.
New Features
- Added
MeshGL
. #269 (@stewartoallen, @elalish) - Handle arbitrary properties in
MeshGL
. #290 (@elalish) - Added transform relations to
MeshGL
. #315 (@elalish) - Added normals update to
GetMeshGL
. #317 (@elalish) - Simplified
Polygons
type. #343 (@elalish)
WASM bindings
- Added missing declarations. #267, #320 (@jirihon, @rafern)
- Update declarations for ES6. #342, #346 (@rafern)
- Refactored bindings. #268 (@rafern)
- Added JS
Mesh
class. #272 (@elalish) - Updated to ES6 Module. #322 (@elalish)
- Accept
Mat4
intransform
. #329 (@pca006132)
Build/CI Updates
- Added Node.js tests. #262 (@elalish)
- Added C bindings. #292, #295, #303, #306, #310, #311, #313 (@geoffder)
- Updated CI to CUDA 12. #319 (@elalish)
- Added maze benchmark to Python run. #333 (@pca006132)
Bug Fixes
- Fixed memory leak. #280 (@pca006132)
- Fixed mirroring scale. #298 (@elalish)
- Made robust to overlaps by default. #299 (@elalish)
- Fixed Python binding bug. #307 (@pca006132)
- Changed enum case to avoid macros. #325 (@elalish)
- Hash table OMP fix. #331 (@pca006132)
Examples
ManifoldCAD.org
- Fixed first run problem. #281 (@elalish)
- Fixed CSS. #296 (@pca006132)
- Switched from three.js GLTFExporter to gltf-transform. #322 (@elalish)
- Added
show()
andonly()
functions for visual debug. #330, #334 (@elalish) - Added gl-matrix to editor for vector functions. #332 (@elalish)
- Made into a fully installable PWA. #336 (@elalish)
- Fixed module interface. #348 (@elalish)
v2.0.0
Thanks to all our collaborators, we've made enormous progress on this library, including some significant updates to the API that make this worthy of a v2.0 release. Following is a non-exhaustive list of changes.
New Feature
API Changes
- Updated API to functional style. #131, #171 (@pca006132)
- Exceptions now optional, #170 (@elalish)
- Reduced dependencies #92, #189, #190, #194 (@elalish)
- Updated MeshRelation API, #184 (@elalish)
Build/CI Updates
- Windows compatibility. #88 (@yetigit)
- Godot compatibility. #93 (@fire)
- Cross-platform CI. #103, #111, #229 (@pca006132)
- Python binding. #113, #214 (@pca006132)
- Reorganized directories, #157 (@elalish)
- Added code coverage, formatting. #132, #140, #142, #195 (@pca006132, @elalish)
- WASM build. #155, #201, #221, #224 (@makc, @pca006132, @elalish)
- Now available on npm as manifold-3d.
Bug Fixes
- Make thread-safe. #125 (@pca006132)
- Fixed degenerate removal. #137, #179 (@elalish)
- Fixed triangulator. #154, #165, #180, #182 (@elalish)
Performance Improvements
- CGAL comparison. #84 (@ochafik)
- Optimizations. #106, #150, #235 (@pca006132)
- Managed memory. #121 (@pca006132)
- Dynamic parallel backend. #126 (@pca006132)
ManifoldCAD.org
v1.0.0
I'm marking this first release as v1.0 because I've been working on it long enough and it passes a rigorous enough batch of tests that I'm convinced it really is a next step in robust computational geometry. Obviously I can't promise it's bug-free, but I believe at this point the fundamental architecture is sound and can be built upon. Likewise, after many false starts I believe I have an API that is durable and can be expanded without major breaking changes.
In short, I feel comfortable recommending you try using it and building on it, and that I won't be wasting your time.