Skip to main content

What is OpenGeometry?

OpenGeometry is a high-performance CAD kernel for the web that provides 2D and 3D geometric primitives and CAD operations via WebAssembly. Written in Rust and compiled to WASM, it delivers near-native performance for complex geometric computations directly in the browser. With TypeScript bindings and seamless Three.js integration, OpenGeometry makes it easy to build sophisticated CAD applications, 3D modeling tools, architectural visualization software, and interactive geometry editors for the web.

Why OpenGeometry?

Building CAD applications for the web has traditionally required complex server-side processing or compromising on performance. OpenGeometry changes that:
  • High Performance: Rust-compiled WASM delivers near-native speed for geometric operations
  • Browser-Native: No server required - all computation happens client-side
  • Three.js Integration: Drop-in components that work seamlessly with Three.js scenes
  • Type-Safe: Full TypeScript support with complete type definitions
  • Production-Ready: Robust triangulation, extrusion, offset, and Boolean operations

Key Features

2D & 3D Primitives

Create lines, polylines, arcs, curves, and rectangles with simple, intuitive APIs:
const line = new Line({
  start: new Vector3(-3.0, 0.0, -2.0),
  end: new Vector3(-1.0, 0.0, -1.0),
  color: 0x111827,
});

Parametric Shapes

Build complex 3D shapes including cuboids, cylinders, spheres, wedges, and polygons:
const cuboid = new Cuboid({
  center: new Vector3(0.0, 0.8, -1.2),
  width: 1.2,
  height: 1.6,
  depth: 1.0,
  color: 0x10b981,
});
cuboid.outline = true;

Advanced Operations

  • Triangulation: Robust polygon triangulation with hole support
  • Extrusion: Convert 2D profiles into 3D solids
  • Sweep: Create complex shapes by sweeping profiles along paths
  • Offset: Generate offset curves and surfaces
  • Boolean Operations: Union, intersection, and difference (in progress)

BREP Data Access

Access boundary representation data for advanced CAD workflows:
const brepData = cuboid.getBrepData();

What Can You Build?

OpenGeometry enables a wide range of web-based 3D applications:
  • Architectural Design Tools: Floor plan editors, building configurators, space planning applications
  • Product Configurators: Interactive 3D product customization for e-commerce
  • Engineering CAD: Mechanical design tools, assembly visualizers, technical drawing generators
  • Creative Tools: 3D modeling applications, procedural geometry generators, parametric design systems
  • Educational Software: Interactive geometry learning tools, mathematical visualization

Get Started

Installation

Install OpenGeometry and set up your development environment

Quickstart

Create your first 3D shape in minutes

API Reference

Explore the complete API documentation

Examples

See live interactive examples and demos

Open Source

OpenGeometry is open source and actively developed. Visit the GitHub repository to contribute, report issues, or explore the source code.
OpenGeometry is under active development. Expect frequent updates and new features. The API may change as the project evolves.

Build docs developers (and LLMs) love