NVIDIA Warp

Differentiable Spatial Computing for Python

NVIDIA Warp is a developer framework for building and accelerating data generation and spatial computing in Python. Warp gives coders an easy way to write GPU-accelerated, kernel-based programs for simulation AI, robotics, and machine learning (ML). With Warp, Python developers can create GPU-accelerated, 3D simulation workflows that drive ML pipelines in PyTorch, JAX, Modulus, and NVIDIA Omniverse™.  Benefits include simulation performance equivalent to native CUDA code, with the convenience and developer productivity of Python.

Download Now

Key Features

Kernel-Based Code

NVIDIA Warp performs a just-in-time (JIT) runtime compilation of Python functions to x86 and CUDA® kernel-level code. Kernel-based programming provides a low-level abstraction that maps closely to GPU hardware, and, in contrast to tensor-based programming, provides implicit kernel fusion (controlled by the user), fine-grained control over threads, native support for conditional logic, and sparse scatter and gather.

Learn more

Differentiable Programming

In addition to generating forward-mode kernel code, Warp can generate reverse-mode (adjoint) kernels that propagate the gradients of simulation results back into frameworks, such as PyTorch and JAX for network training, design optimization, and parameter estimation.

Learn more

Built for Spatial Computing

Warp includes built-in functionality to enable 3D simulation and geometry processing. In addition to a rich spatial math library, Warp provides higher-level data structures, such as meshes, hash grids, and sparse volumes (NanoVDB) for GPU-accelerated geometric queries.

Learn more

See NVIDIA Warp in Action

Many Python developers are using Warp today. In Omniverse, groups are using Warp for digital humans, physics simulation, and procedural animation. Warp includes several higher-level data structures that make implementing simulation and geometry processing algorithms easier.

Meshes

Triangle meshes are ubiquitous in simulation and computer graphics. Warp provides a built-in type for managing mesh data that supports geometric queries, such as closest-point, ray-cast, and overlap checks.

Sparse Volumes

Sparse volumes are incredibly useful for representing grid data over large domains, such as signed distance fields (SDFs) for complex objects, or velocities for large-scale fluid flow. Warp includes support for sparse volumes defined using the NanoVDB standard.

Hash Grids

Many particle-based simulation methods, such as the discrete element method (DEM) or smoothed particle hydrodynamics (SPH), involve iterating over spatial neighbors to compute force interactions. Hash grids are a well-established data structure to accelerate these nearest-neighbor queries and are particularly well-suited to the GPU.

A synthetic image generation pipeline written in NVIDIA Warp.

Data Generation

Warp enables accelerated data generation and processing in Python. In this example, Warp kernels are used to generate procedural image data as part of an Omniverse synthetic data generation (SDG) pipeline.

img-aAn aerodynamic flow simulation around a vehicle using NVIDIA Warp. lt-text

Simulation

Here, you can see Warp being used to create an incompressible flow solver for aerodynamics simulation around a vehicle. Warp provides built-in support for multi-dimensional arrays and sparse collision fields via NanoVDB to accurately represent the vehicle’s collision geometry.

imgAn example of differentiable simulation for initial value alt-text

Training & Optimization

We can also use Warp to solve initial value problems. Thanks to Warp's differentiable kernels we’re able to simulate the trajectory of the ball, and obtain gradients with respect to the initial velocity. These gradients can then be used in PyTorch or JAX to optimize the trajectory and hit the target after a few seconds.

 A quadrotor drone being simulated and controlled using NVIDIA Warp.

Robotics

In this example, Warp is used to simulate the dynamics of a quadrotor drone using the AirSim aerodynamics model. Through Warp’s differentiable simulation capabilities, users can write model-based predictive controllers (MPC) to optimize the drone’s trajectory with loss functions that take into account obstacles and target goals.


Resources

Visit Github to download the latest version of NVIDIA Warp software.

Download Now