Scene benchmarks

Triangle counts on a product page are only part of what a scene costs. These are whole scenes built from the packs, loaded by the same runtime the packs ship, with the numbers that decide whether they run well: draw calls, materials, textures and the download.

What each scene costs

SceneDetailTrianglesDraw callsMaterialsTexturesDownload
London street (the demo’s default)276 placed parts, 62 unique modelshigh139,8846532142625.3 MB
medium68,6326532142462.7 MB
low28,2606812172441.0 MB
High-street parade255 placed parts, 65 unique modelshigh135,8486211553306.2 MB
medium63,8366211553083.4 MB
low26,1396411583061.2 MB
Building site, three stages705 placed parts, 22 unique modelshigh441,99691027771.6 MB
medium202,1649102777990 KB
low57,8889102777344 KB
Community playground121 placed parts, 25 unique modelshigh100,760182511333.1 MB
medium45,644182511331.3 MB
low16,82418251133565 KB
Floodlit padel court94 placed parts, 14 unique modelshigh129,55619431763.8 MB
medium82,79819431761.7 MB
low28,5961943176444 KB
Victorian train shed89 placed parts, 11 unique modelshigh48,89621230671.3 MB
medium25,4562123052685 KB
low10,7662123052259 KB

Measured 2026-10-01 with kit 1.63.0 and three.js r186. Counts come from the scene graph, so they do not depend on the camera or the device; the download is the meshopt-compressed GLB files for every unique model at that level (layered materials are generated in the browser, not downloaded).

Reading the numbers

Draw calls are the cost to watch. Assemblies keep every part separate so you can edit them: swap a door, recolour a house, open a shutter. That flexibility is why a street is hundreds of draw calls rather than a handful. For a scene you will not edit, instance repeated parts with InstancedMesh (four identical houses then cost one house's draw calls), and merge parts that share a plain material. Don't merge parts that wear the kit's weathering materials across buildings: those are fitted to each part's own size, and a merged street loses its soot, chips and damp detail.

Glass: the kit's glass looks use physical transmission, and one visible transmissive material makes three.js draw the whole scene twice per frame. At window scale plain transparency looks the same, so the demo and these numbers use that; do the same in your scene unless the camera gets close to the glass.

Detail levels cut triangles and bytes, not draw calls. Low detail drops small members like glazing bars, but each part is still its own mesh.

Measure it on your device

Nothing is sent unless you press Share. A shared result contains the scene, detail level, frame rate, your GPU name as the browser reports it, browser version, screen size and pixel ratio; no personal data.

Results from real devices

Shared by visitors with the button above. Self-reported, not verified by us.

DateSceneDetailMedian fps95th pct frameDeviceBrowserScreen
Loading…

Try the scenes yourself in the street builder, or read how the models work.