How to Create LOD Manually (CLI)
This guide explains how to create LOD files for your Splat manually using the splat-transform CLI tool and upload them to Arrival.Space.
When to Use This Method
While Arrival.Space offers a convenient one-click LOD generation directly in the platform, there are scenarios where manual LOD creation is preferable:
- Individual PLY files: You have multiple pre-reduced
.plyfiles (e.g., from external tools or manual decimation) that you want to combine into a LOD structure. - Fine-grained control: You need more control over the reduction ratios, chunk sizes, or other parameters than the one-click feature provides.
- Offline processing: You want to process LODs locally before uploading, or integrate LOD generation into your own pipeline.
- Very large scenes: For extremely large scans, local processing with increased memory allocation may be more reliable.
If you just want a quick and easy LOD setup, check out the One-Click LOD Creation Guide — it handles everything automatically within Arrival.Space.
TL;DR
- Create reduced versions of your
.plyfile (or use an.lccfile with built-in LODs) - Generate LOD structure:
splat-transform [files] -l [level] output/lod-meta.json - Zip and upload to Arrival.Space
- Tune LOD settings via the "Edit" button in the preset selector
Install splat-transform
The installation guide can be found in section Splat Transform Guide.
1. Prepare Your LOD Files
Option A: Using an .lcc file
If you have an .lcc file, it usually already contains all LOD levels built-in. You can skip the manual reduction steps below and proceed directly to generating the output.
Option B: Using .ply files
Start with your highest-resolution .ply file.
Then create reduced versions — ideally each one about 50% smaller than the previous.
Example for an 8 GB source:
my_splat_file.ply (8 GB) → LOD 0
my_splat_file_1.ply (4 GB) → LOD 1
my_splat_file_2.ply (2 GB) → LOD 2
my_splat_file_3.ply (1 GB) → LOD 3
my_splat_file_4.ply (512 MB) → LOD 4
my_splat_file_5.ply (256 MB) → LOD 5
2. Generate the LOD Structure Using splat-transform
Create an empty target folder for the final LOD output:
mkdir LOD_OUT
For .lcc files:
Important: Reference the .lcc file directly (not the zip archive). The .lcc file is typically located in a folder alongside .bin files (e.g., data.bin, index.bin, attrs.lcp, collision.lci).
Command structure:
splat-transform [path-to-folder]/file.lcc [output-folder]/lod-meta.json
Example:
splat-transform ./my_scan_folder/data.lcc LOD_OUT/lod-meta.json
This will create lod-meta.json and all LOD chunks inside the LOD_OUT/ folder.
For multiple .ply files:
Replace the filenames with your actual .ply file paths:
splat-transform \
my_splat_file.ply -l 0 \
my_splat_file_1.ply -l 1 \
my_splat_file_2.ply -l 2 \
my_splat_file_3.ply -l 3 \
my_splat_file_4.ply -l 4 \
my_splat_file_5.ply -l 5 \
LOD_OUT/lod-meta.json
This writes a lod-meta.json file and the corresponding LOD chunks into the LOD_OUT/ directory.
If the command runs into out of memory errors for very large scenes, you can increase the Node.js memory allocation:
node --max-old-space-size=32000 node_modules/.bin/splat-transform \
my_splat_file.ply -l 0 \
my_splat_file_1.ply -l 1 \
my_splat_file_2.ply -l 2 \
my_splat_file_3.ply -l 3 \
my_splat_file_4.ply -l 4 \
my_splat_file_5.ply -l 5 \
LOD_OUT/lod-meta.json
3. Upload to Arrival Space
Zip the LOD folder:
zip -r LOD_OUT.zip LOD_OUT/
- Upload
LOD_OUT.zipas "+ Content" in Arrival Space - (Recommended) Upload into a new space to keep everything clean and organized
4. Tuning LOD Settings
After uploading your LOD to Arrival.Space, you can fine-tune the LOD settings (ranges, presets, etc.) directly in the platform. See the LOD Creation Guide - Tuning LOD Settings for detailed instructions on how to configure presets for desktop and mobile devices.
More Resources
- One-Click LOD Creation Guide — The easier alternative if you don't need manual control
- Splat Transform Guide — Installation and usage of the splat-transform CLI
- SplatTransform CLI Tool documentation — Official PlayCanvas documentation