
Model · Civic buildings
Civic stair bay
A component from the Civic buildings pack, with named material slots for civic stock brick, civic timber, glass civic window, civic recess, civic stone, civic red brick and civic gauged. It measures about 3.60 m × 8.40 m × 0.52 m (W × H × D) and comes as high, medium and low detail files. Place it on its own, or load one of the 1 included assembly that use it.
The picture is a studio render. View in 3D loads the GLB files themselves in three.js; switch between high, medium and low to compare.
Included in Civic buildings (£19), which contains 58 component models and 4 assemblies.
See the pack| High detail | 2,956 triangles · 433 KB |
|---|---|
| Medium detail | 1,340 triangles · 159 KB |
| Low detail | 348 triangles · 53 KB |
| Size (W × H × D) | 3.60 m × 8.40 m × 0.52 m |
| Format | GLB (glTF 2.0 binary) |
| Compression | Meshopt (EXT_meshopt_compression) + quantised; uncompressed copy in the pack |
| Textures | 19 embedded in the GLB |
| Material slots | civic stock brick, civic timber, glass civic window, civic recess, civic stone, civic red brick, civic gauged |
| Sockets | mount-origin, edge-left, edge-right, stack-top |
| Era | victorian, edwardian |
| On mobile | Start with the low level (348 triangles). What a phone can draw depends on your whole scene; no device benchmark is published yet. |
| Instancing | Safe to instance (InstancedMesh) |
Load it in three.js
import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js';
import { MeshoptDecoder } from 'three/addons/libs/meshopt_decoder.module.js';
const loader = new GLTFLoader().setMeshoptDecoder(MeshoptDecoder);
const { scene: model } = await loader.loadAsync('models/london-civic-civic-stair-bay/high-london-civic-civic-stair-bay.glb');
scene.add(model); // 1 unit = 1 metre, origin at the mount socket







