
Model · London shopfronts
Greengrocer produce crate
Fruit and vegetables displayed outside a shop need a container, and this greengrocer produce crate measures about 0.73 m wide, 0.36 m tall and 0.48 m deep. Its two named material slots, bread and produce, are the ones to edit for recolouring. There are no textures, only PBR colour slots on UV-mapped geometry.
The mini market and the shopping parade, two of the four assemblies in the London shopfronts pack, both use it. It pairs with the bakery bread tray, the pavement A-board and the shop awnings listed among the pack's other components.
It carries 1,068 triangles at high, 540 at medium and 276 at low. That is heavier than some of the pack's other street dressing, so the low level is worth using when crates are placed in numbers. 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 bread and produce. It measures about 0.73 m × 0.36 m × 0.48 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.
Included in London shopfronts (£19), which contains 34 component models and 4 assemblies.
See the pack| High detail | 1,068 triangles · 31 KB |
|---|---|
| Medium detail | 540 triangles · 18 KB |
| Low detail | 276 triangles · 11 KB |
| Size (W × H × D) | 0.73 m × 0.36 m × 0.48 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 | bread, produce |
| Sockets | mount-origin |
| Era | victorian, contemporary |
| On mobile | Start with the low level (276 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-produce-crate/high-london-shopfronts-produce-crate.glb');
scene.add(model); // 1 unit = 1 metre, origin at the mount socket














