ManimCommunity / ManimCommunity/manim
Investigate replacement of skia-pathops
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 40.9k
- Forks
- 3.1k
- Avg merge
- 3d 12h
- Merged PRs (30d)
- 25
Description
Based on #3456 I am opening a new issue as suggested.
A small summary follows:
1. We have no control on Skia as it is a google tool and google is famous to drop its own products
2. Skia supports only 2D animation,
3. We use only a tiny part of Skia, namely we use it only for bool operation (which to me feels like to kill a fly with a cannon)
Perhaps, if we want support only 2D for boolean operations, we may think to rely on a simpler tool with less dependencies and for which we could have some control, like [svgpathtools](https://github.com/mathandy/svgpathtools) but I feel that it requires some "in-house" work that may take some time (I honestly see this as a good MsC thesis work for some student).
Alternatively this one seems to stand-out: [Pyclipr is a Python library offering the functionality of the Clipper2 polygon clipping and offsetting library](https://lukeparry.uk/tag/python/)
[Angus Johnson - Clipper2](https://github.com/AngusJohnson/Clipper2)
https://github.com/drlukeparry/pyclipr
And here for a 3D-library
https://lukeparry.uk/pycork-a-boolean-csg-library-for-python/
https://github.com/elalish/manifold
(the latter is also suggested in the description of the former and it has python bindings).
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing issue #3456 and the current use of skia-pathops in Manim. Compare svgpathtools, Pyclipr/Clipper2, pycork, and manifold against the project's 2D boolean-operation needs, dependencies, and 3D considerations. Done means documenting a justified replacement direction and its implementation scope.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- computer-graphics
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100