For shape manipulation utilities, the first results are brooooooklyn/canvas (This headless vector graphics engine and rendering library provides programmatic path construction and boolean operations, making it a strong fit for server-side geometric shape manipulation and vector graphics generation), paperjs/paper.js (Paper.js is an HTML5 Canvas vector graphics library and scripting framework that provides robust path manipulation and boolean operations for 2D shapes, though it focuses less on 3D mesh processing or spatial indexing) and libigl/libigl (This C++ library provides comprehensive tools for mesh processing and geometric shape manipulation, making it a great programmatic fit despite lacking explicit high-level 2D vector graphics generators). shapely/shapely and toblerity/shapely round out the shortlist. Compare the match explanations and check the project documentation against your requirements.
Hand-picked open-source shape manipulation libraries, ranked by stars and activity. Compare the top options and find the right fit for your project.
Canvas is a headless vector graphics engine and two-dimensional graphics rendering library built on a native graphics library with zero system dependencies for server-side drawing. It provides a programmatic shape construction and manipulation library supporting bezier curves, boolean operations, and native rendering without requiring a display server. The library renders shapes, paths, text, and images onto virtual memory surfaces and off-screen drawing areas for server-side image generation, vector animation rendering, and PDF generation. It supports path boolean operations to compute comp
This headless vector graphics engine and rendering library provides programmatic path construction and boolean operations, making it a strong fit for server-side geometric shape manipulation and vector graphics generation.
Paper.js is an HTML5 Canvas vector graphics library and scripting framework used for creating and manipulating 2D shapes and paths. It functions as a vector animation framework and a headless vector graphics engine, allowing for the execution of graphics operations in both browser and server-side environments. The project features a dedicated SVG import and export engine to convert between native vector items and the SVG format. It includes a specialized boolean path operation toolkit for uniting, subtracting, and intersecting vector paths to create complex geometric shapes. The library cove
Paper.js is an HTML5 Canvas vector graphics library and scripting framework that provides robust path manipulation and boolean operations for 2D shapes, though it focuses less on 3D mesh processing or spatial indexing.
libigl is a C++ geometry processing library used for analyzing and manipulating 3D triangle and tetrahedral meshes. It functions as a numerical linear algebra suite and a mesh manipulation framework, integrating a geometric deformation engine to implement rigid and polyharmonic transformations. The project is distinguished by its header-only library design and its implementation of specialized deformation techniques, including rigid-as-possible and polyharmonic shape deformation. It also provides a visualization tool for rendering surfaces and scalar fields with interactive scene controls and
This C++ library provides comprehensive tools for mesh processing and geometric shape manipulation, making it a great programmatic fit despite lacking explicit high-level 2D vector graphics generators.
Shapely is a library for the manipulation and analysis of planar geometric objects, serving as a Python wrapper for the GEOS C++ engine. It provides a framework for calculating geometric properties, evaluating spatial relationships, and performing topological predicates within a Cartesian plane. The project distinguishes itself through a vectorized geometry processor capable of executing spatial operations across large arrays of shapes to increase throughput. It also includes a spatial indexing system based on R-trees to accelerate the retrieval of intersecting geometries and nearest neighbor
Shapely is a Python library for manipulating and analyzing planar geometric objects that handles polygon simplification and spatial indexing via GEOS, though it lacks dedicated 3D mesh processing and built-in physics collision detection.
Shapely is a geometric analysis library for the manipulation and analysis of planar geometric objects. It functions as a computational geometry toolkit, a spatial predicate engine for evaluating topological relationships, and a vectorized geometry processor. The library distinguishes itself through a vectorized geometry processor capable of executing operations across coordinate arrays with multi-threaded parallel processing. It utilizes prepared geometry optimization to accelerate repeated containment and intersection tests and implements R-tree spatial indexing for efficient nearest-neighbo
Shapely is a computational geometry library for planar objects that supports spatial indexing, boolean operations, and geometric analysis, though its focus is geospatial GIS analysis rather than general 3D mesh processing.
BuntDB is an embedded key-value store for Go applications, providing in-memory storage with optional disk persistence. It structures data using a B-tree for ordered key-value access and an R-tree for spatial indexing, allowing both range scans and geometric intersection queries. Support for indexing on nested JSON document fields enables efficient lookups by values within JSON objects, and per-key time-to-live (TTL) expiration automatically removes stale entries. The store uses copy-on-write transaction isolation, ensuring each transaction sees a consistent snapshot and changes are applied at
This repository is an embedded key-value database with spatial indexing rather than a geometric shape manipulation library, making it a database component rather than the requested tool for shape processing and boolean operations.
Macaw is a Swift vector graphics library and animation framework used to create and render scalable geometric shapes and text. It functions as an SVG rendering engine and an interactive vector graphics toolkit for displaying complex artwork while maintaining image quality at any scale. The framework enables the animation of shape properties and node transformations, including the ability to morph one vector path into another. It allows for the integration of external SVG files and the application of linear and radial gradients to fills and strokes. The toolkit covers a range of capabilities
Macaw is a vector graphics and animation library for Swift focused on rendering and transforming shapes rather than performing advanced geometric boolean operations or mesh processing.
svg.js is a JavaScript library and vector graphics API that provides a programmatic interface for creating and modifying scalable vector graphics in the browser. It functions as a lightweight wrapper for the browser DOM to simplify the management of SVG elements and attributes. The project serves as both a manipulation library and an animation framework, enabling the development of dynamic user interfaces and web vector animations. It covers the creation of motion and visual transitions for vector graphics to produce fluid animations. The library's capabilities extend to vector graphic visua
This repository is a vector graphics rendering and animation library rather than a geometric shape manipulation library, so it lacks advanced features like boolean operations or mesh processing.
mxgraph is a client-side graph visualization tool and JavaScript diagramming library. It functions as an SVG-based drawing framework used to create and render interactive diagrams directly within a web browser. The library enables the development of custom diagramming tools, such as network maps and flowcharts, by providing the means to draw and manipulate visual data structures. It focuses on client-side data visualization, allowing for the representation of complex node and edge relationships without requiring server-side rendering.
This repository is a client-side diagramming and graph visualization library for rendering interactive node-and-edge graphs rather than a programmatic library for geometric shape manipulation, boolean operations, or mesh processing.
vx is a declarative charting framework and SVG data visualization library. It serves as an integration layer that combines D3 mathematical scales and shapes with a component-based UI for rendering visualizations. The project provides a set of building blocks for constructing custom charts and diagrams using React components. It bridges mathematical data and visual representation by utilizing low-level primitives to manage scalable vector graphics without manual document object model manipulations. The library covers a broad capability surface including custom chart development, declarative S
This repository is a charting and SVG visualization library built for React rather than a general-purpose geometric shape manipulation tool, making it a rendering building block rather than the requested geometry processor.
| Repository | Stars | Language | License | Last push |
|---|---|---|---|---|
| brooooooklyn/canvas | 2.3K | Rust | MIT | |
| paperjs/paper.js | 15.1K | JavaScript | NOASSERTION | |
| libigl/libigl |
| 5K |
| C++ |
| GPL-3.0 |
| shapely/shapely | 4.5K | Python | BSD-3-Clause |
| toblerity/shapely | 4.5K | Python | BSD-3-Clause |
| tidwall/buntdb | 4.8K | Go | mit |
| exyte/macaw | 6.1K | Swift | MIT |
| wout/svg.js | 11.8K | JavaScript | NOASSERTION |
| jgraph/mxgraph | 6.9K | HTML | NOASSERTION |
| hshoff/vx | 20.9K | TypeScript | MIT |