Skip to main content

Rendering and visualization capabilities

This matrix groups luma.gl's portable rendering, scene, asset, effects, and simulation capabilities. Return to the capabilities overview for GPU data and compute features.

Portable GPU foundation and rendering

Devices, resources, and presentation

FeatureStatusBackendPackageDetails
Unified GPU device APIAvailableWebGPU + WebGL2@luma.gl/coreAccess adapters, devices, resources, commands, features, and limits through one model.
Backend adaptersAvailableWebGPU + WebGL2@luma.gl/webgpu and @luma.gl/webglSelect the native WebGPU adapter or the WebGL2 compatibility adapter.
Feature and limit discoveryAvailableWebGPU + WebGL2@luma.gl/coreInspect device capabilities before enabling optional functionality.
GPU buffersAvailableWebGPU + WebGL2@luma.gl/coreCreate vertex, index, uniform, and compatible readback buffers.
GPU storage buffersAvailableWebGPU@luma.gl/webgpuBind supported read-only or writable storage buffers to WebGPU shaders.
Typed texture resourcesAvailableWebGPU + WebGL2@luma.gl/coreAllocate compatible 2D, array, cubemap, and three-dimensional texture resources.
Texture views and samplersAvailableWebGPU + WebGL2@luma.gl/coreDescribe texture views, filtering, wrapping, and supported anisotropic sampling.
Compressed texturesEvolvingWebGPU + WebGL2@luma.gl/coreUse BC, ETC2, or ASTC formats when supported by the selected device.
Native external texturesAvailableWebGPU@luma.gl/webgpuBind compatible browser-owned external image resources without a WebGL fallback.
Video texture uploadsAvailableWebGPU + WebGL2@luma.gl/engineUpdate compatible GPU textures from supported browser video sources.
Framebuffers and attachmentsAvailableWebGPU + WebGL2@luma.gl/coreManage color, depth, stencil, and supported multiple-render-target attachments.
Render pipelinesAvailableWebGPU + WebGL2@luma.gl/coreConfigure shader bindings, vertex layouts, depth, stencil, and blend state.
Compute shaders and passesAvailableWebGPU@luma.gl/webgpuEncode compute pipelines, dispatches, and WebGPU storage-resource workflows.
Indexed and indirect drawsEvolvingWebGPU + WebGL2@luma.gl/coreIndexed drawing is portable; GPU-generated indirect drawing requires WebGPU.
Render bundlesEvolvingWebGPU@luma.gl/webgpuReuse compatible recorded render commands.
Transform feedbackAvailableWebGL2@luma.gl/webglSupport established WebGL transform-feedback workflows.
Occlusion and timing queriesEvolvingWebGPU + WebGL2@luma.gl/coreUse supported query types only when the selected backend advertises them.
Multisample resolveAvailableWebGPU@luma.gl/webgpuResolve supported multisampled render attachments.
Canvas sizing and pixel ratioAvailableWebGPU + WebGL2@luma.gl/coreManage browser canvas configuration, resize, and high-DPI presentation.
Extended color and HDREvolvingWebGPU@luma.gl/webgpuPresent compatible floating-point or display-P3 output when browser and display support it.

Engine, geometry, and interaction

FeatureStatusBackendPackageDetails
Model and material lifecycleAvailableWebGPU + WebGL2@luma.gl/engineCompose shader inputs, geometry, materials, pipelines, and draw calls.
CPU and GPU geometryAvailableWebGPU + WebGL2@luma.gl/engineConnect source geometry to explicit GPU buffers and shader-facing layouts.
Built-in geometry primitivesAvailableWebGPU + WebGL2@luma.gl/engineGenerate supported cubes, planes, spheres, cylinders, cones, and related meshes.
Indexed and instanced renderingAvailableWebGPU + WebGL2@luma.gl/engineReuse geometry across indexed meshes and compatible instance batches.
Scenegraph transformsAvailableWebGPU + WebGL2@luma.gl/engineOrganize supported scene nodes, groups, transforms, and bounding information.
Dynamic buffers and texturesAvailableWebGPU + WebGL2@luma.gl/engineResize and update managed application resources as data changes.
Integer-index pickingEvolvingWebGPU + WebGL2@luma.gl/engineUse exact integer picking when the selected backend supports integer render targets.
Color picking fallbackAvailableWebGPU + WebGL2@luma.gl/engineEncode supported object and batch identifiers into compatible color targets.
Orbit camera controlsAvailableWebGPU + WebGL2@luma.gl/engineOrbit, zoom, constrain, and automatically rotate an interactive scene camera.
Animation loop and timelineAvailableWebGPU + WebGL2@luma.gl/engineCoordinate rendering, frame state, keyframes, and application updates.
Animation interpolationAvailableWebGPU + WebGL2@luma.gl/engineEvaluate step, linear, cubic-spline, and supported quaternion interpolation.
Animation clip mixingAvailableWebGPU + WebGL2@luma.gl/enginePlay, pause, scrub, loop, weight, and crossfade compatible animation actions.
Fullscreen drawingAvailableWebGPU + WebGL2@luma.gl/engineBuild visualization overlays and fullscreen passes from reusable clip-space geometry.

Shader assembly and numerical precision

FeatureStatusBackendPackageDetails
WGSL shader assemblyAvailableWebGPU@luma.gl/shadertoolsCompose supported WebGPU shader source and typed application bindings.
GLSL shader assemblyAvailableWebGL2@luma.gl/shadertoolsCompose supported WebGL vertex and fragment shaders.
Typed shader modulesAvailableWebGPU + WebGL2@luma.gl/shadertoolsReuse shader modules with explicit source, dependencies, and uniform types.
Shader hooks and injectionsAvailableWebGPU + WebGL2@luma.gl/shadertoolsExtend supported applications through composable shader hooks and source injections.
Shader pluginsAvailableWebGPU + WebGL2@luma.gl/shadertoolsOrder reusable shader plugins and validate supported varying relationships.
Uniform and binding reflectionAvailableWebGPU + WebGL2@luma.gl/shadertoolsCoordinate application uniforms, supported bindings, and shader layouts.
Color and picking modulesAvailableWebGPU + WebGL2@luma.gl/shadertoolsReuse compatible color transforms, clipping, filtering, and picking logic.
Lighting and PBR shadersAvailableWebGPU + WebGL2@luma.gl/shadertoolsCompose supported Lambert, Phong, physically based shading, and image-based lighting.
Joint-driven skinningAvailableWebGPU + WebGL2@luma.gl/shadertoolsSkin compatible glTF and retained-scene geometry using shared WGSL and GLSL joint-palette modules.
Geometric specular antialiasingAvailableWebGPU + WebGL2@luma.gl/shadertoolsStabilize supported base and clearcoat highlights through derivative-based geometric filtering.
Split-float high precisionEvolvingWebGPU + WebGL2@luma.gl/shadertoolsEmulate selected higher-precision arithmetic without claiming native WGSL 64-bit floats.
GLSL fp64 transcendentalsAvailableWebGL2@luma.gl/shadertoolsUse the supported GLSL high-precision transcendental library.
64-bit cell identifiersEvolvingWebGPU@luma.gl/shadertoolsRepresent supported geospatial cell identifiers as paired unsigned words.

Lighting, visual effects, and transparency

FeatureStatusBackendPackageDetails
Ordered image-effect pipelinesAvailableWebGPU + WebGL2@luma.gl/effectsChain compatible shader passes and explicitly named intermediate targets.
HDR bloomAvailableWebGPU + WebGL2@luma.gl/effectsApply supported floating-point highlight extraction and multiresolution blur.
Photographic lens effectsAvailableWebGPU + WebGL2@luma.gl/effectsAdd optional chromatic ghosts, radial halos, aperture starbursts, and compatible lens-dirt masks.
Fused WebGPU bloomAvailableWebGPU@luma.gl/effectsFuse compatible bloom downsampling and filtering work while retaining a portable render-pass fallback.
Fourier aperture convolutionExperimentalWebGPU@luma.gl/experimentalConvolve compatible highlight fields against a supplied aperture through independent RGB GPU Fourier transforms.
Color and image filtersAvailableWebGPU + WebGL2@luma.gl/effectsAdjust brightness, contrast, hue, saturation, noise, sepia, and vignette.
Depth-of-field passesAvailableWebGPU + WebGL2@luma.gl/effectsApply supported depth-aware focus and image-space blur.
Temporal antialiasingAvailableWebGPU@luma.gl/effectsReproject compatible camera, color, and depth history with jitter and neighborhood-clamped accumulation.
Motion blurAvailableWebGPU@luma.gl/effectsUse compatible velocity and frame data for image-space motion blur.
Screen-space ambient occlusionAvailableWebGPU@luma.gl/effectsCompute supported SSAO and GTAO visibility from scene attachments.
Screen-space reflectionsAvailableWebGPU@luma.gl/effectsTrace and stabilize supported SSR reflections using depth and frame history.
Screen-space indirect lightingAvailableWebGPU@luma.gl/effectsApproximate supported diffuse bounce lighting with temporally filtered SSGI.
Adaptive exposureAvailableWebGPU@luma.gl/effectsReduce scene luminance on the GPU and update compatible HDR exposure.
Volumetric lighting and fogAvailableWebGPU@luma.gl/effectsRender supported fog, participating media, and clustered light scattering.
Depth-aware outlinesAvailableWebGPU@luma.gl/effectsHighlight compatible object boundaries using auxiliary scene attachments.
Deferred G-buffer renderingExperimentalWebGPU@luma.gl/experimentalCompose supported surface attachments and deferred lighting passes.
Compute-clustered lightsExperimentalWebGPU@luma.gl/experimentalPartition dense point-light workloads into compatible screen-space clusters.
Cascaded directional shadowsExperimentalWebGPU@luma.gl/experimentalRender supported cascaded shadow maps for directional lights.
Spot and point shadowsExperimentalWebGPU@luma.gl/experimentalRender supported spot shadows and six-face omnidirectional point shadows.
Soft and contact shadowsExperimentalWebGPU@luma.gl/experimentalApply supported blocker search, filtering, and screen-space contact shadows.
Exact order-independent transparencyExperimentalWebGPU@luma.gl/experimentalUse a bounded A-buffer on devices with sufficient fragment storage resources.
Weighted-blended transparencyExperimentalWebGPU + WebGL2@luma.gl/experimentalApproximate order-independent transparency when required float attachments are blendable.
Spectral optical causticsExperimentalWebGPU@luma.gl/experimentalCompute supported wavelength-separated lighting through a bounded refractor.

Try Lightstorm Megacity, Illumination Lab, Prism Cathedral, and Effects: Image Processing.

glTF, PBR, and standards-driven animation

FeatureStatusBackendPackageDetails
glTF and GLB scene loadingAvailableWebGPU + WebGL2@loaders.gl/gltf + @luma.gl/gltfLoad and postprocess source assets with GLTFLoader; instantiate scene hierarchies, meshes, cameras, materials, and animation in luma.gl.
Draco mesh compressionAvailableWebGPU + WebGL2@loaders.gl/gltfDecode supported KHR_draco_mesh_compression primitives before luma.gl creates GPU geometry.
Meshopt compressionAvailableWebGPU + WebGL2@loaders.gl/gltfDecode supported EXT_meshopt_compression buffer views; the newer KHR_meshopt_compression release candidate is not implemented.
Quantized geometryAvailableWebGPU + WebGL2@loaders.gl/gltf + @luma.gl/gltfPreserve loader-materialized quantized accessor values, authored normalization, and compatible GPU attribute formats.
Basis Universal and KTX2EvolvingWebGPU + WebGL2@loaders.gl/gltf + @luma.gl/gltfSelect and decode supported compressed textures when browser, transcoder, and GPU format support permit it.
Loader-decoded feature identifiers and metadataEvolvingWebGPU + WebGL2@loaders.gl/gltfDecode supported EXT_mesh_features and EXT_structural_metadata; application visualization and queries are not automatic.
Metallic-roughness materialsAvailableWebGPU + WebGL2@luma.gl/gltfApply supported PBR textures, material factors, normals, and emissive surfaces.
Authored PBR texture slotsAvailableWebGPU + WebGL2@luma.gl/gltfPreserve 21 supported material texture slots, their color spaces, sampler semantics, and authored transforms.
Specular and index of refractionAvailableWebGPU + WebGL2@luma.gl/gltfApply authored glTF specular factors, specular textures, and physical index-of-refraction parameters.
Clearcoat and sheenAvailableWebGPU + WebGL2@luma.gl/gltfRender authored secondary clearcoat and cloth-like sheen material lobes through shared PBR shaders.
Iridescence and anisotropyAvailableWebGPU + WebGL2@luma.gl/gltfRender thin-film interference and directional anisotropic highlights through the shared PBR shader.
Transmission and volumeAvailableWebGPU + WebGL2@luma.gl/gltfShared scene renderers refract captured scene color; the standalone glTF rendering fallback remains approximate.
Chromatic dispersionAvailableWebGPU + WebGL2@luma.gl/gltfSeparate visible wavelengths when physical transmission uses authored KHR_materials_dispersion.
Authored bump mapsAvailableWebGPU + WebGL2@luma.gl/gltfApply supported EXT_materials_bump height textures through the canonical physically based shader.
Diffuse transmissionAvailableWebGPU + WebGL2@luma.gl/gltfEvaluate supported KHR_materials_diffuse_transmission factors and independently authored color textures.
Approximate volume scatteringEvolvingWebGPU + WebGL2@luma.gl/gltfApproximate the unratified KHR_materials_volume_scatter draft per surface without claiming random-walk transport.
Authored UV transformsAvailableWebGPU + WebGL2@luma.gl/gltfPreserve supported texture offset, rotation, and scale semantics.
Authored normals and tangentsEvolvingWebGPU + WebGL2@luma.gl/gltfPreserve supported vertex attributes; complete renderer-to-renderer fidelity varies.
Punctual-light parsingAvailableWebGPU + WebGL2@luma.gl/gltfParse supported authored directional, point, and spot light definitions.
Generated image-based lightingExperimentalWebGPU + WebGL2@luma.gl/experimentalGenerate compatible GGX-prefiltered specular maps, diffuse irradiance, and a split-sum BRDF lookup texture.
Shared animation clipsAvailableWebGPU + WebGL2@luma.gl/enginePlay, blend, crossfade, loop, and interpolate compatible imported tracks.
Typed animation pointersAvailableWebGPU + WebGL2@luma.gl/gltfAnimate supported KHR_animation_pointer transforms, morph weights, visibility, materials, UVs, cameras, and lights.
Existing joint-driven skinningAvailableWebGPU + WebGL2@luma.gl/shadertoolsReuse established skin shaders and automatically bind mesh-local glTF joint palettes.
Morph-target animationAvailableWebGPU + WebGL2@luma.gl/gltfAnimate POSITION, NORMAL, and TANGENT morph targets through shared glTF, engine, and retained-scene paths.
Independently animated GPU crowdsAvailableWebGPU + WebGL2@luma.gl/gltfcreateGLTFAnimatedCrowd() batches independently animated actors into one instanced draw per compatible source primitive.
Actor-specific crowd playbackAvailableWebGPU + WebGL2@luma.gl/gltfGive each actor an independent clip, phase, speed, crossfade, and root transform while reusing shared source geometry.
Backend-specific crowd joint palettesAvailableWebGPU + WebGL2@luma.gl/gltfAccess actor-specific skin palettes through WebGPU storage buffers or WebGL2 floating-point palette textures.
Native material variantsAvailableWebGPU + WebGL2@luma.gl/gltfSelect compatible authored KHR_materials_variants without replacing retained scene nodes.
Imported GPU instancingAvailableWebGPU + WebGL2@luma.gl/gltfRender authored EXT_mesh_gpu_instancing transforms through one real instanced draw per source primitive.
Imported node visibilityAvailableWebGPU + WebGL2@luma.gl/gltfApply authored KHR_node_visibility recursively to compatible descendants and punctual lights.
Source-faithful glTF and GLB exportAvailableWebGPU + WebGL2@luma.gl/gltf + @loaders.gl/gltfMap supported scene data into glTF descriptors, then delegate binary GLB container encoding to the shared GLBWriter.
Screen-space crowd level of detailAvailableWebGPU + WebGL2@luma.gl/gltfClassify independently animated actors into authored or automatically decimated mesh-detail buckets, cull offscreen/tiny actors, and submit one instanced draw per occupied source-primitive/detail group. GPU-driven indirect selection remains future work.
Global animated-crowd vertex budgetsAvailableWebGPU + WebGL2@luma.gl/gltfLimit submitted index references across all visible actor primitives, deterministically demote farther characters first, and report unsatisfied limits without hiding actors.
Khronos Meshopt compressionOpportunityWebGPU + WebGL2@luma.gl/gltfAdd real KHR_meshopt_compression release-candidate decoding; existing support covers the separate ratified EXT_meshopt_compression extension.
Portable compressed-texture negotiationOpportunityWebGPU + WebGL2@luma.gl/gltfNegotiate actual Basis/KTX2, AVIF, and WebP decoder and device capabilities without claiming unavailable fallback formats.
Legacy specular-glossiness conversionOpportunityWebGPU + WebGL2@luma.gl/gltfConvert authored KHR_materials_pbrSpecularGlossiness materials into a supported physically based rendering path.
Reference-grade material conformanceOpportunityWebGPU + WebGL2@luma.gl/gltf and @luma.gl/shadertoolsCompare authored material combinations, furnace behavior, environment filtering, and color management against reproducible reference images.
Standalone physical transmissionOpportunityWebGPU + WebGL2@luma.gl/gltf and @luma.gl/engineExtend compatible standalone glTF rendering with scene-color capture, roughness-aware refraction, and documented floating-point fallbacks.
Authored image-based and photometric lightsOpportunityWebGPU + WebGL2@luma.gl/gltfReuse existing environment and lighting resources for compatible authored EXT_lights_image_based and EXT_lights_ies assets.
High-capacity skeletal palettesOpportunityWebGPU + WebGL2@luma.gl/shadertools and @luma.gl/engineExtend ordinary mesh skinning beyond the current 64-joint uniform palette with explicit storage-buffer and texture fallbacks.
GPU-resident morph-target deformationOpportunityWebGPU + WebGL2@luma.gl/engine and @luma.gl/shadertoolsKeep authored morph bases, deltas, and actor-specific weights on the GPU instead of rewriting shared vertex data on the CPU.
Layered and additive animationOpportunityWebGPU + WebGL2@luma.gl/engineExtend the existing shared animation mixer with additive blending, target masks, events, retargeting, and optional reusable state graphs.
GPU-sampled crowd clipsOpportunityWebGPU + WebGL2@luma.gl/gltf and @luma.gl/shadertoolsSample compatible per-actor clip, phase, blend, and joint data through GPU buffers or floating-point animation textures.
Per-instance morph and material stateOpportunityWebGPU + WebGL2@luma.gl/gltfPreserve independent actor morph weights and compatible material parameters while retaining shared instanced source geometry.
Screen-prioritized crowd LODOpportunityWebGPU + WebGL2@luma.gl/gltf and @luma.gl/engineIntegrate authored vendor LOD, generated mesh simplification, screen coverage, hysteresis, and explicit global submitted-index budgets.
Progressive node and material LODOpportunityWebGPU + WebGL2@luma.gl/gltfStream compatible authored node and material levels with explicit cancellation, lazy GPU allocation, and bounded residency.
glTF-routed Gaussian splatsOpportunityWebGPU + WebGL2@luma.gl/gltf and @luma.gl/splatsDelegate authored KHR_gaussian_splatting scene primitives to the existing optional splat adapter without introducing a second renderer.
Compressed glTF asset authoringOpportunityWebGPU + WebGL2@luma.gl/gltfAdd opt-in Draco, Meshopt, and Basis/KTX2 encoding only when real external encoder implementations are available.

The ownership boundaries are intentional: @loaders.gl/gltf owns containers, asset decoding, accessor postprocessing, and GLB encoding; @luma.gl/gltf interprets the resulting assets, @luma.gl/shadertools owns shared shading, @luma.gl/engine owns generic animation, @luma.gl/experimental explores higher-level rendering, and @luma.gl/scene orchestrates retained scene objects. Reuse each capability at its existing layer rather than creating parallel implementations.

See the glTF extension support matrix, native glTF runtime behavior, materials and texture slots, and source-faithful asset interchange, or explore independently animated glTF crowds.

Declarative scenes and asset integration

FeatureStatusBackendPackageDetails
ANARI-inspired retained objectsExperimentalWebGPU + WebGL2@luma.gl/sceneManage retained cameras, geometry, materials, lights, surfaces, instances, and worlds.
Perspective and orthographic camerasExperimentalWebGPU + WebGL2@luma.gl/sceneConfigure supported camera models through the retained scene API.
Shared geometry instancesExperimentalWebGPU + WebGL2@luma.gl/sceneReuse compatible surfaces, groups, and geometry across retained instances.
Physically based scene materialsExperimentalWebGPU + WebGL2@luma.gl/sceneDescribe supported matte and physically based material parameters.
Scene light typesExperimentalWebGPU + WebGL2@luma.gl/sceneConfigure supported ambient, directional, point, and spot lights.
Switchable scene renderersExperimentalWebGPU + WebGL2@luma.gl/sceneSelect supported forward or debug views; deferred and ray-tracing renderers require WebGPU.
Retained animation playbackExperimentalWebGPU + WebGL2@luma.gl/scenePlay supported transform, material, texture-coordinate, skeletal, and morph-target animations.
Editable JSON scenesExperimentalWebGPU + WebGL2@luma.gl/sceneInspect and edit supported retained scene descriptions interactively.
Experimental OpenUSD importExperimentalWebGPU + WebGL2@luma.gl/sceneScene Playground imports supported ASCII USD and ASCII-root USDZ examples through its ANARI-inspired scene adapter.
Scene-level skeletal animationExperimentalWebGPU + WebGL2@luma.gl/sceneAutomatically evaluate imported skeletal clips and bind independent mesh-local joint palettes.
Retained morph-target animationExperimentalWebGPU + WebGL2@luma.gl/sceneUpdate supported POSITION, NORMAL, and TANGENT morph targets through retained scene playback.
Camera-reprojected scene antialiasingExperimentalWebGPU@luma.gl/sceneStabilize compatible forward and deferred raster views with persistent camera-reprojected history.

This is an ANARI-inspired proof of concept, not a claim of complete standards conformance. Explore the Scene Playground, or read about retained animation and switchable scene renderers.

GPU ray tracing and progressive rendering

FeatureStatusBackendPackageDetails
WebGPU software ray tracingExperimentalWebGPU@luma.gl/experimentalTrace supported retained scene geometry through caller-owned GPU work without hardware ray-tracing extensions.
Retained ANARI ray tracingExperimentalWebGPU@luma.gl/sceneSelect the raytrace renderer for compatible retained cameras, analytic spheres, meshes, and direct lights.
Morton-sorted scene accelerationExperimentalWebGPU@luma.gl/experimentalBuild GPU Morton-sorted top-level acceleration structures (TLAS) with bounding-volume hierarchies (BVH) over compatible objects and instances.
Transform-aware acceleration refitsExperimentalWebGPU@luma.gl/experimentalReuse retained leaf permutations and refit compatible scene hierarchies when only instance transforms change.
Triangle-level mesh accelerationExperimentalWebGPU@luma.gl/experimentalBuild and reuse GPU Morton-sorted bottom-level acceleration structures (BLAS) over supported mesh triangles.
Nearest-hit and shadow traversalExperimentalWebGPU@luma.gl/experimentalTraverse the scene hierarchy for primary intersections and bounded early-exit direct-light shadow rays.
Progressive ray accumulationExperimentalWebGPU@luma.gl/sceneAccumulate compatible direct-light samples across unchanged frames; this does not imply multi-bounce transport.
Adaptive ray-tracing resolutionExperimentalWebGPU@luma.gl/sceneAdjust internal resolution, sampled-pixel phases, and rotating shadow work toward an explicit frame budget.
Ray-traced temporal reprojectionExperimentalWebGPU@luma.gl/sceneReuse compatible retained history and reject invalid camera, depth, normal, or scene changes.
HDR ray-tracing presentationExperimentalWebGPU@luma.gl/sceneResolve and upsample supported floating-point ray-traced output to compatible presentation targets.
Advanced acceleration topologyOpportunityWebGPU@luma.gl/experimentalExtend existing Morton-sorted TLAS/BLAS hierarchies with SAH/Karras topology and richer traversal diagnostics.
Multi-bounce path tracingOpportunityWebGPU@luma.gl/experimentalExtend existing direct-light ray tracing with indirect transport, physically based bounces, and denoising.
Ray-traced animated materialsOpportunityWebGPU@luma.gl/sceneExtend supported ray tracing toward textured PBR, transmission, skeletal deformation, and animated morph targets.

Read the ANARI ray-tracing renderer and the retained rendering architecture.

Gaussian splats and captured-scene rendering

FeatureStatusBackendPackageDetails
Typed Gaussian splat columnsExperimentalWebGPU + WebGL2@luma.gl/splatsRepresent position, scale, orientation, opacity, supported colors, and row identity.
Anisotropic covarianceExperimentalWebGPU + WebGL2@luma.gl/splatsProject compatible anisotropic splats rather than reducing them to fixed point sprites.
Portable splat renderingExperimentalWebGPU + WebGL2@luma.gl/splatsSelect WebGPU storage or globally ordered WebGL2 attribute-backed rendering without mutating caller-owned source data.
Globally sorted WebGL splat runsExperimentalWebGL2@luma.gl/splatsComposite every visible row exactly once across interleaved source batches using independently owned reordered attributes.
Progressive batch streamingExperimentalWebGPU + WebGL2@luma.gl/splatsPreserve independently owned streamed source batches.
GPU projection and cullingExperimentalWebGPU@luma.gl/splatsProject visible splats and apply supported frustum, opacity, and size thresholds.
GPU depth sortingExperimentalWebGPU@luma.gl/splatsExecute supported command-graph-native global depth ordering.
Indirect splat drawingExperimentalWebGPU@luma.gl/splatsGenerate one bounded indirect draw from the visible GPU-resident set.
Segmented paged splat renderingExperimentalWebGPU@luma.gl/splatsProject sparse original source rows into bounded GPU segments and draw them in one globally sorted cross-page depth order.
Spark-calibrated RAD reconstructionExperimentalWebGPU@luma.gl/splatsProject analytic Gaussian covariance with area-preserving antialiasing and authored nonlinear coarse-level opacity.
HDR spherical-harmonic DCExperimentalWebGPU@luma.gl/splatsPreserve supported floating-point source radiance on compatible presentation targets.
Standard-dynamic-range fallbackExperimentalWebGPU + WebGL2@luma.gl/splatsApply supported display mapping when extended HDR output is unavailable.
View-dependent harmonicsExperimentalWebGPU + WebGL2@luma.gl/splatsEvaluate degree-one through degree-three spherical harmonics in reusable WebGPU execution and unclamped Float32 WebGL2 attributes.
Unclamped WebGL harmonic radianceExperimentalWebGL2@luma.gl/splatsPreserve directional highlights and negative radiance from byte-backed source colors in stable Float32 vertex attributes.
Dedicated splat pickingExperimentalWebGPU + WebGL2@luma.gl/splatsResolve stable batch, row, and semantic identities through graph-native integer picking or portable GPU passes.
Semantic splat filteringExperimentalWebGPU + WebGL2@luma.gl/splatsApply GPU-native graph class selection or portable class/predicate filtering without repacking batches.
Dynamic splat updatesExperimentalWebGPU + WebGL2@luma.gl/splatsUpdate prepared source rows in place while preserving GPU buffers and reusable execution plans.
Mixed mesh and splat renderingExperimentalWebGPU + WebGL2@luma.gl/splatsComposite depth-tested Gaussian splats between caller-owned opaque and transparent meshes.
Bounded splat residencyExperimentalWebGPU + WebGL2@luma.gl/splatsReserve upload capacity and evict prioritized, unpinned source tiles within byte, row, and chunk budgets.
Hierarchical splat refinementExperimentalWebGPU + WebGL2@luma.gl/splatsSelect frustum-culled, foveated source-page frontiers with parent fallback and bounded asynchronous loading.
Row-accurate RAD hierarchyExperimentalWebGPU + WebGL2@luma.gl/splatsPrioritize authored child rows with best-first angular refinement, coarse-node coverage, parent fallback, and sparse source-row identity.
Khronos glTF splat attributesExperimentalWebGPU + WebGL2@luma.gl/splatsRender decoded KHR_gaussian_splatting attributes, feature IDs, and externally decoded SPZ v2 content.
Camera-driven RAD page sourcesExperimentalWebGPU + WebGL2@luma.gl/splatsDemand, prioritize, cancel, and evict independently range-fetched source pages while preserving authored global row identities.
Background RAD page decodingExperimentalWebGPUGaussian Splat ViewerDecode transferable RAD ranges in bounded module workers; preserve source ownership and automatically fall back when worker startup, CSP, or dynamic imports fail.

Higher-order harmonics, semantic filtering, dedicated picking, and mixed-scene composition are available through the portable SplatRenderer and the WebGPU-only GPUSplatGraphRenderer. The graph renderer preserves its high-throughput GPU depth sorting and indirect-drawing path.

View captured scenes in the Gaussian Splat Viewer and review the supported contracts in the @luma.gl/splats reference.

Simulation and immersive presentation

FeatureStatusBackendPackageDetails
Three-dimensional fire and smokeExperimentalWebGPU@luma.gl/experimentalEvolve three-dimensional fire velocity, pressure, fuel, heat, smoke, and solid obstacles.
Spectral ocean simulationExperimentalWebGPU@luma.gl/experimentalGenerate GPU Fourier-displaced waves, normals, and compression-derived whitecaps.
Two-dimensional MLS-MPM liquidsExperimentalWebGPU@luma.gl/experimentalSimulate supported two-dimensional MLS-MPM particle and grid transfers.
Full three-dimensional particle liquidsOpportunityWebGPU@luma.gl/experimentalThe existing liquid solver is two-dimensional rather than a general three-dimensional fluid system.
Cloth and soft-body simulationOpportunityWebGPU@luma.gl/experimentalDeformable-body simulation is not part of the current framework.
WebXR frame integrationExperimentalWebGPU + WebGL2@luma.gl/experimentalDrive compatible immersive frames from WebXR session scheduling.
Immersive AR and VRExperimentalWebGPU + WebGL2@luma.gl/experimentalRender supported per-eye immersive AR and VR views with explicit viewports.
Native WebGPU XR layersExperimentalWebGPU@luma.gl/experimentalUse projection layers only when the browser, XR session, and adapter support them.
Raw AR camera texturesExperimentalWebGL2@luma.gl/experimentalBind compatible raw-camera access through the WebGL immersive path.
Advanced XR spatial featuresOpportunityWebGPU + WebGL2@luma.gl/experimentalHit testing, anchors, hand tracking, depth sensing, and WebGPU camera textures remain absent.

Try Volumetric Fire Forge, Tempest Ocean, and Fluid Foundry.