a shelving system as a design script
a modular wall shelving system, a vase and a lattice, each written as a design script whose parameters drive a live 3D model and a parts list.
The brief: a modular shelving system you can configure rather than draw. Choose how it mounts, how many bays, how many shelves and what finish, and get a 3D model and a parts list that agree with each other. The same canvas holds smaller experiments in the same idea: a vase whose outline you drag, and a repeating lattice.
A design script is a small program in a design node. It declares parameters, such as a number, a choice or a colour, and a function that turns their values into something: here, a 3D model and a result table. Edit a value and the node reruns. Nothing is modelled by hand.
the shelving script
The shelving script has 15 parameters in five groups, plus a seed:
| group | what you set |
|---|---|
| Structure | wall-mounted, semi-wall or compressed; the track length; where the track starts; the ceiling height |
| Bays | how many (1 to 8), and wide, narrow or wide + narrow |
| Shelves | how many (0 to 12), depth, spacing (even, staggered, or sized for paperbacks, hardbacks, magazines or box files), bookends |
| Cabinets | how many, and one, two or three drawers or a door; an optional desk |
| Finish | off-white, silver or black, and a wood choice |
Four presets set a whole configuration at once: living room wall, floor-to-ceiling library, home office and record wall.
The node's result is as useful as its picture. It reports the overall width, height and depth, the bays and shelves, how wide a wall it needs, and a parts list with quantities. It also says when something did not fit. On the saved configuration it reads: "4 shelves did not fit — fewer shelves, a closer spacing or a longer track".
![]()
the script drives a model
The script's output goes to a 3D model node in mesh mode, named for the script. The model is driven by the design: its operations are rewritten each time the script runs, so you change the design, not the model. The model exports GLB, STL and a picture.
the vase
A second script draws a vase from one points parameter, the outline: five handles for radius and height that you drag in the node. Other parameters set wall thickness, flutes, twist and glaze colour. Its result reads out the height, the widest and lip diameters, and what the vase holds, calculated from the inside surface. Four presets: terracotta classic, fluted bud vase, twisted amphora and low bowl.
![]()
the lattice and the type
The canvas also keeps three drawing scripts: an ixi lattice with 26 parameters, a pixie sprite script with six and the square Kufic type script with 20. They are written the same way as the 3D scripts, but their output is SVG. The type script is an instance of a library design, so a better version published to the library reaches every canvas that uses it.
what to borrow
- Write a script once, then configure it. Parameters, presets and a result table: design scripts.
- Let a design drive a model. mesh and sculpt and 3d overview.
- Check what you made. variants and checks.
- Share the result. look and share.
checked against the product · 2026-10-23