Cold Start
README.md
preseed.tendril.cave
Procedural cavern environment for the crawler part (p_tendril).
Cave.build(ctx, path, opts?) sweeps a cave-profile tube along the part's
node path (flat dished floor, barreled walls, arched ceiling), displaces
every ring vertex with 3-octave value noise plus low-frequency alcove
carving, closes both ends with pinched dead-ends, and uploads the result as
ONE runtime mesh. The tunnel entity carries a Tessellation component
(level 2) whose negative displacement scale pushes micro-vertices
outward into the rock from the material's rock_height map — clearance
around the creature only ever grows, and the same map drives the shader's
cavity shading so geometry and shading agree.
Around the tube it scatters shared-mesh formations, all wearing
tendril_rock (triplanar cave_rock shader, so nothing needs UVs):
- stalactites (3 lathe variants, bases sunk 1.3 m into pre-displacement rock)
- stalagmites (2 terraced lathe variants) and floor rubble (3 displaced blobs)
- full-height columns at the walls
Cave.spawnCrystalCluster(ctx, pos, scale)— faceted shard clusters wearingtendril_crystal; the caller adds its own Light.
Geometry generates lazily on first build and is cached module-level, so
part re-entry re-uses the uploaded meshes. Every spawned entity is
ctx.track'd for part teardown.