# erwincoumans/tiny-differentiable-simulator

Tiny Differentiable Simulator is a header-only C++ and CUDA physics library for reinforcement learning and robotics with zero dependencies.

Repository: https://github.com/erwincoumans/tiny-differentiable-simulator
Canonical: https://ross.abutalabs.com/products/tiny-differentiable-simulator
Language: C++
License: Apache-2.0
License Family: permissive
Last push: 2024-10-18T23:14:47+00:00

## Health v2 (maintenance only)
Score: 23/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 0, release rhythm 8, longevity 100
- inputs: {"age_days": 2302, "days_push": 684, "days_rel": null, "gap_med": null, "n_releases_24m": 0}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1371, forks 138 (observed 2026-08-28T04:04:32.191897+00:00)

## What it is
Tiny Differentiable Simulator (TDS) is a header-only C++ and CUDA physics library for rigid-body dynamics with zero dependencies, supporting forward/inverse dynamics, contact models, and actuator models. It is templatized to work with automatic differentiation scalar types (CppAD, Stan Math, ceres::Jet) or plain float/double, and can run thousands of simulations in parallel on a GPU for reinforcement learning and robotics research.

## Use cases
- differentiable physics simulation for robotics research
- train reinforcement learning policies with GPU-parallel physics simulation
- compute gradients of rigid-body dynamics through automatic differentiation
- simulate articulated rigid bodies with contact and actuator models
- run deterministic cross-platform physics with fixed-point integer math
- close the sim-to-real gap by augmenting a simulator with neural networks

## When to choose
- you need a dependency-free, header-only differentiable physics simulator in C++ or CUDA
- you want to run thousands of parallel simulations on a single GPU for RL or robotics
- you need gradients through rigid-body dynamics for system identification or policy optimization
- you require deterministic cross-platform simulation via fixed-point math

## When to avoid
- you need a full-featured game physics engine with rendering, collision assets, and tooling
- you want a mature Python-first simulator like MuJoCo, PyBullet, or Isaac Gym
- you need extensive documentation and community support rather than a research codebase

## Facets
- artifact type: library
- maturity: active
- function: simulation, machine-learning, reinforcement-learning, robotics, graphics, math
- domain: robotics, simulation, reinforcement-learning, machine-learning, gpu-computing
- platform: cpp, cross-platform, windows
- tags: differentiable-simulation, physics-engine, rigid-body-dynamics, automatic-differentiation, header-only, cuda, sim2real, zero-dependencies, gpu, linux, macos

## Member repositories
- erwincoumans/tiny-differentiable-simulator (main) score 23

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:04:32.191897+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T04:40:49.815910+00:00, confidence not recorded.
  - readme: https://github.com/erwincoumans/tiny-differentiable-simulator (fetched 2026-08-28T04:04:32.191897+00:00, sha 61abd4a7ee69)
- Data as of 2026-08-30T08:39:29.467469+00:00.
