
Model · London pubs
Victorian pub door
A single door leaf in a frame, this Victorian pub door measures about 1.12 m wide, 2.35 m tall and 0.35 m deep. It has four named material slots: pub paint, shop glass, brass and stone. There are no textures, only PBR colour slots on UV-mapped geometry, so recolouring means changing those slot values.
The London pubs pack uses it in four assemblies: the corner pub, neighbourhood pub, row of pubs and wide-fronted pub. It pairs with the pack's front frames, fascia board and the leaded and plain glazing for entrances,.
The triangle counts are 932 at high, 404 at medium and 140 at low. A row of pubs can therefore use the low level for the doors along the far side of a street. The model is safe to instance with InstancedMesh, and its listed eras are victorian and contemporary.
A component from the London pubs pack, with named material slots for pub paint, shop glass, brass and stone. It measures about 1.12 m × 2.35 m × 0.35 m (W × H × D) and comes as high, medium and low detail files. Place it on its own, or load one of the 4 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.
Included in London pubs (£15), which contains 16 component models and 4 assemblies.
See the pack| High detail | 932 triangles · 25 KB |
|---|---|
| Medium detail | 404 triangles · 16 KB |
| Low detail | 140 triangles · 8 KB |
| Size (W × H × D) | 1.12 m × 2.35 m × 0.35 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 | pub paint, shop glass, brass, stone |
| Sockets | mount-origin |
| Era | victorian, contemporary |
| On mobile | Start with the low level (140 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-pubs-door/high-london-pubs-door.glb');
scene.add(model); // 1 unit = 1 metre, origin at the mount socket










