Parametric Tabletop Token System
A fully parametric OpenSCAD system of 3D-printable grid tokens, with 47 base tiles that drop flush into ring frames for Large, Huge and Gargantuan creatures. The build script exports and verifies 191 meshes, and a Blender scene built entirely in code renders the product shots.

A 25 mm tile names the creature; a ring frame of 50, 75 or 100 mm marks its size. Tile and frame are both 3 mm with 1 mm of raised detail, so an assembled token sits flush and the tile pushes out from underneath.
Details that took engineering
- Glyphs centered on their ink, not their advance width.
halign="center"is right for a line of text and wrong for one glyph in a frame: a bold “1” sits about 0.7 mm off. The build measures each rendered glyph and centers on that. - Everything derives from one grid constant, so the three sizes read as one family and a size you invent will too.
- Dice numbering is searched, not assigned. A hill-climb maximizes the smallest difference between edge-sharing faces: a minimum of 7 on the generated d20, against 1 for a spindown.
- Verification that checks the right thing. An early dice check confirmed opposite faces summed correctly and passed, while the dice were still spindown-numbered. From the README: a verification that confirms the wrong property is worse than none, because it buys false confidence.
The render pipeline
The product shots aren’t photos. A 1,955-line Python script builds the whole Blender scene in code: oak table, felt mat, three-point lighting and PLA with visible layer lines. The camera is solved from the framing wanted in millimetres, and props are placed by screen position. A placement audit counts squares, and it caught tokens under doors and inside staircases that looked fine by eye.


