$npx -y skills add scottstts/Threejs-Awesome-Graphics-Agent-Skills --skill threejs-procedural-architectureBuild 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.
| 1 | # Procedural Architecture |
| 2 | |
| 3 | Separate design planning from mesh emission. A building generator should produce an inspectable plan before it produces triangles. |
| 4 | |
| 5 | ## Required architecture |
| 6 | |
| 7 | ```text |
| 8 | settings |
| 9 | → mass grammar |
| 10 | → exposed-surface graph |
| 11 | → façade/roof placements |
| 12 | → module registry |
| 13 | → material-slot mesh writer |
| 14 | → geometries |
| 15 | ``` |
| 16 | |
| 17 | Read [references/grammar-and-mesh-compiler.md](references/grammar-and-mesh-compiler.md) before implementing the generator. |
| 18 | |
| 19 | Read the |
| 20 | [procedural financial tower compiler](examples/procedural-financial-tower/building-system.js) |
| 21 | for seeded tier planning, semantic façade placement, reserved zones, |
| 22 | material-slot BufferGeometry output, projected detail, and mechanism-specific |
| 23 | diagnostics. |
| 24 | |
| 25 | ## Rules |
| 26 | |
| 27 | - Massing, façade rhythm, and detail modules are separate layers. |
| 28 | - Resolve exposed edges before façade placement. Do not decorate hidden internal faces. |
| 29 | - Modules own semantic anchors and construction depth, not global building coordinates. |
| 30 | - Compile by material slot to reduce draw calls without destroying material separation. |
| 31 | - Preserve real dimensions for floor height, bay width, trim projection, and texture density. |
| 32 | - Randomness may select among valid designs; it must not repair invalid geometry. |
| 33 | - Provide topology, façade ownership, material/geometry, and shadow diagnostics |
| 34 | appropriate to the renderer path. |
| 35 | |
| 36 | ## Acceptance |
| 37 | |
| 38 | The generated building must survive: |
| 39 | |
| 40 | - silhouette-only view; |
| 41 | - flat untextured material; |
| 42 | - grazing light; |
| 43 | - close inspection of corners and roof transitions; |
| 44 | - seed variation without broken bays, overlapping ownership, or floating ornament; |
| 45 | - triangle and module-count reporting. |
| 46 | |
| 47 | ## Routing boundary |
| 48 | |
| 49 | Use `$threejs-procedural-geometry` for a reusable profile, sweep, ring, or mesh |
| 50 | writer without a building grammar. This skill owns massing, façade semantics, |
| 51 | architectural modules, and building-plan compilation. |