Parametric models of furniture, built with Cadova.
Each project is its own executable target on top of the shared Woodwork
library, which holds the reusable pieces — gear models used for scale and
fit-checking, hardware (casters, screws), and the cutlist / screw-list / nesting
output helpers.
| Project | Command | Output | Docs |
|---|---|---|---|
| Caddy — rolling shelf cart | task build:caddy |
Build/Caddy/ |
Docs/Caddy/ |
| Shoerack — tip-out shoe cabinet | task build:shoerack |
Build/Shoerack/ |
Docs/Shoerack/ |
| Pila — wooden lid for the outdoor washing basin | task build:pila |
Build/Pila/ |
Docs/Pila/ |
| Couch — scaffold only, no design yet | task build:couch |
Build/Couch/ |
Docs/Couch/ |
Run tasks from the repo root; the generators write to paths relative to the working directory.
Open the generated .3mf in CadovaViewer
for live reload.
Sources/
Woodwork/ shared library — Gear/, Hardware/, Output/
Caddy/ the caddy — Structure/, Nesting.swift, main.swift
Assets/
models/ shared third-party STLs (encrypted, see DEVELOPMENT.md)
inspiration/<Project>/ reference images, not used by the build
Docs/<Project>/ hand-written build docs + generated cutlist
Build/<Project>/ generated models (gitignored)
A plywood rolling shelf cart. See
Docs/Caddy/Assembly.mdfor the buildDocs/Caddy/Cutlist.mdfor the plywood-piece dimensions (generated bytask caddy)Docs/Caddy/Paint.mdfor painting instructionsDocs/Caddy/Shopping.mdfor what to buyDocs/Caddy/Tools.mdfor the tools you need
See DEVELOPMENT.md for building, the encrypted assets, and adding a new project.