Product Introduction
Definition: Spark 2.0 is a high-performance, open-source 3D Gaussian Splatting (3DGS) renderer designed specifically for the web ecosystem. Technically categorized as a real-time rasterization engine, it is built upon the THREE.js framework and utilizes the WebGL2 API to ensure cross-platform compatibility without the hardware limitations often associated with WebGPU.
Core Value Proposition: Spark 2.0 exists to bridge the gap between massive, high-fidelity 3D spatial data and accessible web-based delivery. By implementing a sophisticated Level-of-Detail (LoD) architecture and virtual memory management, it allows developers to stream and render environments containing over 100 million splats—data sizes that previously exceeded the GPU memory limits of mobile and VR devices. It serves as a foundational tool for "Spatial Intelligence," enabling the creation of expansive, interactive 3D worlds that load instantly and run at steady frame rates.
Main Features
Streamable Level-of-Detail (LoD) Splat Tree: Unlike discrete LoD systems that cause visual "popping," Spark 2.0 utilizes a continuous LoD method. It organizes splats into a hierarchical tree structure where internal nodes represent lower-resolution approximations of their children. Using a Rust-based algorithm compiled to WebAssembly (Wasm), the system performs real-time tree traversal in a background Web Worker. It calculates a "tree cut" based on a predefined splat budget (e.g., 500K to 2.5M splats), ensuring the renderer only processes the most significant splats for the current camera frustum, maintaining high performance regardless of total world size.
Progressive Streaming and .RAD File Format: Spark 2.0 introduces the .RAD (Radiance Fields) format, a compressed, column-oriented data structure designed for random access. The format partitions the LoD tree into spatially co-located chunks of 64,000 splats. This allows for progressive refinement where the browser fetches the coarsest global representation first (64K splats) and then dynamically prioritizes the download of high-detail chunks based on the viewer’s position and gaze. This eliminates the need to download multi-gigabyte files before the scene becomes visible.
Virtual Memory & GPU Paging System: To overcome the strict GPU memory caps on mobile browsers, Spark 2.0 implements a virtual memory management system. It allocates a fixed physical memory pool on the GPU (typically 16M splats) and utilizes a page table to map these to "virtual" chunks from .RAD files. As the user moves through a 100M+ splat environment, the system automatically swaps 64K splat pages in and out using a Least-Recently-Used (LRU) eviction policy, allowing for virtually infinite world scales on limited hardware.
Programmable GPU Data Pipeline: Spark 2.0 features a three-step rendering algorithm: generating a global list, sorting, and rendering. During the generation phase, it runs a user-programmable GPU pipeline (via GLSL or node-based shader graphs). This allows for real-time 4DGS (dynamic animation), relighting, SDF-based clipping, and custom transition effects, making the renderer a flexible engine for interactive creative coding.
Problems Solved
- Pain Point: High Hardware Barriers and Memory Crashes. Traditional 3DGS renderers require significant VRAM, often crashing mobile browsers or failing to load scenes exceeding 5-10 million splats. Spark 2.0’s virtual memory and LoD systems eliminate these crashes by capping active GPU utilization.
- Pain Point: Long Initial Load Times. Standard .PLY or .SPZ formats require large data transfers before rendering. Spark 2.0’s progressive .RAD streaming allows for near-instant visual feedback.
- Target Audience:
- Web Developers & XR Creators: Building immersive experiences for Quest 3 or Apple Vision Pro.
- Creative Technologists: Using "vibe coding" or THREE.js to integrate photorealistic scans into websites.
- Machine Learning Researchers: Visualizing Large World Models (LWM) and radiance fields in real-time.
- Use Cases:
- Multiplayer Metaverse Environments: Kilometre-scale sci-fi worlds (e.g., Starspeed).
- Digital Twins and Heritage Preservation: Interactive, high-detail scans of real-world locations (e.g., Dormant Memories).
- E-commerce & Advertising: High-fidelity 3D product previews that run on any smartphone browser.
Unique Advantages
- Differentiation: Most existing web-based 3DGS renderers can only handle a single object at a time and lack proper global sorting. Spark 2.0 generates a unified global list of splats from multiple objects, sorting them back-to-front in a single instanced draw call. This ensures that overlapping 3DGS objects blend correctly without "pasting" artifacts.
- Key Innovation: Foveated Splat Rendering: Spark 2.0 integrates fixed foveated rendering into its LoD traversal. By biasing the splat budget toward the center of the view direction, it allocates higher detail (finer splats) to where the user is looking and coarser detail to the periphery. This optimization significantly increases perceived visual quality without increasing the computational load on the GPU.
- Universal Compatibility: By targeting WebGL2 instead of WebGPU, Spark 2.0 runs on almost every modern device, including older Android phones and iOS devices, which remains a significant hurdle for many cutting-edge 3DGS implementations.
Frequently Asked Questions (FAQ)
How does Spark 2.0 render 100 million splats on a mobile phone? Spark 2.0 uses a Virtual Memory system and Level-of-Detail (LoD) tree. It only keeps the most relevant 1-2 million splats in the GPU’s physical memory at any given time, swapping data chunks in and out of a 16M splat page table as the camera moves. This prevents memory overages while maintaining the appearance of a massive world.
What makes the .RAD file format better than .PLY or .SPZ for 3DGS? While .PLY is uncompressed and .SPZ requires the full file to be downloaded before rendering, the .RAD format is chunk-based and column-oriented. It supports random access, allowing Spark 2.0 to stream only the spatial regions the user is looking at, enabling progressive refinement and instant loading.
Is Spark 2.0 compatible with VR headsets like Meta Quest 3 and Apple Vision Pro? Yes. Spark 2.0 is built on THREE.js and WebGL2, which are the industry standards for WebXR. It includes specific optimizations for VR, such as asynchronous LoD updates in background workers to prevent frame drops, which is critical for maintaining immersion and preventing motion sickness in spatial computing environments.
Can I convert my existing 3DGS scans to work with Spark 2.0? Yes. Spark 2.0 includes a command-line tool called
build-lodthat converts standard 3DGS files into the streamable .RAD format. It offers two algorithms: Tiny-LoD for fast, on-demand tree generation and Bhatt-LoD for high-quality, offline optimization using Bhattacharyya distance metrics.
