Git Product home page Git Product logo

3dgsconverter's Introduction

3D Gaussian Splatting Converter

A tool for converting 3D Gaussian Splatting .ply and .parquet files into a format suitable for Cloud Compare and vice-versa. Enhance your point cloud editing with added functionalities like RGB coloring, density filtering, and flyer removal.

Features

  • Format Conversion: Seamlessly switch between 3DGS .ply and Cloud Compare-friendly .ply formats. Now also .parquet is supported as input file.
  • RGB Coloring: Add RGB values to your point cloud for better visualization and editing in Cloud Compare.
  • Density Filtering: Focus on the dense regions of your point cloud by removing sparse data.
  • Flyer Removal: Get rid of unwanted outliers or floating points in your dataset. Especially useful when combined with the density filter due to its intensive nature.
  • Bounding box cropping: command for cropping point clouds to focus on specific regions.

Installation

There are two ways to install the 3D Gaussian Splatting Converter:

1. Direct Installation via pip:

Directly install the app from GitHub using pip. This method is straightforward and recommended for most users.

pip install git+https://github.com/francescofugazzi/3dgsconverter.git

2. Installation by Cloning the Repository::

If you prefer to clone the repository and install from the source, follow these steps:

git clone https://github.com/francescofugazzi/3dgsconverter
cd 3dgsconverter
pip install .

Usage

Here are some basic examples to get you started:

1. Conversion from 3DGS to Cloud Compare format with RGB addition:

3dgsconverter -i input_3dgs.ply -o output_cc.ply -f cc --rgb

2. Conversion from Cloud Compare format back to 3DGS::

3dgsconverter -i input_cc.ply -o output_3dgs.ply -f 3dgs

3. Applying Density Filter during conversion::

3dgsconverter -i input_3dgs.ply -o output_cc.ply -f cc --density_filter

4. Applying Density Filter and Removing floaters during conversion::

3dgsconverter -i input_3dgs.ply -o output_cc.ply -f cc --density_filter --remove_flyers

For a full list of parameters and their descriptions, you can use the -h or --help argument:

gsconverter -h

Debug Information

For detailed insights pass the --debug flag (or -d for short) when executing the script.

Contribute

Feel free to open issues or PRs if you have suggestions or improvements for this tool!

3dgsconverter's People

Contributors

ammarkov avatar francescofugazzi avatar hardikdava avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

3dgsconverter's Issues

Errors in saving modified .ply in CloudCompare

Firstly, thank you for what will be an extremely useful tool to clean and modify 3dgs ply files using cloud compare.

My Issue:
After converting using the command line I imported into CC (2.13.0) and edited point cloud as expected.
On saving the modified point cloud as .ply (ASCII) in CC, many errors occur in process such as:

[PLY] 'Failed writing nz of vertex 713880 (ascii output: float)'
[PLY] 'Failed writing ny of vertex 713900 (ascii output: float)'
[PLY] 'Failed writing nx of vertex 714169 (ascii output: float)'
[PLY] 'Failed writing z of vertex 714237 (ascii output: float)'
[PLY] 'Failed writing y of vertex 714357 (ascii output: float)'
[PLY] 'Failed writing x of vertex 714358 (ascii output: float)'
[PLY] 'Failed writing scalar_scal_rot_3 of vertex 714439 (ascii output: float)'
[PLY] 'Failed writing scalar_scal_rot_2 of vertex 714500 (ascii output: float)'
[PLY] 'Failed writing scalar_scal_rot_1 of vertex 714649 (ascii output: float)'
[PLY] 'Failed writing scalar_scal_rot_0 of vertex 714678 (ascii output: float)'

...and so on, for many other parameters of vertex.

I tried exporting as BIN to the same end.

I jammed a fork into the enter key to see what happened if I accepted all the errors, CC kindly finished its process and logged

File '***.ply' saved successfully

On trying to convert output .ply, 3dgsconverter threw errors saying (obviously) PlyElementParseError("early end-of-line", ...

Am I missing something on the CC side to save the parameters?

gsconverter command not found

I have now tried both in linux and windows, I installed the package using pip follwing the readme, but when I try to run the given example commands, I get "gsconverter" command not found error, I added the path where pip showed me the library was installed to my path variable, but still no luck. Please let me know if I am missing something

Concerted ply has no color

Hi,

Thank you for making this, but the file I've tried seem does not to have color when imported into Blender.
Maybe some post-processing is needed?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.