Yuetao Li · Zhizhou Jia · Yu Zhang · Qun Hao · Shaohui Zhang
Beijing Institute of Technology
ObjSplat autonomously plans viewpoints and progressively reconstructs an unknown object into a high-fidelity Gaussian model and water-tight mesh, enabling direct use in physics simulations.
- [9 June 2026] 🚀 Initial public release of ObjSplat, including the Gazebo-based active object reconstruction pipeline.
- [30 May 2026] 🎉 Our paper ObjSplat has been accepted to IEEE T-ASE 2026!
- Release the core ObjSplat framework and Gazebo simulation pipeline.
- Release the robot arm and turntable control modules in the Gazebo-based environment.
mkdir -p ~/Workspace/objsplat_ws/src
git clone https://github.com/Li-Yuetao/ObjSplat.git ~/Workspace/objsplat_ws/src/objsplat && cd ~/Workspace/objsplat_ws/src/objsplat
git submodule update --init --progress
# objsplat_robot for Gazebo simulation
git clone https://github.com/Li-Yuetao/objsplat_robot.git ~/Workspace/objsplat_ws/src/objsplat_robotconda create --name objsplat python==3.10
conda activate objsplat
pip install torch==2.3.1 torchvision==0.18.1 torchaudio==2.3.1 --index-url https://download.pytorch.org/whl/cu118
pip install -r requirements.txtGaussian Surfels Renderer
# Gaussian surfels with confidence
pip install -e submodules/diff-gaussian-rasterization_2d --no-build-isolation
# simple-knn
pip install -e submodules/simple-knn --no-build-isolationGrounded-SAM2
export CUDA_HOME=/usr/local/cuda-11.8/
pip install -e submodules/Grounded-SAM-2 --no-build-isolation
pip install -e submodules/Grounded-SAM-2/grounding_dino --no-build-isolationDownload the Grounded-SAM2 and GroundingDINO checkpoints following the official repository instructions, and place them into the corresponding folders, such as: checkpoints/sam2.1_hiera_large.pt, gdino_checkpoints/groundingdino_swint_ogc.pth.
cd ~/Workspace/objsplat_ws/ && catkin_make -DPYTHON_EXECUTABLE=/usr/bin/python3
echo "source ~/Workspace/objsplat_ws/devel/setup.bash" >> ~/.bashrcWe provide the processed 16-object subset used in our experiments: Google Drive Link. After downloading, extract the dataset into:
[Datasets folder structure (click to expand)]
src/objsplat_robot/objsplat_robot_gazebo/object_models
├── GSO
│ ├── BUNNY_RACER
│ │ ├── model.sdf
│ │ ├── meshes
│ | | └── model.obj
│ │ └── ...
│ └── ...
└── ...
# Add the GSO models to Gazebo model path
GSO_MODELS_DIR=~/Workspace/objsplat_ws/src/objsplat_robot/objsplat_robot_gazebo/object_models/GSO
echo "export GAZEBO_MODEL_PATH=\$GAZEBO_MODEL_PATH:$GSO_MODELS_DIR" >> ~/.bashrc# Gazebo simulation with/without GUI
roslaunch objsplat_robot_gazebo objsplat_robot_scan_empty_world.launch gui:=true
# Segmentation (in objsplat conda environment)
roslaunch objsplat seg.launch config:="${PWD}/src/objsplat/config/datasets/simcam_gsmap.json"# Add a single object into the Gazebo simulation (e.g. BUNNY_RACER, Sootheze_Cold_Therapy_Elephant etc.)
rosrun objsplat_robot_gazebo add_object_node.py --model_type GSO --model_name BUNNY_RACER --pose "0 0 0.01 0 0 0 1"
# If you want to save runtime data, you can add the `save_runtime_data:=1` flag, and `hide_mapper_windows:=1` flag for headless mode.
# e.g. BUNNY-RACER
roslaunch objsplat sim.launch object_id:=BUNNY-RACER
# e.g. Elephant
roslaunch objsplat sim.launch object_id:=Elephant hide_mapper_windows:=1 save_runtime_data:=1# Add object service node
rosrun objsplat_robot_gazebo add_object_service_node.py
# Run all 16 objects
rosrun objsplat run_all.pyrosrun objsplat eval_geometry.py --results_dir ./results --iteration -1Our implementation is built upon ActiveSplat. We would also like to thank the authors of the following open-source repositories:
- GaussianSurfels for the differentiable Gaussian rasterization.
- MonoGS for the online gaussian map visualization.
- ActiveGS for the confidence map visualization.
- PB-NBV for Gazebo-based simulation environment.
- Grounded-SAM-2 for object segmentation.
If you find these works helpful, please consider citing them as well.
If you find our code/work useful in your research, please consider citing the following:
@article{li2026objsplat,
title={ObjSplat: Geometry-Aware Gaussian Surfels for Active Object Reconstruction},
author={Li, Yuetao and Jia, Zhizhou and Zhang, Yu and Hao, Qun and Zhang, Shaohui},
journal={IEEE Transactions on Automation Science and Engineering},
year={2026},
publisher={IEEE}
}