
Model · London shopfronts
Café chair
Measuring about 0.42 m wide, 0.86 m tall and 0.41 m deep, this café chair is sized for pavement seating. It has two named material slots, shop paint and iron, and no textures: the colours come from PBR slots on UV-mapped geometry, so recolouring means editing those two values.
In the London shopfronts pack it is placed in two assemblies, the corner cafe and the restaurant front. It pairs with the café table, which is listed among the pack's components, and with the striped and plain shop awnings and the pavement A-board.
The detail levels are 588 triangles at high, 300 at medium and 156 at low. That makes the low level a sensible choice for a row of chairs seen from across a street. The model is safe to instance with InstancedMesh. Its eras are listed as victorian and contemporary.
A component from the London shopfronts pack, with named material slots for shop paint and iron. It measures about 0.42 m × 0.86 m × 0.41 m (W × H × D) and comes as high, medium and low detail files. Place it on its own, or load one of the 6 included assemblies 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.
Free: this model is in the free London Street Starter, with a working three.js example scene.
Get it free in the London Street StarterIncluded in London shopfronts (£19), which contains 34 component models and 4 assemblies.
See the pack| High detail | 588 triangles · 16 KB |
|---|---|
| Medium detail | 300 triangles · 10 KB |
| Low detail | 156 triangles · 7 KB |
| Size (W × H × D) | 0.42 m × 0.86 m × 0.41 m |
| Format | GLB (glTF 2.0 binary) |
| Compression | Meshopt (EXT_meshopt_compression) + quantised; uncompressed copy in the pack |
| Textures | None: PBR colours only, UV-mapped for your own |
| Material slots | shop paint, iron |
| Sockets | mount-origin |
| Era | victorian, contemporary |
| On mobile | Start with the low level (156 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-shopfronts-cafe-chair/high-london-shopfronts-cafe-chair.glb');
scene.add(model); // 1 unit = 1 metre, origin at the mount socket












