
Model · London shopfronts
Pavement A-board
This pavement A-board is a piece of street dressing for shopfronts, measuring about 0.71 m wide, 1.03 m tall and 0.61 m deep. It has three named material slots: shop paint, stone and sign lettering. There are no textures, only PBR colour slots on UV-mapped geometry.
Four assemblies in the London shopfronts pack use it: the corner cafe, mini market, shopping parade and restaurant front. It sits beside the café chair and table, the bakery bread tray and the barber's pole, which are other street-level parts of the pack.
Triangle counts are 440 at high, 248 at medium and 152 at low, a narrow range, so the low level costs little even when several boards stand along a parade. The model is safe to instance with InstancedMesh, and its eras are listed as victorian and contemporary.
A component from the London shopfronts pack, with named material slots for shop paint, stone and sign lettering. It measures about 0.71 m × 1.03 m × 0.61 m (W × H × D) and comes as high, medium and low detail files. Place it on its own, or load one of the 8 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 | 440 triangles · 14 KB |
|---|---|
| Medium detail | 248 triangles · 10 KB |
| Low detail | 152 triangles · 8 KB |
| Size (W × H × D) | 0.71 m × 1.03 m × 0.61 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, stone, sign lettering |
| Sockets | mount-origin |
| Era | victorian, contemporary |
| On mobile | Start with the low level (152 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-a-board/high-london-shopfronts-a-board.glb');
scene.add(model); // 1 unit = 1 metre, origin at the mount socket














