Skip to content
/ gsbox Public

This is a cross-platform command-line tool for 3D Gaussian Splatting, supporting conversions like ply to splat, ply to spx, ply to spz, and vice versa. 一个关于 3d gaussian splating 的跨平台命令行小工具,ply 转 splat,ply 转 spx,ply 转 spz,或者 splat 转 ply,splat 转 spx 等命令行操作

License

Notifications You must be signed in to change notification settings

gotoeasy/gsbox

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

gsbox

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


Features

  • Conversion between file formats, supporting .ply, .splat, .spx, and .spz(v2,v3) formats for 3DGS.
  • Viewing file header information for .ply, .spx, .spz, and .ksplat files, or simple information of .splat.
  • Supports data transformation (Rotation, Scale, Translation).
  • Supports merging multiple model files into one.
.ply .compressed.ply .splat .spx .spz .ksplat .sog
Read
Write
Ref Link Link Link Link Link Link Link

.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
  • To render and view models in the .spx format, you can use Reall3dViewer. This viewer is built on Three.js and supports features such as marking, measurements, and text watermarks.

Usage

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
  g2p, sog2ply                    convert sog to ply
  g2s, sog2splat                  convert sog to splat
  g2x, sog2spx                    convert sog to spx
  g2z, sog2spx                    convert sog to spz
  ps,  printsplat                 print data to text file like splat format layout
  join                            join the input model files into a single output file
  info <file>                     display the model file information
  -i,  --input <file>             specify the input file
  -o,  --output <file>            specify the output file
  -ct, --compression-type <type>  specify the compression type(0:gzip,1:xz) for spx output, default is gzip
  -c,  --comment <text>           specify the comment for ply/spx output
  -a,  --alpha <num>              specify the minimum alpha(0~255) to filter the output splat data
  -bs, --block-size <num>         specify the block size(64~1048576) for spx output (default is 65536)
  -bf, --block-format <num>       specify the block data format(19~20) for spx output (default is 19)
  -sh, --shDegree <num>           specify the SH degree(0~3) for output
  -f1, --is-inverted <bool>       specify the header flag1(IsInverted) for spx output, default is false
  -rx, --rotateX <num>            specify the rotation angle in degrees about the x-axis for transform
  -ry, --rotateY <num>            specify the rotation angle in degrees about the y-axis for transform
  -rz, --rotateZ <num>            specify the rotation angle in degrees about the z-axis for transform
  -s,  --scale <num>              specify a uniform scaling factor(0.001~1000) for transform
  -tx, --translateX <num>         specify the translation value about the x-axis for transform
  -ty, --translateY <num>         specify the translation value about the y-axis for transform
  -tz, --translateZ <num>         specify the translation value about the z-axis for transform
  -to, --transform-order <RST>    specify the transform order (RST/RTS/SRT/STR/TRS/TSR), default is RST
  -ov, --output-version <num>     specify the output versions for spx(1-2, default is 2) and spz(2-3, 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 -ct xz
  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 k2z -i /path/to/input.ksplat -o /path/to/output.spz -ov 3
  gsbox g2x -i /path/to/input.sog -o /path/to/output.spx
  gsbox g2x -i /path/to/meta.json -o /path/to/output.spx
  gsbox join -i a.ply -i b.splat -i c.spx -i d.spz -i e.ksplat -i f.sog -i meta.json -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

About

This is a cross-platform command-line tool for 3D Gaussian Splatting, supporting conversions like ply to splat, ply to spx, ply to spz, and vice versa. 一个关于 3d gaussian splating 的跨平台命令行小工具,ply 转 splat,ply 转 spx,ply 转 spz,或者 splat 转 ply,splat 转 spx 等命令行操作

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages