Gaussian Splatting in Unity

This guide shows how to load Gaussian Splatting models from Splatware into Unity using the UnityGaussianSplatting package by Aras Pranckevičius.

You’ll download a .ply model from Splatware, set up a Unity sample project, and create a reusable GaussianSplat asset that renders in real time.

Requirements

  • A trained Splatware project that you can export as .PLY.
  • Unity from 2022.3 onwards (or newer LTS versions).
  • The open-source UnityGaussianSplatting project from GitHub.
  • A GPU and platform that support D3D12, Vulkan or Metal (DX11/OpenGL are not supported).

Setting Up Unity

1. Download your PLY from Splatware

On the /create page, open your finished project and export it as PLY. This gives you a local .ply file compatible with the UnityGaussianSplatting importer.

Download Gaussian Splat PLY from Splatware

2. Install Unity

Install Unity using Unity Hub. The sample projects in UnityGaussianSplatting are built around the 2022.3 stream, but newer versions typically work as well.

Download Unity →

Note: The sample scenes require DX12 or Vulkan on Windows. DX11 is not supported.

Installing UnityGaussianSplatting

1. Download the project

The Unity integration is provided by the open-source UnityGaussianSplatting repository:

Open UnityGaussianSplatting Releases →

Download the latest release ZIP and unzip it. You will get several folders, including:

  • docs/ – additional documentation
  • package/ – UPM package
  • projects/ – sample Unity projects

2. Choose a sample project

Inside the projects/ folder you will find three ready-to-use Unity projects:

ProjectPipelineUse Case
GaussianExampleBuilt-in Render PipelineSimplest starting point.
GaussianExample-HDRPHigh Definition Render PipelineHigh-end lighting & cinematic scenes.
GaussianExample-URPUniversal Render PipelineFlexible, cross-platform rendering.

You can open a project in two ways:

  • Use Unity Hub "Add project from disk" and point it to e.g. projects/GaussianExample, or
  • Open the scene file directly by double-clicking projects/GaussianExample/Assets/GSTestScene.unity – this also launches Unity.
Unity GaussianExample project selection

Creating a Gaussian Splat Asset

Once the sample project is open in Unity, you can convert your .ply file into a native GaussianSplat asset.

  1. Open the Unity editor with GSTestScene (or your own scene) loaded.
  2. In the top menu bar, go to Tools → Gaussian Splats → Create Gaussian Splat Asset.
  3. In the popup window, set Input PLY/SPZ File to the .ply downloaded from Splatware.
  4. Choose a Quality preset. For Splatware models, Very High is recommended initially.
  5. Pick an output folder (by default, assets are created under Assets/GaussianAssets).
  6. Click Create Asset.
Unity Gaussian Splats Tools menu

The importer supports:

  • Original 3D Gaussian Splatting PLY format from the paper.
  • SPZ format from Scaniverse.
  • Optional camera metadata via a cameras.json file next to the input.

Even at "Very Low" quality, compression remains surprisingly usable and dramatically reduces size.

Assigning the Asset in a Scene

After the asset is created, you need to attach it to a GaussianSplatRenderer in the scene.

  1. In the Hierarchy, select the game object that has the GaussianSplatRenderer script (in the sample scene, this is usually named something like GaussianSplats).
  2. In the Inspector, find the Asset field on the GaussianSplatRenderer component.
  3. Drag your newly created GaussianSplat asset from Assets/GaussianAssets/ into this field.
  4. Press Play — the Gaussian Splat scene should render in the Game view.
Assign GaussianSplat asset in Unity inspector

The object transform (position, rotation, scale) is applied to the whole splat scene, so you can move or rotate it like any other Unity object.

UnityGaussianSplatting Capabilities

The UnityGaussianSplatting project is a feature-rich playground for real-time Gaussian Splat rendering in Unity.

CapabilityDescription
Real-time renderingHigh performance splat rendering using compute shaders and GPU sorting, based on the original 3DGS paper.
Multiple pipelinesSupports Built-in, URP and HDRP via separate example projects and integration docs.
Compression optionsSeveral quality presets from Very Low to Very High, trading size vs. detail.
Camera integrationOptional cameras.json support and tools for previewing reference camera paths.
VR support (partial)Some desktop VR headsets are reported to work (e.g. certain PC VR devices), but mobile/standalone support is mixed.
Performance toolingSample scenes include debug visualizations, counters and performance comparison setups.

The author notes that this is a "toy" viewer and not actively developed for production features, but it is very capable for experimentation, demos and research.

Platform Support & Limitations

  • Known to work on:
    • Windows (D3D12 or Vulkan)
    • macOS (Metal)
    • Linux (Vulkan)
  • DX11, OpenGL and OpenGL ES are not supported.
  • WebGPU is not yet viable in current builds.
  • Mobile platforms (iOS / Android) are hit-or-miss and often unsupported.
  • Some VR headsets work; others may have issues depending on the runtime.

For up-to-date details, always check the repository issues and README.

Licensing Notes & Resources

UnityGaussianSplatting License

The UnityGaussianSplatting repository itself is licensed under the MIT license, which allows free use, modification and redistribution.

Source of Your PLY Files

While the Unity viewer code is MIT, you must still respect the licensing and terms of the models and training pipelines you use:

  • Gaussian Splat files generated by Splatware are subject to Splatware’s terms of use.
  • Original research implementations and datasets may have additional commercial restrictions (e.g. some INRIA licenses).

For more details and technical write-ups, see: