WallGS / User documentation

Bring splat scans
into your world.

A practical guide to importing Gaussian splats, finding the right render balance, and turning scans into spaces you can walk through.

From file to viewport in a few steps.

  1. 1
    Enable WallGS

    In Unreal, open Edit → Plugins, find WallGS, enable it, and restart the editor if Unreal asks.

  2. 2
    Import your file

    Drag a .ply or .sog file into the Content Browser, or use Import. WallGS creates a reusable Gaussian Splat asset.

  3. 3
    Add it to the level

    Drag the new asset from the Content Browser into the viewport. It becomes a WallGS actor that you can move, rotate, and scale like any other Unreal actor.

Tip

For PLY, use a standard binary little-endian 3D Gaussian Splat file. For SOG, WallGS supports the current v2 format.

Anti-aliasing

Unreal's TSR anti-aliasing can introduce motion-blur-like smearing on Gaussian splats. For the clearest result, WallGS highly recommends changing Project Settings → Engine → Rendering → Default Settings → Anti-Aliasing Method to FXAA.

Compatibility

On Win64, Forward Shading is not currently supported. Use Unreal's deferred rendering path. Android automatically uses WallGS's Vulkan mobile path.

Your splat actor.

After placing an asset, select the actor and use its Gaussian Splat component in the Details panel. Transform controls work as they do for every Unreal actor. The controls below change how the selected asset is displayed.

Splat Asset

The Gaussian Splat asset this actor displays. Swap it to reuse the same position and settings with a different scan.

Splat Scale

A separate size multiplier for the splat itself. Keep it at 1.0 for the imported size; increase or decrease it when you need a fast visual fit.

Enabled

Shows or hides the splat actor without removing it from the level. Useful for quick comparisons.

Make the scan look right.

WallGS works with Unreal’s normal post-processing pipeline. Use a Post Process Volume for exposure, color grading, and tone mapping; use these controls for view-dependent splat appearance.

SH Degree 0–3

Controls view-dependent detail, such as subtle highlights that move as you move the camera. 3 keeps the most information. Lower it to reduce work or to make the look more neutral.

SH Strength 0–2

Sets how strongly view-dependent color is visible. Reduce it if reflections or changing colors feel distracting; set it to 0 for a steadier, diffuse look.

Post process

For brighter or darker splats, color grading, contrast, gamma, or tone mapping, add and configure an Unreal Post Process Volume. This gives WallGS the same scene-wide final-image controls as the rest of your level.

Spatial LOD, without the guesswork.

Spatial LOD is WallGS’s general-purpose optimization path. It keeps nearby areas at full quality and smoothly reduces distant splats according to a simple distance profile.

Spatial LOD Levels

Each level pairs a distance with a splat-reduction percentage. WallGS blends between levels instead of switching abruptly.

Quality-first defaults

The stock profile keeps full density through 3 m, then uses 25%, 40%, and 55% reduction at 6 m, 10 m, and 18 m.

Preview Spatial LOD Colors

Color-codes the effective distance reduction so you can see where each part of the scene sits in the profile. Toggle it at runtime from Blueprint for interactive demos.

Rendering Backend

Auto selects the best supported Win64 geometry path and safely falls back to the vertex-shader path. Android always uses the Vulkan mobile vertex path.

VR controls

PCVR and standalone-headset controls now live together in the dedicated VR group. Continue below for recommended setup and an explanation of how the different budgets interact.

Full-quality splats, tuned for two eyes.

PCVR is a supported WallGS target. The renderer shares stereo work automatically, selects the best available Win64 geometry path, and provides spatial controls that preserve nearby and central detail while reducing less useful work.

Instanced StereoShared-eye sortingMesh ShaderFoveated splatsDistance LOD

Recommended PCVR setup

  1. 1
    Use Deferred Rendering

    WallGS does not currently support Forward Shading on Win64. Keep Unreal’s deferred renderer enabled.

  2. 2
    Enable Instanced Stereo

    In Project Settings, enable Instanced Stereo for your desktop VR project. WallGS automatically shares compatible sorting work between both eyes.

  3. 3
    Leave Rendering Backend on Auto

    Auto uses the Mesh Shader path when the active RHI and GPU support it, then safely falls back to the Vertex Shader path when they do not.

  4. 4
    Start with the defaults

    Use the default Spatial LOD profile, Balanced VR Edge Optimization, and VR Splat Budget Override 0. Tune only after testing in-headset.

VR settingWhat it doesHow to use it
VR Edge Optimization

Combines native fixed foveation where the XR runtime supports it with WallGS peripheral splat reduction.

Start with Balanced. Light and Moderate retain more edge detail; Performance saves the most work. Off disables WallGS edge thinning.

VR Splat Budget Override

Places a spatially distributed cap on stereo VR rendering without changing non-VR views.

Keep it at 0 to use the full cooked asset. A positive value applies a VR-only ceiling.

Spatial LOD Levels

Keeps full density around the viewer, then progressively reduces distant splats across VR and non-VR views.

Increase a distance when nearby detail simplifies too early, or lower its reduction percentage to retain more splats.

Preview Spatial LOD Colors

Color-codes the effective distance LOD: green is full density, yellow is approximately half, and red is approximately quarter density.

Use it while tuning, then turn it off before shipping.

Automatic

Share Sort Between VR Eyes is always enabled and intentionally hidden. There is nothing users need to configure.

One asset workflow, a dedicated mobile renderer.

WallGS supports Android phones and standalone OpenXR headsets through its Vulkan mobile rendering path. You import and place the same Gaussian Splat assets used on Windows; WallGS selects the Android renderer automatically.

Renderer

Android Vulkan

OpenGL ES is not a WallGS backend. The desktop Rendering Backend setting is ignored on Android.

Standalone XR

Meta Quest

Quest 2, Quest Pro, Quest 3, and Quest 3S are supported through OpenXR.

Stereo

Mobile Multi-View

Supported and recommended for standalone VR. Sequential stereo is also supported.

First Android package

  1. 1
    Use the mobile Vulkan path

    Enable Support Vulkan and disable Vulkan Desktop/SM5 for the Android target.

  2. 2
    Enable Mobile Multi-View for VR

    This is the recommended stereo path for standalone headsets and ensures both eyes use the intended mobile rendering configuration.

  3. 3
    Choose the packaged asset size

    Double-click the Gaussian Splat asset and set Android Max Splat Override. The default is 2 million splats.

  4. 4
    Package Android ASTC

    Cook and test on the target device. Performance and thermals must be judged on-device rather than from the Windows viewport.

Cook time / asset

Android Max Splat Override

Controls how many spatially distributed splats are placed in every Android package, including phone and standalone VR builds. 0 packages the complete source asset. Changing it requires cooking and packaging again.

Runtime / stereo only

VR Splat Budget Override

Optionally lowers the runtime ceiling only in VR. It works inside the cooked Android maximum and does not change non-VR views.

Android phones

Android Max Splat Override also applies to non-VR Android apps. The controls inside the VR group activate only for stereo VR views.

Make the scan usable.

Gaussian splats are visual data. WallGS can turn that data into a Static Mesh with complex collision, so your scan can support traces, placement, physics queries, and player movement.

One-click collision generation
  1. 1
    Select the splat actor

    Choose the WallGS actor in the viewport or Outliner.

  2. 2
    Choose a preset

    In Collision Generation, choose Indoor, Outdoor, or Object. Begin with the preset that best matches the scan.

  3. 3
    Generate Collision

    Press Generate Collision. WallGS creates a Static Mesh asset and attaches it to the actor. You can find the generated asset beside the source splat (or under /Game/WallGS_Collision when needed).

Indoor

The balanced default for rooms, corridors, and architectural scans. Uses 10 cm voxels to preserve walls and walkable surfaces.

Outdoor

For large environments. Uses a coarser 25 cm grid to cover more ground with a lighter mesh.

Object

For props and smaller captures. Uses a fine 5 cm grid to hold onto more local shape.

Focus it

Place one or more WallGS Collision Volume actors and resize their box components before generating collision. When volumes exist, WallGS generates only inside those boxes—ideal for limiting a large scan to the playable space.

When a preset needs help.

Changing any individual collision setting switches the preset to Custom. Make one small adjustment at a time, regenerate the mesh, and test the result in the viewport.

SettingWhat it changesWhen to adjust
Voxel Size

The size of each block used to build the collision mesh.

Lower for more detail; raise for faster, simpler collision.

Splat Radius Multiplier

How far each splat contributes to the collision shape.

Raise it to close thin gaps; lower it if surfaces become too thick.

Minimum Opacity

Ignores splats that are too transparent.

Raise it to remove floating noise; lower it when genuine surfaces are missing.

Density Threshold

How much splat presence is needed before a voxel becomes solid.

Raise it to make collision more selective; lower it to fill weak or sparse scan areas.

Gap Fill Passes

How many cleanup passes try to bridge small holes.

Increase when surfaces are broken; reduce if gaps are being closed incorrectly.

Planar Cleanup Passes

Extra repair for broad, flat surfaces such as floors.

Increase for patchy floors; lower it if unwanted bridges appear.

Minimum Component Voxels

Removes disconnected pieces below this size.

Raise it to remove noise; lower it to keep small valid objects.

Max Voxels

A safety limit on the collision generation grid.

Raise it only for very large or very fine captures; use volumes or larger voxels first.

A few good defaults.

My scan is too heavy.

Increase the Spatial LOD reductions or bring their transition distances closer. For stereo VR, you can also use VR Splat Budget Override.

My collision is too rough.

Try the Object preset for a small asset, or reduce Voxel Size one step at a time. Smaller voxels take longer and create more geometry.

My floor has holes.

Use the Indoor preset first. If needed, lower Density Threshold slightly or add a Planar Cleanup Pass, then regenerate.

I only need collision in one room.

Add and scale a WallGS Collision Volume around that room before generating. It keeps the result focused and avoids processing the whole scan.

Is VR supported?

Yes. PCVR and standalone Android OpenXR are supported. WallGS includes automatic shared-eye sorting, foveated splat reduction, a spatial VR budget, and distance-based LOD.

Why does Android still look simplified?

Check the asset’s Android Max Splat Override, the Spatial LOD profile, and—when testing in stereo—the VR Splat Budget Override and VR Edge Optimization.

Why did my Android asset limit not change?

Android Max Splat Override is a cook-time setting. Save the asset and create a fresh Android package after changing it.

Only one eye renders on Quest.

Enable Mobile Multi-View in Project Settings, rebuild the Android package, and confirm the project is using the Vulkan mobile path.

Edge resolution is unchanged.

Native fixed-foveation resolution depends on the active XR runtime and plugin. WallGS peripheral splat reduction can still operate through VR Edge Optimization.