v3.1.0
Thanks @howardt for all the reports and API discussions - the improvements made to unblock Blender's adoption will definitely benefit our whole user community. And thank you to all our contributors, both new and old! There are lots of fixes here, especially around handling properties, faces, and decimation, as well as significant performance improvements. Take a close look at the New Features section, as a few of them might be considered minor breaking changes, or at least behavior to be aware of.
New Features
- Added
Simplify()
for decimation by @elalish in #1147, #1246 - unified ManifoldParams and PolygonParams by @pca006132 in #1167
- make boolean deterministic by @pca006132 in #1187
- simple 64-bit OBJ debug dump by @pca006132 in #1190
- Make API for high precision OBJ I/O method by @starseeker in #1219, #1226
- Don't simplify unless requested by @elalish in #1185
- use input faceID by @elalish in #1241, #1232
- default offset to round by @elalish in #1257
Bindings
- Add const keyword to CrossSection::Compose parameter by @tomasf in #1129
- Add Manifold-Swift to Bindings & Packages in README by @tomasf in #1133
- fix default JS parameter binding for simplify by @elalish in #1146
- ARM Wheels by @johnnynunez in #1180
- Changed the delete memory operation to a destructure in the Merge C binding by @strich in #1196
- Fix
triangulate
js bindings by @jirihon in #1216 - Update ts definitions by @Kaladum in #1236
- wasm: use string status by @pca006132 in #1256
Bug Fixes
- Better faces by @elalish in #1040
- Early return when result size too large by @pca006132 in #1166
- Fix face removal (#1191) by @pca006132 in #1192
- Fix empty slice by @pca006132 in #1199
- Fix Revolve clipping by @elalish in #1200
- use more precise acos function by @pca006132 in #1201
- Fix Cross Section Mirror and add Test by @michael-j-faulkner in #1206
- Fix triangulator handling of splinters by @elalish in #1205
- Fix determinism by @Trzeth in #1234
- Fix intersection behavior in CrossSection::BatchBoolean by @tomasf in #1247
- fixed coplanar property collapse by @elalish in #1255
Performance Improvements
- Faster import by @pca006132 in #1139
- edge_op: quit CollapseEdge early if possible by @pca006132 in #1152
- parallelize mesh fixup by @pca006132 in #1148
- kdtree (2D) for collider by @pca006132 in #1160
- avoid sparse indices by @pca006132 in #1186
- parallel CreateHalfedges by @pca006132 in #1188
Build/CI Updates
- python: add ninja build dependency by @pca006132 in #1128
- Fix misc by @pca006132 in #1143
- fix linalg.h by @pca006132 in #1155
- Misc changes by @pca006132 in #1162
- fix a bunch of warnings by @pca006132 in #1194
- set cmake version in macos action by @pca006132 in #1207
- Suppress quickhull.cpp warnings with g++ compiler by @starseeker in #1218
- Remove per-error hacks in favor of a "disable Werror" option by @starseeker in #1223
- added MANIFOLD_ASSERT by @elalish in #1225
- bump CI ubuntu version by @elalish in #1230
- Add include for cstdint by @BenLubar in #1253
Tests
- Ember tests by @howardt in #1184
- In-loop Status calls were a work-around - see if #1205 solved it. by @starseeker in #1212
- Add test target to CMake by @diizzyy in #1244
- Add test for CrossSection::BatchBoolean by @Trzeth in #1249
Documentation
- improved MeshGL docs by @elalish in #1178
- updated status doc by @elalish in #1210
- Add PythonOpenSCAD and AnchorSCAD as 'users'. by @owebeeone in #1231
- Update README.md by @james-bern in #1228
- Update README.md by @elalish in #1237
- Update README.md by @diizzyy in #1245
- Clarify WASM objects to delete by @nmattia in #1254
New Contributors
- @tomasf made their first contribution in #1129
- @howardt made their first contribution in #1184
- @johnnynunez made their first contribution in #1180
- @strich made their first contribution in #1196
- @michael-j-faulkner made their first contribution in #1206
- @owebeeone made their first contribution in #1231
- @Trzeth made their first contribution in #1234
- @Kaladum made their first contribution in #1236
- @diizzyy made their first contribution in #1244
- @BenLubar made their first contribution in #1253
- @nmattia made their first contribution in #1254