This project is part of the @thi.ng/umbrella monorepo.
For the Clojure version, please visit: thi.ng/geom-clj
Functional, polymorphic API for 2D geometry types & SVG generation.
This project is a partially ported from the Clojure version of the same name. All polymorphic operations built on @thi.ng/defmulti.
Up-to-date feature matrix spreadsheet
This package acts as a higher-level frontend for most of the following related packages (which are more low-level, lightweight and usable by themselves too):
BETA - possibly breaking changes forthcoming
Search or submit any issues for this package
yarn add @thi.ng/geom
// ES module
<script type="module" src="https://unpkg.com/@thi.ng/geom?module" crossorigin></script>
// UMD
<script src="https://unpkg.com/@thi.ng/geom/lib/index.umd.js" crossorigin></script>
Package sizes (gzipped, pre-treeshake): ESM: 10.27 KB / CJS: 10.50 KB / UMD: 9.93 KB
Several demos in this repo's /examples directory are using this package.
A selection:
Screenshot | Description | Live demo | Source |
---|---|---|---|
![]() | Convex hull & shape clipping of 2D polygons | Demo | Source |
![]() | geom-fuzz basic shape & fill examples | Demo | Source |
![]() | Animated, recursive polygon tessellations | Demo | Source |
![]() | Poisson-disk shape-aware sampling, Voronoi & Minimum Spanning Tree visualization | Demo | Source |
![]() | Mouse gesture / stroke analysis, simplification, corner detection | Demo | Source |
![]() | 2D Bezier curve-guided particle system | Demo | Source |
![]() | Animated arcs & drawing using hiccup-canvas | Demo | Source |
![]() | Canvas based Immediate Mode GUI components | Demo | Source |
![]() | Animated sine plasma effect visualized using contour lines | Demo | Source |
![]() | Polygon to cubic curve conversion & visualization | Demo | Source |
![]() | Animated Voronoi diagram, cubic splines & SVG download | Demo | Source |
![]() | 2D scenegraph & shape picking | Demo | Source |
![]() | 2D scenegraph & image map based geometry manipulation | Demo | Source |
![]() | 3D wireframe textmode demo | Demo | Source |
TODO
Karsten Schmidt
If this project contributes to an academic publication, please cite it as:
@misc{thing-geom,
title = "@thi.ng/geom",
author = "Karsten Schmidt",
note = "https://thi.ng/geom",
year = 2013
}
© 2013 - 2021 Karsten Schmidt // Apache Software License 2.0
Generated using TypeDoc