World Labs has released Spark v2.3.0, which lets paged LoD scenes finish streaming in applications that only render on demand.
Spark is World Labs' MIT licensed gaussian splatting renderer for three.js. Paged LoD arrived with Spark 2.0 in April, fetching .RAD chunks in background workers as the camera moves. In on-demand mode, where Spark draws a frame only when something requests one, decoded chunks did not trigger a redraw on their own, so a scene stalled partway until the viewer moved the camera.
Spark v2.3.0 has SplatPager request a redraw from SparkRenderer when new pages decode, and follow up fixes address a race with late chunk arrival and a paged root eviction issue. The release documents on-demand rendering and adds an examples/on-demand scene that now loads to completion on its own. The same work added headless browser tests that render basic, LoD and paged LoD scenes in Chromium through SwiftShader and compare them against reference images.
SplatMesh, PackedSplats and ExtSplats now accept withCredentials and requestHeader and pass both to the fetch, paged or not, so splats can load from authenticated URLs. writeSpz, which previously took only PackedSplats, now also takes ExtSplats. SPZ v3 is restored as the default output after a regression, and non-finite rotations are written as the identity.
Two SparkRenderers drawing different viewpoints at once now each use their own encoding. SparkRenderer.dispose() releases geometry and material, fixing a GPU memory leak, and cancels scheduled sorting and updates. PagedSplats now honors its maxSh option, which the SplatPager limit had overridden, and paged ext splats allocate the SH3 texture whose absence threw a RangeError.
Tree shaking now drops SplatSkinning and its shader chunks, SplatEdit and SplatEditSdf, and SparkXr unless an application imports them. JointEnum changes from a TypeScript enum to a const object as part of that work. The release notes give no bundle size figures.
The 56 commits follow Spark v2.2.0 earlier this month, and @sparkjsdev/spark on npm now resolves to 2.3.0. AMD signed an agreement to acquire World Labs this week, with closing expected by the end of 2026. Spark v2.3.0 is available now on GitHub and npm.



