- Do I need WebGPU?
- No. All the selection logic (tree traversal, error metric, culling, cache eviction, decompression) runs on the CPU in JavaScript and WebAssembly. The GPU only rasterizes the chosen cut, which plain WebGL 1.0 handles on integrated graphics.
- Will it work on a phone?
- Yes, with smaller budgets: fewer triangles per frame, a larger allowed screen-space error and a cache of about half a gigabyte. Our published scans open on phones from the same file the desktop uses.
- Can I host it on ordinary shared hosting or a CDN?
- Yes, as long as the server answers Range requests with a 206 response. Apache, nginx, S3, R2 and most CDNs do. Our live site streams its scans from a shared FTP host. If a host cannot do ranges, nxsbuild has a mode that writes every node as its own file instead.
- How long does the conversion take?
- Minutes for a few million triangles, hours for 100 million. It is a batch job: run it once per scan on a workstation or a server with plenty of RAM and disk, then serve the result forever.
- How large will the streamed file be?
- Our published scans come to 16 to 27 bytes per triangle including textures, so a 100-million-triangle scan lands around 1.6 to 2.7 GB. Visitors only ever download the parts they look at.
- What about the textures?
- They are the harder half. The build repacks each node’s texture into its own crop, so textures stream with the geometry. Highly fragmented UV layouts inflate the coarse levels; source textures padded to powers of two allow mipmaps. On the client, decode and upload textures incrementally or movement will stutter.
- Is 100 million the limit?
- No. The client cost does not grow with the source; only the build time and the file size do. Very large builds are limited by RAM on the build machine, and a source can be split spatially into several files that the viewer loads together.