Warp
A Python framework for accelerated simulation, data generation and spatial computing.
Install / Use
/learn @NVIDIA/WarpREADME
NVIDIA Warp
Warp is a Python framework for writing high-performance simulation and graphics code. Warp takes regular Python functions and JIT compiles them to efficient kernel code that can run on the CPU or GPU.
Warp is designed for spatial computing and comes with a rich set of primitives that make it easy to write programs for physics simulation, perception, robotics, and geometry processing. In addition, Warp kernels are differentiable and can be used as part of machine-learning pipelines with frameworks such as PyTorch, JAX and Paddle.
<div align="center"> <img src="https://github.com/NVIDIA/warp/raw/main/docs/img/header.jpg"> <p><i>A selection of physical simulations computed with Warp</i></p> </div>Installing
Python version 3.9 or newer is required. Warp can run on x86-64 and ARMv8 CPUs on Windows and Linux, and on Apple Silicon (ARMv8) on macOS. GPU support requires a CUDA-capable NVIDIA GPU and driver (minimum GeForce GTX 9xx).
The easiest way to install Warp is from PyPI:
pip install warp-lang
You can also use pip install warp-lang[examples] to install additional dependencies for running examples and USD-related features.
For nightly builds, conda, CUDA 13 builds, building from source, and CUDA driver requirements, see the Installation Guide.
Tutorial Notebooks
The NVIDIA Accelerated Computing Hub contains the current, actively maintained set of Warp tutorials:
| Notebook | Colab Link |
|----------|------------|
| Introduction to NVIDIA Warp | |
| GPU-Accelerated Ising Model Simulation in NVIDIA Warp |
|
Additionally, several notebooks in the notebooks directory provide additional examples and cover key Warp features:
| Notebook | Colab Link |
|----------|------------|
| Warp Core Tutorial: Basics | |
| Warp Core Tutorial: Generics |
|
| Warp Core Tutorial: Points |
|
| Warp Core Tutorial: Meshes |
|
| Warp Core Tutorial: Volumes |
|
| Warp PyTorch Tutorial: Basics |
|
| Warp PyTorch Tutorial: Custom Operators |
|
Running Examples
The warp/examples directory contains a number of scripts categorized under subdirectories that show how to implement various simulation methods using the Warp API. Most examples will generate USD files containing time-sampled animations in the current working directory. Before running examples, install the optional example dependencies using:
pip install warp-lang[examples]
On Linux aarch64 systems (e.g., NVIDIA DGX Spark), the [examples] extra automatically installs
usd-exchange instead of usd-core as a drop-in replacement,
since usd-core wheels are not available for that platform.
Examples can be run from the command-line as follows:
python -m warp.examples.<example_subdir>.<example>
To browse the example source code, you can open the directory where the files are located like this:
python -m warp.examples.browse
Most examples can be run on either the CPU or a CUDA-capable device, but a handful require a CUDA-capable device. These are marked at the top of the example script.
USD files can be viewed or rendered inside NVIDIA Omniverse, Pixar's UsdView, and Blender. Note that Preview in macOS is not recommended as it has limited support for time-sampled animations.
Built-in unit tests can be run from the command-line as follows:
python -m warp.tests
