Clipper upgrade roadmap

This commit is contained in:
David Kaufman
2026-03-13 11:47:33 -04:00
parent 493829b376
commit d690dcb1d3
2 changed files with 30 additions and 0 deletions
+29
View File
@@ -0,0 +1,29 @@
# STATUS:
Active
# Why it is a priority
Our geometry libraries limit what we can do with CAM. Currently, we are
dependent on an obsolete version of Clipper and unmaintened libarea and kurve
libraries. These libraries do not receive feature updates or bug fixes.
Updating to Clipper 2 and removing our dependency on these libraries will make
the CAM workbench more maintainable and improve tool paths by enabling new
features such as non-heuristic arc fitting.
# Scope
This epic is about upgrading from Clipper 1/libarea/kurve to Clipper 2, and the CAM improvements enabled by that upgrade.
| In | Out |
| --- | --- |
| Add Clipper 2 to FreeCAD | Research other new libraries to add to FreeCAD |
| Migrate operations from Clipper 1 to Clipper 2 | |
| Replace uses of libarea and kurve with Clipper 2, and as needed, custom wrappers | |
| Remove libarea and kurve from the FreeCAD | |
| Expose Clipper 2 functionality to Python | |
| Implement correct curve fitting using Clipper 2's IntPoint user data feature | |
| Implement algorithm/performance improvements in Adaptive using Clipper 2 features| |
# Related Epics
+1
View File
@@ -73,6 +73,7 @@ We agree these things should get collective attention because they are larger th
| [Improve Circular Holes](Epics/Circular%20Holes%20Improvement.md) | Improve the user experience and efficiency of Circular holes operations | Active |
| [Improve Core Dressups](Epics/ImproveCoreDressups.md) | Improve the user experience and feature completion of core dressups | Active |
| [Improve Adaptive Operation](Epics/ImproveAdaptiveOperation.md) | Improve the user experience and feature completion of Adaptive | Active |
| [Clipper 2 Upgrade](Epics/Clipper.md) | Upgrade Clipper 1/libarea/kurve to Clipper 2 | Active |
# Priorities
*(When evaluating Pull Requests, the following priorities will be considered)*