Spark 2.0: Open‑Source 3DGS Renderer Brings Billion‑Scale Worlds to the Browser

World Labs' open‑source Spark 2.0 renderer integrates with Three.js and WebGL2 to stream and display ultra‑large 3D Gaussian Splatting scenes—over 100 million splats—on desktops, mobiles and VR, using level‑of‑detail, progressive streaming, and virtual‑memory techniques.

Machine Heart
Machine Heart
Machine Heart
Spark 2.0: Open‑Source 3DGS Renderer Brings Billion‑Scale Worlds to the Browser

World Labs announced Spark 2.0, an open‑source WebGL2‑based renderer for 3D Gaussian Splatting (3DGS) that enables billion‑scale, high‑fidelity 3D worlds to be accessed directly in a browser on desktop, iOS, Android, and VR devices.

Spark integrates with the popular Web 3D framework Three.js, so any browser that supports WebGL2 can run the renderer without additional plugins.

The original Spark release already offered capabilities that many Web renderers lack, such as rendering multiple 3DGS objects in a single scene, real‑time editing and re‑lighting, and a shader‑graph system that lets users create fully dynamic effects and animations from splats.

Spark 2.0 adds three core technologies to handle massive scale: a Level‑of‑Detail (LoD) system, progressive streaming, and a virtual‑memory layer.

Level‑of‑Detail (LoD) – Spark builds a continuous LoD splat tree where each internal node represents a lower‑resolution merge of its children. During rendering, the engine selects a “cut‑plane” through the tree to choose the appropriate splats for the current view. Two algorithms generate the LoD tree: a lightweight, faster Tiny‑LoD used by default on the web, and a higher‑quality Bhatt‑LoD used in command‑line environments. Both operate without any training data, relying solely on the 3DGS input.

Progressive Streaming – Spark introduces a new .RAD (Radiance fields) file format that compresses 3DGS data and supports random access during network transfer. Initially, a coarse version of about 64 k splats appears almost instantly; the system then fetches data blocks, prioritising the most visually important LoD splats and continuously refines the scene as the user moves.

Virtual Memory – On the GPU, Spark allocates a fixed‑size memory pool of roughly 16 million splats. A page table maps 64 k‑splat pages in the .RAD file to GPU pages, allowing seamless access to massive virtual data. When the page table fills, Spark evicts lower‑priority pages using a Least‑Recently‑Used (LRU) policy.

These techniques together allow Spark 2.0 to stream and render ultra‑large 3DGS worlds on any device. For full technical details, see the original blog post at https://www.worldlabs.ai/blog/spark-2.0.

Virtual MemoryThree.jsLevel of DetailSpark 2.03DGSProgressive StreamingWebGL2
Machine Heart
Written by

Machine Heart

Professional AI media and industry service platform

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.