Skip to content

Fabulani/tasks-for-splats

Repository files navigation

Tasks for Splats

Making Gaussian Splatting research repos easier to set up and use, one Dockerfile at a time.

This is a multi-project repository focusing on making Gaussian Splatting research repositories easier to set up and use. I use Tasks and Docker for setting everything up, with Github Container Registry for housing the built images.

Currently, the following projects are available:

task category status note link
3dgscd change detection 🚧 OOM during tests; couldn't test 'running the method' 3D Gaussian Splatting-based Change Detection for Physical Object Rearrangement
3dgsconverter format conversion 3D Gaussian Splatting Converter
gsplat rasterization includes 3DGUT, PNG compression, and fused bilateral grids gsplat: An Open-Source Library for Gaussian Splatting
hierarchical-3d-gaussians, h3dgs hierarchy 🚧 viewer doesn't work, needs more testing A Hierarchical 3D Gaussian Representation for Real-Time Rendering of Very Large Datasets
nerfstudio, ns library, segmentation, open-vocab feature-splatting ready for use Nerfstudio: A collaboration friendly studio for NeRFs
spatiallm, slm scene understanding, point cloud SpatialLM: Large Language Model for Spatial Understanding
supersplat, ss visualization, editing, compression Supersplat: 3D Gaussian Splat Editor

✅: done | 🚧: work-in-progress.

Pre-requisites

Install Tasks and Docker.

Setup

Duplicate/rename .env.example to .env, and add the path to your datasets folder, e.g.:

DATA_PATH="//c/path/to/datasets"

This path will be bound to a docker volume and become available inside the containers data folder.

Important

On Windows, the path must start with two forward slashes (/). For a path in the C drive: "//c/path/to/datasets"

Usage

Type task to see all available tasks and their descriptions. For .env to work, run all tasks from the main root Taskfile.

To work on a specific project, run the tasks associated with that project. For example, with gsplat, the following should be enough:

task gsplat:pull
task gsplat:run

These will pull the image, run the container, and exec into it. Every project has this set of tasks: clone, build, pull, push, and run.

Note

Read the README.md in each project for project-specific instructions.

The -all tasks are for batch execution of tasks from all projects. For example, to clone all repositories:

task clone-all

Development

Adding new projects follows this workflow:

  1. Create and checkout a new branch.

  2. Create a folder for the project using the template .templates/project. Project folders usually contain the following:

    project_name/
    └── docker/
       ├── docker-compose.yml
       ├── Dockerfile
    └── README.md
    └── Taskfile.yaml
  3. Rename and edit the template files.

  4. Additional files needed for the container go inside the project docker folder.

  5. Check that all tasks from the new project work.

  6. Open a PR and wait for the merge!

Bumping version to newer commits

As of now, multiple things have to be manually updated for version bumping:

  • docker-compose.yml: image version tag.
  • Dockerfile: COMMIT_ID ARG.
  • requirements.txt: if the project has a custom requirements file (e.g., gsplat), always double-check if any new requirements have been added.
  • Taskfile.yaml: VERSION_TAG and COMMIT_ID.

About

A unified interface for ready-to-use images of Gaussian Splatting repositories.

Topics

Resources

License

Stars

Watchers

Forks

Packages