# Unified city surfaces
City and Districts submit their solid boxes to one shared builder. Ground surfaces extend to a common bed, so the union removes covered terrain beneath roads, water, sand, parking and buildings across district boundaries. A spatial index clips buried faces; exposed rectangles subdivide at 8m for affine UVs and vertex fog. Materials produce one batch each. Main scene calls begin(), adds both districts, then finish(build, parent). This replaces the earlier independent geometry batches that left broad ground overlap.
# iron trim
Rough diffuse PS1-style surface using a nearest-filtered 64px grunge texture. Authored by City.sceneModule for the Vice City coastal mission environment. The producer in the parent init.luau owns its values; edit that source to regenerate. Palette follows the game's coral, teal and violet dusk reference.
# faded teal
Rough diffuse PS1-style surface using a nearest-filtered 64px grunge texture. Authored by City.sceneModule for the Vice City coastal mission environment. The producer in the parent init.luau owns its values; edit that source to regenerate. Palette follows the game's coral, teal and violet dusk reference.
# rose sidewalk
Rough diffuse PS1-style surface using a nearest-filtered 64px grunge texture. Authored by City.sceneModule for the Vice City coastal mission environment. The producer in the parent init.luau owns its values; edit that source to regenerate. Palette follows the game's coral, teal and violet dusk reference.
# dark window
Rough diffuse PS1-style surface using a nearest-filtered 64px grunge texture. Authored by City.sceneModule for the Vice City coastal mission environment. The producer in the parent init.luau owns its values; edit that source to regenerate. Palette follows the game's coral, teal and violet dusk reference.
# paint white
Rough diffuse PS1-style surface using a nearest-filtered 64px grunge texture. Authored by City.sceneModule for the Vice City coastal mission environment. The producer in the parent init.luau owns its values; edit that source to regenerate. Palette follows the game's coral, teal and violet dusk reference.
# Shared gameplay collision
Foot sweeps use 0.3 m substeps against city footprints, store walls, stash-house cover, poles and world bounds. Vehicle movement tests an oriented rectangular footprint with four separating axes and subdivides translation/rotation. Exact ray/slab intersections stop bullets and police vision at thin walls; low tables still block feet but allow standing shots above their height.
Exports blocked, sweep, vehicleBlocked, vehicleMove, blocksSight, rayDistance, clear, walkClear and trace. walkClear checks an inflated foot corridor against low cover as well as walls; companion following uses it to decide when to follow the player's recorded path. Coordinate plane is world X/Z; vehicle dimensions are half-width/half-length. clear tests standing sight height 1.3 m. Dynamic vehicle-to-vehicle separation is handled in Driver.
# Vice City coastal slice
A static Art Deco Vice City district for the GTA VI PS1 demake, consuming game.shared building footprints. Instantiate this sceneModule directly inside main.scene content() so its complete geometry is baked into scene.json. A SceneModule component placement in the current engine may mark rebuilt children temporary; root uses direct instantiation to preserve the scene.
The rectangular avenue ring has 14m streets at x=0 and -54 and z=±78. The west store door at x17.2 is open across z[-1.6,1.6], with a counter at x24 and clear shared interaction position x21. Motel marker(-31,82) sits outside front z86.5. A highway sign points toward Port Gellhorn; this compact map remains Vice City.
Geometry is emitted as exterior-only material batches. Each axis-aligned box face is clipped against all other solids, removing buried wall faces beneath windows/signs and pavement beneath road paint. The foundation belongs to this union; the root ground entity keeps its BoxCollider but must have no Model. Palm crowns use separated radial leaflets. All textures are deterministic nearest-filtered 64px grunge textures.
No camera, lighting, gameplay state or input is owned here. Root owns scene save/reload, gameplay verification and publishing. Evidence captures live under game/city/evidence. 55 generated mesh/material/texture assets have descriptive READMEs.