This project is in active alpha development. This means the API is unstable, features may be added or removed, and breaking changes are likely to occur frequently and without notice as the design is refined.
Newton is a GPU-accelerated physics simulation engine built upon NVIDIA Warp, specifically targeting roboticists and simulation researchers.
Newton extends and generalizes Warp's (deprecated) warp.sim
module, and integrates
MuJoCo Warp as its primary backend. Newton emphasizes GPU-based computation, OpenUSD support, differentiability, and user-defined extensibility, facilitating rapid iteration and scalable robotics simulation.
Newton is a Linux Foundation project that is community-built and maintained. It is permissively licensed under the Apache-2.0 license.
Newton was initiated by Disney Research, Google DeepMind, and NVIDIA.
During the alpha development phase, we recommend using the uv Python package and project manager. You may find uv installation instructions in the Newton Installation Guide.
Once uv is installed, running Newton examples is straightforward:
# Clone the repository
git clone git@github.com:newton-physics/newton.git
cd newton
# set up the uv environment for running Newton examples
uv sync --extra examples
# run an example
uv run -m newton.examples basic_pendulum
See the installation guide for detailed instructions that include steps for setting up a Python environment for use with Newton.
Before running the examples below, set up the uv environment with:
uv sync --extra examples
|
|
|
uv run -m newton.examples basic_pendulum
|
uv run -m newton.examples basic_urdf
|
uv run -m newton.examples basic_viewer
|
|
|
|
uv run -m newton.examples basic_shapes
|
uv run -m newton.examples basic_joints
|
|
|
|
uv run -m newton.examples cloth_bending
|
uv run -m newton.examples cloth_hanging
|
uv run -m newton.examples cloth_style3d
|
|
|
|
uv run -m newton.examples ik_franka
|
uv run -m newton.examples ik_h1
|
uv run -m newton.examples ik_benchmark
|
|
|
|
uv run -m newton.examples cloth_franka
|
uv run -m newton.examples cloth_twist
|
|
|
|
uv run -m newton.examples mpm_granular
|
uv run --extra torch-cu12 -m newton.examples mpm_anymal
|
|
|
|
uv run -m newton.examples selection_cartpole
|
uv run -m newton.examples selection_materials
|
uv run -m newton.examples selection_articulations
|
The examples support the following command-line arguments:
Argument | Description | Default |
---|---|---|
--viewer |
Viewer type: gl (OpenGL window), usd (USD file output), rerun (ReRun), or null (no viewer). |
gl |
--device |
Compute device to use, e.g., cpu , cuda:0 , etc. |
None (default Warp device) |
--num-frames |
Number of frames to simulate (for USD output). | 100 |
--output-path |
Output path for USD files (required if --viewer usd is used). |
None |
Some examples may add additional arguments (see their respective source files for details).
# List available examples
uv run -m newton.examples
# Run with the USD viewer and save to my_output.usd
uv run -m newton.examples basic_viewer --viewer usd --output-path my_output.usd
# Run on a selected device
uv run -m newton.examples basic_urdf --device cuda:0
# Combine options
uv run -m newton.examples basic_viewer --viewer gl --num-frames 500 --device cpu
See the contribution guidelines and the development guide for instructions on how to contribute to Newton.
For questions, please consult the Newton documentation first before creating a discussion in the main repository.
By participating in this community, you agree to abide by the Linux Foundation Code of Conduct.
Please see the newton-governance repository for more information about project governance.