Download Latest Version Release v1.4.0 source code.zip (9.6 MB)
Email in envelope

Get an email when there's a new version of Newton

Home / v1.3.0
Name Modified Size InfoDownloads / Week
Parent folder
newton-1.3.0-py3-none-any.whl 2026-06-11 4.5 MB
README.md 2026-06-11 15.6 kB
Release v1.3.0 source code.tar.gz 2026-06-11 8.2 MB
Release v1.3.0 source code.zip 2026-06-11 8.8 MB
Totals: 4 Items   21.6 MB 0

Newton v1.3.0

Release

Newton v1.3.0 expands core Newton workflows for reinforcement learning, imported assets, collision authoring, ray queries, and viewer/rendering support. The release adds in-place solver reset APIs, a migration path for coordinate-aligned joint targets, broader USD/SDF import coverage, improved hydroelastic contact handling, and new viewer and color-space capabilities.

New Features

  • Solver reset workflows for reinforcement learning. Solvers now share an in-place SolverBase.reset() API with StateFlags, and ModelFlags is the canonical model-change notification flag type. SolverMuJoCo.reset() supports masked world resets and clears persistent MuJoCo buffers, enabling selected environments to recover from divergence without rebuilding the solver. (#2657, [#3062])

  • SDF and hydroelastic collision authoring. Newton now parses NewtonSDFCollisionAPI, validates SDF and hydroelastic settings, supports configurable SDF padding, and adds SDF edge simplification options for Mesh.build_sdf(). These changes make authored USD collision settings carry more directly into Newton simulations. (#2533, [#2701])

  • Coordinate-aligned joint targets. newton.use_coord_layout_targets(True) enables joint_target_q and joint_target_qd arrays whose layout matches joint_q and joint_qd, addressing target layout mismatches for free and ball joints. Legacy target names remain available with deprecation guidance, and the default is expected to flip in a future release. (#2965)

  • Ray queries and sensor cleanup. newton.intersect_ray() provides a public ray-vs-shape query helper for custom raycast sensors and workflows. Initial shape BVHs are now built during ModelBuilder.finalize(), and users can call model.bvh_refit_shapes(state) after state changes to keep BVH-backed ray queries and sensor renders current. SensorRaycast remains available but deprecated, with ray/depth workflows moving to SensorTiledCamera utilities. (#2971, [#3039], [#3097])

  • Viewer and rendering capabilities. Newton adds the experimental ViewerRTX backend for real-time ray-traced rendering, GL viewer edge overlays, DPI-aware and movable GL panels, a loading splash during kernel compilation, scene-scaled debug markers, and explicit color-space controls for tiled camera outputs. (#1861, [#2926], [#2411])

  • Expanded USD and asset import coverage. Newton now imports mass properties, material contact response attributes, site markers, visual material subsets, URDF material colors, and signed scale for mesh, convex, and SDF geometry. This improves physical and visual fidelity for assets authored in USD and MJCF pipelines. (#2951, [#3005], [#2936])

Performance Improvements

  • SDF narrow-phase and hydroelastic contact updates. Mesh-SDF narrow phase now uses hardware-filtered SDF texture sampling with centered-difference gradients, and hydroelastic contact no longer drops the central contact region under deep interpenetration. Earlier on-disk SDF caches are transparently re-cooked with the new cache format. (#2894, [#2701])

  • Heightfield and raycast acceleration. Heightfield raycasting now uses a wp.Mesh BVH built during model finalization, replacing the previous per-thread grid traversal path. The same release also consolidates public ray query workflows around newton.intersect_ray(). Overall, the optimizations result in up to 3x higher throughput for the tiled camera sensor. (#2971)

  • Collision pipeline tuning. Contact reduction now exposes contact_reduction_hashtable_size_factor, and SDF edge simplification can reduce contact complexity for mesh-derived SDFs while preserving compatibility with the previous behavior through explicit options. (#2701)

Developer Experience

  • MuJoCo and Kamino consistency and robustness. MuJoCo contact conversion, joint-limit handling, CPU-backend inertia synchronization, and Kamino contact/body-frame handling received fixes that improve solver consistency across imported models and mixed solver workflows. For SolverMuJoCo, Newton-authored joint_limit_ke / joint_limit_kd now map through MuJoCo's per-DOF mass/inertia scaling, and force-space shape_material_ke / shape_material_kd contacts now use MuJoCo's positive solref convention so timestep safety clamping can apply to overly stiff contacts. (#2610, [#3132], [#3139], [#3018], [#3033], [#2822])

  • MuJoCo equality import. MJCF/USD MuJoCo equality constraints now convert to Newton loop joints or mimic constraints by default while preserving MuJoCo metadata for solver round-trips. Users can opt out with convert_mjc_equality_constraints=False when they need the legacy arrays. (#2959)

  • Joint damping unification. Newton introduces shared Model.joint_damping and JointDofConfig.damping support across solvers, with Model.mujoco.dof_passive_damping deprecated in favor of the shared field. (#2304)

  • Model-owned BVH management. Newton adds Model.bvh_build_shapes(), Model.bvh_refit_shapes(), Model.bvh_build_particles(), and Model.bvh_refit_particles(), with shape and particle BVHs now built automatically during ModelBuilder.finalize(). The older free BVH helper functions remain available with deprecation warnings. (#3039)

  • Color-space correctness. USD color-space metadata is respected, and SensorTiledCamera packed color and albedo outputs now default to sRGB. Use RenderConfig(output_color_space=ColorSpace.LINEAR) when previous linear-byte output is required. (#2411)

  • Documentation and tutorials. The release adds loop-closure documentation and a robotics tutorial notebook covering ModelBuilder, solvers, CUDA graphs, inverse kinematics, and pick-and-place workflows. (#2898, [#2415])

Breaking Changes And Removals

Breaking Changes

  • Writable ModelBuilder joint target attributes removed. ModelBuilder.joint_target_pos and ModelBuilder.joint_target_vel are now read-only deprecated aliases. Code that assigned those attributes should set per-axis targets through JointDofConfig.target_pos / target_vel, or write directly to ModelBuilder.joint_target_q / joint_target_qd. (#2965)

  • Deprecated SensorContact aliases removed. The net_force, include_total, sensing_objs, counterparts, reading_indices, shape, and ObjectType aliases from earlier releases have been removed. Use total_force, force_matrix, measure_total, sensing_obj_idx, sensing_obj_type, counterpart_indices, and counterpart_type instead. (#2945)

  • MuJoCo equality constraints convert by default. MJCF/USD imports now convert MuJoCo equality constraints to Newton loop joints or mimic constraints while preserving MuJoCo metadata for solver round-trips. Pass convert_mjc_equality_constraints=False to keep the legacy equality-constraint arrays. (#2959)

  • MuJoCo joint-limit stiffness depends on asset mass/inertia. SolverMuJoCo now converts Newton joint_limit_ke / joint_limit_kd force-space gains through MuJoCo's per-DOF dof_invweight0, so the same numeric stiffness and damping can produce different dynamics than Newton 1.2. Existing assets with hand-tuned gains may become underdamped or hit MuJoCo's timestep safety clamp; retune the gains per asset mass/inertia and timestep. To keep native MuJoCo behavior, author raw mjc:solreflimit / model.mujoco.solreflimit, or set joint_limit_ke <= 0 or joint_limit_kd <= 0 to restore MuJoCo's default solreflimit = (0.02, 1.0). (#2610, [#3132])

  • MuJoCo force-space contact stiffness may be safety-clamped. SolverMuJoCo now converts force-space shape_material_ke / shape_material_kd contact gains through MuJoCo's positive solref convention when use_mujoco_contacts=False and both contacting shapes use SOLREF_MODE_FORCE_SPACE. This preserves the intended force-space response for normal settings while allowing MuJoCo's timestep safety clamp to soften contacts that are too stiff for the timestep. Existing assets with explicitly authored force-space contact gains may need retuning, especially at larger timesteps. (#3139)

  • Convex-hull SDF and hydroelastic configuration now raises. ModelBuilder.add_shape_convex_hull() and paths producing GeoType.CONVEX_MESH now raise ValueError if ShapeConfig.sdf_* or ShapeConfig.is_hydroelastic are set. Build and attach the SDF on the underlying Mesh with Mesh.build_sdf() instead. (#2533)

  • Negative scale behavior is stricter. Mesh, convex, and SDF shapes now preserve signed scale, while symmetric primitives normalize negative scale to absolute values. Cone and heightfield shapes reject negative scale and should be mirrored with an explicit transform or pre-mirrored height data. (#2837, [#2936])

  • SolverKamino.reset() signature changed. SolverKamino is marked experimental in this release, and its reset API now matches SolverBase.reset() by resetting in place on state. Migrate state_out= calls to state= and pass reset targets such as base_q= by keyword. (#2657, [#3065])

  • Example helper cleanup. The deprecated newton.examples.compute_world_offsets helper has been removed. Use ModelBuilder.replicate() instead. (#3075)

Other Removals

  • Internal raycast kernel cleanup. raycast_kernel_no_hfield has been removed in favor of raycast_kernel, and heightfield raycasting now routes through the mesh BVH path. SensorRaycast itself remains available but deprecated. (#2971, [#3097])

New Deprecations

  • Legacy joint target names. Model.joint_target_pos / Control.joint_target_pos and Model.joint_target_vel / Control.joint_target_vel are deprecated in favor of joint_target_q and joint_target_qd. ModelBuilder.joint_target_pos and ModelBuilder.joint_target_vel are no longer writable; set per-axis targets with JointDofConfig.target_pos / target_vel or write to ModelBuilder.joint_target_q / joint_target_qd. (#2965)

  • SolverNotifyFlags. Use ModelFlags instead, for example ModelFlags.MODEL_PROPERTIES. (#2657)

  • Implicit VBD Dahl defaults. SolverVBD.register_custom_attributes() no longer encourages implicit positive Dahl defaults. Pass dahl_defaults_enabled=False and explicitly author positive model.vbd.dahl_eps_max and model.vbd.dahl_tau values when Dahl cable friction is desired. (#2921)

  • MuJoCo passive damping field. Model.mujoco.dof_passive_damping is deprecated in favor of Model.joint_damping; MuJoCo damping import now populates the shared damping field. (#2304)

  • Material contact response authoring. Shape-authored newton:contact_ke, newton:contact_kd, newton:contact_kf, and newton:contact_ka attributes are deprecated in favor of newton:contactStiffness, newton:contactDamping, newton:contactFrictionGain, and newton:contactAdhesion on the bound NewtonMaterialAPI material. mjc:solref on material prims is also deprecated for contact stiffness/damping. (#3005)

  • Free BVH helper functions. newton.geometry.build_bvh_shape(), refit_bvh_shape(), build_bvh_particle(), and refit_bvh_particle() are deprecated in favor of Model.bvh_build_shapes(), Model.bvh_refit_shapes(), Model.bvh_build_particles(), and Model.bvh_refit_particles(). (#3039)

  • Heightfield boolean helper. Model.has_heightfields is deprecated in favor of Model.heightfield_count; use model.heightfield_count > 0 for boolean checks. (#3039)

  • SDF storage internals. SDF.texture_block_coords, Model.sdf_block_coords, Model.sdf_index2blocks, and several public SDF texture arrays are deprecated as public attributes. These values are becoming implementation details of the SDF contact pipeline. (#2701)

  • Implicit actuator target defaults. The Actuator default that resolves control_target_pos_attr / control_target_vel_attr to legacy joint_target_pos / joint_target_vel is deprecated. Pass control_target_pos_attr="joint_target_q" and the velocity counterpart to adopt the new behavior now. (#2965)

  • SolverMuJoCo(ls_parallel=...). The ls_parallel argument is deprecated because parallel line search is being removed from mujoco_warp. Remove ls_parallel from solver construction. (#3096)

Announcements

Upcoming Removals

  • Legacy joint target names remain available for compatibility in Newton 1.3, but the default target layout is expected to switch to joint_target_q / joint_target_qd in a future release. Set newton.use_coord_layout_targets(True) before building models to opt in now. (#2965)

  • The public SDF storage attributes SDF.texture_block_coords, Model.sdf_block_coords, Model.sdf_index2blocks, Model.shape_sdf_index, Model.texture_sdf_data, Model.texture_sdf_coarse_textures, Model.texture_sdf_subgrid_textures, and Model.texture_sdf_subgrid_start_slots are scheduled for removal in a future release. (#2701)

  • SolverNotifyFlags, Model.mujoco.dof_passive_damping, shape-authored contact response attributes, material-level mjc:solref, free BVH helper functions, Model.has_heightfields, SolverMuJoCo(ls_parallel=...), and implicit actuator target defaults remain warning aliases during the deprecation window and should be migrated before the next removal release.

  • The deprecated newton-actuators package dependency is still kept for backward compatibility, but actuator functionality has moved into newton.actuators and the external package dependency is expected to be removed in a future release.

Dependency Updates

See the installation guide for supported Python versions, GPU compute capabilities, CUDA driver minimums, and tested platform configurations. The main dependency changes worth calling out are:

  • Warp 1.14. Newton now requires warp-lang>=1.14.0. (#3046)
  • Newton USD schemas 0.3.1. newton-usd-schemas>=0.3.1 is required for the new SDF, mass, site, and material contact-response import paths.
  • RTX viewer extra. The new rtx extra adds the OVRTX viewer dependencies, including ovrtx>=0.3 and pyglet>=2.1.6,<3.
  • Recorder dependency cap removed. The previous cbor2<6 ceiling was removed after recorder deserialization was updated for mapping-like decoded containers.
  • Actuator compatibility pin. The deprecated newton-actuators compatibility dependency is pinned to >=0.1.0,<0.1.1; migrate imports to newton.actuators.

For the full dependency diff, see the pyproject.toml changes between v1.2.1 and v1.3.0 (github.com).

Acknowledgments

Thanks to the Newton Project Members and to the following contributors from outside the Newton maintainer and project-member groups:

  • @breuerpeter for adding configurable Rerun recording IDs and URDF mesh color parsing. (#2960, [#1579])
  • @devshahofficial for URDF dummy-root fixes. (#2696)
  • @fanyahao1 for solver integration documentation updates. (#3016)
  • @felixmey for the cable cross-slide table example. (#2799)
  • @johnnynunez-nv for ViewerGL HiDPI and movable-panel fixes. (#2926)
  • @Langford-H for MuJoCo CPU inertia-frame synchronization fixes. (#3018)
  • @purmecia for introducing shared joint damping support. (#2304)

For a complete list of changes, see the full changelog.

Source: README.md, updated 2026-06-11