[![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/newton-physics/newton/main) [![Downloads](https://api.pepy.tech/badge/newton/month)](https://pepy.tech/projects/newton) [![codecov](https://codecov.io/gh/newton-physics/newton/graph/badge.svg?token=V6ZXNPAWVG)](https://codecov.io/gh/newton-physics/newton) [![Push - AWS GPU](https://github.com/newton-physics/newton/actions/workflows/push_aws_gpu.yml/badge.svg)](https://github.com/newton-physics/newton/actions/workflows/push_aws_gpu.yml) # 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. Code is licensed under [Apache-2.0](https://github.com/newton-physics/newton/blob/main/LICENSE.md). Documentation is licensed under [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/). Additional and third-party license texts are available in [`newton/licenses`](https://github.com/newton-physics/newton/tree/main/newton/licenses). Newton was initiated by [Disney Research](https://www.disneyresearch.com/), [Google DeepMind](https://deepmind.google/), and [NVIDIA](https://www.nvidia.com/). ## Requirements - **Python** 3.10+ - **OS:** Linux (x86-64, aarch64), Windows (x86-64), or macOS (CPU only) - **GPU:** NVIDIA GPU (Maxwell or newer), driver 545 or newer (CUDA 12). No local CUDA Toolkit installation required. macOS runs on CPU. For detailed system requirements, see the [installation guide](https://newton-physics.github.io/newton/latest/guide/installation.html). For tested configurations and Newton's versioning and deprecation policies, see the [compatibility guide](https://newton-physics.github.io/newton/latest/guide/compatibility.html). ## Quickstart ```bash pip install "newton[examples]" python -m newton.examples ``` To install from source with [uv](https://docs.astral.sh/uv/), see the [installation guide](https://newton-physics.github.io/newton/latest/guide/installation.html). ## Examples Before running the examples below, install Newton with the examples extra: ```bash pip install "newton[examples]" ``` If you run the examples from a source checkout with uv, use `uv run --extra examples -m newton.examples ` instead of the `python -m newton.examples ` commands below.

Basic Examples

Pendulum URDF Viewer
python -m newton.examples basic_pendulum python -m newton.examples basic_urdf python -m newton.examples basic_viewer
Shapes Joints Conveyor
python -m newton.examples basic_shapes python -m newton.examples basic_joints python -m newton.examples basic_conveyor
Heightfield Recording Replay Viewer
python -m newton.examples basic_heightfield python -m newton.examples recording python -m newton.examples replay_viewer
Plotting Dzhanibekov Conveyor Forces
python -m newton.examples basic_plotting python -m newton.examples basic_dzhanibekov python -m newton.examples basic_conveyor_forces
Mimic Joint
python -m newton.examples basic_mimic_joint

Robot Examples

Cartpole G1 H1
python -m newton.examples robot_cartpole python -m newton.examples robot_g1 python -m newton.examples robot_h1
Anymal D Anymal C Walk Policy
python -m newton.examples robot_anymal_d python -m newton.examples robot_anymal_c_walk python -m newton.examples robot_policy
UR10 Panda Hydro Allegro Hand
python -m newton.examples robot_ur10 python -m newton.examples robot_panda_hydro python -m newton.examples robot_allegro_hand
Omniwheel asRoBallet
python -m newton.examples robot_omniwheel python -m newton.examples robot_asroballet

Controller Examples

Joint Impedance Heterogeneous Operational Space Hybrid Force/Motion Differential IK
python -m newton.examples controller_joint_impedance_heterogeneous python -m newton.examples controller_operational_space_hybrid_force_motion python -m newton.examples controller_differential_ik

Cable Examples

Cable Twist Cable Y-Junction Cable Bundle Hysteresis
python -m newton.examples cable_twist python -m newton.examples cable_y_junction python -m newton.examples cable_bundle_hysteresis
Cable Pile Cable Cross Slide Table Cable Plectoneme
python -m newton.examples cable_pile python -m newton.examples cable_cross_slide_table python -m newton.examples cable_plectoneme

Cloth Examples

Cloth Bending Cloth Hanging Cloth Style3D
python -m newton.examples cloth_bending python -m newton.examples cloth_hanging python -m newton.examples cloth_style3d
Cloth H1 Cloth Twist Cloth Franka
python -m newton.examples cloth_h1 python -m newton.examples cloth_twist python -m newton.examples cloth_franka
Cloth Rollers Cloth Poker Cards
python -m newton.examples cloth_rollers python -m newton.examples cloth_poker_cards

Inverse Kinematics Examples

IK Franka IK H1 IK Custom
python -m newton.examples ik_franka python -m newton.examples ik_h1 python -m newton.examples ik_custom
IK Cube Stacking
python -m newton.examples ik_cube_stacking

MPM Examples

MPM Granular MPM Anymal MPM Two-Way Coupling
python -m newton.examples mpm_granular
python -m newton.examples mpm_granular --from-usd
python -m newton.examples mpm_anymal python -m newton.examples mpm_twoway_coupling
MPM Grain Rendering MPM Multi Material MPM Viscous
python -m newton.examples mpm_grain_rendering python -m newton.examples mpm_multi_material python -m newton.examples mpm_viscous
MPM Beam Twist MPM Snow Ball MPM Water Dam Break
python -m newton.examples mpm_beam_twist python -m newton.examples mpm_snow_ball python -m newton.examples mpm_water_dam_break

Sensor Examples

Sensor Contact Sensor Camera Sensor IMU
python -m newton.examples sensor_contact python -m newton.examples sensor_camera python -m newton.examples sensor_imu

Selection Examples

Selection Cartpole Selection Materials Selection Articulations
python -m newton.examples selection_cartpole python -m newton.examples selection_materials python -m newton.examples selection_articulations
Selection Multiple
python -m newton.examples selection_multiple

DiffSim Examples

DiffSim Ball DiffSim Cloth DiffSim Drone
python -m newton.examples diffsim_ball python -m newton.examples diffsim_cloth python -m newton.examples diffsim_drone
DiffSim Spring Cage DiffSim Soft Body DiffSim Quadruped
python -m newton.examples diffsim_spring_cage python -m newton.examples diffsim_soft_body python -m newton.examples diffsim_bear

Multi-Physics Examples

Softbody Gift Softbody Dropping to Cloth Rigid Soft Contact
python -m newton.examples softbody_gift python -m newton.examples softbody_dropping_to_cloth python -m newton.examples rigid_soft_contact
Franka Cable IK Pick and Place MuJoCo Franka VBD Cable ADMM VBD DAT Rigid Soft
python -m newton.examples franka_cable_ik_pick_place python -m newton.examples mujoco_franka_vbd_cable_admm_solver python -m newton.examples vbd_dat_rigid_soft

Contacts Examples

Nut Bolt Hydro Nut Bolt SDF Brick Stacking
python -m newton.examples nut_bolt_hydro python -m newton.examples nut_bolt_sdf python -m newton.examples brick_stacking
Pyramid RJ45 Plug Newton Cradle
python -m newton.examples pyramid python -m newton.examples contacts_rj45_plug python -m newton.examples newton_cradle
Balance Bird Domino Spiral
python -m newton.examples balance_bird python -m newton.examples domino_spiral

Softbody Examples

Softbody Hanging Softbody Franka
python -m newton.examples softbody_hanging python -m newton.examples softbody_franka

Kamino Examples

Kamino DR Testmech Kamino Fourbar Kamino Heterogeneous
python -m newton.examples kamino_basic_dr_testmech python -m newton.examples kamino_basic_fourbar python -m newton.examples kamino_basic_heterogeneous
Kamino Anymal D Kamino DR Legs
python -m newton.examples kamino_robot_anymal_d python -m newton.examples kamino_robot_dr_legs
### Example Options All examples share a common set of command-line options. The most commonly used ones are: | Argument | Description | Default | | --------------- | ------------------------------------------------------------------------ | ---------------------------- | | `--viewer` | Viewer to use: `gl`, `usd`, `rtx`, `rerun`, `viser`, or `null`. | `gl` | | `--device` | Compute device to use, e.g., `cpu`, `cuda:0`. | `None` (default Warp device) | | `--num-frames` | Total number of frames to simulate. | `100` | | `--output-path` | Path to the output USD file (used by the `usd` viewer). | `output.usd` | For the complete, always-current list of options — plus any arguments a specific example adds — run: ```bash python -m newton.examples --help ``` ### Example Usage ```bash # List available examples python -m newton.examples --list # Run with the USD viewer and save to my_output.usd python -m newton.examples basic_viewer --viewer usd --output-path my_output.usd # Run on a selected device python -m newton.examples basic_urdf --device cuda:0 # Combine options python -m newton.examples basic_viewer --viewer gl --num-frames 500 --device cpu ``` ## Contributing and Development See [`CONTRIBUTING.md`](CONTRIBUTING.md) for ways to contribute and the pull-request process. The [governance contribution guidelines](https://github.com/newton-physics/newton-governance/blob/main/CONTRIBUTING.md) cover legal requirements, project roles, and approval authority. Use the [development guide](https://newton-physics.github.io/newton/latest/guide/development.html) for environment setup and development workflows. Code and public API changes must follow the [source code guidelines](CODING_GUIDELINES.rst); reviewers may use the suggested [review guidelines](REVIEW_GUIDELINES.rst). ## 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.