# Smith v0.2.0 - Table of Contents

> Composable, native Elixir CAD with sketches, assemblies, and verified printable exports

## Pages

- Start here
  - [Smith](readme.md)
  - [Getting started](getting-started.md)
  - [CAD concepts used in Smith](cad-basics.md)
  - [Modeling in Livebook](livebook.md)

- Modeling
  - [Modeling with functions and pipelines](modeling.md)
  - [Workplanes and sketches](sketches.md)
  - [Mechanical parts](mechanical-parts.md)
  - [Extrusion extent and taper](extrusion.md)
  - [Paths, lofts, and shells](paths-and-shells.md)
  - [Forming and cutting](forming.md)
  - [Project curves onto surfaces](projection.md)

- Inspect and deliver
  - [Inspect and validate models](inspection.md)
  - [Orthographic drawings](drawings.md)
  - [Exporting printable models and assemblies](exporting.md)

- Assemblies
  - [Assemblies](assemblies.md)
  - [Joints and assembly poses](joints.md)

- Livebook lessons
  - [A plate, step by step](plate-notebook.md)
  - [Sketches, revolve, and loft](profiles-notebook.md)
  - [Mechanical parts](mechanical-parts-notebook.md)
  - [Inspect a model as you build it](inspection-notebook.md)
  - [Draw and export a mechanical part](drawings-notebook.md)
  - [Extrusion extent and tapered walls](extrusion-notebook.md)
  - [Paths, smooth lofts, and hollow parts](paths-and-shells-notebook.md)
  - [Form, cut, and thicken](forming-notebook.md)
  - [Project an outline onto a surface](projection-notebook.md)
  - [A named assembly and print pack](assembly-notebook.md)
  - [Reusable subassemblies](nested-assemblies-notebook.md)
  - [Attach parts and pose joints](joints-notebook.md)

- Complete projects and studies
  - [Design a Raspberry Pi enclosure](raspberry-pi-enclosure-notebook.md)
  - [Model an iPhone 17 Pro fit dummy](iphone-17-pro-notebook.md)

- Reference
  - [Modeling with coding agents](agent-modeling.md)
  - [Errors, contracts, and limits](errors-and-limits.md)
  - [Smith CAD skill](smith-cad-skill.md)
  - [Changelog](changelog.md)
  - [LICENSE](license.md)

## Modules

- Modeling
  - [Smith](Smith.md): CAD recipes built with Elixir functions and pipelines.
  - [Smith.Error](Smith.Error.md): A failed modeling step, optionally associated with an assembly part.
  - [Smith.Model](Smith.Model.md): A deferred sequence of modeling operations.
  - [Smith.Result](Smith.Result.md): An evaluated shape and its BREP content hash.

- Sketches
  - [Smith.Path](Smith.Path.md): An ordered, open chain of world-coordinate edge recipes.
  - [Smith.Plane](Smith.Plane.md): A local, right-handed coordinate frame for sketches and holes.
  - [Smith.Sketch](Smith.Sketch.md): Deferred planar outlines with optional cutouts and corner rounding.

- Selection
  - [Smith.Selector](Smith.Selector.md): Composable queries over the edges or faces of one evaluated body.

- Inspection
  - [Smith.Inspection](Smith.Inspection.md): Named geometry snapshots, explicit checks, and reports for scripts and agents.
  - [Smith.Measure](Smith.Measure.md): Dimensions measured from evaluated geometry, with world-space anchors.
  - [Smith.Render](Smith.Render.md): Headless orthographic PNG observations of evaluated geometry.

- Internals
  - [Smith.Assembly.Frame](Smith.Assembly.Frame.md): Rigid-frame arithmetic used by assembly placement and joint evaluation.
  - [Smith.Features.Hole](Smith.Features.Hole.md): Native evaluation of Smith's hole recipes.

- Assemblies
  - [Smith.Assembly](Smith.Assembly.md): Named solid parts and reference geometry with explicit placement.
  - [Smith.Assembly.Export](Smith.Assembly.Export.md): Verified export bundles for named assemblies.
  - [Smith.Assembly.Joint](Smith.Assembly.Joint.md): An evaluated attachment frame and the member to which it belongs.
  - [Smith.Assembly.Result](Smith.Assembly.Result.md): An evaluated assembly and its placed members.

- Export
  - [Smith.Drawing](Smith.Drawing.md): Orthographic line drawings with visible and hidden edges.
  - [Smith.Export](Smith.Export.md): Part bundles containing geometry files, a preview mesh, and check results.
  - [Smith.Mesh](Smith.Mesh.md): Low-level indexed triangle utilities used by the exporter.

- Livebook
  - [Smith.Kino](Smith.Kino.md): Interactive 3D previews for Livebook through Kino.JS.

