Oak spindle dining chair
oak-spindle-dining-chair
dresses furniture:chair
— and nothing else. Appearance is invisible to the drawing set, so adding this changes no
plan, no section and no elevation.
- 15of 500 meshes
- 1slot
- 1finish
Drag to orbit · scroll to zoom
$frame
This definition leaves
$frame
open, and a look line fills them. Every combination is one body — same
geometry, same selector, same sheets — so the block below rewrites itself as you pick.
Only materials are slottable: a size would have to agree with the plan, so it stays on
the entity.
Paste this
Every part: the 1 materialdef the body resolves to, then the definition. Copying the lookdef alone still compiles and still validates — it just renders grey.
{"t":"materialdef","id":"pack-oak","of":"timber","value":58,"accent":"#a87542"}
{"t":"lookdef","id":"oak-spindle-dining-chair","for":"furniture:chair","desc":"Timber dining chair with spindle back and angled legs.","slots":{"frame":"pack-oak"},"preview":{"projection":"perspective","azimuth":-36,"elevation":23,"fov":34,"margin":1.08},"body":{"type":"Group","children":[{"type":"Mesh","material":"$frame","geometry":{"type":"RoundedBoxGeometry","width":0.72,"height":0.09,"depth":0.6,"radius":0.065},"position":[0,0.47,0.02]},{"type":"Mesh","material":"$frame","geometry":{"type":"RoundedBoxGeometry","width":0.74,"height":0.1,"depth":0.08,"radius":0.035},"position":[0,0.98,-0.28],"rotation":[-0.04,0,0]},{"type":"Mesh","material":"$frame","geometry":{"type":"CylinderGeometry","args":[0.028,0.038,0.46,12]},"position":[-0.28,0.23,0.23],"rotation":[0.11,0,-0.08]},{"type":"Mesh","material":"$frame","geometry":{"type":"CylinderGeometry","args":[0.028,0.038,0.46,12]},"position":[0.28,0.23,0.23],"rotation":[0.11,0,0.08]},{"type":"Mesh","material":"$frame","geometry":{"type":"CylinderGeometry","args":[0.028,0.038,0.46,12]},"position":[-0.28,0.23,-0.23],"rotation":[-0.08,0,-0.06]},{"type":"Mesh","material":"$frame","geometry":{"type":"CylinderGeometry","args":[0.028,0.038,0.46,12]},"position":[0.28,0.23,-0.23],"rotation":[-0.08,0,0.06]},{"type":"Mesh","material":"$frame","geometry":{"type":"CylinderGeometry","args":[0.016,0.019,0.48,10]},"position":[-0.27,0.73,-0.275],"rotation":[-0.04,0,0]},{"type":"Mesh","material":"$frame","geometry":{"type":"CylinderGeometry","args":[0.016,0.019,0.48,10]},"position":[-0.18,0.73,-0.275],"rotation":[-0.04,0,0]},{"type":"Mesh","material":"$frame","geometry":{"type":"CylinderGeometry","args":[0.016,0.019,0.48,10]},"position":[-0.09,0.73,-0.275],"rotation":[-0.04,0,0]},{"type":"Mesh","material":"$frame","geometry":{"type":"CylinderGeometry","args":[0.016,0.019,0.48,10]},"position":[0,0.73,-0.275],"rotation":[-0.04,0,0]},{"type":"Mesh","material":"$frame","geometry":{"type":"CylinderGeometry","args":[0.016,0.019,0.48,10]},"position":[0.09,0.73,-0.275],"rotation":[-0.04,0,0]},{"type":"Mesh","material":"$frame","geometry":{"type":"CylinderGeometry","args":[0.016,0.019,0.48,10]},"position":[0.18,0.73,-0.275],"rotation":[-0.04,0,0]},{"type":"Mesh","material":"$frame","geometry":{"type":"CylinderGeometry","args":[0.016,0.019,0.48,10]},"position":[0.27,0.73,-0.275],"rotation":[-0.04,0,0]},{"type":"Mesh","material":"$frame","geometry":{"type":"CylinderGeometry","args":[0.018,0.018,0.44,10]},"position":[-0.28,0.2,0],"rotation":[1.571,0,0]},{"type":"Mesh","material":"$frame","geometry":{"type":"CylinderGeometry","args":[0.018,0.018,0.44,10]},"position":[0.28,0.2,0],"rotation":[1.571,0,0]}]}}
Or take the whole pack, which brings every entry and every material at once:
cat packs/furniture.ndjson model.ndjson > dressed.ndjson
Download furniture pack
33 KB · NDJSON ↓