Metadata-Version: 2.4
Name: splatkit
Version: 0.1.0
Summary: A modular toolkit for 3D and 2D Gaussian Splatting
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: numpy<2.0
Requires-Dist: gsplat>=1.5.3
Requires-Dist: pycolmap>=3.13.0
Requires-Dist: imageio>=2.37.2
Requires-Dist: tyro>=1.0.3
Requires-Dist: torchmetrics>=1.8.2
Requires-Dist: matplotlib>=3.10.8
Requires-Dist: scikit-learn>=1.7.2
Requires-Dist: opencv-python>=4.11.0.86
Requires-Dist: plyfile>=1.1.3
Requires-Dist: dill>=0.4.0
Requires-Dist: nerfview>=0.1.3
Provides-Extra: viewer
Requires-Dist: nerfview>=0.1.3; extra == "viewer"
Requires-Dist: viser>=1.0.21; extra == "viewer"
Requires-Dist: splines>=0.3.3; extra == "viewer"
Provides-Extra: progress
Requires-Dist: tqdm>=4.67.1; extra == "progress"
Provides-Extra: tensorboard
Requires-Dist: tensorboard>=2.20.0; extra == "tensorboard"
Provides-Extra: dev
Requires-Dist: pytest>=7.0.0; extra == "dev"
Requires-Dist: pytest-cov>=4.0.0; extra == "dev"
Requires-Dist: black>=23.0.0; extra == "dev"
Requires-Dist: isort>=5.12.0; extra == "dev"
Requires-Dist: mypy>=1.0.0; extra == "dev"
Provides-Extra: docs
Requires-Dist: sphinx>=7.0.0; extra == "docs"
Requires-Dist: furo>=2024.1.0; extra == "docs"
Requires-Dist: sphinx-autodoc-typehints>=1.24.0; extra == "docs"
Requires-Dist: sphinx-copybutton>=0.5.0; extra == "docs"
Requires-Dist: myst-parser>=2.0.0; extra == "docs"
Provides-Extra: all
Requires-Dist: splatkit[progress,tensorboard,viewer]; extra == "all"
Provides-Extra: all-dev
Requires-Dist: splatkit[all,dev,docs]; extra == "all-dev"
Dynamic: license-file

# splatkit

A modular toolkit for Gaussian Splatting training, built on top of [gsplat](https://github.com/nerfstudio-project/gsplat).

## Installation

**Step 1:** Install PyTorch with CUDA support (required, not included):

```bash
pip install torch torchvision --index-url https://download.pytorch.org/whl/cu121
```

**Step 2:** Install splatkit:

```bash
# From PyPI (once published)
pip install splatkit[all]
# or using uv
uv add splatkit --extra all

# For development (from source)
git clone https://github.com/veristic/splatkit.git
cd splatkit
pip install -e ".[all]"  # or: uv pip install -e ".[all]"
```

**Optional:** For fused SSIM support (improves training quality):

```bash
pip install git+https://github.com/rahul-goel/fused-ssim@98126b7781f9e563234c92d2bf08ee0994f4f175
```

See the [installation guide](docs/source/installation.rst) for more options.

## Quick Example

Train a 3D Gaussian Splatting model:

```python
from splatkit.trainer import SplatTrainer, SplatTrainerConfig
from splatkit.data_provider import SplatColmapDataProvider, SplatColmapDataProviderConfig
from splatkit.renderer import Splat3DGSRenderer
from splatkit.loss_fn import Splat3DGSLossFn
from splatkit.densification import SplatDefaultDensification

# Configure training
config = SplatTrainerConfig(
    max_steps=30000,
    output_dir="outputs/my_scene",
)

# Set up COLMAP data
data_provider = SplatColmapDataProvider(
    config=SplatColmapDataProviderConfig(
        colmap_dir="data/sparse/0",
        images_dir="data/images",
        normalize=True,
    )
)

# Create and run trainer
trainer = SplatTrainer(
    config=config,
    data_provider=data_provider,
    renderer=Splat3DGSRenderer(),
    loss_fn=Splat3DGSLossFn(),
    densification=SplatDefaultDensification(),
)
trainer.run()
```

## Documentation

📚 **[Full Documentation](docs/)** — Installation, guides, API reference, and customization examples.

Check out `examples/` folder for more:
- `examples/3dgs/simple_3dgs.py` — 3D Gaussian Splatting
- `examples/2dgs/simple_2dgs.py` — 2D Gaussian Splatting
