Gaussian Splatting Depth of Field viewer

This demo is part of a thesis project for the Bachelor of Computer Science and Engineering at Delft University of Technology.

Explore 3D Gaussian splat scenes in the browser. Move through the scene with first-person controls, tune depth-of-field and transparency, load your own splat files, and share views via URL.

Navigation

  • Click the scene to lock the pointer and look around with the mouse.
  • Esc unlocks the pointer.
  • W / S or ↑ / ↓ — move forward / backward.
  • A / D or ← / → — strafe left / right.
  • Space or E — move up.
  • Q — move down.

Settings panel

Use the control panel on the right to adjust rendering and scene options. Settings marked with URL keys can be encoded in a share link.

Focal Plane Depth

Range: 0–100 · Default: 20 · URL: focal
Distance along the view ray where the scene is in focus. Lower values pull focus closer; higher values push it farther away.

Aperture Size

Range: 0–100 · Default: 0 · URL: aperture
Strength of the depth-of-field blur. At 0 the image is sharp; higher values blur splats farther from the focal plane.

Min Alpha (Tails)

Range: 0–50 · Default: 2 · URL: minPixel
Pixel-level alpha cutoff applied by the renderer. Raises the minimum visible opacity to hide faint splat tails and noise.

Min Alpha (Gaussian)

Range: 0–50 · Default: 0 · URL: minGaussian
Per-Gaussian alpha cutoff in the custom vertex shader, applied before splats are drawn. Useful for trimming very faint Gaussians at the source.

Debug

Default: off · URL: debug (1 / 0)
Enables debug visualization of the depth of field effect. White Gaussians are in focus, then from orange to blue it gets more out of focus.

Scene

Model

URL: scene (preset id, e.g. vegetables, apple-scene, les-tanins, tugboat)
Choose a built-in splat preset or an uploaded file. Switching models reloads the scene and resets transform values to that model’s defaults.

Upload file

Load a local splat file. Supported formats: .ply, .spz, .splat, .ksplat, .rad. The file appears in the Model list as “Uploaded (filename)”.

Rotation X / Y / Z

Range: −π to π radians · Default: preset-specific
Rotate the entire splat scene around each axis.

Scale

Range: 0.1–20 · Default: preset-specific
Uniform scale applied to the splat root.

Shift X / Y / Z

Range: −50 to 50 · Default: preset-specific
Translate the splat scene in world space.

Camera

Viewfinder Enabled

This marks the region used for image capture. (500×500 px square)

Copy settings link

Copies a URL to the clipboard with the current depth-of-field settings, camera position and rotation, and scene preset (when not the default). Open the link to restore that view.

Camera URL parameters: camX, camY, camZ, camRx, camRy, camRz

Capture and download image

Renders the current frame and downloads the center 500×500 px region as a PNG.

Credits

Vegetables — “Vegetables HQ” by Simon Bethke (LichtFeld Studio). Source · CC BY 4.0

Les Tanins — “LES TANINS – EXPERIMENT” by Stéphane Agullo. Source · CC BY-NC 4.0

Tugboat — “Tugboat Bat engine room (XGRIDS PortalCam)” by Paolo Tosolini. Source · CC BY 4.0