Newton v1.5.0
Newton v1.5.0 is a feature release following v1.4.0. It expands scalable batched simulation and robot-control workflows, improves contact reliability and asset-import fidelity, strengthens cable mechanics, and adds new opt-in MuJoCo and Kamino capabilities.
For the complete list of changes, see the changelog.
Highlights
-
Experimental: vectorized joint control. The new
newton.controllersmodule adds model-based and caller-supplied joint-space impedance controllers for heterogeneous GPU robot batches, with a runnable example. (#3598) -
Scalable multi-world workflows. Isolated implicit MPM, masked solver resets, and dedicated global-world gravity make batched robot-learning simulations easier to reset, capture, and run without cross-world state loss. Representative replicated humanoid and G1 workloads initialize 11% to 24% faster, while CPU peak initialization memory falls 10% to 15% across Cartpole, Humanoid, and G1. (#3411, #3412, #3415, #3601, #3649, #3656, #3724)
-
MuJoCo Warp sleeping. Opt-in tree sleeping, contact-based wake-up, initial sleep policies, compact
nvmaxstorage, and a runnable example reduce active work and solver memory for scenes where many articulated trees can remain inactive. (#3731) -
Contact correctness and persistence. Deterministic hydroelastic generation, persistent geometry, selective reset, stable box manifolds, full-surface VBD proxy coupling, and Kamino capacity fixes improve reproducibility in contact-rich simulations. (#3661, #3649, #3775, #3641, #3732, #3776, #3756)
-
Cable shear and twist. Cable helpers and experimental VBD slots model stretch, shear, bend, and twist independently, with corrected isotropic conditioning, more efficient bend/twist solving that remains robust near folds, seven validation examples, and a plectoneme showcase. (#3122, #3783, #3860)
-
USD and MJCF fidelity. Importers preserve purpose, visibility, materials, textures, mass, velocity, physics-scene discovery and selection, collision filtering, sites, and equality constraints more faithfully, while faster terrain and USD construction shorten setup. (#3404, #3712, #3418, #3322, #3628, #3761, #3714, #3785, #3814)
-
Experimental: Kamino DVI dynamics. Users can opt into sparse or dense DVI dynamics with diagnostics, warm starting, bounded recovery, and reusable ordering while PADMM remains the default. (#3570, #3613)
Announcements
Upgrade attention
-
Joint target names. The deprecated
joint_target_posandjoint_target_velaliases have been removed fromModel,Control, andModelBuilder. Usejoint_target_qandjoint_target_qd; changing these names alone does not require changing the target layout. (#3617) -
Position-target layout. The legacy DOF-shaped
joint_target_qlayout is deprecated for models containing free, ball, or distance joints. Setnewton.use_coord_layout_targets = Truebefore building models sojoint_target_qmatchesjoint_q, keepjoint_target_qdDOF-shaped, and index position targets withModel.joint_target_q_start. Models without those joint types have identical layouts. (#3617) -
USD visual import. Static visual-only geometry now loads by default, and approximated colliders retain their authored render mesh. Pass
load_static_visual_shapes=Falseto preserve body-associated visuals only, filter collision shapes withShapeFlags.COLLIDE_SHAPES, or passload_visual_shapes=Falsewhen visual shapes are unwanted. (#3694, #3712) -
Fast math. Tiled-camera render kernels and
intersect_ray()now use fast math by default. SetSensorTiledCamera.default_render_config.enable_fast_math = Falseand passfast_math=Falseto preserve bit-exact IEEE-precise output. (#3452, #3521) -
VBD Dahl friction. Implicit positive Dahl defaults are disabled. Pass
dahl_defaults_enabled=Trueonly as a temporary compatibility measure, then explicitly author positivevbd:dahl_eps_maxandvbd:dahl_tauvalues. (#3636) -
Model replication.
ModelBuilder.replicate()now merges copies in one pass and no longer invokes subclass overrides ofadd_world()oradd_builder()per copy. Move required side effects outside those overrides, or call the methods explicitly. (#3656) -
Kamino speculative contacts.
SolverKaminonow culls positive-distance speculative contacts by default. No compatibility switch restores the earlier behavior; increaseShapeConfig.marginto move force onset and re-test affected scenes. (#3779)
Breaking changes and removals
The behavior and default changes that require migration are summarized under Upgrade attention. The following APIs deprecated in earlier releases have now been removed:
-
Joint targets and actuator defaults. The
joint_target_posandjoint_target_velaliases are removed fromModel,Control, andModelBuilder, andActuatornow selectsjoint_target_qandjoint_target_qdby default. (#3617) -
SDF compatibility storage. Deprecated public texture-SDF and block-coordinate attributes on
ModelandSDFare removed. Use supported geometry APIs instead of relying on internal SDF storage. (#3622) -
BVH and heightfield helpers. The free
build_bvh_*andrefit_bvh_*helpers are removed in favor of the correspondingModel.bvh_build_*()andModel.bvh_refit_*()methods.Model.has_heightfieldsis removed; useModel.heightfield_count. (#3619) -
Solver flags and options.
SolverNotifyFlagsis removed in favor ofModelFlags, and the ineffectiveSolverMuJoCo(ls_parallel=...)option is removed. (#3619) -
Experimental VBD cable slots.
SolverVBD.JointSlotnow separates stretch, shear, bend, and twist. Rawslot=1andJointSlot.ANGULARnow select shear; useJointSlot.BEND, now slot 2, for bending. (#3122, #3783)
New deprecations
-
Scalar gravity. Pass a three-component gravity vector to
ModelBuilderinstead of a scalar. (#3324) -
Solver reset masks. Use a
wp.boolmask with shape(world_count + 1,); the final entry selects global entities in world-1. (#3726) -
VBD sticky-contact parameters.
rigid_contact_stick_motion_eps,rigid_contact_stick_freeze_translation_eps, andrigid_contact_stick_freeze_angular_epsare ignored and deprecated. Use collision-pipeline sticky matching. (#3652) -
Model-owned collision helpers. Replace
Model.contacts()andModel.collide()with an explicitCollisionPipeline,pipeline.contacts(), andpipeline.collide(). (#3409) -
DOF-shaped position targets. Opt into coordinate-layout position targets with
newton.use_coord_layout_targets = Truebefore building models and index them withModel.joint_target_q_start. (#3617)
Upcoming removals
-
The coordinate layout will become the only
joint_target_qlayout in a future release, andnewton.use_coord_layout_targetswill be removed. Opt into the coordinate layout now. (#3617) -
The temporary
dahl_defaults_enabled=Truecompatibility mode will be removed in a future release. Explicitly author positivevbd:dahl_eps_maxandvbd:dahl_tauvalues where Dahl cable friction is required. (#3636)
Dependency updates
- Newton now requires
warp-lang>=1.16.0. - The
simextra moves to MuJoCo and MuJoCo Warp 3.11. - USD import workflows require
newton-usd-schemas>=0.4.1. - No new required dependency names were added.
For complete dependency details, see the pyproject.toml comparison.
Acknowledgments
Thanks to the Newton Project Members and to the following contributors from outside the Newton maintainer, TSC, and project-member groups:
- @maxkra15 for isolated multi-world implicit MPM, rebuildable sparse grids, and masked coupled-solver resets. (#3411, #3412, #3649)
- @nvtw for Kamino DVI dynamics and performance, deterministic hydroelastic contacts, stable box manifolds, collision-pipeline migration, and viewer improvements. (#3570, #3613, #3610, #3661, #3776, #3409, #3410)
- @StafaH for faster startup and model replication, mesh-derived heightfields, ray-query and camera performance, and configurable shape BVHs. (#3656, #3624, #3521, #3452, #3634)
- @han-xudong for MJCF asset, default-class, material, site, and contact-pair fixes; model validation; and ball-joint damping support. (#3686, #3673, #3687, #3631, #3667, #3671, #3310, #3311, #3458, #3298, #3299)
- @mmichelis for full-surface VBD proxy coupling and multi-world collision-buffer fixes. (#3756, #3664, #3785)
- @ooctipus for USD purpose and material-binding behavior and MuJoCo external-contact cache correctness under CUDA graphs. (#3404, #3351, #3768)
- @daniela-hase for forward-depth camera output, fullscreen ViewerGL sensor-image display, tiled and deformable rendering fixes, and Warp 1.16 integration. (#3519, #3811, #3536, #3551, #3518, #3557)
- @caugonnet for fixing the lifetime of meshes shared across finalized models and adding explicit cache invalidation. (#3637)
- @nblauch for tiled-camera cubic and triplanar texture projection modes. (#2312)
- @jieseattle for warning when mirrored USD rigid-body transforms cannot be decomposed safely. (#3654)
- @felixmey for fixing small-angle revolute-joint reconstruction. (#3706)
- @c0d1f1ed for extending portable CPU graph-capture coverage. (#3501)
- @lyd405121 for adding per-DOF masking to inverse-kinematics optimization. (#3488)
- @LuyiLi for fixing scale-dependent MPR contacts on large mesh triangles. (#3766)
- @kioxli for fixing MuJoCo collision-mask overflow at the highest supported graph color. (#3771)
- @ruziniuuuuu for imported-collider visibility and atomic viewer-texture publication fixes. (#3292, #3289)
- @aneangel for fixing particle rendering scale in the
cloth_frankaexample. (#2991) - @devshahofficial for correcting Robotiq masses through the updated Menagerie asset pin. (#3555)