Noureddine RAMDI / GS-Playground: High-throughput photorealistic simulation for vision-based robot learning

Created Sat, 23 May 2026 20:41:14 +0000 Modified Sat, 23 May 2026 20:41:27 +0000

discoverse-dev/gs_playground

GS-Playground tackles a persistent challenge in robotics simulation: how to combine photorealistic visual rendering with high-throughput physics simulation to enable large-scale reinforcement learning (RL). The repository introduces a novel integration of 3D Gaussian Splatting (3DGS) batch rendering with a parallel velocity-impulse physics engine, enabling robot and object motions that remain temporally consistent in both physics and visuals. This approach delivers up to 10^4 frames per second at 640×480 resolution, a rare feat that supports complex vision-informed robot learning experiments.

What gs-playground does and how it works

At its core, GS-Playground is a simulation framework designed to bridge the sim-to-real visual gap without sacrificing the throughput needed for RL training. It does so by combining two main components: a parallel velocity-impulse physics engine for rigid-body simulation, and a batch 3D Gaussian Splatting renderer that provides photorealistic visuals.

The standout technical innovation is the concept of Rigid-Link Gaussian Kinematics. This binds clusters of 3D Gaussian Splatting assets directly to the simulator’s rigid bodies, ensuring that the rendering remains temporally consistent with the underlying physics. This avoids the common problem where visual representations lag or desynchronize from simulated robot and object motions, which is critical for vision-based RL.

The framework supports multiple robot embodiments, including quadrupeds, humanoids, and robot arms, and covers a variety of tasks such as locomotion, navigation, and manipulation. The rendering pipeline achieves high throughput by leveraging batch rendering kernels optimized for memory efficiency and GPU acceleration. The parallel physics engine is designed to handle high-frequency simulation steps efficiently, which is essential for maintaining physical realism at scale.

The repository is implemented primarily in Jupyter Notebook, with CUDA-accelerated PyTorch components underpinning the renderer and physics modules. It currently serves as a preview release, exposing the core simulator API, batch renderer kernels, benchmark notebooks, and LiDAR sensor modules. Planned future releases aim to integrate Real2Sim pipeline tools for asset reconstruction and reinforcement learning training scripts.

Technical strengths and design tradeoffs

The main technical strength of GS-Playground lies in its novel integration of 3D Gaussian Splatting with rigid-body simulation through Rigid-Link Gaussian Kinematics. This mechanism addresses one of the hardest problems in robotics simulation: maintaining a visually consistent and physically accurate simulation that can run at speeds suitable for reinforcement learning.

Rendering with 3D Gaussian Splatting allows for photorealistic visuals that are more memory-efficient and faster than traditional mesh-based rendering, especially at scale and in batch mode. The batch rendering kernel design enables the system to hit up to 10^4 frames per second at 640×480 resolution, which is orders of magnitude faster than many photorealistic simulators.

The physics engine uses a parallel velocity-impulse approach, which is a common choice for real-time rigid-body simulations. This approach balances accuracy and computational efficiency but does come with tradeoffs in simulating highly complex contact dynamics or soft-body deformations.

The tradeoff here is clear: GS-Playground prioritizes throughput and visual fidelity over simulating every minute physical detail. This makes it well-suited for training vision-informed policies at scale but may limit its use cases where ultra-precise physics is necessary.

Another limitation is that this release is a preview, so some features like the Real2Sim asset reconstruction pipeline and reinforcement learning training scripts are not yet integrated. Users will need to extend or wait for future releases to have a full end-to-end system.

The codebase shows a clean separation between simulation, rendering, and sensor modules, which is promising for maintainability and extensibility. The use of Python and Jupyter Notebooks lowers the barrier for experimentation, though it may not match the raw performance of fully compiled simulation engines.

Quick start

The installation and environment setup are Linux x86_64 specific and require an NVIDIA GPU with a compatible driver. The repo uses the uv tool for dependency resolution and running demos, which abstracts away virtual environment management.

From the repository root, the installation commands are:

# Skip this line if uv is already installed.
curl -LsSf https://astral.sh/uv/install.sh | sh

git clone https://github.com/discoverse-dev/gs_playground.git
cd gs_playground
uv sync

After setup, several demos and benchmarks are available:

Live replay demo:

uv run python demo/live_demo/replay.py

Navigation demos:

uv run python demo/navigation/robot_locomotion.py --config configs/go2_scene1.json
uv run python demo/navigation/robot_locomotion.py --config configs/g1_scene1.json

The first navigation demo run involves loading the robot policy and 3DGS assets, so expect some startup delay until the 3DGS view appears.

Batch rendering benchmark:

uv run jupyter nbconvert \
  --to notebook \
  --execute benchmark/mtx_batch_minimal.ipynb \
  --ExecutePreprocessor.cwd=benchmark \
  --output mtx_batch_minimal.executed.ipynb

Optional Jupyter kernel installation:

uv run python -m ipykernel install \
  --user \
  --name gsplayground \
  --display-name "gsplayground"

These commands allow you to quickly get the simulation up and running for experimentation and benchmarking.

Verdict

GS-Playground is a technically interesting and ambitious project for anyone working on vision-informed robotics or photorealistic simulation at scale. Its unique approach to marrying 3D Gaussian Splatting rendering with a parallel rigid-body physics engine addresses a difficult problem in sim-to-real transfer by maintaining temporal consistency in visuals and physics.

The high throughput achieved here is impressive and makes it viable for large-scale reinforcement learning experiments that require thousands of frames per second.

That said, this release is a preview, so some key components like the Real2Sim asset reconstruction pipeline and RL training scripts are still forthcoming. Also, the physics engine’s velocity-impulse approach favors speed over ultra-precise physics simulation, which might be a consideration for certain research scenarios.

Overall, GS-Playground is worth exploring if you need a scalable photorealistic simulation environment for vision-based robot learning and are comfortable working with Linux and CUDA-enabled GPUs. The codebase and demos provide a solid foundation to build upon, though expect to extend or wait for future releases for a complete end-to-end pipeline.


→ GitHub Repo: discoverse-dev/gs_playground ⭐ 371 · Jupyter Notebook