Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

C. Map of the crates

Geop is a Cargo workspace in four tiers. core/ defines what things are: math, geometry and topology; a program, the part it builds, and how it is edited. lib/ holds the algorithms two operations share, taking geometry and models. ops/ has one crate per family of operations, each with its forms, examples and tests, over the targets geop-ops-model defines. cad/ composes them, one register line per crate, and carries them to the browser and the command line. web/ is a React front end that loads the composition compiled to WebAssembly and renders its output with three.js.

The rules between the tiers are checked by scripts/check-layering.sh, and are explained in Lecture 40. This table lists every crate in the workspace’s Cargo.toml, with the reference page where there is one and the lectures that teach it.

core/: what things are

CrateWhat it isReferenceTaught in
core/geop-core-maththe interval scalar and the number trait it shares with dual numbers, linear algebra, errors, frames, rays, datums, poses, solverspage4, 5, 24, 37
core/geop-core-geometryNURBS curves and surfaces, their constructors, compatible curves, Coons and Gordon patches, containment and intersectionpage6 to 16
core/geop-core-topologythe B-rep, building, editing and validation, wirespage17 to 20
core/geop-core-rasterizea model as a triangle mesh, STL, debug renderingspage35, 42
core/geop-core-sketch2-D constraint sketches: entities, constraints as residuals, profiles, dimensions in a planepage23 to 25
core/geop-core-programa program, its values and the part it builds: a memo table of nodes, placed parts, the runner, the workspace and the cachepage2, 38
core/geop-core-editorwhat an operation is and how it is edited, what an editor draws, exporters and inspectors, the editor over a registrypage39, 40

lib/: algorithms operations share

CrateWhat it isReferenceTaught in
lib/geop-lib-sheetthe sheets drawings and flat patterns are written on: SVG, DXFpage35
lib/geop-lib-booleansbooleans and the remesh under them, split, imprint, trim up to the next face, a step’s Combinepage21, 22
lib/geop-lib-sweepextrude, revolve, screw, sweeps along paths, lofts, the skinned grid blends sharepage26 to 28
lib/geop-lib-shellrebuilding a solid face by face, shelling, thickening and offsetting facespage30, 31
lib/geop-lib-fixturestest-only steps: a solid or a datum at given coordinates; the stress sweeps’ bodiespage40
lib/geop-lib-stdlibthe standard parts, one program per family, and the store that puts them beside a workspace’s filespage32, 38
lib/geop-lib-constraintsthe constraints and unknowns of a part’s state, and the solver over thempage37

ops/: one crate per family of operations

CrateWhat it isReferenceTaught in
ops/geop-ops-modelthe vocabulary every operation shares: the model, sketch, datum, parameter and placed-part targets and the references into thempage2, 40
ops/geop-ops-sketchthe sketch operation, its tools, snapping and referencespage23, 25
ops/geop-ops-sketch3dthe 3-D sketch operation: wires in space, paths and rails25
ops/geop-ops-reference-geometrythe datum operation: points, axes, planes and frames from what is pickedpage2
ops/geop-ops-extrude-revolveextrude, revolve, sweep and loftpage26 to 28
ops/geop-ops-holeholes from ISO and NPT tables, threads on straight or tapered walls, cosmetic or modelled32
ops/geop-ops-filletfillets and chamfers, rolling-ball blends of tangent chains29
ops/geop-ops-shellthe shell operation30
ops/geop-ops-plasticribs, lips and grooves, drafts33
ops/geop-ops-booleanthe boolean and split operationspage22, 40
ops/geop-ops-patternpatterns, mirrors and moves of bodies and features; bodies scaled, tapered, twisted or bent32
ops/geop-ops-subdsubdivision surfaces: a control cage, box modelling, its Catmull–Clark limit34
ops/geop-ops-surfaceboundary and UV surfaces, offset, thicken, knit, trim and extend28, 31
ops/geop-ops-editdelete a body, extract a face, project a sketch; direct edits: move, offset, replace and delete faces30
ops/geop-ops-assemblyplacing parts, mates and joints, part patterns, the joints panel, the drag tool, the settler, STL and URDF exportpage36, 37
ops/geop-ops-harnesswire harnesses routed through connectors and clipsnot taught
ops/geop-ops-stepSTEP import and export, assemblies as products and occurrences; STL meshes imported as B-reps35
ops/geop-ops-drawing2-D drawings: views, hidden lines, sections, dimensions, title block, parts list35
ops/geop-ops-sheetmetalflanges, bends, hems, cuts, the flat pattern and its DXF33
ops/geop-ops-inspectmass properties, measurements, interference19, 41
ops/geop-ops-bombills of materials, an inspector and a CSV exporternot taught

cad/: composition

CrateWhat it isReferenceTaught in
cad/geop-cad-basecomposition: registry, one register line per crate, the editor of all of it beside the standard parts, and the composition’s testspage39
cad/geop-cad-webthe wasm bindings the web app loads (package geop), and the check of web/src/geop.ts against the protocolpage39
cad/geop-cad-clithe geop command line: compile, examples, serve, open, app, mcppage39

Outside the workspace: web/ is the React front end, vscode-extension/ the VS Code extension, homepage/ the landing page, cloudflare-functions/ the Cloudflare Pages Functions deployed with the web app, and scripts/ the release, layering and affected-test scripts.

Which page should I read?

A lecture tells you why, and a crate page tells you what is there. Reference pages cover each crate’s types and decisions in a compact form, without exercises, and do not repeat the lectures’ first principles. They were written alongside the code and are older than the lectures; if the two disagree, trust the code first and the lectures second.