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
| Scene | Detail | Triangles | Draw calls | Materials | Textures | Download |
|---|---|---|---|---|---|---|
| London street (the demo’s default)276 placed parts, 62 unique models | high | 139,884 | 653 | 214 | 262 | 5.3 MB |
| medium | 68,632 | 653 | 214 | 246 | 2.7 MB | |
| low | 28,260 | 681 | 217 | 244 | 1.0 MB | |
| High-street parade255 placed parts, 65 unique models | high | 135,848 | 621 | 155 | 330 | 6.2 MB |
| medium | 63,836 | 621 | 155 | 308 | 3.4 MB | |
| low | 26,139 | 641 | 158 | 306 | 1.2 MB | |
| Building site, three stages705 placed parts, 22 unique models | high | 441,996 | 910 | 27 | 77 | 1.6 MB |
| medium | 202,164 | 910 | 27 | 77 | 990 KB | |
| low | 57,888 | 910 | 27 | 77 | 344 KB | |
| Community playground121 placed parts, 25 unique models | high | 100,760 | 182 | 51 | 133 | 3.1 MB |
| medium | 45,644 | 182 | 51 | 133 | 1.3 MB | |
| low | 16,824 | 182 | 51 | 133 | 565 KB | |
| Floodlit padel court94 placed parts, 14 unique models | high | 129,556 | 194 | 31 | 76 | 3.8 MB |
| medium | 82,798 | 194 | 31 | 76 | 1.7 MB | |
| low | 28,596 | 194 | 31 | 76 | 444 KB | |
| Victorian train shed89 placed parts, 11 unique models | high | 48,896 | 212 | 30 | 67 | 1.3 MB |
| medium | 25,456 | 212 | 30 | 52 | 685 KB | |
| low | 10,766 | 212 | 30 | 52 | 259 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.
| Date | Scene | Detail | Median fps | 95th pct frame | Device | Browser | Screen |
|---|---|---|---|---|---|---|---|
| Loading… | |||||||
Try the scenes yourself in the street builder, or read how the models work.