This repository provides a JAX-JIT accelerated implementation of the Constrained Sampling Cluster MPPI (CSC-MPPI) algorithm.
CSC-MPPI introduces a novel constrained sampling framework based on DBSCAN clustering and primal-dual gradient optimization to improve obstacle avoidance and constraint satisfaction in sampling-based Model Predictive Path Integral (MPPI) control.
The algorithm is designed for high-performance execution on GPU using JAX with just-in-time (JIT) compilation, enabling fast and parallelized trajectory rollouts.
📄 Title: CSC-MPPI: A Novel Constrained MPPI Framework with DBSCAN for Reliable Obstacle Avoidance
🛠 Authors: Leesai Park¹, Keunwoo Jang²†, and Sanghyun Kim¹³†
📅 Conference: IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS) 2025
- 🔗 Project Website: https://cscmppi.github.io/
- 📹 YouTube Video: Watch Video
- Python 3.10+
- JAX with GPU support
- CUDA 12.1+
- Recommended: Use a virtual environment (e.g., conda)
Please refer to the official JAX installation guide for detailed setup instructions compatible with your system and CUDA version.
conda create -n csc_mppi python=3.10
conda activate csc_mppi
conda install matplotlib
pip install -U "jax[cuda12]"
conda install -c rapidsai -c nvidia -c conda-forge -c defaults cuml
git clone <repository_url>
cd <repository_name>
python3 main/env1.py or main/env2.py| CSC-MPPI | Standard MPPI |
|---|---|
![]() |
![]() |
| CSC-MPPI | CSC-MPPI wo DBSCAN |
|---|---|
![]() |
![]() |



