Procedural Architecture
Separate design planning from mesh emission. A building generator should produce an inspectable plan before it produces triangles.
This skill contains exemplary examples and assets beyond descriptive guidance,
they're worth studying, referencing, or even copying. Use them sufficiently
when relevant and do NOT blindly skip them.
Required architecture
settings
→ mass grammar
→ exposed-surface graph
→ façade/roof placements
→ module registry
→ material-slot mesh writer
→ geometries
Read references/grammar-and-mesh-compiler.md before implementing the generator.
Read the
procedural financial tower compiler
for seeded tier planning, semantic façade placement, reserved zones,
material-slot BufferGeometry output, projected detail, and mechanism-specific
diagnostics.
Rules
- Massing, façade rhythm, and detail modules are separate layers.
- Resolve exposed edges before façade placement. Do not decorate hidden internal faces.
- Modules own semantic anchors and construction depth, not global building coordinates.
- Compile by material slot to reduce draw calls without destroying material separation.
- Preserve real dimensions for floor height, bay width, trim projection, and texture density.
- Randomness may select among valid designs; it must not repair invalid geometry.
- Provide topology, façade ownership, material/geometry, and shadow diagnostics
appropriate to the renderer path.
Acceptance
The generated building must survive:
- silhouette-only view;
- flat untextured material;
- grazing light;
- close inspection of corners and roof transitions;
- seed variation without broken bays, overlapping ownership, or floating ornament;
- triangle and module-count reporting.
Routing boundary
Use $threejs-procedural-geometry for a reusable profile, sweep, ring, or mesh
writer without a building grammar. This skill owns massing, façade semantics,
architectural modules, and building-plan compilation.
1---2name: threejs-procedural-architecture3description: Build authored procedural buildings and architectural kits in Three.js. Use for massing grammars, exposed-edge analysis, façade bays, profiles, arches, cornices, roofs, ornaments, material-slot mesh compilation, deterministic variants, and procedural city assets.4---5
6# Procedural Architecture
7
8Separate design planning from mesh emission. A building generator should produce an inspectable plan before it produces triangles.
9
10This skill contains exemplary examples and assets beyond descriptive guidance,
11they're worth studying, referencing, or even copying. Use them sufficiently
12when relevant and do NOT blindly skip them.
13
14## Required architecture
15
16```text
17settings
18 → mass grammar
19 → exposed-surface graph
20 → façade/roof placements
21 → module registry
22 → material-slot mesh writer
23 → geometries
24```
25
26Read [references/grammar-and-mesh-compiler.md](references/grammar-and-mesh-compiler.md) before implementing the generator.
27
28Read the
29[procedural financial tower compiler](examples/procedural-financial-tower/building-system.js)
30for seeded tier planning, semantic façade placement, reserved zones,
31material-slot BufferGeometry output, projected detail, and mechanism-specific
32diagnostics.
33
34## Rules
35
36- Massing, façade rhythm, and detail modules are separate layers.
37- Resolve exposed edges before façade placement. Do not decorate hidden internal faces.
38- Modules own semantic anchors and construction depth, not global building coordinates.
39- Compile by material slot to reduce draw calls without destroying material separation.
40- Preserve real dimensions for floor height, bay width, trim projection, and texture density.
41- Randomness may select among valid designs; it must not repair invalid geometry.
42- Provide topology, façade ownership, material/geometry, and shadow diagnostics
43 appropriate to the renderer path.
44
45## Acceptance
46
47The generated building must survive:
48
49- silhouette-only view;
50- flat untextured material;
51- grazing light;
52- close inspection of corners and roof transitions;
53- seed variation without broken bays, overlapping ownership, or floating ornament;
54- triangle and module-count reporting.
55
56## Routing boundary
57
58Use `$threejs-procedural-geometry` for a reusable profile, sweep, ring, or mesh
59writer without a building grammar. This skill owns massing, façade semantics,
60architectural modules, and building-plan compilation.