How to Create LOD (Level of Detail) for Your Splat
This guide explains how to create a LOD of your Splat using the one-click feature in Arrival.Space.
If you have individual .ply files or want finer control over LOD settings, check out the Manual LOD Creation Guide (CLI) for an alternative approach using the splat-transform command-line tool.
This optimzation is not needed for LCC2, because it is already optimized. But the Settings listed in Section Streaming Settings can also be applied to the LCC2 optimization.
TL;DR
- Upload your Splat file (
.ply,.compressed.ply,.sog, or.lccas zip) - Click Generate LOD in the Content List Detail View
- Tune your LOD settings (presets, distances/multipliers)
- Generate a Collision
1. Upload Your Splat File
Before generating LOD, you need to upload your splat asset to Arrival.Space. Supported formats:
| Format | How to Upload |
|---|---|
.ply | Upload directly |
.compressed.ply | Upload directly |
.sog | Upload directly |
.lcc / .zip | Must be zipped together with its companion files (.lci, .bin files) - detailed information can be found in section Upload LCC to Arrival.Space. |
meta.json / .zip | If you created your LOD manually using the CLI (see Manual LOD Creation Guide), upload your LOD output folder as a zip file containing the lod-meta.json and all chunk files. |
For valid example files, check out the XGRIDS Sample Data — all samples are provided as ready-to-upload zip files.
2. Generate LOD
Once you have uploaded your asset and created a collision, you will find the Optimize for Streaming button below your asset information 1. Clicking this button opens a submenu 2, where you can configure the following settings:
- Detail Levels:
Defines how many Levels of Detail should be generated. The amount of the levels are automatically set for LCC splats. - Gaussians per File:
Specifies the approximate number of Gaussians each chunk should contain. This value is an approximation — the actual count may vary slightly. - Chunk Extent:
Specifies the spatial size (in meters) of a chunk. This should be adjusted based on the scale of your scanned environment. - LOD Engine:
Choose between SplatLOD and NanoGS.- SplatLOD uses a uniform Level-of-Detail (LOD) approach, where splats are distributed evenly across multiple detail levels using a fast C++ processing pipeline. This makes it particularly well suited for large-scale scenes and datasets with significant transparency, providing efficient streaming and stable rendering performance while maintaining good visual quality. It is faster than NanoGS.
- NanoGS uses an adaptive LOD generation approach, varying the number of splats per level to preserve more visual detail at lower LODs. This results in higher quality close-up rendering and is especially suitable for smaller scenes where fine details are important and transparency is less dominant. The adaptive structure can provide better visual fidelity, though LOD generation is typically more computationally intensive than SplatLOD.
After configuring these settings, click Start Generation to generate your LOD. Depending on the size of your splat, this process may take some time. For example, a small splat with around 1 million Gaussians typically takes 10–15 minutes to generate.
You can now leave the Space at any time. The process will continue running in the background.
2.1 Progress LOD Generation
Once you have started the generation process, you can cancel it using the icon. You can also view the progress here to see how far your LOD generation has advanced. 3.
3. Streaming Settings
After your LOD has been successfully generated, it will replace your previous asset. You can recognize that the process is complete when the file becomes a .lod and the
Generate LOD button changes to Streaming Settings 4.
When you click this button, a submenu opens containing the following settings and information:
5 LOD Settings (X LOD Levels):
Displays the number of generated LOD levels — in this example, 5, the visible splats and the video memory usage.
- Default Desktop Preset: Defines the preset used when a visitor views your Space on a desktop device.
- Default Mobile Preset: Defines the preset used when a visitor views your Space on a mobile device. This preset is also take for the VR Devices, if the Meta Quest 3 or Apple Vision Pro preset isn't enabled.
- Enable Preset Selection UI: Shows or hides the preset selection UI for your visitors.
- Colorize LOD Levels: Allows you to display each LOD level in color. This is especially helpful when defining presets, as it makes distance and range transitions easier to evaluate.
6 Quality Presets
Presets allow you to optimize your LOD for every end device. For example, for mobile devices it is recommended to keep the visible splats count under 3M splats / 400mb of used Memory to ensure good performance on iOS.
Edit Preset
Choose which preset you want to edit. Available presets are Desktop Max, Desktop, Mobile Max, Mobile and Meta Quest 3, Apple Vision Pro if enabled.
Minimum LOD Level
Defines the starting level for your preset. Level 0 is the most detailed level. In the shown example, levels would range from 0 to 4.
LOD Base Distances & LOD Distance Multiplier
The LOD Base Distance & Multiplier affecting each other. The Base Distance defines the Distance in meter for one Level. The Distance Multiplier is used to create all further levels. Example:
- Base Distance: 5m
- Distance Multiplier: 2
This would mean:
- Level 0 (most detailed one): 0 to 5 meters displayed
- Level 1:5m to 10m
- Level 2: 10m to 20m
- Level 3: 20m to 40m
- Level 4: 40m to endless
Splat Budget
The value you enter here defines a hard upper limit. It counts the splats itself and reduces them if needed.
Cull Distance
Especially useful for small Spaces or Spaces where you can't see everything at once. It defines the distance, where splats aren't longer displayed. For example if you use 5 it would mean that everything behind 5meters woldn't be displayed inside your scene.
Behind Penalty
Chunks located behind the camera receive an additional distance penalty. This makes them unload earlier than chunks in front of the camera, helping reduce memory usage and improve performance. Higher values increase the unloading effect for unseen areas behind the camera.
3.1 Using the Preset Selection UI
When this setting is enabled and you close the UI, the Enable Preset Selection UI will appear below the Owner Badge 7.
3.2 VR Presets
To use VR headsets, you must explicitly enable this option. If it is not enabled, the Mobile preset will be used instead (either Mobile or Mobile Max, depending on your settings).
Toggle the Enabled button to enable VR support. Once enabled, all fields such as Minimum LOD Level will become available. After that, adjust the values according to your needs.
4. Generate a Collision
After tuning your LOD settings, generate a collision mesh for your splat. This enables visitors to walk on and interact with the 3D environment.
For splats uploaded as .lcc, .ply, .compressed.ply, or .sog, you can use the Generate Collision button directly. See the Collision Generation Guide for instructions.
If you uploaded a manually created LOD (via the CLI), collision cannot be generated directly from the LOD structure.
Workaround:
- Generate a low-resolution version of your splat (approx. 1–2 million Gaussians).
- Upload this low-res splat as a separate entity (preferably in a separate space).
- Use the Generate Collision button on that entity to create the collision mesh.
- Download or locate the generated collision file.
- Upload this collision file to your LOD entity.
More Resources
- Manual LOD Creation Guide (CLI) — For advanced users who need more control or have individual PLY files
- Splat Transform Guide — Installation and usage of the splat-transform CLI tool
- SplatTransform CLI Tool documentation — Official PlayCanvas documentation