3D printing
Geometry written as code, and the checks that catch what looks fine.
The models here are authored directly in Python and written straight out as STLs. There is no CAD program anywhere in the loop — no sketch, no constraint solver, no mouse. A part is a function, and the parameters that shape it are arguments.
The trade is obvious enough. Anything you could draw in thirty seconds takes longer this way. What you get back is that every dimension has a name, a part regenerates from its parameters instead of being nudged into shape, and a fit that was wrong by 0.2 mm is a one-line change rather than an afternoon of re-drawing.
printing-toolkit
The library underneath all of it is printing-toolkit, and it's open source. Solids, boolean operations, and the joint primitives that keep coming up — tabs, rails, channels, snap fits — plus the part that turned out to matter more than the geometry: the checks.
Watertight is not the same as printable
A mesh can pass every integrity check a modeller offers and still fail on the bed, because those checks ask whether the surface is closed, not whether the shape can be built one layer at a time. So the toolkit runs its own, and they're the checks that actually catch things:
- Watertight — closed surface, consistent winding. The necessary condition, and the one everyone stops at.
- On the bed — the part is where you think it is, in a volume the printer actually has.
- Islands and cantilevers — material that begins in mid-air with nothing under it. Perfectly watertight, and it will print as a small pile of string.
- A headless slice — the last word on all of the above, because the slicer is the only thing whose opinion the printer shares.
The one that catches people, including me: touching another wall sideways is not support. A feature can be firmly attached to the model on two faces and still have nothing beneath its first layer, which is the only direction that counts.
What comes out
Finished prints end up as timelapses on YouTube, recorded and uploaded by AmbientCast — the tvOS app that was watching the printer anyway. The write-ups that come out of this work land on the blog, alongside the app ones.