raea solid

Measure, view and export a solid: parts built from code with exact volumes, joints and parameters.

View as Markdown

A solid is a TypeScript file that builds 3D parts from shapes, with parameters you can change. raea solid info measures each part: volume, bounding box, how many pieces, genus, and the joints between parts. It can compare the result with what you expected, and show how each parameter changes the shape. view draws the parts from fixed cameras, in colour and clay. export writes one .glb for a Blender step and reads it back to check it.

Terminal
raea solid info chair.ts --json
raea solid info chair.ts --set legs=3,height=0.9          # with the change, and what it changed
raea solid info chair.ts --walk                           # every parameter at each end of its range
raea solid view chair.ts -o views/
raea solid export chair.ts -o chair.glb --part seat --colour '#c08040'

Usage

Terminal
raea solid info FILE.ts [--json] [--set k=v,...] [--expect E.json] [--walk]   (volume, box, pieces, genus per part; joints; predictions and mutants)
raea solid view FILE.ts -o DIR [--set k=v,...] [--json]   (the solid's parts in colour and clay from fixed cameras)
raea solid export FILE.ts -o OUT.glb [--set k=v,...] [--part NAME] [--colour #RRGGBB]   (the solid as one .glb for a Blender step, read back and checked)

Headless: it needs nothing running and opens no window. Takes up to 2 arguments besides its flags.

Flags

FlagTakesWhat it does
--colour#RRGGBBWith export: the colour the exported mesh carries.
--expectE.jsonWhat the parts should measure, checked against what they do. FILE.expect.json beside the solid is read by default.
--json–Print the measurements as JSON.
--partNAMEWith export: only this part.
--setk=v,...Change parameters for this run, as name=value pairs; info also reports what the change changed.
--walk–With info: set each parameter to each end of its range in turn and report what moves.
-oDIRWhere view writes its sheets, or where export writes the .glb.