bimtex

pools

Stepped depth pool

stepped-depth-pool dresses pool — and nothing else. Appearance is invisible to the drawing set, so adding this changes no plan, no section and no elevation.

  • 24of 500 meshes
  • 6slots
  • 1finish

Drag to orbit · scroll to zoom

The build. Made here, now, by the same interpreter a model gets.
Stepped depth pool, shown as a photorealistic visual reference
The reference. AI-generated, not bimtex output — the authored input this body was written against.
$surface:plaster
$surface:tile
$surface:lane
$surface:coping
$accent
$glazing

This definition leaves $surface:plaster and $surface:tile and $surface:lane and $surface:coping and $accent and $glazing 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 6 materialdefs the body resolves to, then the definition. Copying the lookdef alone still compiles and still validates — it just renders grey.

{"t":"materialdef","id":"pack-pool-lane","of":"paving","value":20,"accent":"#0d456b","texture":"tile-grid","body":{"roughness":0.18}}
{"t":"materialdef","id":"pack-pool-tile","of":"paving","value":42,"accent":"#245a72","texture":"tile-grid","body":{"roughness":0.2}}
{"t":"materialdef","id":"pack-pool-water","of":"glass","value":72,"accent":"#74bed0","body":{"type":"MeshPhysicalMaterial","transmission":0.9,"ior":1.33,"clearcoat":0.62,"clearcoatRoughness":0.12,"thickness":0.48,"attenuationColor":"#2a91a8","attenuationDistance":4.6}}
{"t":"materialdef","id":"pal-grey","of":"paint","value":58}
{"t":"materialdef","id":"pal-off-white","of":"paint","value":86}
{"t":"materialdef","id":"pal-stone","of":"stone","value":86}
{"t":"lookdef","id":"stepped-depth-pool","for":"pool","desc":"Rectangular pool with broad internal steps and changing depth.","preview":{"projection":"perspective","azimuth":135,"elevation":56,"fov":31,"margin":1.07},"slots":{"surface:plaster":"pal-off-white","surface:tile":"pack-pool-tile","surface:lane":"pack-pool-lane","surface:coping":"pal-stone","accent":"pal-grey","glazing":"pack-pool-water"},"body":{"type":"Group","children":[{"type":"Mesh","material":"$surface:plaster","geometry":{"type":"BoxGeometry","width":10,"height":0.2,"depth":4.5},"position":[0,0.1,0]},{"type":"Mesh","material":"$surface:plaster","geometry":{"type":"BoxGeometry","width":10,"height":1.85,"depth":0.2},"position":[0,1.125,-2.15]},{"type":"Mesh","material":"$surface:plaster","geometry":{"type":"BoxGeometry","width":10,"height":1.85,"depth":0.2},"position":[0,1.125,2.15]},{"type":"Mesh","material":"$surface:plaster","geometry":{"type":"BoxGeometry","width":0.2,"height":1.85,"depth":4.1},"position":[-4.9,1.125,0]},{"type":"Mesh","material":"$surface:plaster","geometry":{"type":"BoxGeometry","width":0.2,"height":1.85,"depth":4.1},"position":[4.9,1.125,0]},{"type":"Mesh","material":"$surface:coping","geometry":{"type":"RoundedBoxGeometry","width":10,"height":0.11,"depth":0.34,"radius":0.03,"segments":2},"position":[0,2.055,-2.08]},{"type":"Mesh","material":"$surface:coping","geometry":{"type":"RoundedBoxGeometry","width":10,"height":0.11,"depth":0.34,"radius":0.03,"segments":2},"position":[0,2.055,2.08]},{"type":"Mesh","material":"$surface:coping","geometry":{"type":"RoundedBoxGeometry","width":0.34,"height":0.11,"depth":3.82,"radius":0.03,"segments":2},"position":[-4.83,2.055,0]},{"type":"Mesh","material":"$surface:coping","geometry":{"type":"RoundedBoxGeometry","width":0.34,"height":0.11,"depth":3.82,"radius":0.03,"segments":2},"position":[4.83,2.055,0]},{"type":"Mesh","material":"$surface:tile","geometry":{"type":"BoxGeometry","width":9.6,"height":0.18,"depth":0.045},"position":[0,1.81,2.027]},{"type":"Mesh","material":"$surface:tile","geometry":{"type":"BoxGeometry","width":9.6,"height":0.18,"depth":0.045},"position":[0,1.81,-2.027]},{"type":"Mesh","material":"$surface:tile","geometry":{"type":"BoxGeometry","width":0.045,"height":0.18,"depth":4.01},"position":[-4.777,1.81,0]},{"type":"Mesh","material":"$surface:tile","geometry":{"type":"BoxGeometry","width":0.045,"height":0.18,"depth":4.01},"position":[4.777,1.81,0]},{"type":"Mesh","material":"$surface:plaster","geometry":{"type":"BoxGeometry","width":3.25,"height":1.05,"depth":4.05},"position":[-3.22,0.725,0]},{"type":"Mesh","material":"$surface:plaster","geometry":{"type":"BoxGeometry","width":1.55,"height":0.55,"depth":4.05},"position":[-0.82,0.475,0]},{"type":"Mesh","material":"$surface:plaster","geometry":{"type":"BoxGeometry","width":0.31,"height":1.5,"depth":1.45},"position":[-4.62,0.95,-1.15]},{"type":"Mesh","material":"$surface:plaster","geometry":{"type":"BoxGeometry","width":0.31,"height":1.2,"depth":1.45},"position":[-4.31,0.8,-1.15]},{"type":"Mesh","material":"$surface:plaster","geometry":{"type":"BoxGeometry","width":0.31,"height":0.9,"depth":1.45},"position":[-4,0.65,-1.15]},{"type":"Mesh","material":"$accent","geometry":{"type":"CylinderGeometry","args":[0.18,0.18,0.05,16]},"position":[-0.82,0.78,0.55]},{"type":"Mesh","material":"$surface:tile","geometry":{"type":"BoxGeometry","width":0.3,"height":0.025,"depth":1.45},"position":[-4.62,1.7125,-1.15]},{"type":"Mesh","material":"$surface:tile","geometry":{"type":"BoxGeometry","width":0.3,"height":0.025,"depth":1.45},"position":[-4.31,1.4125,-1.15]},{"type":"Mesh","material":"$glazing","geometry":{"type":"BoxGeometry","width":3.02,"height":0.5,"depth":4},"position":[-3.22,1.5,0]},{"type":"Mesh","material":"$glazing","geometry":{"type":"BoxGeometry","width":1.32,"height":1,"depth":4},"position":[-0.82,1.25,0]},{"type":"Mesh","material":"$glazing","geometry":{"type":"BoxGeometry","width":4.95,"height":1.55,"depth":4},"position":[2.02,0.975,0]}]}}

Or take the whole pack, which brings every entry and every material at once:

cat packs/pools.ndjson model.ndjson > dressed.ndjson
Download pools pack 31 KB · NDJSON ↓