Skip to content

Changelog

Changelog

Steel changes, newest first, grouped by month and area. Steel is newton.solvers.SolverSteel in Newton.

  • Upstream entries are merged pull requests on newton-physics/newton. Unmarked entries shipped in Newton 1.8.0; entries marked (Newton main) are on main after that release.
  • Integration branch entries are commits on skild-ai/newton main that are not upstream yet. They reach Newton through upstream pull requests.

Generated by gen_changelog.py on 2026-11-11.

In review upstream

  • Warn when SolverSteel ignores joint spring stiffness. #5236 by @jaredmejia
  • Add per-body gravity scale (part 1 of #5179). #5232 by @jaredmejia
  • Add ASV benchmarks for Steel contact friction and torsion preparation. #5231 by @jaredmejia
  • Add queries for update flags and notify capture. #5098 by @eric-heiden
  • Add per-shape friction modes. #5064 by @adenzler-nvidia
  • Integrate passive joint damping implicitly in SolverSteel. #5010 by @cola1917
  • Add rolling and spin friction rows to SolverSteel free-body contacts. #5005 by @jaredmejia
  • MuJoCo-style tendons for SolverSteel, in review on the integration branch.

November 2026

Solver core

  • Add Nesterov momentum to Steel’s matrix-free Gauss-Seidel sweep. #5229 by @jaredmejia (Newton main)
  • Serial and colored solve modes, remove split, run matrix-free on CPU. #5150 by @LuckyIYI
  • Skip sleeping articulations’ propagation work in colored Steel. #5119 by @jaredmejia
  • Accept same-articulation propagation rows with the colored sweep. #5113 by @jaredmejia
  • Allow sleeping with colored Steel propagation. #5106 by @jaredmejia
  • Add per-world body shape variants on shared storage. #4959 by @eric-heiden
  • Publish the input state of Steel bodies outside every articulation. #5000 by @jaredmejia

Contacts and friction

  • Add contact adhesion through the per-shape steel:adhesion attribute. f6fc82a8b by @jaredmejia (integration branch)
  • Keep carried contacts matched and add a rotating color order (propagation_color_order=“rotating”). baffc2abb by @jaredmejia (integration branch)
  • Walk contact-torsion group members in the Steel matrix-free sweep. #5174 by @jaredmejia
  • Clamp SolverSteel’s coupled Coulomb Newton normal impulse at zero. #5117 by @jaredmejia
  • Support mesh surface velocity in SolverSteel. #5109 by @jaredmejia
  • Solve Steel contact torsion rows on colored propagation. #5108 by @jaredmejia
  • Support contact compliance on colored Steel propagation. #5107 by @jaredmejia
  • Drop Steel torsion rows per world on capacity overflow. #5104 by @jaredmejia
  • Add opt-in body-pair contact reduction. #5007 by @jaredmejia
  • Carry frozen Steel friction-patch pairs in parallel. #5096 by @jaredmejia
  • Skip the second friction row of each pair in SolverSteel’s matrix-free Gauss-Seidel sweeps. #5070 by @jaredmejia
  • Release Steel friction anchors that slip inside the final cone. #5069 by @jaredmejia
  • Prepare SolverSteel’s compliant contact rows on the device. #5006 by @jaredmejia
  • Support friction_mode other than fixed_normal on colored Steel propagation. #5002 by @jaredmejia
  • Bound history-less Steel patch anchor seeds by their patch cone. #5001 by @jaredmejia
  • Apply SolverSteel CONNECT impulses at a shared anchor. #4998 by @jaredmejia

Joints and drives

  • Apply passive joint springs in SolverSteel. #5159 by @jaredmejia (Newton main)
  • Add FIXED (weld) loop closures to SolverSteel for link-break loops. #5158 by @jaredmejia
  • Fix MJCF joint equality endpoints. #5029 by @M-Colley
  • Apply rigid-body linear damping in SolverSteel. #5105 by @jaredmejia
  • Support loop-closing REVOLUTE joints in SolverSteel. #4999 by @jaredmejia

Performance

  • Cut single-world latency for large articulations. 2e4d770af by @LuckyIYI (integration branch)
  • Keep Steel’s contact-bearing local owners to small world batches. #5201 by @dylanturpin
  • Keep Steel’s sparse factors with friction patches on and form the paired inverse factors in registers. #5200 by @dylanturpin
  • Form Steel’s body inertias one body per thread and carry the published kinematics into the next step. #5199 by @dylanturpin
  • Reserve Steel’s ordered row slots with one block per world. #5176 by @jaredmejia
  • Visit only the velocity-limit rows’ span in the Steel matrix-free sweep. #5175 by @jaredmejia
  • Run the allocation-free prefix scan in one launch. #5173 by @jaredmejia
  • Keep Steel latency-mode launch parameters under 4 KB. 8b1f6bc50 by @jaredmejia (integration branch)
  • Run Steel’s deterministic row scans on preallocated scratch. #5153 by @jaredmejia
  • Add multi-DOF warp tree kernels, cooperative overlap refinement and a one-launch latency mode. 6516b18e5 by @LuckyIYI (integration branch)
  • Shorten SolverSteel’s matrix-free Gauss-Seidel dense-row latency chain. #5071 by @jaredmejia

API and observables

  • Move Newton warning categories to the root namespace. #5266 by @adenzler-nvidia
  • Raise on SolverSteel constraint_row_watermarks() during graph capture. #5142 by @jaredmejia
  • Raise on SolverSteel compliance count reads during graph capture. #5118 by @jaredmejia
  • Report Steel constraint status from a device snapshot. #5072 by @jaredmejia
  • Promote passive joint springs to the core API. #4521 by @eric-heiden

Fixes

  • Check the Steel overflow flags instead of captured printf on Windows. #5252 by @dylanturpin
  • Keep Steel’s torsion member lists ahead of the matrix-free pair cache. #5204 by @jaredmejia

October 2026

Solver core

  • Add propagation_constraint_max to SolverSteel. #4997 by @jaredmejia
  • Add a longest-first color order to Steel colored propagation. #4994 by @jaredmejia
  • Restart the sleeping history of worlds selected by a masked SolverSteel.reset(). #4951 by @jaredmejia
  • Remove the propagation_fused contact response from SolverSteel. #4885 by @jaredmejia
  • Add an opt-in run-to-run deterministic mode to SolverSteel. #4821 by @jaredmejia
  • Join the Steel double-buffer clear before step() returns. #4749 by @jaredmejia
  • Add the experimental Steel solver. #4522 by @jaredmejia

Contacts and friction

  • Gate Steel restitution on the step-start closing speed. #4992 by @jaredmejia
  • Solve Steel contact torsion rows on the plain propagation response. #4954 by @jaredmejia
  • Add friction and restitution combine modes to SolverSteel. 7565a26b1 by @jaredmejia (integration branch)
  • Fix kinematic supports and zero-gap resting contacts in Steel’s coupled friction modes. #4907 by @jaredmejia
  • Support articulated torsional and rolling friction rows on colored Steel propagation. 21ae5d994 by @jaredmejia (integration branch)
  • Support free-body rolling and spin rows on colored propagation. c9820fbc3 by @jaredmejia (integration branch)
  • Solve free-body rolling and spin rows on the propagation response. b642e9313 by @jaredmejia (integration branch)
  • Express Steel free-rigid rows in the FREE joint’s anchor frame. #4748 by @jaredmejia
  • Keep shapes with different condim in separate body-pair reduction groups. 3ba3ce9d4 by @jaredmejia (integration branch)
  • Add experimental rolling and spin friction rows for free-body contacts (steel:condim 4 and 6). 14cf39b77 by @jaredmejia (integration branch)

Joints and drives

  • Add load-proportional joint friction to SolverSteel. #4993 by @jaredmejia
  • Split Steel propagation mobility per shared joint. #4906 by @jaredmejia
  • Add dry joint friction rows to Steel. #4760 by @jaredmejia

Performance

  • Compile the row phase into SolverSteel’s matrix-free GS kernel. #5004 by @jaredmejia

API and observables

  • Report SolverSteel BODY_PARENT_F from the solved step. #5003 by @jaredmejia
  • Add Steel determinism examples. #4883 by @jaredmejia
  • Add per-joint write masks to forward kinematics. #4881 by @eric-heiden
  • Add a Steel sleeping example and a BODY_AWAKE observable. #4823 by @jaredmejia
  • Add interactive Steel mechanism examples. db9cd5ea5 by @LuckyIYI (integration branch)
  • Run Steel notify_model_changed on the device and limit warm-start invalidation to a world mask. #4759 by @jaredmejia
  • Use NewtonWarning for Steel solver warnings. #4767 by @adenzler-nvidia
  • Add interactive tabletop examples. 4ba4f149e by @LuckyIYI (integration branch)

Coupling

  • Let SolverSteel own rigid entries in the coupled solvers. #4824 by @jaredmejia