Observed since 20 Oct, 15:31 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
A Python library to convert, edit, and manage 3D Gaussian Splatting data
A Python library to convert 3D Gaussian Splatting (3DGS) format data to CSV format, edit it, and convert it back to 3DGS format.

The core library in the src/ folder requires numpy for numerical operations. This dependency is automatically installed when you install the package.
The tools in the tools/ folder require additional dependencies:
pip install pandas matplotlib
These are automatically installed if you install the package with the [tools] extra.
# Basic installation with core functionality
pip install 3dgs-edit-tools
# Complete installation with tools for analysis and comparison
pip install 3dgs-edit-tools[tools]
Clone this repository:
git clone https://github.com/404background/3dgs-edit-tools.git
cd 3dgs-edit-tools
pip install -e . # Install in development mode
This library uses CSV format as an intermediate step for editing 3D Gaussian Splatting data because:
Point cloud data is also converted to CSV format before editing to maintain the same benefits.
from src import convert_3dgs_to_csv, convert_csv_to_3dgs
# Convert PLY file to CSV
csv_path, _ = convert_3dgs_to_csv('model.ply')
# Write your code to edit the CSV file here
# ...
# Convert edited CSV back to PLY
restored_ply = convert_csv_to_3dgs(csv_path, None)
from src import merge_3dgs_files, create_transformed_copy
# Create a transformed copy with 10cm translation on X-axis
transformed_ply = create_transformed_copy('model.ply', 'model_moved.ply',
{'translate': [0.1, 0, 0]})
# Merge original and transformed models
merged_ply = merge_3dgs_files('model.ply', transformed_ply, 'merged_scene.ply')
from src import (
convert_3dgs_to_pointcloud,
convert_pointcloud_to_3dgs,
convert_pointcloud_to_csv,
convert_csv_to_pointcloud
)
# 3DGS to point cloud
pointcloud_path = convert_3dgs_to_pointcloud('model.ply')
# Point cloud to CSV for easy editing
csv_path = convert_pointcloud_to_csv(pointcloud_path)
# Edit CSV file here...
# CSV back to point cloud
edited_pointcloud = convert_csv_to_pointcloud(csv_path)
# Point cloud back to 3DGS
restored_model = convert_pointcloud_to_3dgs(edited_pointcloud, 'model.ply')
To use the comparison tool for analyzing differences between 3DGS files:
# First install required dependencies
pip install pandas matplotlib
# Run the comparison tool
python -m tools.compare_gs path/to/original.ply path/to/modified.ply --output-dir comparison_results
For more information about available tools, see the tools/README.md file.
After installation, the package provides several command-line executables for easy use:
Convert PLY to CSV:
3dgs-to-csv input.ply --output_csv output.csv
Convert CSV to PLY:
csv-to-3dgs input.csv --output_ply output.ply
Convert 3DGS to point cloud:
3dgs-to-pointcloud input.ply --output_ply output_pointcloud.ply
Convert point cloud to 3DGS:
pointcloud-to-3dgs input_pointcloud.ply original.ply --output_ply restored.ply
Merge two 3DGS files:
merge-gs file1.ply file2.ply --output merged.ply --translate-x 0.1
Convert 3DGS to mesh:
3dgs-to-mesh input.ply --output output_mesh.obj --method hybrid --quality high
Convert point cloud to CSV:
pointcloud-to-csv ply2csv input_pointcloud.ply --output_csv output.csv
Convert CSV to point cloud:
csv-to-pointcloud input.csv --output_ply output.ply --color_type uchar
Compare two 3DGS files:
compare-gs original.ply modified.ply --output-dir comparison_results
Sample code is available in the examples folder. See examples/README.md for details.
This project has been tested with the following visualization tools:
All point cloud data conversions have been extensively tested using CloudCompare to ensure proper structure, color representation, and export compatibility. Mesh outputs have been verified with Blender to confirm proper mesh topology and compatibility.
Converts 3DGS format (PLY) data to CSV format.
Arguments:
ply_filename (str): Path to the input PLY filecsv_filename (str, optional): Path to the output CSV file. If not specified, it's automatically generated from the input filenameReturns:
Converts CSV format data to 3DGS format (PLY).
Arguments:
csv_filename (str): Path to the input CSV filefooter_filename (str, optional): Path to the file containing footer data. If not specified, it's automatically generated from the input filenameoutput_ply_filename (str, optional): Path to the output PLY file. If not specified, it's automatically generated from the input filenameReturns:
Merges two 3D Gaussian Splatting files into a single file.
Arguments:
file1 (str): Path to the first 3DGS filefile2 (str): Path to the second 3DGS fileoutput_file (str, optional): Path to the output merged 3DGS filetransform (dict, optional): Transformation to apply to the second file (e.g. {'translate': [0.1, 0, 0]})Returns:
Creates a transformed copy of a 3DGS file with specified transformations.
Arguments:
input_ply (str): Path to input PLY fileoutput_ply (str): Path to output transformed PLY filetransformation (dict): Dictionary with transformation parameters (e.g. {'translate': [0.1, 0, 0], 'scale': [1.5, 1, 1]})Returns:
Converts 3D Gaussian Splatting format to standard point cloud PLY format.
Arguments:
ply_filename (str): Path to the input 3DGS PLY fileoutput_ply_filename (str, optional): Path to the output point cloud PLY fileReturns:
Converts a point cloud file back to 3D Gaussian Splatting format using an original 3DGS file as reference.
Arguments:
pointcloud_ply (str): Path to the input point cloud PLY fileoriginal_3dgs_ply (str): Path to the original 3DGS file to use as referenceoutput_ply (str, optional): Path to the output 3DGS fileReturns:
Converts point cloud PLY file to CSV format for easier editing.
Arguments:
ply_filename (str): Path to the input point cloud PLY filecsv_filename (str, optional): Path to the output CSV fileReturns:
Converts CSV file to point cloud PLY format.
Arguments:
csv_filename (str): Path to the input CSV fileoutput_ply_filename (str, optional): Path to the output point cloud PLY filecolor_type (str): Type of color data to use in PLY file ('float' or 'uchar')Returns:
This project is released under the MIT License. See LICENSE file for details.
Download counts and popularity will appear here as the collector receives them.
| Version | Published | Direct dependencies | Open version |
|---|---|---|---|
| 0.3.0 | 9 May 2025 | 4 |
This describes our collected data; it is not a security assessment.
Shared repository data · GitHub
Observed since 20 Oct, 15:31 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package:c52815c05048863b359854d466fa79e34901a3ba28bc1b88da522af285335c0e