Assets from Code
Every mesh compiles from the same grid JSON the level design solver reads. Authors write levels; they do not model geometry.
Meshes
A mattress is exactly 2×3 cells — that size is a gameplay rule. Hand-modeled assets drifted from occupancy and lied about fit. Grid-extruded meshes can’t: tip (2×3 → door-tall 1×3) is another extrusion of the same footprint, same dimensions the solver uses.
Geometry from the grid
Materials
No artist UVs on generated primitives → triplanar projection (world axes, blend by normal). Textures must tile.
Convention: assets/materials/<name>/ with albedo + normal. Godot auto-
discovers folders; no scene wiring to add a material.
Lookdev
data/art/lighting.json and data/art/materials.json, hot-reloaded on a
keypress — AgX, SDFGI, low-elevation sun.