# gsbox **Repository Path**: gotoeasy/gsbox ## Basic Information - **Project Name**: gsbox - **Description**: No description available - **Primary Language**: Unknown - **License**: GPL-3.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-04-26 - **Last Updated**: 2025-08-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README

# gsbox A cross-platform command-line tool for 3D Gaussian Splatting, focusing on format conversion and optimization.

## Features - [x] Conversion between file formats, supporting `.ply`, `.splat`, `.spx`, and `.spz(v2,v3)` formats for 3DGS. - [x] Viewing file header information for `.ply`, `.spx`, `.spz`, and `.ksplat` files, or simple information of `.splat`. - [x] Supports data transformation (Rotation, Scale, Translation). - [x] Supports merging multiple model files into one. | | `.ply` | `.compressed.ply` | `.splat` | `.spx` | `.spz` | `.ksplat` | |-------|----------|-------------------|----------|----------|---------|-----------| | Read | ☑ | ☑ | ☑ | ☑ | ☑ | ☑ | | Write | ☑ | | ☑ | ☑ | ☑ | | | Ref | Link | Link | Link | Link | Link | Link | ## `.spz` - The `.spz` format is an open 3DGS model format. Its encoding algorithm is highly commendable, and combined with gzip compression, it can significantly reduce the size of model files without any noticeable loss in visual quality. - The official open-source repository for the `.spz` format is available at [spz](https://github.com/nianticlabs/spz). This format is about 10x smaller than the equivalent PLY format and is offered as open source by Niantic Labs. More details can be found at [scaniverse](https://scaniverse.com/spz) - For rendering and viewing `.spz` format models, you can refer to [GaussianSplats3D](https://github.com/mkkellogg/GaussianSplats3D) or [Reall3dViewer](https://github.com/reall3d-com/Reall3dViewer) ## `.spx` - The `.spx` format is flexible, expandable, and supports proprietary data protection. It incorporates encoding methods from both `.splat` and `.spz` formats and adds block compression processing. It supports progressive loading and is suitable for large file models. - For detailed information about the `.spx` format, please refer to [SPX Specification](https://github.com/reall3d-com/Reall3dViewer/blob/main/SPX_EN.md) - To render and view models in the `.spx` format, you can use [Reall3dViewer](https://github.com/reall3d-com/Reall3dViewer). This viewer is built on Three.js and supports features such as marking, measurements, and text watermarks. ## Usage ```shell Usage: gsbox [options] Options: p2s, ply2splat convert ply to splat p2x, ply2spx convert ply to spx p2z, ply2spz convert ply to spz p2p, ply2ply convert ply to ply s2p, splat2ply convert splat to ply s2x, splat2spx convert splat to spx s2z, splat2spz convert splat to spz s2s, splat2splat convert splat to splat x2p, spx2ply convert spx to ply x2s, spx2splat convert spx to splat x2z, spx2spz convert spx to spz x2x, spx2spx convert spx to spx z2p, spz2ply convert spz to ply z2s, spz2splat convert spz to splat z2x, spz2spx convert spz to spx z2z, spz2spz convert spz to spz k2p, ksplat2ply convert ksplat to ply k2s, ksplat2splat convert ksplat to splat k2x, ksplat2spx convert ksplat to spx k2z, ksplat2spx convert ksplat to spz ps, printsplat print data to a text file according to the splat layout join join the input model files into a single output file info display the model file information -i, --input specify the input file -o, --output specify the output file -c, --comment specify the comment for ply/spx output -bs, --block-size specify the block size for spx output (default 20480) -sh, --shDegree specify the SH degree for ply/spx/spz output -f1, --flag1 specify the header flag1 for spx output -f2, --flag2 specify the header flag2 for spx output -f3, --flag3 specify the header flag3 for spx output -rx, --rotateX specify the rotation angle in degrees about the x-axis for transform -ry, --rotateY specify the rotation angle in degrees about the y-axis for transform -rz, --rotateZ specify the rotation angle in degrees about the z-axis for transform -s, --scale specify a uniform scaling factor(0.001~1000) for transform -tx, --translateX specify the translation value about the x-axis for transform -ty, --translateY specify the translation value about the y-axis for transform -tz, --translateZ specify the translation value about the z-axis for transform -to, --transform-order specify the transform order (RST/RTS/SRT/STR/TRS/TSR), default is RST -ov, --output-version specify the spz output version, default is 2 -v, --version display version information -h, --help display help information Examples: gsbox ply2splat -i /path/to/input.ply -o /path/to/output.splat gsbox s2x -i /path/to/input.splat -o /path/to/output.spx -c "your comment" -bs 10240 gsbox x2z -i /path/to/input.spx -o /path/to/output.spz -sh 0 -rz 90 -s 0.9 -tx 0.1 -to TRS gsbox z2p -i /path/to/input.spz -o /path/to/output.ply -c "your comment" gsbox k2s -i /path/to/input.ksplat -o /path/to/output.splat gsbox join -i a.ply -i b.splat -i c.spx -i d.spz -i e.ksplat -o output.spx gsbox ps -i /path/to/input.spx -o /path/to/output.txt gsbox info -i /path/to/file.spx # Convert the ply to spx without saving SH coefficients and add custom comments. gsbox p2x -i /path/to/input.ply -o /path/to/output.spx -c "your comment here" -sh 0 # Convert the ply to spz version 3. gsbox p2z -i /path/to/input.ply -o /path/to/output.spz -ov 3 # Inspect the header information of the spx file gsbox info -i /path/to/file.spx ``` ## Update History & binary files https://github.com/gotoeasy/gsbox/releases