Skip to main content

easy-3dgs

A Python library for 3D Gaussian Splatting, designed to be easy to use and extend.

Features

  • Modular Pipeline: The reconstruction process is broken down into a series of modular steps, including feature retrieval, pair generation, feature extraction, feature matching, reconstruction, and image undistortion.
  • Extensible: Each step in the pipeline is designed to be easily replaceable with custom implementations.
  • HLOC-Based: Leverages the power of Hierarchical Localization (HLOC) for robust and accurate 3D reconstruction.

Getting Started

Prerequisites

  • Python 3.10 or later
  • Git

Installation

Install from PyPI

You can install the library directly from PyPI using pip:

pip install git+https://github.com/Jourdelune/easy-3dgs.git
pip install git+https://github.com/cvg/Hierarchical-Localization.git

Install from Source

  1. Clone the repository:

    git clone --recursive https://github.com/Jourdelune/easy-3dgs.git
    cd easy-3dgs
    
  2. Install dependencies:

    pip install -e .
    pip install git+https://github.com/cvg/Hierarchical-Localization.git
    

Usage

The main entry point for the library is the ReconstructionPipeline class. Here's a simple example of how to use it:

from pathlib import Path
from easy_3dgs.pipeline import ReconstructionPipeline
from hloc import extract_features, match_features

# Define paths
image_directory = Path("path/to/your/images")
output_directory = Path("outputs/reconstruction")

# Define configurations
retrieval_config = extract_features.confs["netvlad"]
feature_config = extract_features.confs["superpoint_aachen"]
matcher_config = match_features.confs["superpoint+lightglue"]

# Create and run the pipeline
pipeline = ReconstructionPipeline(
    retrieval_conf=retrieval_config,
    feature_conf=feature_config,
    matcher_conf=matcher_config,
    num_matched_pairs=5,
)
pipeline.run(image_directory, output_directory)

Project Structure

The project is organized as follows:

├── pyproject.toml
├── README.md
├── run_pipeline.py
├── src
│   └── easy_3dgs
│       ├── __init__.py
│       ├── pipeline
│       │   ├── __init__.py
│       │   ├── orchestrator.py
│       │   ├── feature_extraction
│       │   ├── feature_matching
│       │   ├── feature_retrieval
│       │   ├── image_undistortion
│       │   ├── pair_generation
│       │   └── reconstruction
│       └── third_party
│           └── Hierarchical-Localization
└── test.py
  • run_pipeline.py: An example script demonstrating how to use the ReconstructionPipeline.
  • src/easy_3dgs/pipeline: Contains the core logic for the reconstruction pipeline.
  • src/easy_3dgs/pipeline/orchestrator.py: The main entry point for the library, containing the ReconstructionPipeline class.
  • src/easy_3dgs/third_party: Contains third-party libraries, such as Hierarchical Localization.

To Do

  • Add 3d Gaussian Splatting

Contributing

Contributions are welcome! Please feel free to submit a pull request or open an issue.

License

This project is licensed under the MIT License. See the LICENSE file for details.

Metadata

Release files for easy-3dgs 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for easy-3dgs 0.1.0
File Size Uploaded
easy_3dgs-0.1.0.tar.gz 7.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for easy-3dgs 0.1.0
File Interpreter ABI Platform
easy_3dgs-0.1.0-cp310-cp310-manylinux_2_35_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.35+ x86-64 Details

Total release size: 20.0 kB

Release files / easy_3dgs-0.1.0.tar.gz

Download URL easy_3dgs-0.1.0.tar.gz
Size 7.1 kB
Tags Source
SHA-256 checksum
How to use checksums
65a0aeadd39d2751ce9ced60ed0cf942ba3f979ddc2c6669ceaca7aa2c24b95c
BLAKE2b-256 checksum
How to use checksums
7128683d6b6f7972dd24d4de0b16d1e5e2ff55a10caf48d8a726b7963ddd3b7f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.6.2

Release files / easy_3dgs-0.1.0-cp310-cp310-manylinux_2_35_x86_64.whl

Download URL easy_3dgs-0.1.0-cp310-cp310-manylinux_2_35_x86_64.whl
Size 12.9 kB
Tags CPython 3.10 Linux glibc 2.35+ x86-64
SHA-256 checksum
How to use checksums
cb9fde9c2310a56fd79e11a6cab4644d6886750578ac630299c436657a7d0989
BLAKE2b-256 checksum
How to use checksums
c11abfcf3fdf96f6ce1ec6780f5a05fe535c4cc6236f615bb210ff925f9a2982
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.6.2

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page