bimtex

trees

Columnar pine 2

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

  • 10of 500 meshes
  • 2slots
  • 2finishes

Drag to orbit · scroll to zoom

The build. Made here, now, by the same interpreter a model gets.
Columnar pine 2, 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":"pack-dark-bark","of":"timber","value":20,"accent":"#463a30"}
{"t":"materialdef","id":"pack-pine-needle","of":"foliage","value":42,"accent":"#3f6350","body":{"flatShading":true}}
{"t":"lookdef","id":"columnar-pine-2","for":"tree:pine","desc":"Dense columnar pine with layered conical foliage and narrow upright silhouette.","slots":{"foliage":"pack-pine-needle","bark":"pack-dark-bark"},"body":{"type":"Group","children":[{"type":"Mesh","material":"$bark","geometry":{"type":"LatheGeometry","profile":[[0,0],[0.18,0],[0.14,0.18],[0.1,0.75],[0.07,4.8],[0,5.5]],"segments":16}},{"type":"Mesh","material":"$foliage","geometry":{"type":"ConeGeometry","radius":0.46,"height":5.1,"radialSegments":24,"heightSegments":6},"position":[0,3.2,0],"scale":[1,1,0.94]},{"type":"Mesh","material":"$foliage","geometry":{"type":"IcosahedronGeometry","radius":1,"detail":2},"position":[0,1.18,0],"scale":[0.5,0.9512,0.48],"rotation":[0.1,0.3,0]},{"type":"Mesh","material":"$foliage","geometry":{"type":"IcosahedronGeometry","radius":1,"detail":2},"position":[-0.02,1.85,0.0075],"scale":[0.56,1.102,0.52],"rotation":[0.2,1.1,0.04]},{"type":"Mesh","material":"$foliage","geometry":{"type":"IcosahedronGeometry","radius":1,"detail":2},"position":[0.0175,2.58,-0.01],"scale":[0.54,1.16,0.5],"rotation":[0.1,2,-0.04]},{"type":"Mesh","material":"$foliage","geometry":{"type":"IcosahedronGeometry","radius":1,"detail":2},"position":[-0.015,3.34,0.005],"scale":[0.5,1.1832,0.47],"rotation":[0.2,2.9,0.04]},{"type":"Mesh","material":"$foliage","geometry":{"type":"IcosahedronGeometry","radius":1,"detail":2},"position":[0.0125,4.05,-0.0075],"scale":[0.44,1.1136,0.42],"rotation":[0.1,3.8,-0.04]},{"type":"Mesh","material":"$foliage","geometry":{"type":"IcosahedronGeometry","radius":1,"detail":2},"position":[-0.01,4.7,0.005],"scale":[0.36,0.9512,0.35],"rotation":[0.2,4.7,0.04]},{"type":"Mesh","material":"$foliage","geometry":{"type":"IcosahedronGeometry","radius":1,"detail":2},"position":[0.0075,5.25,0],"scale":[0.27,0.7888,0.27],"rotation":[0.1,5.6,-0.03]},{"type":"Mesh","material":"$foliage","geometry":{"type":"IcosahedronGeometry","radius":1,"detail":2},"position":[0,5.72,0],"scale":[0.16,0.5568,0.16],"rotation":[0.2,0.8,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 ↓