Skip to main content

A Python framework for high-performance simulation and graphics programming

Project description

PyPI version License GitHub commit activity Downloads codecov GitHub - CI

NVIDIA Warp

Documentation | Changelog

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.

A selection of physical simulations computed with Warp

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 Open In Colab
GPU-Accelerated Ising Model Simulation in NVIDIA Warp Open In Colab

Additionally, several notebooks in the notebooks directory provide additional examples and cover key Warp features:

Notebook Colab Link
Warp Core Tutorial: Basics Open In Colab
Warp Core Tutorial: Generics Open In Colab
Warp Core Tutorial: Points Open In Colab
Warp Core Tutorial: Meshes Open In Colab
Warp Core Tutorial: Volumes Open In Colab
Warp PyTorch Tutorial: Basics Open In Colab
Warp PyTorch Tutorial: Custom Operators Open In Colab

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

warp/examples/core

dem fluid graph capture marching cubes
mesh nvdb raycast raymarch
sample mesh sph torch wave
2-D incompressible turbulence in a periodic box

warp/examples/fem

diffusion 3d mixed elasticity apic fluid streamlines
distortion energy navier stokes burgers magnetostatics
adaptive grid nonconforming contact darcy level-set optimization elastic shape optimization

warp/examples/optim

diffray fluid checkpoint particle repulsion

warp/examples/tile

mlp nbody mcgp

Learn More

Please see the following resources for additional background on Warp:

Support

See the FAQ for common questions.

Problems, questions, and feature requests can be opened on GitHub Issues.

For inquiries not suited for GitHub Issues, please email warp-python@nvidia.com.

Contributing

Contributions and pull requests from the community are welcome. Please see the Contribution Guide for more information on contributing to the development of Warp.

License

Warp is provided under the Apache License, Version 2.0. Please see LICENSE.md for full license text.

This project will download and install additional third-party open source software projects. Review the license terms of these open source projects before use.

Publications & Citation

Research Using Warp

Our PUBLICATIONS.md file lists academic and research publications that leverage the capabilities of Warp. We encourage you to add your own published work using Warp to this list.

Citing Warp

If you use Warp in your research, please use the "Cite this repository" button on the GitHub repository page or refer to the CITATION.cff file for citation information.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

warp_lang-1.12.0-py3-none-win_amd64.whl (119.8 MB view details)

Uploaded Python 3Windows x86-64

warp_lang-1.12.0-py3-none-manylinux_2_34_aarch64.whl (137.7 MB view details)

Uploaded Python 3manylinux: glibc 2.34+ ARM64

warp_lang-1.12.0-py3-none-manylinux_2_28_x86_64.whl (136.5 MB view details)

Uploaded Python 3manylinux: glibc 2.28+ x86-64

warp_lang-1.12.0-py3-none-macosx_11_0_arm64.whl (24.2 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

File details

Details for the file warp_lang-1.12.0-py3-none-win_amd64.whl.

File metadata

  • Download URL: warp_lang-1.12.0-py3-none-win_amd64.whl
  • Upload date:
  • Size: 119.8 MB
  • Tags: Python 3, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for warp_lang-1.12.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 697248edd2f1e2952f50e3db33b214af76173641a8894aacc467bed6dc247f8a
MD5 ee3fc8b741fbc43f7337111b664b5f6b
BLAKE2b-256 7e3f1ddc888fe769447ae33915a9567a9dd7467e1fc7fc8010d39e01b339667f

See more details on using hashes here.

File details

Details for the file warp_lang-1.12.0-py3-none-manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for warp_lang-1.12.0-py3-none-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 a2d6decba693aba5b828573c4414fd6a3f4c4a934db9c322736ef2b3fa99fe76
MD5 7685b01817506967df6a30b59ae98b8e
BLAKE2b-256 45ce9f5c57cac849edaba2f3335cb649b7019b09195b3af02221258482254559

See more details on using hashes here.

File details

Details for the file warp_lang-1.12.0-py3-none-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for warp_lang-1.12.0-py3-none-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a1436f60a1881cd94f787e751a83fc0987626be2d3e2b4e74c64a6947c6d1266
MD5 ed8e08056a9b40ac404b5998e3beb8f6
BLAKE2b-256 9813deab9dbae5c6aa753ac8ea1d3b1f85d20c5bab7bdebd8916ce242fbe1f0b

See more details on using hashes here.

File details

Details for the file warp_lang-1.12.0-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for warp_lang-1.12.0-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c78c3701d5cad86c30ef5017410d294ec46a396bb0d502ee1c98743494f3a62f
MD5 25308f435ce66d9534b6971b8449dfe5
BLAKE2b-256 7d15fadf3e3ba5c1c907530c20c98402aaef792da74bbbe382c848cef6e5affe

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page