Drake v1.47.0

Back to Release Notes

Announcements

  • Drake now offers build flags to opt-out of compiling render engines (#23574).
    • For CMake, the new flags are WITH_RENDER_GL, WITH_RENDER_GLTF_CLIENT, and WITH_RENDER_VTK.
    • For Bazel, the new flags are --@drake//tools/flags:with_render_gl, --@drake//tools/flags:with_render_gltf_client, and --@drake//tools/flags:with_render_vtk.
  • Drake’s macOS binary packages (*.tar.gz) now use Python 3.14 (#23655).
  • Drake no longer provides macOS 3.12 wheels (#23729).
  • Update gurobi to 12.0.3. This may require users to update their Gurobi installation.

Breaking changes since v1.46.0

  • None

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

Changes since v1.46.0

Dynamical Systems

New features

  • None

Fixes

  • None

Mathematical Program

New features

  • None

Fixes

  • Fix segmentation fault in ComputePairwiseIntersections (#23715)
  • Fix segmentation faults in HPolyhedron caused by sets with no hyperplanes (#23665)
  • Fix an undefined behavior in the callback at optimality in the Gurobi wrapper (#23502)
  • Remove MobyLCPSolver autodiff support (#23775)

Multibody Dynamics and Geometry

New features

  • Support link/inertial/@auto for sdformat files (#23594)
  • Add render engine opt-out flags (#23574)

Fixes

  • Fix bug in mesh/convex scale verification (#23662)
  • Meshcat serves meshcat.js from the content-addressable cache to avoid staleness bugs (#23695)
  • Meshcat uses stats.js built into meshcat.js instead of a separate copy (#23730)
  • DifferentialInverseKinematicsSystem avoids implicit context checker parallelism (#23726)
  • Render engines now dlopen X11 lazily (#23604)

Planning

New features

  • None

Fixes

  • IrisNp2: fix hyperplanes not being counted during inner iterations (#23593)

Tutorials and examples

  • None

Miscellaneous features and fixes

  • Fold drake_throw.h into drake_assert.h (#23639)
  • Add support for Eigen::Array for YAML (#23648)
  • Extend DRAKE_THROW_UNLESS with value arguments (#19229, #23679)
  • Adds LCM franka panda command publishers and receivers (#23595)

pydrake bindings

New features

  • None

Fixes

  • Fix cpp_param for Python 3.14’s typing.Union (#23675)
  • Avoid deprecated Jupyter kernel method (#23676)

Build system

  • Switch macOS to use Python 3.14 (#23655)
  • Drop macOS 3.12 wheels (#23729)
  • Add Python 3.14 wheels for both Linux and macOS (#23612, #23729)
  • Use mold linker on Linux Noble debug builds (#23258)
  • Add render engine opt-out flags (#23574)

Build dependencies

  • Load X11 lazily (#23604)
  • Fix Eigen 3.4.1 compatibility issues (#23669)
  • Prepare for rules_python 1.7 (#23788)
  • Drop unnecessary quadmath dependency on Noble (#23631)
  • Update apple_support to 1.24.4 (#23685, #23736)
  • Update bazel_features to 1.38.0 (#23680)
  • Update buildifier_prebuilt to 8.2.1 (#23698)
  • Update drake_models to latest commit (#23673)
  • Update eigen to 5.0.1 (#23756)
  • Update fcl_internal to latest commit (#23673)
  • Update fmt to 12.1.0 (#23694)
  • Update gflags to 2.2.2.bcr.1 (#23700)
  • Update glib to 2.82.2.bcr.6 (#23711)
  • Update googletest to 1.17.0.bcr.2 (#23688, #23701)
  • Update gurobi to 12.0.3 (#23502)
  • Update lcm_internal to 1.5.2 (#23478)
  • Update libx11 to 1.8.12.bcr.4 (#23707)
  • Update meshcat to latest commit (#23730)
  • Update patchelf to 0.18.0.bcr.1 (#23710)
  • Update Python env to latest (#23636)
  • Update rules_cc to 0.2.14 (#23687, #23712)
  • Update rules_java to 9 (#23737)
  • Update rules_jvm_external to 6.9 (#23739)
  • Update rules_rust to 0.67.0 (#23689)
  • Update ruff_prebuilt to 0.14.1.3 (#23650)
  • Update scs_internal to 3.2.9 (#23673)
  • Update spdlog to v1.16.0.bcr.1 (#23690, #23699)
  • Update tomli_internal to 2.3.0 (#23673)
  • Update vtk_internal to latest commit (#23642, #23674)

Newly-deprecated APIs

  • drake::fmt_floating_point with template parameters other than float and double (#23638)
  • drake::solvers::MobyLCPSolver (#23776)
    • The class was renamed to MobyLcpSolver (lowercase), without a template argument.
  • The @lcm external (#23478)
    • Instead, use the lcm module from the Bazel Central Registry.
  • The @x11 external (#23641)
    • Instead, use the x11 module from the Bazel Central Registry; or copy-paste the @pkgconfig_x11 code into your own project.

Removal of deprecated items

  • drake::symbolic::ExtractAndAppendVariablesFromExpression(#23632)

Notes

This release provides pre-compiled binaries named drake-1.47.0-{jammy|noble|mac-arm64}.tar.gz. See Stable Releases 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.