Nicolas Marticorena · Tobias Fischer · Niko Suenderhauf .
Queensland University of Technology
Most dependencies can be installed via either pip or conda. However, we instead follow a git submodule approach, which offers the following advantages:
- Our forks of key libraries include small additional features and updated build backends.
- By changing the build backend, we can install the libraries in editable mode using pixi (as
setuptoolsis incompatible), allowing easier tweaking of underlying dependencies.
If you need to update any dependency to retrigger compilation of the C/C++ extensions, run:
pixi reinstall <library-name>For example, if you modify gsplat:
pixi reinstall gsplat| Name | Description |
|---|---|
| gsplat | Gaussian Splatting implementation from NeRFStudio. We apply a patch for 2D depth rendering (nerfstudio-project/gsplat#477). |
| neural_robot | Wrapper around the Robotics Toolbox for Python, exposing functionality in PyTorch. |
| nerf_tools | Scripts for managing NeRF-style datasets and recordings. |
| safer-splats | Utilities for sphere-to-ellipsoid distance computation. |
To ensure reproducible installation, we use the package manager pixi.
If you haven’t installed it yet, run:
curl -fsSL https://pixi.sh/install.sh | bashAfter installation, restart your terminal or reload your shell configuration so the changes take effect.
See the pixi documentation for more details.
Clone the repository and install dependencies:
git clone --recursive git@github.com:nmarticorena/RemoSplat.git
cd RemoSplat
pixi installOnce installation is complete, activate the environment with:
pixi shellThe synthetic scenes described in the paper are available on Hugging Face:
👉 https://huggingface.co/datasets/nmarticorena/ReMoSplat-scenes
These datasets follow the standard NeRF-style format, where camera poses are stored in a transforms.json file.
For quicker testing, we also provide a smaller sample dataset:
👉 https://huggingface.co/datasets/nmarticorena/ReMoSplat-scenes-sample
Download it using the Hugging Face CLI:
hf download nmarticorena/ReMoSplat-scenes-sample --repo-type dataset --local-dir data/scenesTo download the full dataset:
hf download nmarticorena/ReMoSplat-scenes --repo-type dataset --local-dir data/scenesWe follow the training workflow from gsplat.
If your dataset consists of posed depth images, our compute-aabb script is useful. It preprocesses the dataset to compute bounding boxes, estimate normals, and subsample points from dense point clouds.
View available options with:
compute-aabb --helpAn example training pipeline for our synthetic scenes is provided in:
scripts/training/rmmi/train_scene.sh
Run:
bash scripts/training/rmmi/train_scene.sh table N
bash scripts/training/rmmi/train_scene.sh bookshelf NWhere N is the number of scenes (out of 500) to train.
If using the sample dataset, set N=10.
The controller implementation is located in:
remo_splat/controller.py
Multiple distance metrics are implemented in:
remo_splat/lidar.py
Control hyperparameters are defined in:
remo_splat/configs/controllers.py
To run the simulated benchmark:
python3 scripts/benchmark/rmmi.py --n-scenes NWhere N is the number of scenes to evaluate.
Controller outputs are stored in:
logs/{exp_name}/{sim_frequency}
You can visualise them with:
python remo_splat/experiment_visualizer.py --folder-name {exp_name}/{frequency} --env-names [scene_names ...] --robot-name curoboThis will open:
- one 3D visualisation window
- one depth rendering window showing the depth rendering from one of the spheres that represent the robot geometry (determined by the robot_sphere_id)
Our approach builds upon several excellent open-source projects.
We thank the authors of gsplat for their implementation of both 3D and 2D Gaussian Splatting, and the authors of safer-splat for the PyTorch implementation of the sphere-to-ellipsoid distance described in Geometric Tools.
Please consider citing these works accordingly.
If you use ReMoSPLAT in your research, please cite:
@misc{marticorena2025remosplat,
title={ReMoSPLAT: Reactive Mobile Manipulation Control on a Gaussian Splat},
author={Nicolas Marticorena and Tobias Fischer and Niko Suenderhauf},
year={2025},
eprint={2512.09656},
archivePrefix={arXiv},
primaryClass={cs.RO},
url={https://arxiv.org/abs/2512.09656},
}- Add cyclonedds as a conda package to simplify installation of the NeRFCapture scripts
