# newton
**Repository Path**: zhihonglin/newton
## Basic Information
- **Project Name**: newton
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-03-01
- **Last Updated**: 2026-03-01
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
[](https://opensource.org/licenses/Apache-2.0)

[](https://codecov.io/gh/newton-physics/newton)
[](https://github.com/newton-physics/newton/actions/workflows/push_aws_gpu.yml)
**This project is in active beta 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
Newton is a GPU-accelerated physics simulation engine built upon [NVIDIA Warp](https://github.com/NVIDIA/warp), specifically targeting roboticists and simulation researchers.
Newton extends and generalizes Warp's ([deprecated](https://github.com/NVIDIA/warp/discussions/735)) `warp.sim` module, and integrates
[MuJoCo Warp](https://github.com/google-deepmind/mujoco_warp) as its primary backend. Newton emphasizes GPU-based computation, [OpenUSD](https://openusd.org/) support, differentiability, and user-defined extensibility, facilitating rapid iteration and scalable robotics simulation.
Newton is a [Linux Foundation](https://www.linuxfoundation.org/) project that is community-built and maintained. It is permissively licensed under the [Apache-2.0 license](https://github.com/newton-physics/newton/blob/main/LICENSE.md).
Newton was initiated by [Disney Research](https://www.disneyresearch.com/), [Google DeepMind](https://deepmind.google/), and [NVIDIA](https://www.nvidia.com/).
## Quickstart
During the alpha development phase, we recommend using the [uv](https://docs.astral.sh/uv/) Python package and project manager. You may find uv installation instructions in the [Newton Installation Guide](https://newton-physics.github.io/newton/latest/guide/installation.html#method-1-using-uv-recommended).
Once uv is installed, running Newton examples is straightforward:
```bash
# 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](https://newton-physics.github.io/newton/latest/guide/installation.html) for detailed instructions that include steps for setting up a Python environment for use with Newton.
## Examples
Before running the examples below, set up the uv environment with:
```bash
uv sync --extra examples
```
Basic 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
|
|
Robot Examples |
|
|
|
uv run -m newton.examples robot_cartpole
|
uv run -m newton.examples robot_humanoid
|
uv run -m newton.examples robot_g1
|
|
|
|
uv run -m newton.examples robot_h1
|
uv run -m newton.examples robot_anymal_d
|
uv run --extra torch-cu12 -m newton.examples robot_anymal_c_walk
|
|
|
|
uv run --extra torch-cu12 -m newton.examples robot_policy
|
uv run -m newton.examples robot_ur10
|
uv run -m newton.examples robot_panda_hydro
|
Cable Examples |
|
|
|
uv run -m newton.examples cable_bend
|
uv run -m newton.examples cable_twist
|
uv run -m newton.examples cable_bundle_hysteresis
|
|
|
|
uv run -m newton.examples cable_pile
|
uv run -m newton.examples cable_y_junction
|
|
Cloth Examples |
|
|
|
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 cloth_h1
|
uv run -m newton.examples cloth_twist
|
uv run -m newton.examples cloth_rollers
|
|
|
|
uv run -m newton.examples cloth_poker_cards
|
|
|
Inverse Kinematics Examples |
|
|
|
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 ik_custom
|
uv run -m newton.examples cloth_franka
|
uv run -m newton.examples ik_cube_stacking
|
MPM Examples |
|
|
|
uv run -m newton.examples mpm_granular
|
uv run --extra torch-cu12 -m newton.examples mpm_anymal
|
uv run -m newton.examples mpm_twoway_coupling
|
Sensor Examples |
|
|
|
uv run -m newton.examples sensor_contact
|
uv run -m newton.examples sensor_tiled_camera
|
uv run -m newton.examples sensor_imu
|
Selection Examples |
|
|
|
uv run -m newton.examples selection_cartpole
|
uv run -m newton.examples selection_materials
|
uv run -m newton.examples selection_articulations
|
DiffSim Examples |
|
|
|
uv run -m newton.examples diffsim_ball
|
uv run -m newton.examples diffsim_cloth
|
uv run -m newton.examples diffsim_drone
|
|
|
|
uv run -m newton.examples diffsim_spring_cage
|
uv run -m newton.examples diffsim_soft_body
|
uv run -m newton.examples diffsim_bear
|
Multi-Physics Examples |
|
|
|
uv run -m newton.examples softbody_gift
|
uv run -m newton.examples softbody_dropping_to_cloth
|
|
Softbody Examples |
|
|
|
uv run -m newton.examples softbody_hanging
|
|
|
### Example Options
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).
### Example Usage
```bash
# 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
```
## Contributing and Development
See the [contribution guidelines](https://github.com/newton-physics/newton-governance/blob/main/CONTRIBUTING.md) and the [development guide](https://newton-physics.github.io/newton/latest/guide/development.html) for instructions on how to contribute to Newton.
## Support and Community Discussion
For questions, please consult the [Newton documentation](https://newton-physics.github.io/newton/latest/guide/overview.html) first before creating [a discussion in the main repository](https://github.com/newton-physics/newton/discussions).
## Code of Conduct
By participating in this community, you agree to abide by the Linux Foundation [Code of Conduct](https://lfprojects.org/policies/code-of-conduct/).
## Project Governance, Legal, and Members
Please see the [newton-governance repository](https://github.com/newton-physics/newton-governance) for more information about project governance.