Drake v1.56.0

Back to Release Notes

Announcements

  • Drake now provides a drake/version.h header that offers the macros DRAKE_VERSION_STRING and DRAKE_VERSION_AT_LEAST (#24758).
  • Drake has started porting our Python bindings from pybind11 to nanobind (#21572).
    • We ask that users of our binary releases (*.whl, *.tar.gz, *.deb) start testing 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.
  • For users who compile Drake as a dependency using Bazel, we no longer aspire to provide custom Bazel flags to configure private dependencies (#24791).
    • The --@drake//tools/flags:private_runtime_repo_default flag now has a more limited scope. Only libraries that are closely associated with the operating system or hardware environment obey this flag, e.g., BLAS / LAPACK / OpenCL.
    • To replace dependencies beyond what that flag can offer, you should use the standard Bazel mechanism, either --override_module on the command line or local_path_override in MODULE.bazel.

Previously announced

  • Support for Eigen legacy autodiff has been removed. Drake now uses its own implementation of the AutoDiffXd scalar type (#24670, #24298, #23870).
    • The settings for --@drake//tools/flags:use_eigen_legacy_autodiff and DRAKE_USE_EIGEN_LEGACY_AUTODIFF have been removed.
  • Tutorials are no longer hosted on Deepnote (#24557). Instead, the tutorials are now hosted on Drake’s webpage.
  • Releases are no longer accompanied by a Docker image, which has been deprecated (#24048). See Installation via Docker and End of Support for more information.
  • The drake-apt site at https://drake-apt.csail.mit.edu is deprecated (#24282).
    • The site will continue to be updated with stable releases for Ubuntu 24.04 (“Noble”) until March 2028, but will not add support for newer versions of Ubuntu.
    • Instead of using the drake-apt site, users should switch to directly installing the *.deb package attached to Drake releases. See drake_cmake_installed_apt for an example.
  • For binary releases, install_prereqs should no longer be run under sudo (#24458).

Breaking changes since v1.55.0

  • None

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

Changes since v1.55.0

Dynamical Systems

  • None

Mathematical Program

New features

  • None

Fixes

  • Allow floats for the kPrintToConsole solver option (#24750)

Multibody Dynamics and Geometry

New features

  • Add CenicIntegrator support for distance constraints (#24776)
  • Add CenicIntegrator support for ball constraints (#24730)
  • Add parsing support for SAP distance constraints in SDFormat and URDF files (#24737)
  • RenderEngineGl and RenderEngineVtk show_image preview of label images displays a colorized image (#24838)
  • Optionally relax constraints in TOPPRA to handle numerically-challenging trajectories (#24798)

Fixes

  • Speed up RenderEngineGl label images (#24726, #24838)
  • Fix RenderEngineGl “upside down” show_image preview (#24823)
  • Fix RenderEngineGl occluding transparency (#24869)
  • Fix RenderEngineGl diffuse color modulates diffuse map (#24870)
  • AddMultibodyPlantConstraints no longer adds distance constraints when stiffness is finite (#24752)
  • AddMultibodyPlantConstraints rejects null plant_context (#24756)
  • Remove RenderEngine::SetDefaultLightPosition (#24762)

Planning

  • None

Tutorials and examples

  • None

Miscellaneous features and fixes

  • Add drake/version.h header (#24758)
  • Fix dropped derivatives in Eigen Cholesky solves of AutoDiff matrices (#24796)
  • Remove destructors on function-local statics (#24784)

pydrake bindings

Newly bound

  • pydrake.multibody.plant.MultibodyPlant.AddTendonConstraint (#22813)

Features

  • ModelVisualizer allows choosing a RenderEngine to use for show_rgbd_sensor (#24823)
    • This changes the --show_rgbd_sensor command line parameter. It is now string-valued instead of a bool.
  • ModelVisualizer allows showing the label image instead of the color image for show_rgbd_sensor (#24838)

Fixes

  • Fix ForceDensityField virtual method overrides (#24764)
  • Remove erroneous binding of DoCalcTimeDerivatives (#24774)
  • Remove bindings that always throw at runtime (#24738)
  • Fix vector output callback lifetime (#24852)

Build system

  • None

Build dependencies

  • Update minimum bazel version to 8.6.0 (#24867)
  • Update supported CMake on macOS to 4.4 (#24813)
  • Update policy for private runtime dependencies (#24791)
  • Remove --@drake//tools/flags:libjpeg_repo (#24791)
  • Add nanobind as a dependency (#24744, #24868)
  • Add build flag option to use nanobind (#24744)
  • Add rules_rs as a dependency (#24810)
  • Update Python venv to latest (#24817)
  • Update crate_universe to latest (#24818)
  • Update dependency apple_support to 2.8.0 (#24804)
  • Update dependency bazel_features to 1.51.0 (#24805)
  • Update dependency bazel_skylib to 1.9.2 (#24799)
  • Update dependency buildifier_prebuilt to 8.5.1.3 (#24800)
  • Update dependency drake_models to latest commit (#24815)
  • Update dependency eigen to 5.0.1.bcr.2 (#24801)
  • Update dependency gflags to 2.3.1 (#24806)
  • Update dependency glib to 2.82.2.bcr.9 (#24802)
  • Update dependency googletest to 1.18.0 (#24867)
  • Update dependency gz_math_internal to 9.2.0 (#24815)
  • Update dependency libtiff_internal to 4.7.2 (#24821)
  • Update dependency mujoco_menagerie_internal to latest commit (#24815)
  • Update dependency ruff_prebuilt to 0.16.0.1 (#24786)
  • Update dependency rules_cc to 0.2.22 (#24803)
  • Update dependency rules_java to 9.7.0 (#24807)
  • Update dependency rules_jvm_external to 7.1 (#24808)
  • Update dependency sdformat_internal to 16.1.0 (#24815)
  • Update dependency suitesparse to 7.12.3 (#24815)
  • Update dependency tinygltf_internal to 3.0.1 (#24862)
  • Update dependency uwebsockets_internal to 20.79.0 (#24815)
  • Update dependency vtk_internal to latest commit (#24816)
  • Update dependency with_cfg.bzl to 1.0.0 (#24789)
  • Switch nlohmann_json dependency from Drake module extension to Bazel Central Registry module (#24853)
  • Switch suitesparse dependency from Drake module extension to Bazel Central Registry module (#24824)
  • Remove dependency on python-is-python3 (#24859)

Newly-deprecated APIs

  • --@drake//tools/flags:zlib_repo (#24814)
    • The zlib_repo flag is deprecated for removal; the future default will be "source". If you want to build zlib from source as a Bazel module, no action is necessary (that will be the future default). If you want to keep using "hardcoded", you must either use --override_module on the command line or local_path_override in MODULE.bazel.

Removal of deprecated items

  • None

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.