All notable changes to this project will be documented in this file. See Conventional Commits for commit guidelines.
2.13.0 (2026-02-22)
- modeling: corrected number of step calculations in arc and appendArc (fc2f7c4)
- modeling: add Minkowski sum operation for 3D geometries (ff6f608)
2.12.7 (2026-02-11)
- modeling: improve performance in flatten, splitPolygonByPlane, and extrudeFromSlices (1a6ef03)
2.12.6 (2025-09-20)
- modeling: corrected handling of pitch vs height in extrudeHelical (074f05a)
2.12.5 (2024-12-29)
Note: Version bump only for package @jscad/modeling
2.12.4 (2024-11-10)
Note: Version bump only for package @jscad/modeling
2.12.3 (2024-10-06)
- modeling: added optional plane to poly3 TS definition (2a3337a)
- modeling: corrected hull of single unconvex solid (b3901f2)
- modeling: corrected TS definition of scission (ad3d37d)
- modeling: expose hullPoints2 and hullPoints3 (01ceae8)
2.12.2 (2024-06-02)
- modeling: added geom3.fromPointsConvex() (e1af657)
- modeling: added TS definitions for mat4.isIdentity() (0d02c83)
- modeling: create scission.d.ts and update index.d.ts (7f02f7d)
- modeling: created TS definitions for splitPolygonByPlane (0998e7e)
- typo: fix typo in rounded error messages (f6d5286)
2.12.1 (2024-02-18)
- modeling: added fromNoisyPoints() to plane (1d9efb5)
- modeling: added orientation option to polygon (6c7be85)
- modeling: corrected geom2 mirroring transform (8b0306e)
2.12.0 (2023-06-27)
- modeling: add missing extrudeHelical typing definition (7f5f8e1)
- modeling: allow zero size in primitives (76b7369)
- modeling: performance improvements for retessellate as part of booleans (12157ac)
2.11.1 (2023-04-30)
- modeling: arcLengthToT first argument is required (fc4ceef)
- modeling: export retessellate from modifiers (fe40aea)
- modeling: fix line2.closestPoint (4419fe5)
2.11.0 (2022-11-26)
- modeling: added TS definitions for missing measurement functions (acf79ca)
2.10.0 (2022-08-21)
- modeling: added TS definitions for modifiers (33ae2c4)
- modeling: export modifiers for TypeScript (#1129) (a936675)
2.9.6 (2022-07-17)
2.9.5 (2022-06-12)
- modeling: optimize poly3.measureBoundingSphere and cache results for performance (6ad02d5)
- modeling: replace Math.hypot with faster Math.sqrt()(#1099) (1f71c5b)
2.9.4 (2022-05-15)
- maths: reworked mat4 isMirror to use pure math, eliminating vec3 creation (#1088) (db4f220)
- modeling: improved performance of reTesselateCoplanarPolygons by using maps or sets (#1085) (fc57103)
- modeling: use Map instead of {} for slice.repair (#1083) (05d2984)
2.9.3 (2022-04-24)
- modeling: corrected torus manifolds (#1046) (fe3901f)
- modeling: removed path2.eachPoint which was broken and unused (#1069) (f704548)
- modeling: reworked project to correct union of small polygons (#1058) (45d04ac)
- modeling: changed internals to use geom3.create(), path2.create(), poly3.create() (#1072) (dc4cd15)
- modeling: faster geom2.toOutlines (#1064) (5cb2f65)
- modeling: performance improvements to mergePolygons and triangulatePolygons (647ffdf)
2.9.2 (2022-04-03)
Note: Version bump only for package @jscad/modeling
2.9.1 (2022-04-03)
- modeling: corrected ellipse and ellipsoid manifolds (#1043) (3af3506)
- modeling: fix assignHoles function when there are nested holes (#1038) (f015224)
- modeling: fixed areAllShapesTheSameType and add a test (#1034) (c92e9be)
- modeling: fixed cylinder construction, enhanced to support zero radius (#1039) (93f103d)
2.9.0 (2022-03-13)
2.8.0 (2022-03-06)
- modeling: improved performace of path2 offsets (#1013) (47f824b)
- modeling: improved performance of expanding geom3, and bug fix (#1008) (d0d035a)
- modeling: use Set to create unique points in hullPath2 (#1007) (bd75a98)
2.7.2 (2022-02-19)
- modeling: changed geom2.toOutlines to use a map when creating unique edges (#997) (338065f)
- modeling: Use hypot instead of sqrt when possible (#996) (113c636)
2.7.1 (2021-12-26)
2.7.0 (2021-12-11)
- modeling: improved measureBoundingBox by eliminating allocations (8abe361)
2.6.1 (2021-11-07)
- modeling: corrected measureBoundingBox for mirrored shapes (#946) (ab2d505)
- modeling: handle negative area polygons in snapPolygons (#941) (971343a)
2.6.0 (2021-10-17)
- modeling: add new measurements for BoundingSphere, Center, CenterOfMass, and Dimensions (#850) (ad032f4)
- modeling: change geometry transforms to preserve user attributes (#927) (a581a02)
- modeling: Performance improvement for measure bounding box (#869) (ee1c7b1)
2.5.3 (2021-10-04)
2.5.2 (2021-09-27)
- modeling: added exit condition to Node to prevent infinite loops in boolean ops (#898) (bf4d6d4)
- modeling: corrected concat to ignore duplicate points (#913)corrected appendArc to maintain last point (3eea3ef)
2.5.1 (2021-09-09)
- modeling: corrected CCW determination in 2D hulls (#897) (23fe2ac), closes #114
- web: added open issues and discord community to help (4ea1196)
2.5.0 (2021-06-20)
- modeling: added mat4.isIdentity() (c22b7cc)
2.4.0 (2021-06-11)
- modeling: corrected snapPolygons to maintain color attributes (eba8ebc)
- modeling: corrected triangulatePolygons to maintain color attributes (f59958a)
2.3.0 (2021-06-01)
- modeling: fixed use of vec3.snap in triangulatePolygons (c0b82a0)
- modeling: rewrote vec3 orthogonal() to do the correct thing, and adjusted test suites (f5cb4a3)
- modeling: update and correct TypeScript type definitions (#849) (6036be7)
- modeling: added aboutEqualNormals() to math utils (986d402)
- modeling: added fromVectorRotation() to mat4 (9e3acae)
- modeling: added projectionOfPoint() to plane (5ea7bfd)
- modeling: new project() function added to extrusions (#844) (065469c)
- modeling: new scission() function added to booleans (#846) (b8b3bae)
- modeling: rework math objects to conform with gl-matrix (#804) (2e52f10)
2.2.0 (2021-04-20)
- all: V2 : several fixes for modeling (#705) (62017a4)
- core: Remove connectors from public api (#703) (a3bf8a4)
- core,modeling: V2 fix extrude (#751) (767b6fc)
- modeling: Adding & improving tests, docs, removing some equals() (1f3724b)
- modeling: correced snapPolygons to remove duplicate vertices which is possible (#791) (1eaf86f)
- modeling: ensure extrude rectangular expand produces shapes with positive area (43ce5dd)
- modeling: fix extrude rotate (#727) (13de037)
- modeling: fix torus offset when outerRotation is supplied (f7b3a2a)
- modeling: re-implemented poly2.isPointInside to correct issues (#741) (4266c8f)
- modeling: V2 - primitives revisited (#697) (4721484)
- modeling: V2 revisit modifiers (#773) (1e28120)
- examples: examples overhaul for V2 JSCAD (d73e06f)
- modeling: add align() and measureAggregateBoundingBox() functions (72df65c)
- modeling: added aggregate functions for area, volume, epsilon measurements (cf558bb)
- modeling: V2 : adding new class of operations to modeling; modifiers (#743) (9e20303)
- modeling: V2 : rename option to align and center (#775) (c5b0f48)
- modeling: V2 fix extrusions (#761) (466910e)
2.1.0 (2021-04-15)
- all: V2 : several fixes for modeling (#705) (62017a4)
- core: Remove connectors from public api (#703) (a3bf8a4)
- core,modeling: V2 fix extrude (#751) (767b6fc)
- modeling: Adding & improving tests, docs, removing some equals() (1f3724b)
- modeling: correced snapPolygons to remove duplicate vertices which is possible (#791) (1eaf86f)
- modeling: ensure extrude rectangular expand produces shapes with positive area (43ce5dd)
- modeling: fix extrude rotate (#727) (13de037)
- modeling: fix torus offset when outerRotation is supplied (f7b3a2a)
- modeling: re-implemented poly2.isPointInside to correct issues (#741) (4266c8f)
- modeling: V2 - primitives revisited (#697) (4721484)
- modeling: V2 revisit modifiers (#773) (1e28120)
- examples: examples overhaul for V2 JSCAD (d73e06f)
- modeling: add align() and measureAggregateBoundingBox() functions (72df65c)
- modeling: added aggregate functions for area, volume, epsilon measurements (cf558bb)
- modeling: V2 : adding new class of operations to modeling; modifiers (#743) (9e20303)
- modeling: V2 : rename option to align and center (#775) (c5b0f48)
- modeling: V2 fix extrusions (#761) (466910e)
2.0.0 (2021-04-12)
Note: Version bump only for package @jscad/modeling
2.0.0-alpha.11 (2021-03-07)
2.0.0-alpha.10 (2021-02-07)
- modeling: adding new class of operations to modeling; modifiers (#743) (9e20303)
- modeling: enhanced options to extrudeFromSlices (#761) (466910e)
2.0.0-alpha.9 (2021-01-02)
- core,modeling: V2 fix extrude (#751) (767b6fc)
- modeling: re-implemented poly2.isPointInside to correct issues (#741) (4266c8f)
2.0.0-alpha.8 (2020-12-04)
Note: Version bump only for package @jscad/modeling
2.0.0-alpha.7 (2020-11-07)
2.0.0-alpha.6 (2020-10-11)
- all: V2 : several fixes for modeling (#705) (62017a4)
- core: Remove connectors from public api (#703) (a3bf8a4)
2.0.0-alpha.5 (2020-09-29)
2.0.0-alpha.4 (2020-09-28)
- modeling: added aggregate functions for area, volume, epsilon measurements (cf558bb)
2.0.0-alpha.3 (2020-09-19)
- modeling: add align() and measureAggregateBoundingBox() functions (72df65c)
2.0.0-alpha.2 (2020-09-08)
- modeling: Adding & improving tests, docs, removing some equals() (1f3724b)
- modeling: fix torus offset when outerRotation is supplied (f7b3a2a)
- examples: examples overhaul for V2 JSCAD (d73e06f)
2.0.0-alpha.1 (2020-08-19)
- modeling: ensure extrude rectangular expand produces shapes with positive area (43ce5dd)
- booleans: corrected fromFakePolygons to ignore 0 length sides (#552) (a44650b)
- booleans: added dynamic EPS for 2d boolean operations (#535) (510e909)
- colors: colorize is now immutable & returns new geometries (#566) (916824c)
- mat4: Missing variable declaration. (6c68e81)
- geometries: corrected order of transforms in geom2, geom3, and path2 (2cde371)
- transforms: adjusted transforms to allow various lengths arrays as parameters
- geometries: reworked toCompactBinary and fromCompactBinary functions
- primitives: enhance primitives settings & defaults
- geometries: added color support to to/fromCompactBinary functions
- maths: updated vec2 and vec3 to use the same logic as glmatrix
- maths: changed line2/mat4/vec2/vec3/vec4 to create arrays of Numbers
- measurements: enhanced measurements to cache values as object attributes
- utils: exposed additional user utility functions
- geometries: corrected order of transforms in geom2, geom3, and path2
- modeling: merge csg.js into main repo (#482)
- primitives: remove center on primitives (#512) (7fdc3eb)
- primitives: restored center parameter to primitives
- modeling:: renamed color.color to colors.colorize
- colors: improve (values & arrays supported) & cleanup color api (#542) (0f4feab)
- hulls: added 3D hull functionality based on quickhull (#483) (c991eb7)
- primitives: enhanced polyhedron to accept an array of colors (#544) (3a2e863)
- geometries: added invert to geom3, as well as a new test suite
- geometries: renamed flip to invert in poly3, adjusted test suites
- geometries: removed plane from poly3 data structure, added plane() function
- modeling: renamed math to maths
- modeling: renamed geometry API to geometries, and adjusted tests…
- modeling: moved measurements out of operations
- modeling: adding curves/bezier object for curve-based easing and…
0.6.0 (2018-06-21)
- 2d shape factories: fix fromNestedPointsArray(#103) (729d459)
- polygon: params custom paths (#104) (7d93db8)
- 2d polygons: add support for polygons (2D) with holes(#101) (22f8f80)
- vector_text/char: big overhaul & additions to the vector_text/ char system (#107) (eadcd58)
0.5.4 (2018-03-16)
0.5.3 (2018-02-13)
0.5.2 (2018-01-29)
0.5.1 (2018-01-29)
0.5.0 (2018-01-19)
0.4.1 (2018-01-19)
0.4.0 (2018-01-05)
0.3.8 (2018-01-04)
0.3.7 (2017-11-13)
0.3.6 (2017-11-03)
0.3.5 (2017-11-03)
0.3.4 (2017-11-01)
0.3.3 (2017-11-01)
0.3.2 (2017-10-28)
0.3.1 (2017-06-11)
0.3.0 (2017-05-30)
- CAG.toPoints: CAG Enhancement for toPoints() (d023243)
0.2.4 (2017-05-20)
- CAG: reverted back CAG to default to canonicalized = false (68a0558)
0.2.3 (2017-05-19)
0.2.2 (2017-05-19)
0.2.1 (2017-04-27)
0.2.0 (2017-04-27)
- asserts: fixed issue with asserts in latest ava (1210f66)
0.1.4 (2017-01-27)
- README: more attempts at fixing README on npm ... (a5ae096)
0.1.3 (2017-01-27)
0.1.2 (2017-01-27)
- typo: fixed typo in package name (4f2aec6)
0.1.1 (2017-01-27)
- babelrc: added missing babelrc (94f9684)
- package: removed part of package relevant to 'builds' (7bf4815)
0.1.0 (2017-01-16)
- bools fail if cylinder resolution not integer. Solution: parse all resolution as int (af6453c)
- package: fixed package name (cbba148)
- csg.js: updated csg.js based on recent changes in OpenjSCAD.org (db1d133)