Metal Viewer Relights Gaussian Splatting Reflections in Real Time on iPhone

A real-time relightable 3D Gaussian Splatting on Apple platforms, in Swift + Metal.

A real-time relightable 3D Gaussian Splatting on Apple platforms, in Swift + Metal.

Michael Rubloff

Michael Rubloff

Michael is the Founder and Managing Editor of Radiancefields.com

Metal Gaussian Splatting

Daisuke Majima has built a Metal viewer that strips baked in lighting from a captured splat and re-lights it in real time on an iPhone, swapping or rotating an HDR environment map while the object's specular reflections and the surrounding skybox track the change. The project, MetalGaussianSplatRelighting, runs the relightable model Ref-Gaussian on top of the open source MetalSplatter renderer, with split sum image based lighting carried over from Unreal Engine 4's approach.

A relightable representation stores material instead of color, per splat. For instance, an albedo, a surface normal, a roughness value, and a reflectance term, and recomputes the shaded color on the fly for whatever environment light is present. Ref-Gaussian is the decomposition that learns those per splat materials. This viewer is the runtime that consumes them on Apple silicon.

The shading path is deferred. Because splats are translucent and overlap, shading each one individually and compositing afterward lets neighboring normals interfere and produces visible noise, so the renderer first accumulates each splat's material into a screen space G-buffer held in Metal tile memory, averages there, and shades once per pixel after the normals settle. The environment itself is held as an HDR equirectangular map and reduced ahead of time into the two textures split sum needs. An irradiance map sampled along the normal for the diffuse term and a roughness mipped prefiltered map sampled along the reflection direction for the specular term, plus a BRDF lookup table. At runtime relighting is two texture lookups rather than a per-pixel integral, which is what makes it viable on a phone.

Earlier relightable splat work has appeared on radiancefields.com, including a Houdini-based proof of concept and a diffusion based approach. Majima's stated next step is to drive the lighting from ARKit's environment probe, lighting a placed object with the actual light of the room around it. The code, demo, and full implementation notes are on GitHub, building on MetalSplatter by Sean Cier (MIT) and Ref-Gaussian, with HDRIs from Poly Haven.

Thumbnail for Gaussian Splatting News episode 12

11:38

Watch · New every Monday

Splats Come to Fortnite, Nike Shoots in 4D, Splats on a Nintendo 3DS

Episode 12 · Nov 9, 2026

Epic’s UEFN 43.00 brings Gaussian splats into the Unreal Editor for Fortnite, importing PLY and SPZ files that render on every platform UEFN supports, mobile included.

Featured

Recents

Artwork

Do Baskets Dream Enters BurnerSphere by Day and Night

Do Baskets Dream of Shores or Sea, seven Vietnamese basket boats adrift in lanterns at Burning Man 2026, is in BurnerSphere as day and night Gaussian splats.

Michael Rubloff

Nov 10, 2026

Artwork

Do Baskets Dream Enters BurnerSphere by Day and Night

Do Baskets Dream of Shores or Sea, seven Vietnamese basket boats adrift in lanterns at Burning Man 2026, is in BurnerSphere as day and night Gaussian splats.

Michael Rubloff

Platforms

Blender 5.3 Ships With Native Gaussian Splat Support

Blender 5.3 adds native 3D Gaussian splat import from PLY, SPZ, USD and glTF, with rendering in Workbench, EEVEE and Cycles. Splat export is not yet supported.

Michael Rubloff

Nov 10, 2026

Platforms

Blender 5.3 Ships With Native Gaussian Splat Support

Blender 5.3 adds native 3D Gaussian splat import from PLY, SPZ, USD and glTF, with rendering in Workbench, EEVEE and Cycles. Splat export is not yet supported.

Michael Rubloff

Platforms

Niantic Spatial Makes Splat Objects Movable in Simulation

Niantic Spatial object interaction, a scene variation beta, separates movable objects from Gaussian splat scenes with collision data and estimated physics.

Michael Rubloff

Nov 10, 2026

Platforms

Niantic Spatial Makes Splat Objects Movable in Simulation

Niantic Spatial object interaction, a scene variation beta, separates movable objects from Gaussian splat scenes with collision data and estimated physics.

Michael Rubloff

Platforms

LCC Studio V2.7.0 Exports Fusion Results to USD and 3D Tiles

XGRIDS LCC Studio V2.7.0 exports Map Fusion, Aerial-Ground Map Fusion and Aerial Reconstruction results as USD and 3D Tiles, and drops the 3D Tiles v1 profile.

Michael Rubloff

Nov 10, 2026

Platforms

LCC Studio V2.7.0 Exports Fusion Results to USD and 3D Tiles

XGRIDS LCC Studio V2.7.0 exports Map Fusion, Aerial-Ground Map Fusion and Aerial Reconstruction results as USD and 3D Tiles, and drops the 3D Tiles v1 profile.

Michael Rubloff

Michael Rubloff

Written by Michael Rubloff

Michael is the Founder and Managing Editor of Radiancefields.com

More from Michael Rubloff

More from Michael Rubloff

Artwork

Do Baskets Dream Enters BurnerSphere by Day and Night

Do Baskets Dream of Shores or Sea, seven Vietnamese basket boats adrift in lanterns at Burning Man 2026, is in BurnerSphere as day and night Gaussian splats.

Michael Rubloff

Nov 10, 2026

Burning Man

Artwork

Do Baskets Dream Enters BurnerSphere by Day and Night

Michael Rubloff

Nov 10, 2026

Burning Man

Artwork

Do Baskets Dream Enters BurnerSphere by Day and Night

Do Baskets Dream of Shores or Sea, seven Vietnamese basket boats adrift in lanterns at Burning Man 2026, is in BurnerSphere as day and night Gaussian splats.

Michael Rubloff

Nov 10, 2026

Burning Man

Platforms

Blender 5.3 Ships With Native Gaussian Splat Support

Blender 5.3 adds native 3D Gaussian splat import from PLY, SPZ, USD and glTF, with rendering in Workbench, EEVEE and Cycles. Splat export is not yet supported.

Michael Rubloff

Nov 10, 2026

Blender 5.3 gaussian splatting

Platforms

Blender 5.3 Ships With Native Gaussian Splat Support

Michael Rubloff

Nov 10, 2026

Blender 5.3 gaussian splatting

Platforms

Blender 5.3 Ships With Native Gaussian Splat Support

Blender 5.3 adds native 3D Gaussian splat import from PLY, SPZ, USD and glTF, with rendering in Workbench, EEVEE and Cycles. Splat export is not yet supported.

Michael Rubloff

Nov 10, 2026

Blender 5.3 gaussian splatting

Platforms

Niantic Spatial Makes Splat Objects Movable in Simulation

Niantic Spatial object interaction, a scene variation beta, separates movable objects from Gaussian splat scenes with collision data and estimated physics.

Michael Rubloff

Nov 10, 2026

Niantic Spatial

Platforms

Niantic Spatial Makes Splat Objects Movable in Simulation

Michael Rubloff

Nov 10, 2026

Niantic Spatial

Platforms

Niantic Spatial Makes Splat Objects Movable in Simulation

Niantic Spatial object interaction, a scene variation beta, separates movable objects from Gaussian splat scenes with collision data and estimated physics.

Michael Rubloff

Nov 10, 2026

Niantic Spatial

New to Gaussian Splatting? Start here

Radiance fields, explained from the ground up: what a Gaussian splat is, how to capture one, and which tools and gear to start with.

Newsletter

Keep up with the field.

New research, tools and captures from the Radiance Fields newsroom, in your inbox. Free, no spam.

Gaussian Splatting News on YouTube

The week in radiance fields, every Monday.

Gaussian Splatting News on YouTube

The week in radiance fields, every Monday.

Gaussian Splatting News on YouTube

The week in radiance fields, every Monday.

Gaussian Splatting News on YouTube

The week in radiance fields, every Monday.