Can AI build a toilet yet?
How it started
I wanted to build a compact outdoor toilet for caravan living in the woods. My friend Hannes Söderquist had drawings for one, but the original design uses 50 × 50 mm beams and 120 × 25 mm cladding, sizes that did not match the stock in the local shop.
I first asked Codex to copy the technical drawing into an editable, programmable parametric CAD model using CadQuery and related tools. All CAD edits were done from prompts only. The first generated versions had several geometry problems and did not match the source design, so I had to do a lot of nudging to keep material from clipping into other parts and creating impossible cuts.
I then had Codex and Claude add specifications from the technical drawing and make comparison cut lists from the dimensions it specified. We kept going until the editable model matched the drawing. This was less like asking for a finished model and more like correcting a transcription until the geometry, dimensions, and cut schedules agreed.
One cool side-effect of the CAD model was that Codex could run some basic structural analysis on the original drawing. It found that the floor boards did not have enough support, so we added support beams.
Once the model matched the drawing, I asked it to change the beam and cladding dimensions to the material available in the local shop: 45 × 45 mm beams and 120 × 23 mm Råspont (matchboard/V-groove cladding). I checked the shop supply and had it create detailed cut lists from the available stock. I also changed the shape slightly so that each interleaved cladding board has at least 10 mm of trim. The board ends therefore do not leave a lip outside the frame.
From there, the cut schedules follow the material lengths in the shop. The optimizer groups equal-length cuts so that they can run in sequence with a stop block on the saw. This uses more material than a fully nested plan, but it avoids repeated measuring and small length differences between equal pieces.
The same model then generates assembly instructions that treat the door, roof, side walls, back wall, floor, and seat as individual pieces.
The working drawing contains the detailed drawings and cut lists for the current material sizes.
A fastening review then found a join the drawings did not make explicit. A 120 mm screw from a vertical member into a rail can occupy the same corner as a screw driven from that rail into a diagonal. The door, side, and back diagonals now run corner to corner, with mitred ends stopped at the inner faces of the vertical members. The fastening audit models both screw paths and keeps this clearance as a regression check.