Gallery
Every example and every dogfooding model, as the tool renders them: the beauty render and the contact sheet, with the program that made it and a viewer that orbits the mesh in the browser. The renders are the committed ones, regenerated by CI from the programs; the viewers are built with the site. This page is generated by npm run pages:gallery.
Examples
The worked models under examples/, each written to exercise a part of the language.
arm
A robot arm with three joints. Each part is built in place, then declared

fence
A fenced plot with a row of trees: place() puts copies of one shape at

garden
A rock garden from an imported mesh: assets/rock.obj was itself made

gear
A spur gear built as a 2D profile and extruded: a disc, teeth added in a

lamp
A desk lamp: a weighted base, an arm that is a tube bent through four

medal
A medal on a ribbon: text bent around the rim with arc=, a star in

mug
A coffee mug: a rounded cup, hollowed and opened at the top, a torus handle.

nameplate
A desk nameplate: a walnut wedge with a brass plate on its leaning face,

robot
A toy robot: mirror() builds both arms and legs from one side, and each

rope
A coil of rope on a wooden spool. The rope is three strands, each a

sign
A hanging sign: a rounded oak board with raised brass lettering, a name

stairs
A spiral staircase: each step is placed by the loop index, lifted and

table
A table and four chairs. def makes a parametric chair; grid() and ring()

teapot
A teapot: a revolved body hollowed with shell() and opened at the top, a

tower
A castle tower: a hollow drum with merlons round the top, arrow slits cut

tree
A tree: a tapered, roughened trunk, three branches, and a canopy of

tumbler
A glass tumbler with a drink and a straw, for the beauty render's glass: the

vase
A fluted vase: a lathe profile revolved around y, sixteen flutes cut from

windmill
A windmill, placed with anchors instead of arithmetic: the cap sits on

Dogfooding
Models built by fresh agents from the docs alone, kept as they wrote them, with their reports. See the exercise.
round-1_anglepoise
round 1: An anglepoise desk lamp. Unit: 1 = 10 cm. Front is +z; every hinge turns about x,

program · viewer · the agent's report
round-1_bench
round 1: A park bench: oak slats on two cast-iron end frames. Metres, y up,

program · viewer · the agent's report
round-1_lighthouse
round 1: A lighthouse on a rocky outcrop, with a keeper's cottage and a stone path.

program · viewer · the agent's report
round-2_excavator
round 2: A hydraulic excavator: tracked base, a slewing upper structure, a bent

program · viewer · the agent's report
round-2_frog
round 2: A cartoon frog sitting on a lily pad. Front is +z. One unit ~ 10 cm; the frog is ~3 tall.

program · viewer · the agent's report
round-2_market
round 2: A market stall. Front is +z, one unit is about 25 cm; the stall is 12

program · viewer · the agent's report
round-2_trophy
round 2: An award trophy, about 5 units tall, front on +z.

program · viewer · the agent's report
round-3_excavator
round 3: A hydraulic excavator on tracks. Front is +z; one unit is about a metre.

program · viewer · the agent's report
round-3_frog
round 3: A cartoon frog sitting on a lily pad. Front is +z. About 3 units tall.

program · viewer · the agent's report
round-3_market
round 3: A market stall, facing +z. One unit is about half a metre; the stall is

program · viewer · the agent's report
round-3_trophy
round 3: An award trophy, about 5 units tall, front on +z.

program · viewer · the agent's report
round-4_excavator
round 4: A hydraulic excavator on tracks. Front is +z; one unit is about a metre.

program · viewer · the agent's report
round-4_frog
round 4: A cartoon frog squatting on a notched lily pad, built to print in one piece.

program · viewer · the agent's report
round-4_market
round 4: ROSIE'S FRUIT: a market stall facing +z, built as ONE piece for printing.

program · viewer · the agent's report
round-4_trophy
round 4: An award trophy, about 6.3 units tall, front on +z, one solid piece for printing.

program · viewer · the agent's report
round-5_bicycle
round 5: A bicycle as a product picture. Faces +x, drive side towards +z (the viewer

program · viewer · the agent's report
round-5_clock
round 5: A grandfather clock, about 6 units tall, front on +z.

program · viewer · the agent's report
round-5_sailboat
round 5: A sailing dinghy on a cradle, about 5 units long. Bow is +z. The cradle

program · viewer · the agent's report
round-5_sailboat_probe_dark
round 5: A sailing dinghy on a cradle. Bow is +z, keel on y = 0 while building,

round-5_sailboat_probe_decal
round 5: Probe: which decal wins where two regions overlap?

round-5_sailboat_probe_main
round 5: A sailing dinghy on a cradle. Bow is +z, keel on y = 0 while building,

round-5_sailboat_probe_main2
round 5: A sailing dinghy on a cradle. Bow is +z, keel on y = 0 while building,

round-5_sailboat_probe_sharp
round 5: A sailing dinghy on a cradle. Bow is +z, keel on y = 0 while building,

round-5_sailboat_probe_well
round 5: Probe: why does a decal region that contains a well's floor not paint it?

round-5_treehouse
round 5: A treehouse: a rough-barked tree with four branches and a blended canopy,
