From file to viewport in a few steps.
- 1Enable WallGS
In Unreal, open Edit → Plugins, find WallGS, enable it, and restart the editor if Unreal asks.
- 2Import your file
Drag a
.plyor.sogfile into the Content Browser, or use Import. WallGS creates a reusable Gaussian Splat asset. - 3Add 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.
For PLY, use a standard binary little-endian 3D Gaussian Splat file. For SOG, WallGS supports the current v2 format.
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.
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.
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.
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.
Recommended PCVR setup
- 1Use Deferred Rendering
WallGS does not currently support Forward Shading on Win64. Keep Unreal’s deferred renderer enabled.
- 2Enable Instanced Stereo
In Project Settings, enable Instanced Stereo for your desktop VR project. WallGS automatically shares compatible sorting work between both eyes.
- 3Leave 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.
- 4Start 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.
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.
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.
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.
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.
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.
Android Vulkan
OpenGL ES is not a WallGS backend. The desktop Rendering Backend setting is ignored on Android.
Meta Quest
Quest 2, Quest Pro, Quest 3, and Quest 3S are supported through OpenXR.
Mobile Multi-View
Supported and recommended for standalone VR. Sequential stereo is also supported.
First Android package
- 1Use the mobile Vulkan path
Enable Support Vulkan and disable Vulkan Desktop/SM5 for the Android target.
- 2Enable Mobile Multi-View for VR
This is the recommended stereo path for standalone headsets and ensures both eyes use the intended mobile rendering configuration.
- 3Choose the packaged asset size
Double-click the Gaussian Splat asset and set Android Max Splat Override. The default is 2 million splats.
- 4Package Android ASTC
Cook and test on the target device. Performance and thermals must be judged on-device rather than from the Windows viewport.
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.
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 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.
- 1Select the splat actor
Choose the WallGS actor in the viewport or Outliner.
- 2Choose a preset
In Collision Generation, choose Indoor, Outdoor, or Object. Begin with the preset that best matches the scan.
- 3Generate 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_Collisionwhen needed).
The balanced default for rooms, corridors, and architectural scans. Uses 10 cm voxels to preserve walls and walkable surfaces.
For large environments. Uses a coarser 25 cm grid to cover more ground with a lighter mesh.
For props and smaller captures. Uses a fine 5 cm grid to hold onto more local shape.
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.
The size of each block used to build the collision mesh.
Lower for more detail; raise for faster, simpler collision.
How far each splat contributes to the collision shape.
Raise it to close thin gaps; lower it if surfaces become too thick.
Ignores splats that are too transparent.
Raise it to remove floating noise; lower it when genuine surfaces are missing.
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.
How many cleanup passes try to bridge small holes.
Increase when surfaces are broken; reduce if gaps are being closed incorrectly.
Extra repair for broad, flat surfaces such as floors.
Increase for patchy floors; lower it if unwanted bridges appear.
Removes disconnected pieces below this size.
Raise it to remove noise; lower it to keep small valid objects.
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.