francescofugazzi/3dgsconverter

A Python command-line utility for converting and processing 3D Gaussian Splatting models. Supports N-to-N conversion between 3DGS (.ply), KSplat, SOG, SPZ, Splat, CloudCompare, Parquet, and Compressed PLY. Includes GPU-accelerated filtering (SOR, Density).

What it solves

3D Gaussian Splatting (3DGS) involves various file formats (like .ply, .ksplat, .spz, and .sog) depending on whether the goal is high-fidelity authoring, web streaming, or mobile optimization. This tool provides a universal converter to move data between these formats while offering tools to clean and compress the resulting 3D scenes.

How it works

The project acts as a format-agnostic pipeline. It reads a source file into an intermediate raw data format, applies optional filters, and then writes the data to the target format. To maintain high performance, it uses Taichi Lang for GPU-accelerated operations like K-Means clustering (used for compression) and Statistical Outlier Removal (SOR).

Who it’s for

Developers and artists working with 3D Gaussian Splatting who need to optimize their scenes for different platforms (Web, Mobile, Desktop) or clean up "flyers" and noise from their point clouds.

Highlights

  • Universal N-to-N Conversion: Supports a wide array of formats including 3DGS PLY, Cloud Compare, KSplat, SPZ (v3/v4), SOG (v1/v2), and Parquet.
  • GPU-Accelerated Filtering: Uses CUDA, Metal, or Vulkan to perform fast cropping, opacity filtering, and outlier removal.
  • Compression Control: Offers adjustable compression levels to balance visual quality against file size for web-ready formats.
  • Data Preservation: Can maintain non-standard PLY properties (like camera parameters) during conversion.
  • Cross-Platform: Compatible with Windows, Linux, and macOS (including Apple Silicon).

Related

  • Project
  • Project
  • Project
  • Project
  • Project