GSoC 2025: Ergonomic API for Vector Mesh Topology #2652
Replies: 4 comments
-
Community Bonding PeriodIn this three week time period I worked on refactoring code to use Kurbo instead of Bezier-rs. This resulted in significant performance and accuracy improvements while also fixing a few bugs. Nodes refactored to use Kurbo API:
|
Beta Was this translation helpful? Give feedback.
-
Week 1:
|
Beta Was this translation helpful? Give feedback.
-
Week 2 update:
|
Beta Was this translation helpful? Give feedback.
-
Week 3This week I started off by implementing new nodes 'Path Length', 'Count' and 'Split Path' and then worked on the prototype for testing ideas and design for a fresh vector mesh representation that is easy to understand and work with for both the user and developers. Implemented a basic vector path edit tool and structure for representing vector mesh in the prototype and implemented a few basic APIs for query and manipulation of the data. While working on the prototype, I spent most of my time thinking about the structure for the vector mesh such that the data is represented as a table and is also efficient to access and manipulate for implementing APIs. Initially @Keavon suggested storing it as list of commands which describes the path like Kurbo does. Though this approach gives a simple way to represent the data I wasn't sure if implementing APIs with this would be efficient and also make it easier for the users to work with. I proposed to represent the vector mesh data as a list of points, segments, and attributes very similar to how it is represented currently. Then, while discussing my proposed idea, @Keavon suggested an even better approach which is to represent the segments components as columns in a table, just like attributes which feels like the best approach which works for the users and developers. @4adex and I also diccused a new approach for filling the regions which is dynamic and created by the intersections of path segments in a mesh. The idea he proposed is to store the fill of the regions as a list of fill which is left or right of the subsegments that are part of that region and then compute the fills of each region by calculating the fill which is present in most of the subsegments that construct that region. ![]() |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
My name is Priyanshu Raj and I've been selected as GSoC 2025 student developer to work on Graphite. Throughout the summer I will be working on creating an API for editing vector mesh topology.
Synopsis
The project aims to design and implement an ergonomic and efficient API for accessing, manipulating, and performing operations on vector data such that implementing complex vector based algorithms or developing tools to perform vector manipulations is efficient and ergonomic. The second aspect of the project is to enhance performance and stability by transitioning from Bezier-rs to Kurbo algorithms and data structures to perform vector operations.
Benefits
Deliverables
Beta Was this translation helpful? Give feedback.
All reactions