bimtex

trees

Layered canopy oak

layered-canopy-oak-2 dresses tree:oak-layered — and nothing else. Appearance is invisible to the drawing set, so adding this changes no plan, no section and no elevation.

  • 20of 500 meshes
  • 2slots
  • 1finish

Drag to orbit · scroll to zoom

The build. Made here, now, by the same interpreter a model gets.
Layered canopy oak, shown as a photorealistic visual reference
The reference. AI-generated, not bimtex output — the authored input this body was written against.
$foliage
$bark

This definition leaves $foliage and $bark 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 2 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-leaf-pale","of":"foliage","value":58}
{"t":"materialdef","id":"pal-timber-dark","of":"timber","value":42}
{"t":"lookdef","id":"layered-canopy-oak-2","name":"Layered canopy oak","for":"tree:oak-layered","desc":"Sculptural oak with a stout branching base and seven clearly separated horizontal foliage pads.","slots":{"foliage":"pal-leaf-pale","bark":"pal-timber-dark"},"note":"A mature oak reduced to a stout branching trunk and seven broad, overlapping canopy clouds. Their irregular horizontal spread and generous depth form one organic umbrella crown rather than a stack of separate tiers.","body":{"type":"Group","children":[{"type":"Mesh","material":"$bark","geometry":{"type":"LatheGeometry","profile":[[0,0],[0.48,0],[0.38,0.34],[0.26,0.9],[0.2,1.75],[0.14,2.8],[0,3.1]],"segments":20}},{"type":"Mesh","material":"$bark","geometry":{"type":"TubeGeometry","path":[[0,0.12,0],[-0.2976,0.06,0.0768],[-0.62,0,0.16]],"radius":0.1,"radialSegments":9,"tubularSegments":16,"curve":"spline"}},{"type":"Mesh","material":"$bark","geometry":{"type":"TubeGeometry","path":[[0,0.12,0],[0.288,0.06,-0.0768],[0.6,0,-0.16]],"radius":0.1,"radialSegments":9,"tubularSegments":16,"curve":"spline"}},{"type":"Mesh","material":"$bark","geometry":{"type":"TubeGeometry","path":[[0,1.45,0],[-0.9,2.05,0.0432],[-2.3125,2.62,0.1944]],"radius":0.14,"radialSegments":9,"tubularSegments":16,"curve":"spline"}},{"type":"Mesh","material":"$bark","geometry":{"type":"TubeGeometry","path":[[0,1.52,0],[0.9375,2.1,0.1296],[2.35,2.72,0.324]],"radius":0.14,"radialSegments":9,"tubularSegments":16,"curve":"spline"}},{"type":"Mesh","material":"$bark","geometry":{"type":"TubeGeometry","path":[[-0.0375,1.75,0],[-0.525,2.45,-0.3672],[-1.25,3.35,-0.6696]],"radius":0.11,"radialSegments":9,"tubularSegments":16,"curve":"spline"}},{"type":"Mesh","material":"$bark","geometry":{"type":"TubeGeometry","path":[[0.0375,1.82,0],[0.5625,2.5,0.3456],[1.3125,3.5,0.6264]],"radius":0.11,"radialSegments":9,"tubularSegments":16,"curve":"spline"}},{"type":"Mesh","material":"$bark","geometry":{"type":"TubeGeometry","path":[[0,2,0],[-0.1,2.85,0.0864],[-0.225,4,0.162]],"radius":0.095,"radialSegments":9,"tubularSegments":16,"curve":"spline"}},{"type":"Mesh","material":"$foliage","geometry":{"type":"IcosahedronGeometry","radius":1,"detail":2},"position":[-2.064,2.4,0.12],"scale":[1.29375,0.34,0.86],"rotation":[0.12,0.5,0.04]},{"type":"Mesh","material":"$foliage","geometry":{"type":"IcosahedronGeometry","radius":1,"detail":2},"position":[-0.624,2.77,0.2],"scale":[1.2213,0.34,0.84],"rotation":[0.08,1.2,-0.03]},{"type":"Mesh","material":"$foliage","geometry":{"type":"IcosahedronGeometry","radius":1,"detail":2},"position":[0.864,2.92,-0.08],"scale":[1.2627,0.34,0.86],"rotation":[0.1,2,0.04]},{"type":"Mesh","material":"$foliage","geometry":{"type":"IcosahedronGeometry","radius":1,"detail":2},"position":[2.136,2.58,0.22],"scale":[1.2006,0.32,0.82],"rotation":[0.08,2.8,-0.03]},{"type":"Mesh","material":"$foliage","geometry":{"type":"IcosahedronGeometry","radius":1,"detail":2},"position":[-1.464,3.5,-0.3],"scale":[1.311,0.32,0.8],"rotation":[0.1,3.6,0.04]},{"type":"Mesh","material":"$foliage","geometry":{"type":"IcosahedronGeometry","radius":1,"detail":2},"position":[0.024,3.58,0.1],"scale":[1.403,0.34,0.84],"rotation":[0.08,4.4,-0.03]},{"type":"Mesh","material":"$foliage","geometry":{"type":"IcosahedronGeometry","radius":1,"detail":2},"position":[1.44,3.54,0.25],"scale":[1.288,0.31,0.78],"rotation":[0.1,5.2,0.04]},{"type":"Mesh","material":"$foliage","geometry":{"type":"IcosahedronGeometry","radius":1,"detail":2},"position":[-0.864,4.2,0.18],"scale":[1.127,0.3,0.72],"rotation":[0.08,6,-0.03]},{"type":"Mesh","material":"$foliage","geometry":{"type":"IcosahedronGeometry","radius":1,"detail":2},"position":[0.576,4.28,-0.12],"scale":[1.104,0.29,0.7],"rotation":[0.1,0.9,0.04]},{"type":"Mesh","material":"$foliage","geometry":{"type":"IcosahedronGeometry","radius":1,"detail":2},"position":[0,4.82,0.04],"scale":[0.897,0.27,0.62],"rotation":[0.08,1.8,-0.03]},{"type":"Mesh","material":"$foliage","geometry":{"type":"IcosahedronGeometry","radius":1,"detail":2},"position":[-2.16,3.18,0.45],"scale":[0.943,0.27,0.62],"rotation":[0.1,2.7,0.04]},{"type":"Mesh","material":"$foliage","geometry":{"type":"IcosahedronGeometry","radius":1,"detail":2},"position":[2.064,3.24,-0.42],"scale":[0.943,0.27,0.62],"rotation":[0.08,3.6,-0.03]}]},"preview":{"projection":"perspective","azimuth":-36,"elevation":14,"fov":30,"margin":1.03}}

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

cat packs/trees.ndjson model.ndjson > dressed.ndjson
Download trees pack 245 KB · NDJSON ↓