Plan-symbol reception desk
furniture-reception-desk
dresses furniture:reception-desk
— and nothing else. Appearance is invisible to the drawing set, so adding this changes no
plan, no section and no elevation.
- 10of 500 meshes
- 3slots
- 1finish
Drag to orbit · scroll to zoom
$frame
$surface
$hardware
This definition leaves
$frame and $surface and $hardware
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.
Generated views
The body and its drawing evidence
The A-101 panel is the built-in plan symbol at its default envelope, not
a top-down image of this lookdef. The deterministic renders check the
body's footprint, structure and depth. Geometry, material and the
selected finish stay unchanged.
Paste this
Every part: the 3 materialdefs the body resolves to, then the definition. Copying the lookdef alone still compiles and still validates — it just renders grey.
{"t":"materialdef","id":"pal-oak","of":"timber","value":72}
{"t":"materialdef","id":"pal-steel-dark","of":"steel","value":20}
{"t":"materialdef","id":"pal-stone","of":"stone","value":86}
{"t":"lookdef","id":"furniture-reception-desk","name":"Plan-symbol reception desk","for":"furniture:reception-desk","desc":"Open-backed timber reception desk with a raised stone transaction ledge.","slots":{"frame":"pal-oak","surface":"pal-stone","hardware":"pal-steel-dark"},"note":"Natural box is 2.4 × 1.1 × 0.8, matching the plan-symbol furniture defaults and keeping the staff-side worktop below the overall transaction ledge height.","body":{"type":"Group","children":[{"type":"Mesh","material":"$frame","geometry":{"type":"RoundedBoxGeometry","width":2.4,"height":0.86,"depth":0.12,"radius":0.045,"segments":4},"position":[0,0.48,0.34]},{"type":"Mesh","material":"$frame","geometry":{"type":"RoundedBoxGeometry","width":0.12,"height":0.86,"depth":0.68,"radius":0.04,"segments":4},"position":[-1.14,0.48,0]},{"type":"Mesh","material":"$frame","geometry":{"type":"RoundedBoxGeometry","width":0.12,"height":0.86,"depth":0.68,"radius":0.04,"segments":4},"position":[1.14,0.48,0]},{"type":"Mesh","material":"$surface","geometry":{"type":"RoundedBoxGeometry","width":2.4,"height":0.07,"depth":0.8,"radius":0.08,"segments":4},"position":[0,1.065,0]},{"type":"Mesh","material":"$surface","geometry":{"type":"RoundedBoxGeometry","width":1.95,"height":0.055,"depth":0.48,"radius":0.045,"segments":3},"position":[0,0.78,-0.1]},{"type":"Mesh","material":"$frame","geometry":{"type":"RoundedBoxGeometry","width":0.46,"height":0.7,"depth":0.45,"radius":0.035,"segments":3},"position":[0.72,0.38,-0.08]},{"type":"Mesh","material":"$frame","geometry":{"type":"RoundedBoxGeometry","width":0.42,"height":0.18,"depth":0.035,"radius":0.018,"segments":3},"position":[0.72,0.28,-0.323]},{"type":"Mesh","material":"$frame","geometry":{"type":"RoundedBoxGeometry","width":0.42,"height":0.18,"depth":0.035,"radius":0.018,"segments":3},"position":[0.72,0.49,-0.323]},{"type":"Mesh","material":"$hardware","geometry":{"type":"CapsuleGeometry","radius":0.012,"height":0.12,"capSegments":4,"radialSegments":10},"position":[0.72,0.28,-0.345],"rotation":[0,0,1.5708]},{"type":"Mesh","material":"$hardware","geometry":{"type":"CapsuleGeometry","radius":0.012,"height":0.12,"capSegments":4,"radialSegments":10},"position":[0.72,0.49,-0.345],"rotation":[0,0,1.5708]}]},"preview":{"projection":"perspective","azimuth":38,"elevation":20,"fov":34,"margin":1.03}}
Or take the whole pack, which brings every entry and every material at once:
cat packs/salon.ndjson model.ndjson > dressed.ndjson
Download salon pack
27 KB · NDJSON ↓