← Back to Journal
Gaussian Splatting Best Practices: Capture, Solve, Train & Art Direct

Gaussian Splatting Best Practices: Capture, Solve, Train & Art Direct

7 min read

1. Capture

Camera & settings

  • Camera: action cams (GoPro, DJI Osmo Action 6) work very well — small sensor keeps depth-of-field blur near zero, and they're easy to mount on a monopod/selfie stick for hard-to-reach angles.
  • No blur, ever — this is the #1 rule. No motion blur, no depth-of-field blur, no lens flare.
  • Shutter: fast, 1/400–1/1000s (even up to 1/800–1/1000 recommended). Faster if moving quickly.
  • Aperture: close it down as much as light allows for maximum sharpness/depth of field.
  • ISO: raise only if needed for exposure — noise is preferable to blur, never the other way around.
  • Color profile: flat/Log (D-Log M, S-Log, etc.) — never baked-in contrast. You can grade later; you can't recover clipped data.
  • Lens: avoid extreme fisheye if your camera offers a corrected/narrower FOV mode — easier for the algorithm.
  • Lighting: overcast days are ideal — no lens flare, no moving shadows. Direct sun causes shadows to shift mid-scan if the scan takes several minutes.

Movement technique

  • Translate, don't just rotate. The algorithm needs parallax (camera physically moving through space) to understand depth — standing still and spinning in place doesn't work.
  • Plan your camera path before scanning, based on where the virtual camera will actually be used later. Think of it as capturing a light field — every angle you'll want to reproduce.
  • Minimum 3 passes: eye-level, low angle pointing up, high angle pointing down. Add more orbits for detail.
  • Densely and evenly distribute camera positions through the volume — don't cluster on one plane. Aim for each point in the scene to be seen from many angles (~20 is a good rule of thumb).
  • Quality drops sharply outside your scanned camera path — if the virtual camera needs to go somewhere, you needed to physically be there.
  • Over-scan rather than under-scan. Going back to reshoot is far more costly than a few extra seconds of footage.
  • Multiple cameras (e.g. 2x synced Osmo Action 6) speed up large scans and reduce the risk of the sun/shadows moving mid-scan — useful for big spaces, not required for smaller ones.

From video to images

  • Record continuous video rather than individual stills — easier to operate one-handed on a pole, no remote shutter needed.
  • Downsample the frame rate before extracting stills — e.g. 50fps source down to ~1–5fps extracted — rather than feeding every frame to the reconstruction software. Fewer, well-chosen images process faster and often reconstruct better than a huge redundant set.
  • Export as a full-resolution JPEG sequence at max quality.
  • Review extracted images immediately for fingers, lens obstructions, or missed spots before leaving the location.

2. Solving (Structure-from-Motion) — RealityScan / Reality Capture

Alignment settings (from Jörg's screenshot)

These are tuned as "big scene" settings — used successfully on a ~3,000 image dataset, alignment took 1–2 hours. No GPS/camera priors used (georeferencing off), so this is a purely photo-based reconstruction, not GPS-anchored.

Workflow

  1. Drag in all extracted images, set alignment quality to High.
  1. Run alignment — large image sets (thousands of photos) can take 1–2+ hours.
  1. Visually inspect the camera position path after alignment — a clean, expected path matching where you actually walked = good scan. Stray cameras floating outside the space, below the floor, or clustered oddly = bad alignment, needs redoing with different settings.
  1. Export three things into a dedicated folder for training: registration, sparse point cloud, and XMP files (one per image).

3. Training

Option A — PostShot (paid, ~€17/month for PLY export; free tier = training/viewing only)

  • Import images + XMP files together.
  • Use all images, enable photometric compensation (critical if exposure drifted during the shot — prevents floaters).
  • Camera poses: set to import (already solved by RealityScan).
  • Splat3 profile. Start around 1–3M max splats, scale to 6M if needed.
  • ~500,000 training steps target, but watch training live and stop once quality plateaus (one real scan stopped at ~162,000 steps with no further gains).
  • Typical training time: 1–2 hours for a room-sized scene.

Option B — LichtFeld Studio (free, open-source, GPL-3.0)

  • By Janusch Patas (MrNeRF). Unifies training, editing, and export in one native app — no more stitching COLMAP + trainer + viewer separately.
  • Requires an NVIDIA GPU, compute capability 7.5+ (RTX 20-series or newer, GTX 16-series works), driver 570+/CUDA 12.8+. AMD/Intel not supported. First install can be a large download (~20GB reported) — budget time.
  • Drag your RealityScan/COLMAP dataset folder in directly to start training.
  • Live training view with pause/resume from checkpoints; trains meaningfully faster than reference implementations (~2.4x claimed).
  • Built-in cleanup tools: brush, lasso, polygon selection to remove floaters natively, no separate app needed.
  • Export as PLY (what Octane needs) or SOG, plus a standalone HTML viewer for easy sharing.
  • Plugin ecosystem available: 360-camera capture pipeline, remote training monitoring, Python/MCP automation.
  • Free alternative worth knowing: Brush (open-source, browser-based) — less explored but no GPU-vendor lock-in.

4. Cleanup (both pipelines)

  • Toggle a wireframe/outline view to spot floater artifacts more easily.
  • Select and delete individual or box-selected splats (only affects currently visible splats, not occluded ones).
  • Export the cleaned result as PLY once satisfied.

5. Art Direction — Octane (Cinema 4D or Blender)

Octane added native Gaussian Splat support in 2026.1 (same core engine across C4D, Blender, 3ds Max, Houdini — .ply import).

Setup

  • Create an Octane Gaussian Splat object, point it at your cleaned PLY.
  • Splats render in Octane's Live Viewer, not the standard editor viewport (in C4D) — in Blender, enable Octane's geometry-node compatibility on the imported object so it's treated as renderable geometry, not a raw point cloud.
  • Add an Octane HDRI/environment set to black — splat scenes assume a black background; skipping this causes gray wash-out and white speckle/ember artifacts.
  • Scale check against a reference object (e.g. a human-scale mannequin) before setting up physical camera values — the splat algorithm doesn't inherently know real-world scale, and accurate DOF/exposure depends on it.

Current known limitations (all Octane hosts)

  • Splats always render on top of volumes (can't put fog correctly behind them).
  • Can't receive shadows from regular scene geometry (but regular geometry can receive shadows cast by splats).
  • Render layers and network rendering not fully supported yet.

Camera (physical lens simulation)

  • Universal/Octane camera type with real focal length + f-stop for accurate depth of field.
  • Auto-focus / click-to-focus on a point in the splat scene.
  • Shape bokeh via aperture edges/blade count — smooth vs. harsh discs.
  • Vignetting pushed up creates a swirly "cat's eye" bokeh at frame edges.
  • Aberration → astigmatism at small negative values for a vintage "Helios lens" swirl look.
  • Field curvature for extra character.
  • Highlight compression to recover detail in blown-out areas.
  • Film LUTs (e.g. Fuji Eterna) plus bloom/glare tuned to a bright cutoff so only true highlights glow — big difference between "flat" and "cinematic."

Lighting & relighting

  • Splats have baked-in real-world lighting from capture. You can strip default lighting and relight (right-click splat object → Octane tag → set lighting mode to Power and Color, then add area/sky lights), but results are inconsistent — surfaces lit from a different angle than captured often look visibly wrong. Works better as a stylistic effect than for accurate relighting.
  • To recreate real sun/shadow interaction with added objects: build a fake directional sun + shadow-catcher geometry (e.g. a large cube), since the real sun is far too bright to capture directly in a photo-based scan.
  • Non-splat objects (props, cars, spheres) placed into the scene pick up ambient light from the splats like an in-3D HDRI automatically — but need the fake sun setup to cast/receive correct shadows.
  • For cleaner flat surfaces (e.g. floors) than raw splats give: re-derive an actual mesh via photogrammetry from the same photo set, delete the floor splats, and swap in the mesh.
  • Octane sky → Medium settings can add volumetric fog/haze (scatter medium, density, phase) for atmosphere.