> For the complete documentation index, see [llms.txt](https://docs.realsim-gym.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.realsim-gym.org/user-guide/readme.md).

# Overview

FLASH is a GPU-native physics engine designed for **parallel simulation of deformable bodies**. It implements a redesigned Local–Global / NCP solver stack on CUDA that scales to **millions of degrees of freedom at real-time rates on a single GPU**, with Python bindings, vectorized multi-environment execution for reinforcement learning and synthetic data generation, and a built-in rasterizer and OptiX ray tracer.

{% hint style="info" %}
**Scope.** The current release covers cloth and codim-0 soft bodies (tetrahedral and triangular elements). Rigid- and articulated-body dynamics are under active development.
{% endhint %}

The integrator is a **Projective-Dynamics local–global** solver coupled with a **non-smooth Newton** update for Signorini–Coulomb contact and friction. The solver math is described in [Zeng et al. 2025](https://arxiv.org/abs/2503.15078); the FLASH system — multi-environment scheduling, block-diagonal solve, headless rendering — is described in [FLASH](https://arxiv.org/abs/2604.17513).

## Highlights

* **Time integration.** Projective-Dynamics local–global solver on CPU and CUDA.
* **Contact.** Non-smooth Newton with Fischer–Burmeister NCP, Projected Gauss–Seidel, and a mass-approximated *Lite NSN*. All three on CPU and CUDA.
* **Constitutive models.** Neo-Hookean / ARAP / corotational elasticity for both triangular and tetrahedral meshes; isometric and Laplace–Beltrami bending; edge springs; pin and cable hard constraints.
* **Linear solvers.** Sparse Cholesky direct inverse, dense and sparse CG, CR, Jacobi-PCG, Jacobi-PCR — all CPU and CUDA.
* **Collision detection.** Continuous (CCD) and discrete (DCD) detection covering vertex-face / edge-edge / face-vertex pair categories; analytical primitives (plane, box, cylinder, sphere, torus).
* **Parallelization.** Multi-environment vectorization with shared assets and per-environment state on a single GPU.
* **Rendering.** Built-in GL rasterizer + OptiX ray tracer, multi-camera — RGB / depth / segmentation / point cloud returned as `flash.CudaArray` (DLPack / CUDA Array Interface, zero-copy into PyTorch / JAX / CuPy).
* **Robotics interface.** URDF kinematic actors (render-only), positional and cable controllers, bounding-box end-effector.
* **Python-first.** [`flash.RealtimeSim`](/api-reference/realtimesim.md) and [`flash.OfflineSim`](/api-reference/offlinesim.md) share the same scene format and step API.

## Where to go next

* New to FLASH? [Installation](/user-guide/installation.md) → [Quickstart](/user-guide/quickstart.md) → [Examples](/user-guide/examples.md).
* Authoring scenes? [Scene structure](/engine/scene-structure.md), [Constitutive models](https://github.com/PranaLabs/FLASH/blob/main/docs/engine/constitutive-models.md).
* Writing Python? [`flash`](/api-reference/flash.md), [`flash.RealtimeSim`](/api-reference/realtimesim.md), [`flash.OfflineSim`](/api-reference/offlinesim.md), [`flash.Camera`](/api-reference/camera.md).
