Announcements
- On macOS when building from source, Drake now requires Xcode 16 or newer.
- For Bazel users, take note that Drake has begun porting to Bazel modules instead of repository rules. Please start studying the new technology and how it will impact you. After Drake has good support for modules, we plan to deprecate Drake’s repository rules for removal. For progress updates, follow #20731. To see our up-to-date best advice for how to depend on Drake from your own project, follow drake-external-examples.
- For
IpoptSolver
on Ubuntu, we now support setting the Ipopt solver option"linear_solver"
to"spral"
(instead of the default of"mumps"
). We encourage users to try out SPRAL and provide feedback. We intend to change the default to SPRAL in a future release (for both macOS and Ubuntu), and to eventually deprecate and remove support for MUMPS entirely.
Breaking changes since v1.35.0
- In
MathematicalProgram
, the return value ofAddPrincipalSubmatrixIsPsdConstraint
for a matrix ofsymbolic::Expression
has changed. It now returnsBinding<LinearMatrixInequalityConstraint>
. (#22234)
Refer to our Drake Stability Guidelines for our policy on API changes.
Changes since v1.35.0
Dynamical Systems
New features
- None
Fixes
- Speed up feedthrough calculation during diagram building (#21632)
Mathematical Program
New features
- Return dual solution for PSD constraint in
SCS
andClarabel
(#22147) - Add PSD constraint for a scalar as a linear constraint in
Mosek
(#22141) SCS
andClarabel
parse scalar PSD constraint as linear constraint (#22200)- Add
MathematicalProgram::AddLinearMatrixInequalityConstraint()
for a matrix ofsymbolic::Expression
(#22211) Scs
andClarabel
parse 2x2 PSD/LMI constraints as second order cone constraints (#22219)- Discourage
AddPositiveSemidefiniteConstraint()
for a matrix ofsymbolic::Expression
(#22234) Mosek
imposes linear or rotated quadratic constraint for small-size LMI constraints (#22238)Mosek
parses PSD constraint on 2x2 matrix as rotated Lorentz cone (#22231)- Parallelize the Rounding Stage of
GraphOfConvexSets
(#22222) - Reproduce the
SCS
program with python code (#22223, #22273) - IpoptSolver can use SPRAL on Ubuntu (#22206)
- Add methods to update individual A or b entries of some costs (#22260)
Fixes
- Drop unnecessary convex quadratic constraints in semidefinite relaxation programs (#22123)
- Fix a bug in
MosekSolver
on parsing PSD matrix with repeated variable (#22173) - Compute Minimal Representation of Degenerate
VPolytopes
(#22220)
Multibody Dynamics and Geometry
New features
- Allow reversed weld joints (#22122)
ComputeSignedDistanceToPoint
from meshes (#21471)- Differentiate visual roles in SDFormat file (#22013, #22301)
RenderEngineVtk
can be forced into physically-based rendering mode (#22170)
Fixes
- Improve error message when
MultibodyPlant
meets unknown geometries (#22178) - Fix a
RenderEngineVtk
bug with handling phong materials in cloned instances (#22170) - Update and document
MultibodyPlant
’s default proximity values (#21463) - Don’t compute inertia of a HalfSpace when parsing mujoco files (#22290)
- Fix bug with geometries in marginal contact (#22153)
Planning
New features
- Add Expression Costs and Formula Constraints to
EdgesBetweenSubgraphs
inGcsTrajectoryOptimization
(#22155) - Add Generic
Binding<Cost>
andBinding<Constraint>
to vertices and edges within aGcsTrajectoryOptimization::Subgraph
(#22179) - Implement IRIS ZO (#22168)
- Add Generic
Binding<Cost>
andBinding<Constraint>
to vertices and edges within aGcsTrajectoryOptimization::EdgesBetweenSubgraphs
(#22199)
Fixes
- Fix bug in
IrisFromCliqueCover
edge case (#22239) - Fix broadcasting bug in
IrisFromCliqueCover
(#22246) - Fix typo: UnwrapToContinous => UnwrapToContinuous (#22280)
Tutorials and examples
- None
Miscellaneous features and fixes
- Add fmt_debug_string polyfill (#22150)
- Speed up
ExtractAndAppendVariablesFromExpression
(#22201) - Support (opt-in) derivatives in
FunctionHandleTrajectory
(#22262) - Fix edge cases in yaml C++ string writing (#22299)
pydrake bindings
New features
- Bind methods of
GcsTrajectoryOptimization::Subgraph
for adding generic costs and constraints (#22156) - Bind methods of
GcsTrajectoryOptimization::EdgesBetweenSubgraphs
for adding generic costs and constraints (#22177) - Bind
AffineBall::MakeAffineBallFromLineSegment
(#22254)
Fixes
- Add missing solver options bindings (#22180)
Build system
- Fix compatibility with Bazel 8 (#22235, #22237)
- Fix compatibility with Clang 16+ (Xcode 16) (#22172)
- Fix missing Ubuntu package dependency on libegl1 (#22197)
- Add Xcode 16 specific build configuration (#22227)
Build dependencies
- Add gklib_internal (#22206)
- Add metis_internal (#22206)
- Add poisson_disk_sampling_internal (#22243)
- Add spral_internal (#22206)
- Remove xvfb from deepnote (#22197)
- Upgrade Python venv requirements to latest releases (#22165, #22267)
- Upgrade abseil_cpp_internal to latest commit (#22249)
- Upgrade bazel to latest release 8.0.0 (#22266, #22285)
- Upgrade bazelisk to latest release 1.25.0 (#22249, #22292)
- Upgrade crate_universe to latest (#22255)
- Upgrade curl_internal to latest release 8.11.0 (#22256)
- Upgrade dm_control_internal to latest release 1.0.25 (#22249)
- Upgrade googlebenchmark to latest release 1.9.1 (#22249)
- Upgrade gz_math_internal latest release 8.1.0 (#22259)
- Upgrade gz_utils_internal latest release 3.1.0 (#22259)
- Upgrade mujoco_menagerie_internal to latest commit (#22249)
- Upgrade nlopt_internal to latest release 2.9.1 (#22257)
- Upgrade rules_cc to latest 0.0.x release 0.0.17 (#22183, #22263)
- Upgrade rules_rust to latest release 0.55.6 (#22272, #22302)
- Upgrade rust_toolchain to 1.83.0 (#22272, #22302)
- Upgrade sdformat_internal to latest release 15.1.1 (#22259)
- Upgrade stable_baselines3_internal to latest release 2.4.0 (#22249)
- Upgrade tinyobjloader_internal to latest commit (#22249)
- Upgrade tomli_internal to latest release 2.2.1 (#22249)
- Upgrade vtk_internal to latest commit (#22249)
Newly-deprecated APIs
drake::solvers::SemidefiniteRelaxationOptions::preserve_convex_quadratic_constraints
(#22123)drake::symbolic::ExtractAndAppendVariablesFromExpression
override taking aVectorX<Variable>*
argument (#22201)pydrake.solvers.SolverOptions.SetOption
with parameterssolver_option
andoption_value
(#22282)
Removal of deprecated items
drake::geometry::CalcPairwiseIntersections
(#22248)drake::multibody::DeformableContactPointData
(#22248)drake::multibody::HydroelasticQuadraturePointData
(#22248)pydrake.multibody.MultibodyPlant.SetDefaultFreeBodyPose
with parameter X_WB (#22248)pydrake.multibody.MultibodyPlant.SetFreeBodyPose
with parameter X_WB (#22248)pydrake.multibody.MultibodyPlant.SetFreeBodySpatialVelocity
with parameter V_WB (#22248)
Notes
This release provides pre-compiled binaries named
drake-1.36.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.