Drake v1.57.0

Back to Release Notes

Announcements

  • MultibodyPlant and SceneGraph support simulation of virtual conveyor belts (#24861) (#24907)
  • Add support for virtual forces applied to bodies in meshcat based on clicking and dragging on the bodies (#24842)
  • This release will be the last release that supports Sequoia (i.e., macOS 15), as documented on our OS Support page (#24941). We will be working to add official support for macOS Golden Gate (27) soon.
  • Drake’s use of pybind11 is now deprecated. Drake’s project-wide default will change to nanobind around 2026-12-01 (#24897). For wheel builds, the default will change in the next release.

Previously announced

  • Drake has started porting our Python bindings from pybind11 to nanobind (#21572).
    • We ask that users of our binary releases (*.whl, *.tar.gz, *.deb) test beta versions of our nanobind-based binary releases. Refer to the beta testing section of the issue for instructions. If you experience a problem, please file a Drake bug report.
    • In the future, Drake will eventually drop support for pybind11. Users who build Drake from source and add additional bindings for their own project’s Drake-adjacent code will eventually need to make the same transition. Please subscribe to the issue for updates and check the porting guide section of the issue for tips.

Breaking changes since v1.56.0

  • Assign joint coordinate starts in topology; only affects users who have derived from drake::multibody::Joint (#24923)
  • pydrake.common.trigger_an_assertion_failure has been changed to internal use only (#24910)

Refer to our Drake Stability Guidelines for our policy on API changes.

Changes since v1.56.0

Dynamical Systems

  • None

Mathematical Program

New features

  • Add weight to drake::solvers::MathematicalProgram::AddMaximizeLogDeterminantCost (#24969)

Fixes

  • None

Multibody Dynamics and Geometry

New features

  • MultibodyPlant and SceneGraph support simulation of virtual conveyor belts (#24861)
  • Add support for virtual forces applied to bodies in meshcat based on clicking and dragging on the bodies (#24842)

Fixes

  • ICF (and hence CENIC) obey ConstraintActiveStatus (#24901)
  • CollisionFilter now correctly throws for unrecognized geometry ids (#24892)
  • Throw when reusing body name for rigid or deformable within a single model instance (#24933)
  • Resolve MuJoCo nested include assets relative to included XML (#24943)

Planning

New features

  • None

Fixes

  • Avoid unnecessary autodiff calculations in drake::planning::trajectory_optimization::KinematicTrajectoryOptimization::AddPathPositionConstraint (#24921)

Tutorials and examples

  • Rename four-bar bushing example (#24977)
  • Add conveyor belt surface velocity demo (#24907)

Miscellaneous features and fixes

  • None

pydrake bindings

New features

  • None

Fixes

  • Support None for action/observation spaces in pydrake.gym.DrakeGymEnv as previously documented (#24935)

Build system

  • Report the real version when building from a source tarball (#24887)
  • Allow ubuntu derivatives to run setup script (#24926)
  • Use host Xcode SDK when building rust code (#24899)

Build dependencies

  • Obtain sphinx via PyPI instead of the system (#24931)
  • Update crate_universe to latest (#24952)
  • Update dependency abseil_cpp_internal to 20260817.0 (#24954)
  • Update dependency apple_support to 2.8.1 (#24939)
  • Update dependency buildifier_prebuilt to 8.5.1.4 (#24940)
  • Update dependency common_robotics_utilities_internal to latest commit (#24951)
  • Update dependency dm_control_internal to 1.0.45 (#24951)
  • Update dependency drake_models to latest commit (#24951)
  • Update dependency glib to 2.82.2.bcr.10 (#24945)
  • Update dependency googletest to 1.18.0.bcr.1 (#24946)
  • Update dependency gz_math_internal to 9.3.0 (#24951)
  • Update dependency implib_so_internal to latest commit (#24951)
  • Update dependency llvm to 0.8.19 (#24947)
  • Update dependency msgpack_internal to 9.0.0 (#24951)
  • Update dependency nanobind to 3.0.1 (#24962)
  • Update dependency nanoflann_internal to 1.12.1 (#24951)
  • Update dependency nasm to 3.02 (#24961)
  • Update dependency rules_java to 9.9.0 (#24949)
  • Update dependency rules_python to 2.3.2 (#24950)
  • Update dependency rules_rs to 0.0.110 (#24972)
  • Update dependency uv to 0.12.11 (#24974)
  • Update dependency voxelized_geometry_tools_internal to latest commit (#24951)
  • Update dependency vtk_internal to latest commit (#24956)
  • Upgrade Python venv to latest (#24955)

Newly-deprecated APIs

Removal of deprecated items

  • drake/common/ssize.h (#24831)
  • drake::multibody::DiscreteContactApproximation::kTamsi (#24831)
  • drake::multibody::DiscreteContactSolver::kTamsi (#24831)
  • drake::multibody::TamsiSolver (#24831)
  • drake::multibody::TamsiSolverIterationStats (#24831)
  • drake::multibody::TamsiSolverParameters (#24831)
  • drake::multibody::TamsiSolverResult (#24831)
  • drake::systems::PeriodicEventDataComparator (#24831)
  • pydrake.multibody.plant.DiscreteContactSolver.kTamsi (#24831)
  • pydrake.multibody.plant.DiscreteContactApproximation.kTamsi (#24831)
  • MultibodyPlantConfig.discrete_contact_approximation = "tamsi" (#24831)
  • //multibody/plant:tamsi_solver (#24831)

Notes

This release provides pre-compiled binaries. See Installation for instructions on how to use them.

Drake binary releases incorporate a pre-compiled version of SNOPT as part of the Mathematical Program toolbox. Thanks to Philip E. Gill and Elizabeth Wong for their kind support.