CUDA C++ implementations of classic and research-style robotics algorithms. Includes differentiable MPPI with matched-time evaluation, neural SDF navigation, GPU neuroevolution, parallel CartPole simulation, point-cloud processing, and swarm optimization. All benchmarks run on a single consumer GPU.
Updated from the repository state on 2026-04-05.
At matched 1.0 ms budget on dynamic_slalom,
diff_mppi_3 is the only successful controller (dist 1.91)
across 6 non-hybrid baselines. The strongest non-hybrid baseline
feedback_mppi_fused reaches 10.30, while vanilla MPPI stays at 14.16.
On 7dof_dynamic_avoid at K=512, diff_mppi_3 reaches
success=1.00 at 0.84 ms, while feedback_mppi_ref reaches
0.75 at 4.01 ms. The hybrid controller is 4.8x faster and more reliable
on this 14-dimensional manipulation task.
A two-rate feedback_mppi_faithful variant combining released current-action gains
with stride-2 replanning fails even at K=8192 (2.1 ms), confirming
that the autodiff refinement provides value that pure feedback cannot replicate.
The repository now learns 2D signed distance fields with a GPU MLP and uses them for both potential-field planning and MPPI rollouts on non-circular obstacle layouts.
Side-by-side GIFs against circle-based approximations
GPU REINFORCE improves MiniIsaac CartPole survival from about 82.6 to
180.4 steps, while neuroevolution and swarm solvers run thousands of candidates in parallel.
The strongest current story is the hybrid MPPI plus short autodiff refinement line.
| Benchmark | Comparison | Current result |
|---|---|---|
dynamic_slalom, matched 1.0 ms |
mppi vs 5 feedback baselines vs diff_mppi_3 |
Only diff_mppi_3 succeeds (1.91). Best non-hybrid: feedback_mppi_fused at 10.30. |
7dof_dynamic_avoid, K=512 |
diff_mppi_3 vs feedback_mppi_ref |
diff_mppi_3: success=1.00 @ 0.84 ms. feedback_mppi_ref: 0.75 @ 4.01 ms. |
dynamic_crossing, matched 1.0 ms |
mppi vs feedback_mppi_ref vs diff_mppi_3 |
3.02 vs 1.93 vs 1.85 final distance |
arm_static_shelf, K=256 |
mppi vs feedback_mppi_ref |
0.00 / 0.23 vs 1.00 / 0.15 success / final distance |
dynamic_bicycle, low budget |
dynbike_slalom K=32 |
mppi: 0.75 / 12.60, diff_mppi_1: 1.00 / 2.24 |
These are useful repository-level results even though Diff-MPPI is the current main research thread.
GPU MLP SDF learning, potential-field planning, and MPPI on non-circular obstacles.
Learned signed distance field against the analytic reference field.
Custom GPU-parallel CartPole environment with REINFORCE. Survival improves from 82.6 to 180.4 steps in 160 generations.
Thousands of nonlinear CartPole environments simulated in parallel on GPU.
Parallel evolution of 4096 neural policies with replay and learning-curve comparisons.
GPU PSO, DE, CMA-ES, and ACO with animated convergence comparisons.
Multi-scale benchmark (1K–100K points). Both CPU and GPU use the same brute-force algorithms (no KD-trees). GPU times include device sync. Supports --ply, --kitti, --xyz file input.
| Points | Operation | CPU | GPU | Speedup |
|---|---|---|---|---|
| 1,000 | Voxel Grid | 0.67 ms | 1.76 ms | 0.4x (GPU loses) |
| 5,000 | Normal Estimation | 4,024 ms | 2.08 ms | 1,933x |
| 10,000 | Normal Estimation | 15,487 ms | 4.88 ms | 3,171x |
| 50,000 | RANSAC Plane | 1,518 ms | 2.78 ms | 546x |
| 100,000 | RANSAC Plane | 3,077 ms | 5.62 ms | 547x |