gsconvert is a lightweight command-line tool for converting between 3D Gaussian Splats (3DGS) PLY and NVIDIA NuRec USDZ formats.
Starting with version 5.0, NVIDIA Isaac Sim natively supports 3DGS rendering. However, it does not accept the standard PLY format produced by most 3DGS tools. Instead, it requires NVIDIA’s own NuRec USDZ format, which has the following structure:
example.usdz
├── defaults.usda # Entry point, reference gauss.usda
├── gauss.usda # Volume prim with NuRec attributes
└── example.nurec # Compressed binary data To create 3DGS models in NuRec USDZ format, users typically turn to NVIDIA's 3DGRUT, which offers features such as:
- Training 3DGS models from scratch and exporting them directly to NuRec USDZ.
- Converting existing PLY files created with other 3DGS tools into the NuRec USDZ format (see this guide).
However, 3DGRUT comes with heavy dependencies including CUDA and PyTorch (and therefore an NVDIA GPU), making it overkill for users who only need simple format conversion.
This is where gsconvert steps in. It provides a lightweight alternative for converting between 3DGS PLY and NuRec USDZ formats. It runs on any standard machine, without requiring CUDA or NVIDIA GPUs.
Python>=3.10numpy>=1.21msgpack>=1.0
First, clone the repository:
git clone https://github.com/zixingjiang/gsconvert.git
cd gsconvertIt's recommended to install the command-line tool into an isolated environemnt using uv. uv will automatically manage all dependencies and you don't need to install them manually.
uv tool install -e .Alternatively, you can use pipx to install the tool:
pipx install -e .To uninstall the tool, use:
uv tool uninstall gsconvertor
pipx uninstall gsconvertand remove the cloned repository from your disk.
After installation, you can use the gsconvert command in your terminal.
To convert a PLY file to NuRec USDZ format, simply run:
# Convert example.ply -> example.usdz
gsconvert example.plyThis will produce example.usdz in the same directory.
You can also specify a custom output file using the -o option:
# Convert example.ply -> output.usdz
gsconvert example.ply -o output.usdzConversion works the same way in reverse. The tool automatically infers the desired output format from the input file extension. No extra flags are required.
# Convert example.usdz -> example.ply
gsconvert example.usdz
# Convert example.usdz -> output.ply
gsconvert example.usdz -o output.plyFor full usage instructions and available options, run:
gsconvert -hMIT License. See LICENSE for details.