{"release":{"id":386323168,"tag":"v1.6.0","author":"github-actions[bot]","name":"Release v1.6.0","draft":false,"prerelease":false,"createdAt":"2026-09-10T10:48:26Z","publishedAt":"2026-09-10T14:37:28Z","markdown":"# Newton v1.6.0\r\n\r\nNewton v1.6.0 is a feature release following v1.5.1. It improves collision performance and scheduling, expands OpenUSD-authored particle and deformable workflows, adds graph-friendly robot controllers, introduces compliant mechanics and reusable rod modeling, and broadens the capabilities of the experimental Kamino solver.\r\n\r\nFor the complete list of changes, see the [changelog](https://github.com/newton-physics/newton/blob/v1.6.0/CHANGELOG.md#160---2026-09-10).\r\n\r\n## Highlights\r\n\r\n- **Faster, configurable collision detection.** CUDA collision work is faster across broad-phase, narrow-phase, and deterministic contact processing. Solvers can schedule rigid and soft self-contact detection, while opt-in predictive contacts help reduce tunneling between checks. (#4063, #3828, #3854)\r\n\r\n- **OpenUSD particles and surface extraction.** Newton can import authored MPM particles, materials, and scene configuration from USD and align supported deformable assets with the updated AOUSD proposal. The new `ParticleSurface` workflow turns particle simulations such as fluids into compact meshes for visualization and export, including multi-world and CUDA-graph use cases. (#3869, #3988, #3349)\r\n\r\n- **Experimental: graph-friendly robot control.** New Differential IK and operational-space controllers support heterogeneous robot batches, joint-limit and null-space control, and hybrid force/motion tasks. Implicit actuator response, faster CUDA forward kinematics, and explicit actuator-state copying make more control loops reusable inside CUDA graphs. (#4129, #4105, #3855, #3395, #4101)\r\n\r\n- **Compliant robots, rods, and mechanisms.** An opt-in compliant ALM mode for `SolverVBD` covers contacts, structural joints, drives, and limits. The new `newton.Rod` type provides validated, reusable inputs for ordered chains and explicit graphs, with material properties or section rigidities converted into local joint stiffness. (#3769, #4009)\r\n\r\n- **Experimental: more capable Kamino simulation.** `SolverKamino` adds Coulomb joint friction, joint effort limits, body motion roles, device-resident per-world solve status, and broader batched kinematics support, making multi-world robot simulations easier to configure and diagnose. (#3966, #3990, #3937, #3916)\r\n\r\n## Performance improvements\r\n\r\n- **Faster startup and replicated MuJoCo setup.** Cold example-load benchmarks improved by 13% to 20% on tested x86 and ARM systems. Across 8,192-world Ant, Cartpole, G1, and Humanoid workloads, MuJoCo solver initialization was 44% to 77% faster; 256-world G1 and Humanoid setup improved by 12% to 22%. (#3839, #3825, #4119)\r\n\r\n- **Faster, lighter model finalization.** Shape-BVH construction now uses tiled CUDA reductions for meshes and Gaussian splats; in a measured 4,096-environment rough-terrain workload, this reduced BVH build time from about 903 ms to 17 ms. On ARM, model-initialization CPU memory also fell by 14% for G1 and 25% for Humanoid. (#4001)\r\n\r\n- **Faster collision-heavy simulation.** Cross-platform benchmarks measured hydroelastic contact simulation 33% to 37% faster, SDF contact simulation 9% to 23% faster, and pyramid contact simulation 11% to 14% faster. CUDA collision detection, mesh preprocessing, convex support queries, heightfield traversal, and deterministic contact processing all perform less work while preserving contact results. (#4063, #3801, #3961)\r\n\r\n- **Lower overhead and memory at scale.** A 64-world hydroelastic workload reduced GPU buffer use from about 54.5 GiB to 3.75 GB while preserving all expected contacts. The tested 8,192-world G1 workloads also spent 30% to 40% less time in Newton-side simulation overhead, and forward kinematics now runs across articulation joints in parallel on CUDA. (#4040, #3395)\r\n\r\n## Announcements\r\n\r\n### Upgrade attention\r\n\r\n- **Joint position-target layout.** `newton.use_coord_layout_targets` now defaults to `True`, so `joint_target_q` has one entry per joint coordinate and matches `joint_q`. Index it with `Model.joint_target_q_start`; set the flag to `False` before building models only as a temporary compatibility path. (#4096)\r\n\r\n- **Collision behavior.** Mesh SDF construction now filters fully concave manifold edges by default; pass `edge_concave_filter=False` to retain the previous contact set. Hydroelastic contacts now use margin for interaction distance and gap for detection slack, and XPBD restitution is solved per contact manifold, so re-test scenes tuned around the previous behavior. (#4171, #3719, #4103)\r\n\r\n- **USD deformable and cable assets.** The importer adopts the newer AOUSD deformable proposal, including geometry-owned typed thickness and mass arrays, structural stiffness values, and new fallback values. Author array values together with their `elementType`, move thickness to simulation geometry, and re-test assets with unauthored thickness or uneven cable sampling. (#3988, #3730)\r\n\r\n### Breaking changes and removals\r\n\r\n- **Keyword-only options.** Optional arguments across mature builder, geometry, contact, solver, and selection APIs that were deprecated as positional in v1.4.0 must now be passed by keyword. (#4070)\r\n\r\n- **Mesh adjacency.** The deprecated `MeshAdjacency.indices`, dict-based `edges`, `MeshAdjacency.Edge`, and `add_edge()` APIs are removed. Use `tri_indices`, `edge_indices`, and `edge_tri_indices`. (#4110)\r\n\r\n- **Joint impedance controllers.** Deprecated index-port overrides and legacy model-free size arguments are removed. Bind indexed array views directly through the controller's resolved coordinate and DOF indices. (#3979)\r\n\r\n- **Solver compatibility APIs.** The deprecated `Model.mujoco.dof_passive_damping` alias and VBD `dahl_defaults_enabled` parameter are removed. Use `Model.joint_damping` and explicitly author positive `vbd:dahl_eps_max` and `vbd:dahl_tau` values where Dahl rod friction is required. (#3623, #4024)\r\n\r\n### New deprecations and upcoming removals\r\n\r\n- **Rod and cable construction.** Migrate from `JointType.CABLE`, `add_joint_cable()`, positional `add_rod()`, `add_rod_graph()`, `CableStiffness`, and the cable-construction helpers to `JointType.ROD`, `add_joint_rod()`, `newton.Rod`, and `ModelBuilder.add_rod(rod=...)`. The old forms remain functional through 1.6 and are eligible for removal in 1.7. (#4009)\r\n\r\n- **VBD compliant constraints.** Adopt the compliant ALM path with `rigid_compliant_alm=True` and finite authored stiffness. Pass `False` explicitly only while migrating from the deprecated legacy hard/soft constraint controls; the default will change to `True`. (#3769)\r\n\r\n- **Collision ranges and scheduling.** Migrate legacy VBD contact-range and detection-interval names to `soft_contact_gap`, `particle_self_contact_margin` plus `particle_self_contact_gap`, and solver-owned collision schedules. (#3828)\r\n\r\n- **Experimental actuator terminology.** Migrate the experimental actuator `Controller*` classes and `controller*` fields to `Drive*` and `drive*`, use `ClampingBase`, and use `ComponentKind.DRIVE`. The former names continue to warn during the 1.6 deprecation window. (#4054)\r\n\r\nSee the changelog for the complete set of new deprecations, including USD deformable attributes and keyword-only migrations for `Mesh`, `TetMesh`, and `newton.usd.get_mesh()`.\r\n\r\n## Dependency updates\r\n\r\n- Newton now requires `warp-lang>=1.17.0`.\r\n\r\n- The `sim` extra moves to MuJoCo and MuJoCo Warp 3.12.\r\n\r\n- USD import workflows require `newton-usd-schemas>=0.5.0`.\r\n\r\n- The `onnx` extra moves to `warp-nn[onnx]==0.3.1`, and documentation and example workflows require GitPython 3.1.58 or newer.\r\n\r\nNo new required dependency names were added. For complete dependency details, see the [`pyproject.toml` comparison](https://github.com/newton-physics/newton/compare/v1.5.1...v1.6.0?diff=split).\r\n\r\n## Acknowledgments\r\n\r\nThanks to the [Newton Project Members](https://github.com/newton-physics/newton-governance/blob/main/CONTRIBUTORS.md) and to the following contributors from outside the Newton maintainer, TSC, and project-member groups:\r\n\r\n- @han-xudong for MJCF actuator and tendon import improvements, Kamino terminal status, triangle-metadata correctness, and the asRoBallet control example. (#3669, #3684, #3685, #3744, #3746, #3937, #3956)\r\n\r\n- @ooctipus for predictive rigid contacts, OpenUSD texture-transform preservation, and corrected floating-base IK Jacobians. (#3854, #4007, #4088)\r\n\r\n- @ruziniuuuuu for USD collider-approximation handling, mesh-normal input support, and avoiding unused initialization contacts in MuJoCo. (#3831, #3833, #3825)\r\n\r\n- @deepspace28 for restoring MuJoCo line-search performance on large models and keeping VBD proxy reaction forces within configured contact capacity. (#3908, #4004)\r\n\r\n- @rakhimovv for bounded headless ViewerGL execution, headless-rendering guidance, and VBD edge/face contact validation. (#3930, #3932, #4060)\r\n\r\n- @aneangel for Gaussian-splat rendering and stable plane grids in ViewerViser, plus clearer MuJoCo free-joint drive warnings. (#4018, #4019, #4083)\r\n\r\n- @LuckyIYI for reducing unnecessary broad-phase work around infinite planes. (#3867)\r\n\r\n- @CharlesKZW and @Double7sBurger for MJCF heightfield orientation and heightfield-contact correctness fixes. (#3898, #4005)\r\n\r\n- @CoffeeDrivenCoder for supporting non-`int32` mesh indices in normal computation, @sparkle2820 for restoring Python 3.10 `ModelBuilder` construction, and @zlong-911 for NumPy 1.x compatibility in anisotropic Style3D cloth. (#3986, #3942, #4027)\r\n\r\n- @liorbenhorin for OpenCV pinhole camera-ray generation and @mcrowleyNV for the mobile documentation navigation fix. (#3901, #4082)\r\n","html":"<div class=\"markdown-heading\"><h1 class=\"heading-element\">Newton v1.6.0</h1><a id=\"user-content-newton-v160\" class=\"anchor\" aria-label=\"Permalink: Newton v1.6.0\" href=\"#newton-v160\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<p>Newton v1.6.0 is a feature release following v1.5.1. It improves collision performance and scheduling, expands OpenUSD-authored particle and deformable workflows, adds graph-friendly robot controllers, introduces compliant mechanics and reusable rod modeling, and broadens the capabilities of the experimental Kamino solver.</p>\n<p>For the complete list of changes, see the <a href=\"https://github.com/newton-physics/newton/blob/v1.6.0/CHANGELOG.md#160---2026-09-10\">changelog</a>.</p>\n<div class=\"markdown-heading\"><h2 class=\"heading-element\">Highlights</h2><a id=\"user-content-highlights\" class=\"anchor\" aria-label=\"Permalink: Highlights\" href=\"#highlights\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>\n<p><strong>Faster, configurable collision detection.</strong> CUDA collision work is faster across broad-phase, narrow-phase, and deterministic contact processing. Solvers can schedule rigid and soft self-contact detection, while opt-in predictive contacts help reduce tunneling between checks. (#4063, #3828, #3854)</p>\n</li>\n<li>\n<p><strong>OpenUSD particles and surface extraction.</strong> Newton can import authored MPM particles, materials, and scene configuration from USD and align supported deformable assets with the updated AOUSD proposal. The new <code>ParticleSurface</code> workflow turns particle simulations such as fluids into compact meshes for visualization and export, including multi-world and CUDA-graph use cases. (#3869, #3988, #3349)</p>\n</li>\n<li>\n<p><strong>Experimental: graph-friendly robot control.</strong> New Differential IK and operational-space controllers support heterogeneous robot batches, joint-limit and null-space control, and hybrid force/motion tasks. Implicit actuator response, faster CUDA forward kinematics, and explicit actuator-state copying make more control loops reusable inside CUDA graphs. (#4129, #4105, #3855, #3395, #4101)</p>\n</li>\n<li>\n<p><strong>Compliant robots, rods, and mechanisms.</strong> An opt-in compliant ALM mode for <code>SolverVBD</code> covers contacts, structural joints, drives, and limits. The new <code>newton.Rod</code> type provides validated, reusable inputs for ordered chains and explicit graphs, with material properties or section rigidities converted into local joint stiffness. (#3769, #4009)</p>\n</li>\n<li>\n<p><strong>Experimental: more capable Kamino simulation.</strong> <code>SolverKamino</code> adds Coulomb joint friction, joint effort limits, body motion roles, device-resident per-world solve status, and broader batched kinematics support, making multi-world robot simulations easier to configure and diagnose. (#3966, #3990, #3937, #3916)</p>\n</li>\n</ul>\n<div class=\"markdown-heading\"><h2 class=\"heading-element\">Performance improvements</h2><a id=\"user-content-performance-improvements\" class=\"anchor\" aria-label=\"Permalink: Performance improvements\" href=\"#performance-improvements\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>\n<p><strong>Faster startup and replicated MuJoCo setup.</strong> Cold example-load benchmarks improved by 13% to 20% on tested x86 and ARM systems. Across 8,192-world Ant, Cartpole, G1, and Humanoid workloads, MuJoCo solver initialization was 44% to 77% faster; 256-world G1 and Humanoid setup improved by 12% to 22%. (#3839, #3825, #4119)</p>\n</li>\n<li>\n<p><strong>Faster, lighter model finalization.</strong> Shape-BVH construction now uses tiled CUDA reductions for meshes and Gaussian splats; in a measured 4,096-environment rough-terrain workload, this reduced BVH build time from about 903 ms to 17 ms. On ARM, model-initialization CPU memory also fell by 14% for G1 and 25% for Humanoid. (#4001)</p>\n</li>\n<li>\n<p><strong>Faster collision-heavy simulation.</strong> Cross-platform benchmarks measured hydroelastic contact simulation 33% to 37% faster, SDF contact simulation 9% to 23% faster, and pyramid contact simulation 11% to 14% faster. CUDA collision detection, mesh preprocessing, convex support queries, heightfield traversal, and deterministic contact processing all perform less work while preserving contact results. (#4063, #3801, #3961)</p>\n</li>\n<li>\n<p><strong>Lower overhead and memory at scale.</strong> A 64-world hydroelastic workload reduced GPU buffer use from about 54.5 GiB to 3.75 GB while preserving all expected contacts. The tested 8,192-world G1 workloads also spent 30% to 40% less time in Newton-side simulation overhead, and forward kinematics now runs across articulation joints in parallel on CUDA. (#4040, #3395)</p>\n</li>\n</ul>\n<div class=\"markdown-heading\"><h2 class=\"heading-element\">Announcements</h2><a id=\"user-content-announcements\" class=\"anchor\" aria-label=\"Permalink: Announcements\" href=\"#announcements\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">Upgrade attention</h3><a id=\"user-content-upgrade-attention\" class=\"anchor\" aria-label=\"Permalink: Upgrade attention\" href=\"#upgrade-attention\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>\n<p><strong>Joint position-target layout.</strong> <code>newton.use_coord_layout_targets</code> now defaults to <code>True</code>, so <code>joint_target_q</code> has one entry per joint coordinate and matches <code>joint_q</code>. Index it with <code>Model.joint_target_q_start</code>; set the flag to <code>False</code> before building models only as a temporary compatibility path. (#4096)</p>\n</li>\n<li>\n<p><strong>Collision behavior.</strong> Mesh SDF construction now filters fully concave manifold edges by default; pass <code>edge_concave_filter=False</code> to retain the previous contact set. Hydroelastic contacts now use margin for interaction distance and gap for detection slack, and XPBD restitution is solved per contact manifold, so re-test scenes tuned around the previous behavior. (#4171, #3719, #4103)</p>\n</li>\n<li>\n<p><strong>USD deformable and cable assets.</strong> The importer adopts the newer AOUSD deformable proposal, including geometry-owned typed thickness and mass arrays, structural stiffness values, and new fallback values. Author array values together with their <code>elementType</code>, move thickness to simulation geometry, and re-test assets with unauthored thickness or uneven cable sampling. (#3988, #3730)</p>\n</li>\n</ul>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">Breaking changes and removals</h3><a id=\"user-content-breaking-changes-and-removals\" class=\"anchor\" aria-label=\"Permalink: Breaking changes and removals\" href=\"#breaking-changes-and-removals\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>\n<p><strong>Keyword-only options.</strong> Optional arguments across mature builder, geometry, contact, solver, and selection APIs that were deprecated as positional in v1.4.0 must now be passed by keyword. (#4070)</p>\n</li>\n<li>\n<p><strong>Mesh adjacency.</strong> The deprecated <code>MeshAdjacency.indices</code>, dict-based <code>edges</code>, <code>MeshAdjacency.Edge</code>, and <code>add_edge()</code> APIs are removed. Use <code>tri_indices</code>, <code>edge_indices</code>, and <code>edge_tri_indices</code>. (#4110)</p>\n</li>\n<li>\n<p><strong>Joint impedance controllers.</strong> Deprecated index-port overrides and legacy model-free size arguments are removed. Bind indexed array views directly through the controller's resolved coordinate and DOF indices. (#3979)</p>\n</li>\n<li>\n<p><strong>Solver compatibility APIs.</strong> The deprecated <code>Model.mujoco.dof_passive_damping</code> alias and VBD <code>dahl_defaults_enabled</code> parameter are removed. Use <code>Model.joint_damping</code> and explicitly author positive <code>vbd:dahl_eps_max</code> and <code>vbd:dahl_tau</code> values where Dahl rod friction is required. (#3623, #4024)</p>\n</li>\n</ul>\n<div class=\"markdown-heading\"><h3 class=\"heading-element\">New deprecations and upcoming removals</h3><a id=\"user-content-new-deprecations-and-upcoming-removals\" class=\"anchor\" aria-label=\"Permalink: New deprecations and upcoming removals\" href=\"#new-deprecations-and-upcoming-removals\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>\n<p><strong>Rod and cable construction.</strong> Migrate from <code>JointType.CABLE</code>, <code>add_joint_cable()</code>, positional <code>add_rod()</code>, <code>add_rod_graph()</code>, <code>CableStiffness</code>, and the cable-construction helpers to <code>JointType.ROD</code>, <code>add_joint_rod()</code>, <code>newton.Rod</code>, and <code>ModelBuilder.add_rod(rod=...)</code>. The old forms remain functional through 1.6 and are eligible for removal in 1.7. (#4009)</p>\n</li>\n<li>\n<p><strong>VBD compliant constraints.</strong> Adopt the compliant ALM path with <code>rigid_compliant_alm=True</code> and finite authored stiffness. Pass <code>False</code> explicitly only while migrating from the deprecated legacy hard/soft constraint controls; the default will change to <code>True</code>. (#3769)</p>\n</li>\n<li>\n<p><strong>Collision ranges and scheduling.</strong> Migrate legacy VBD contact-range and detection-interval names to <code>soft_contact_gap</code>, <code>particle_self_contact_margin</code> plus <code>particle_self_contact_gap</code>, and solver-owned collision schedules. (#3828)</p>\n</li>\n<li>\n<p><strong>Experimental actuator terminology.</strong> Migrate the experimental actuator <code>Controller*</code> classes and <code>controller*</code> fields to <code>Drive*</code> and <code>drive*</code>, use <code>ClampingBase</code>, and use <code>ComponentKind.DRIVE</code>. The former names continue to warn during the 1.6 deprecation window. (#4054)</p>\n</li>\n</ul>\n<p>See the changelog for the complete set of new deprecations, including USD deformable attributes and keyword-only migrations for <code>Mesh</code>, <code>TetMesh</code>, and <code>newton.usd.get_mesh()</code>.</p>\n<div class=\"markdown-heading\"><h2 class=\"heading-element\">Dependency updates</h2><a id=\"user-content-dependency-updates\" class=\"anchor\" aria-label=\"Permalink: Dependency updates\" href=\"#dependency-updates\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<ul>\n<li>\n<p>Newton now requires <code>warp-lang&gt;=1.17.0</code>.</p>\n</li>\n<li>\n<p>The <code>sim</code> extra moves to MuJoCo and MuJoCo Warp 3.12.</p>\n</li>\n<li>\n<p>USD import workflows require <code>newton-usd-schemas&gt;=0.5.0</code>.</p>\n</li>\n<li>\n<p>The <code>onnx</code> extra moves to <code>warp-nn[onnx]==0.3.1</code>, and documentation and example workflows require GitPython 3.1.58 or newer.</p>\n</li>\n</ul>\n<p>No new required dependency names were added. For complete dependency details, see the <a href=\"https://github.com/newton-physics/newton/compare/v1.5.1...v1.6.0?diff=split\"><code>pyproject.toml</code> comparison</a>.</p>\n<div class=\"markdown-heading\"><h2 class=\"heading-element\">Acknowledgments</h2><a id=\"user-content-acknowledgments\" class=\"anchor\" aria-label=\"Permalink: Acknowledgments\" href=\"#acknowledgments\"><span aria-hidden=\"true\" class=\"octicon octicon-link\"></span></a></div>\n<p>Thanks to the <a href=\"https://github.com/newton-physics/newton-governance/blob/main/CONTRIBUTORS.md\">Newton Project Members</a> and to the following contributors from outside the Newton maintainer, TSC, and project-member groups:</p>\n<ul>\n<li>\n<p>@han-xudong for MJCF actuator and tendon import improvements, Kamino terminal status, triangle-metadata correctness, and the asRoBallet control example. (#3669, #3684, #3685, #3744, #3746, #3937, #3956)</p>\n</li>\n<li>\n<p>@ooctipus for predictive rigid contacts, OpenUSD texture-transform preservation, and corrected floating-base IK Jacobians. (#3854, #4007, #4088)</p>\n</li>\n<li>\n<p>@ruziniuuuuu for USD collider-approximation handling, mesh-normal input support, and avoiding unused initialization contacts in MuJoCo. (#3831, #3833, #3825)</p>\n</li>\n<li>\n<p>@deepspace28 for restoring MuJoCo line-search performance on large models and keeping VBD proxy reaction forces within configured contact capacity. (#3908, #4004)</p>\n</li>\n<li>\n<p>@rakhimovv for bounded headless ViewerGL execution, headless-rendering guidance, and VBD edge/face contact validation. (#3930, #3932, #4060)</p>\n</li>\n<li>\n<p>@aneangel for Gaussian-splat rendering and stable plane grids in ViewerViser, plus clearer MuJoCo free-joint drive warnings. (#4018, #4019, #4083)</p>\n</li>\n<li>\n<p>@LuckyIYI for reducing unnecessary broad-phase work around infinite planes. (#3867)</p>\n</li>\n<li>\n<p>@CharlesKZW and @Double7sBurger for MJCF heightfield orientation and heightfield-contact correctness fixes. (#3898, #4005)</p>\n</li>\n<li>\n<p>@CoffeeDrivenCoder for supporting non-<code>int32</code> mesh indices in normal computation, @sparkle2820 for restoring Python 3.10 <code>ModelBuilder</code> construction, and @zlong-911 for NumPy 1.x compatibility in anisotropic Style3D cloth. (#3986, #3942, #4027)</p>\n</li>\n<li>\n<p>@liorbenhorin for OpenCV pinhole camera-ray generation and @mcrowleyNV for the mobile documentation navigation fix. (#3901, #4082)</p>\n</li>\n</ul>\n","assets":[{"contentType":"application/octet-stream","size":6159741,"createdAt":"2026-09-10T13:47:38Z","updatedAt":"2026-09-10T13:47:39Z","downloadCount":10,"downloadUrl":"https://github.com/newton-physics/newton/releases/download/v1.6.0/newton-1.6.0-py3-none-any.whl"}]}}