Overview of thi.ng/geom capabilities
feature/no-orgthi.ng/geom is a modular geometry and visualization toolkit for Clojure and ClojureScript. It is designed around a functional approach to generative design, using a polymorphic, protocol-based API to transform and convert data types.
** Core Capabilities:
- Geometry & Math: 2D/3D vector and matrix algebra, custom vector types with GLSL-style swizzling, and ~35+ immutable geometry types.
- Visualization: Unified abstractions for SVG, WebGL, and OpenGL (via JOGL for desktop).
- Mesh Processing: 3D mesh generation (lathe, polyhedra), subdivision (Catmull-Clark, etc.), CSG (Boolean) operations, and I/O (PLY, STL, OBJ, OFF).
- Physics: 2D/3D particle-based Verlet physics engine with spring constraints and force fields.
- Data Viz: Declarative 2D data visualization (area, bar, line, scatter, etc.) using SVG.
- Spatial Indexing: 2D/3D quadtree/octree for fast spatial lookups.
- Voxel Data: Experimental sparse voxel tree (SVO) with isosurface extraction.