Skip to content

Conversation

madhephaestus
Copy link
Contributor

@madhephaestus madhephaestus commented Jul 30, 2025

@miho I Have here a PR that i know is unlikely to be merged, but represents a huge amount of work to bring this library up to date. I re-wrote the splitPolygon algorithm, as well as added a full-manifold mesh repair, both of which use Aparapi to run on the GPU. Other important changes were using newels method to compute the normal, instead of a dot product of 2 vectors, produces a valid normal on convex and edge case geometry. It also detects sets of colinear points, which can not be triangulated and therefor must be pruned. I also changed the CCW detection to use a reference normal and the computed normal of the points using newels method to more robustly detect CW vs CCW for concave polygons (Mosly important in SVG loading). I updated the text and svg loading to use a common Bezier extrapolation and also to use a common and triangulated monotone extrude (the rectangular method was breaking when doing spirals.)

Beyond those core algorithm corrections, i have added a ton of additional features. Many additional primitives, including parametric sweeps, threads spirals, bezier path exrsuions and 2 and 3d hexaganoal distribution methods. I have added Slicing, SVG loading and export, fixed the OBJ export, and implemented a "hole" classification where geometries are differences in union operations to simplify process flow.

All of these updates were in service of making CaDoodle CAD faster and more stable. CaDoodle is a cross-traainable open source alternative to TinkerCAD. Under the hood, JCSG powers the entire cad engine.

madhephaestus and others added 30 commits January 10, 2024 15:02
This ensures that the the points that each core checks if a finite and
fixed number. the process can be run in iterations that are indexed at
the end of the loop.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants