Introduction
Geop is a Cargo workspace of small crates, each depending only on the ones
before it. web/ is a React front end that loads the top of that chain
compiled to WebAssembly and renders its output with three.js, and
geop-cad-cli puts the same chain on the command line.
This book gives a brief, one-paragraph overview of each crate. It does not yet document their APIs in depth — see docs.geop-cad.dev for the generated rustdoc reference, and expect these chapters to grow over time.
core/geop-core-math scalars, interval arithmetic, linear algebra,
convex hulls, error type, render primitives
core/geop-core-geometry NURBS curves/surfaces, containment, intersection
core/geop-core-topology B-rep structures, Euler operators, edit/validation
core/geop-core-sketch 2-D constraint sketches: entities, constraints,
BFGS solver, profile extraction
core/geop-core-part a part: topology and sketches, every entity
with a stable name
ops/geop-ops-extrude-revolve extrude/revolve and the sample shapes (cube,
sphere, cylinder, torus, ...)
ops/geop-ops-booleans 3-D boolean operations (union/intersection/diff)
ops/geop-ops-rasterize turns a Model into a triangle mesh, and writes
it as STL
ops/geop-ops-parts programs: the operations a part is built with,
and running them (+ geop-ops-parts-derive)
cad/geop-cad-base ray-based picking
cad/geop-cad-web the wasm bindings the web app loads (crate `geop`)
cad/geop-cad-cli the `geop` command-line tool
geop-core-math
Brief overview only — full documentation is coming later.
Scalars, interval arithmetic, linear algebra, convex hulls, the kernel’s shared error type, and render primitives. Every other crate in the workspace builds its numerics on top of this one, and it has no dependency on any other Geop crate.
geop-core-geometry
Brief overview only — full documentation is coming later.
NURBS curves and surfaces, containment queries, and curve/surface intersection, built on the interval-bounded scalars from geop-core-math.
geop-core-topology
Brief overview only — full documentation is coming later.
B-rep (boundary representation) data structures, Euler operators, and edit/validation logic for solids built from geop-core-geometry primitives.
geop-core-sketch
Brief overview only — full documentation is coming later.
2-D constraint sketches: entities, constraints, a BFGS-based solver, and profile extraction. Sketches are what get extruded or revolved into solids.
geop-core-part
Brief overview only — full documentation is coming later.
A part: topology plus sketches, with every entity given a stable name so later operations can refer to what earlier steps built by name rather than by internal id.
geop-ops-extrude-revolve
Brief overview only — full documentation is coming later.
Extrude and revolve operations, plus the sample primitive shapes (cube, sphere, cylinder, torus, …) built from them.
geop-ops-booleans
Brief overview only — full documentation is coming later.
3-D boolean operations — union, intersection, and difference — on B-rep solids.
geop-ops-rasterize
Brief overview only — full documentation is coming later.
Turns a Model into a triangle mesh and writes it out as an STL file.
geop-ops-parts
Brief overview only — full documentation is coming later.
The program format: the operations a part is built from, and the code that
runs them, backed by its geop-ops-parts-derive companion crate. See the
main README for the JSON
program format itself.
geop-cad-base
Brief overview only — full documentation is coming later.
Ray-based picking against kernel geometry.
geop-cad-web
Brief overview only — full documentation is coming later.
The WebAssembly bindings the web app loads, published as crate geop.
Compiled with wasm-pack and consumed by the React front end in web/.
geop-cad-cli
Brief overview only — full documentation is coming later.
The geop command-line tool: compiles a part program to STL from the
terminal.