Metadata-Version: 2.4
Name: warp-lang
Version: 1.14.0.dev20260513
Summary: A Python framework for high-performance simulation and graphics programming
Author-email: NVIDIA Corporation <warp-python@nvidia.com>
License: Apache-2.0
Project-URL: Homepage, https://developer.nvidia.com/warp-python
Project-URL: Documentation, https://nvidia.github.io/warp
Project-URL: Repository, https://github.com/NVIDIA/warp
Project-URL: Issues, https://github.com/NVIDIA/warp/issues
Project-URL: Changelog, https://github.com/NVIDIA/warp/blob/main/CHANGELOG.md
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Environment :: GPU :: NVIDIA CUDA
Classifier: Environment :: GPU :: NVIDIA CUDA :: 12
Classifier: Operating System :: OS Independent
Classifier: Topic :: Scientific/Engineering
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE.md
License-File: licenses/Gaia-LICENSE.txt
License-File: licenses/appdirs-LICENSE.txt
License-File: licenses/asset_pixel_jpg-LICENSE.txt
License-File: licenses/cubql-LICENSE.txt
License-File: licenses/cuda-LICENSE.txt
License-File: licenses/dlpack-LICENSE.txt
License-File: licenses/fp16-LICENSE.txt
License-File: licenses/libmathdx-LICENSE.txt
License-File: licenses/llvm-LICENSE.txt
License-File: licenses/moller-LICENSE.txt
License-File: licenses/nanovdb-LICENSE.txt
License-File: licenses/nvrtc-LICENSE.txt
License-File: licenses/svd-LICENSE.txt
License-File: licenses/unittest_parallel-LICENSE.txt
License-File: licenses/usd-LICENSE.txt
License-File: licenses/windingnumber-LICENSE.txt
Requires-Dist: numpy
Provides-Extra: docs
Requires-Dist: nvidia-sphinx-theme; extra == "docs"
Requires-Dist: sphinx-copybutton; extra == "docs"
Requires-Dist: pre-commit; extra == "docs"
Requires-Dist: myst_parser; extra == "docs"
Provides-Extra: benchmark
Requires-Dist: usd-core>=25.5; (platform_machine != "aarch64" and python_version < "3.14") and extra == "benchmark"
Requires-Dist: usd-exchange>=2.2; (python_version >= "3.10" and python_version < "3.13" and platform_machine == "aarch64") and extra == "benchmark"
Provides-Extra: examples
Requires-Dist: blosc>=1.11.1; extra == "examples"
Requires-Dist: matplotlib>=3.7.5; extra == "examples"
Requires-Dist: pillow>=10.4.0; extra == "examples"
Requires-Dist: psutil>=7.1.0; extra == "examples"
Requires-Dist: pyglet>=2.1.9; extra == "examples"
Requires-Dist: usd-core>=25.5; (platform_machine != "aarch64" and python_version < "3.14") and extra == "examples"
Requires-Dist: usd-exchange>=2.2; (python_version >= "3.10" and python_version < "3.13" and platform_machine == "aarch64") and extra == "examples"
Provides-Extra: torch-cu12
Requires-Dist: warp-lang[examples]; extra == "torch-cu12"
Requires-Dist: torch>=2.7.0; extra == "torch-cu12"
Provides-Extra: torch-cu13
Requires-Dist: warp-lang[examples]; extra == "torch-cu13"
Requires-Dist: torch>=2.9.0; extra == "torch-cu13"
Provides-Extra: dev
Requires-Dist: warp-lang[examples]; extra == "dev"
Requires-Dist: warp-lang[docs]; extra == "dev"
Requires-Dist: nvtx; extra == "dev"
Requires-Dist: coverage[toml]; extra == "dev"
Requires-Dist: rmm-cu12; (platform_system == "Linux" and python_version < "3.14") and extra == "dev"
Requires-Dist: ml-dtypes>=0.5.4; extra == "dev"
Dynamic: license-file

[![PyPI version](https://badge.fury.io/py/warp-lang.svg)](https://badge.fury.io/py/warp-lang)
[![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
![GitHub commit activity](https://img.shields.io/github/commit-activity/m/NVIDIA/warp?link=https%3A%2F%2Fgithub.com%2FNVIDIA%2Fwarp%2Fcommits%2Fmain)
[![Downloads](https://static.pepy.tech/badge/warp-lang/month)](https://pepy.tech/project/warp-lang)
[![codecov](https://codecov.io/github/NVIDIA/warp/graph/badge.svg?token=7O1KSM79FG)](https://codecov.io/github/NVIDIA/warp)
![GitHub - CI](https://github.com/NVIDIA/warp/actions/workflows/ci.yml/badge.svg)

# NVIDIA Warp

**[Documentation](https://nvidia.github.io/warp/)** | [Changelog](https://github.com/NVIDIA/warp/blob/main/CHANGELOG.md)

Warp is a Python framework for GPU-accelerated simulation, robotics, and machine learning. Warp takes
regular Python functions and JIT compiles them to efficient kernel code that can run on the CPU or GPU.

Warp comes with a rich set of primitives for physics simulation, robotics, geometry processing,
and more. 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

## Quick Start

Simulate one million particles under gravitational attraction, in 20 lines:

```python
import warp as wp
import numpy as np

num_particles = 1_000_000
dt = 0.01

@wp.kernel
def gravity_step(pos: wp.array[wp.vec3], vel: wp.array[wp.vec3]):
    i = wp.tid()
    position = pos[i]
    dist_sq = wp.length_sq(position) + 0.01  # softened distance
    acc = -1000.0 / dist_sq * wp.normalize(position)  # gravitational pull toward origin
    vel[i] = vel[i] + acc * dt
    pos[i] = pos[i] + vel[i] * dt

rng = np.random.default_rng(42)
positions = wp.array(rng.normal(size=(num_particles, 3)), dtype=wp.vec3)
velocities = wp.array(rng.normal(size=(num_particles, 3)), dtype=wp.vec3)

for _ in range(100):
    wp.launch(gravity_step, dim=num_particles, inputs=[positions, velocities])

print(positions.numpy())
```

## Installing

Python version 3.10 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](https://pypi.org/project/warp-lang/):

```text
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](https://nvidia.github.io/warp/user_guide/installation.html).

## Tutorial Notebooks

The [NVIDIA Accelerated Computing Hub](https://github.com/NVIDIA/accelerated-computing-hub) contains the current,
actively maintained set of Warp tutorials:

| Notebook | Colab Link |
|----------|------------|
| [Introduction to NVIDIA Warp](https://github.com/NVIDIA/accelerated-computing-hub/blob/32fe3d5a448446fd52c14a6726e1b867cbfed2d9/Accelerated_Python_User_Guide/notebooks/Chapter_12_Intro_to_NVIDIA_Warp.ipynb) | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/NVIDIA/accelerated-computing-hub/blob/32fe3d5a448446fd52c14a6726e1b867cbfed2d9/Accelerated_Python_User_Guide/notebooks/Chapter_12_Intro_to_NVIDIA_Warp.ipynb) |
| [GPU-Accelerated Ising Model Simulation in NVIDIA Warp](https://github.com/NVIDIA/accelerated-computing-hub/blob/32fe3d5a448446fd52c14a6726e1b867cbfed2d9/Accelerated_Python_User_Guide/notebooks/Chapter_12.1_IsingModel_In_Warp.ipynb) | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/NVIDIA/accelerated-computing-hub/blob/32fe3d5a448446fd52c14a6726e1b867cbfed2d9/Accelerated_Python_User_Guide/notebooks/Chapter_12.1_IsingModel_In_Warp.ipynb) |

Additionally, several notebooks in the [notebooks](https://github.com/NVIDIA/warp/tree/main/notebooks) directory
provide additional examples and cover key Warp features:

| Notebook | Colab Link |
|----------|------------|
| [Warp Core Tutorial: Basics](https://github.com/NVIDIA/warp/blob/main/notebooks/core_01_basics.ipynb) | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/NVIDIA/warp/blob/main/notebooks/core_01_basics.ipynb) |
| [Warp Core Tutorial: Generics](https://github.com/NVIDIA/warp/blob/main/notebooks/core_02_generics.ipynb) | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/NVIDIA/warp/blob/main/notebooks/core_02_generics.ipynb) |
| [Warp Core Tutorial: Points](https://github.com/NVIDIA/warp/blob/main/notebooks/core_03_points.ipynb) | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/NVIDIA/warp/blob/main/notebooks/core_03_points.ipynb) |
| [Warp Core Tutorial: Meshes](https://github.com/NVIDIA/warp/blob/main/notebooks/core_04_meshes.ipynb) | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/NVIDIA/warp/blob/main/notebooks/core_04_meshes.ipynb) |
| [Warp Core Tutorial: Volumes](https://github.com/NVIDIA/warp/blob/main/notebooks/core_05_volumes.ipynb) | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/NVIDIA/warp/blob/main/notebooks/core_05_volumes.ipynb) |
| [Warp PyTorch Tutorial: Basics](https://github.com/NVIDIA/warp/blob/main/notebooks/pytorch_01_basics.ipynb) | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/NVIDIA/warp/blob/main/notebooks/pytorch_01_basics.ipynb) |
| [Warp PyTorch Tutorial: Custom Operators](https://github.com/NVIDIA/warp/blob/main/notebooks/pytorch_02_custom_operators.ipynb) | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/NVIDIA/warp/blob/main/notebooks/pytorch_02_custom_operators.ipynb) |

## Running Examples

The [warp/examples](https://github.com/NVIDIA/warp/tree/main/warp/examples) directory contains examples
covering physics simulation, geometry processing, optimization, and tile-based GPU programming.
Before running examples, install the optional example dependencies using:

```text
pip install warp-lang[examples]
```

On Linux aarch64 systems (e.g., NVIDIA DGX Spark), the `[examples]` extra automatically installs
[`usd-exchange`](https://pypi.org/project/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:

```text
python -m warp.examples.<example_subdir>.<example>
```

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. Some examples generate USD files containing time-sampled animations in the current working directory. These can be viewed in Pixar's UsdView, Blender, or any USD-compatible viewer.

To browse the example source code, you can open the directory where the files are located like this:

```text
python -m warp.examples.browse
```

### 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
             taylor green
             kelvin helmholtz
             magnetostatics

             adaptive grid
             nonconforming contact
             darcy level-set optimization
             elastic shape optimization

### warp/examples/optim

             diffray
             fluid checkpoint
             particle repulsion
             navier-stokes perturbation

### warp/examples/tile

             mlp
             nbody
             mcgp

## Learn More

Please see the following resources for additional background on Warp:

* [Product Page](https://developer.nvidia.com/warp-python)
* [SIGGRAPH 2024 Course Slides](https://dl.acm.org/doi/10.1145/3664475.3664543)
* [GTC 2024 Presentation](https://www.nvidia.com/en-us/on-demand/session/gtc24-s63345/)
* [GTC 2022 Presentation](https://www.nvidia.com/en-us/on-demand/session/gtcspring22-s41599)
* [GTC 2021 Presentation](https://www.nvidia.com/en-us/on-demand/session/gtcspring21-s31838)
* [SIGGRAPH Asia 2021 Differentiable Simulation Course](https://dl.acm.org/doi/abs/10.1145/3476117.3483433)

## Support

See the [FAQ](https://nvidia.github.io/warp/user_guide/faq.html) for common questions.

Problems, questions, and feature requests can be opened on [GitHub Issues](https://github.com/NVIDIA/warp/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](https://nvidia.github.io/warp/user_guide/contribution_guide.html) 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](https://github.com/NVIDIA/warp/blob/main/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.

### Building from Source

When building Warp from source using the `build_lib.py` script, the build process automatically
downloads [NVIDIA libmathdx](https://developer.nvidia.com/cublasdx-downloads). Pre-built Warp
packages (e.g., from PyPI) already include libmathdx statically linked into the library binaries.
In both cases, libmathdx is governed by the
[NVIDIA Software License Agreement](https://github.com/NVIDIA/warp/blob/main/licenses/libmathdx-LICENSE.txt).

NOTICE AND DISCLAIMER: This software automatically retrieves, accesses or interacts with external
materials. Those retrieved materials are not distributed with this software and are governed solely
by separate terms, conditions and licenses. You are solely responsible for finding, reviewing and
complying with all applicable terms, conditions, and licenses, and for verifying the security,
integrity and suitability of any retrieved materials for your specific use case. This software is
provided "AS IS", without warranty of any kind. The author makes no representations or warranties
regarding any retrieved materials, and assumes no liability for any losses, damages, liabilities or
legal consequences from your use or inability to use this software or any retrieved materials. Use
this software and the retrieved materials at your own risk.

## Publications & Citation

### Research Using Warp

Our [PUBLICATIONS.md](https://github.com/NVIDIA/warp/blob/main/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](https://github.com/NVIDIA/warp) page or refer to the
[CITATION.cff](https://github.com/NVIDIA/warp/blob/main/CITATION.cff) file for citation information.
