← Writing · EndWise

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.

FIG. 01

Geometry from the grid

Pipeline from grid level defs through generated primitives and triplanar materials to lookdev as JSON
Meshes from the grid. Materials are folders; meshes are extrusions of the same JSON the solver reads. Triplanar projection fits UV-less primitives.

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.