---
title: Drake v1.15.0
date: 2023-04-18
released: 2023-04-18
---

# Announcements

* Drake's sample models
  (e.g., ``package://drake/manipulation/models/jaco_description/...``)
  are in the process of moving into their own ``package://drake_models`` instead
  of ``package://drake`` ([#18955][_#18955], [#19046][_#19046],
  [#19104][_#19104], [#19160][_#19160]).
  * The ``drake_models`` package is not part of Drake's default install media
    (with the exception of the docker images, which still include the models).
    The first time any file there is used, the drake_model data will be
    downloaded automatically into the user's cache directory.
    * See [Environment Variables](/doxygen_cxx/group__environment__variables.html)
      documentation for how to disable automatic downloading.
  * This drastically reduces the size of a default Drake install, and brings
    ``pip install drake`` on par with the other install media.
  * For the moment, most mesh files and the Atlas models have been relocated to
    the new package. More files will follow in future releases.
* Drake's PackageMap now supports packages fetched from ``http://`` or
  ``https://`` URLs ([#18955][_#18955]). You can use this to fetch your own
  models on demand.
* When installing from source, Drake's CMake build allows compiling for any
  Python version >= 3.8 via ``-DPython_EXECUTABLE=/path/to/desired/python3``
  ([#19023][_#19023]).

# Breaking changes since v1.14.0

Refer to our [Drake Stability Guidelines](/stable.html) for our policy
on API changes.

Recently we've clarified our stability policy for struct aggregate
initialization. See [#19145][_#19145] for the changes.

# Changes since v1.14.0

## Dynamical Systems

<!-- <relnotes for systems go here> -->

New features

* None

Fixes

* None

## Mathematical Program

<!-- <relnotes for solvers go here> -->

New features

* Add convenience overloads for AddIndeterminates() ([#18992][_#18992])
* Add AddQuadraticConstraint() and quadratic_constraints() to MathematicalProgram ([#19016][_#19016])
* PiecewisePolynomial supports serialization ([#19062][_#19062])
* Add CompositeTrajectory ([#19163][_#19163])
* Implement WriteObj() for VPolytope ([#19117][_#19117])

Fixes

* Allow duplicated variables in MathematicalProgram's AddDecisionVariables() and AddIndeterminates() ([#19087][_#19087])
* Provide clp_version in ClpSolverDetails ([#19213][_#19213])

## Multibody Dynamics and Geometry

<!-- <relnotes for geometry,multibody go here> -->

New features

* Add SpatialInertia::SolidBoxWithMass() and SpatialInertia::CubeWithMass() ([#19141][_#19141], [#19171][_#19171])
* Adds GetPositionNames(), GetVelocityNames(), GetStateNames(), and GetActuatorNames() to MultibodyPlant ([#19162][_#19162], [#19174][_#19174])
* Add support for remote packages ([#18955][_#18955])
* Hoist recording logic from MeshcatVisualizer to Meshcat ([#18433][_#18433])
* Port mujoco parser to diagnostic policy ([#19157][_#19157])

Fixes

* Allow duplicate geometry names in URDF input ([#19029][_#19029])
* By default, Meshcat proximity geometry is hidden ([#19058][_#19058])
* Add names to visualization systems (when possible) ([#19075][_#19075])
* Error out if `<drake:diffuse_map>` is specified in a URDF ([#19066][_#19066])
* Fix the ordering of the Delassus operator approximation ([#19082][_#19082])
* Make namespace of all three RenderEngine consistent ([#18877][_#18877])
* Show hydroelastic tesselation for proximity shapes ([#19085][_#19085])
* Don't warn on equivalent package.xml files ([#19111][_#19111])
* Fix mujoco default mesh name heuristic ([#19124][_#19124])
* Don't abort on invalid input for parsing ([#19125][_#19125])
* Ignore trailing whitespace in mtl files ([#19129][_#19129])
* Hide near-zero hydroelastic force or moment ([#19112][_#19112])
* Provide name suggestions when Drake Model Directives frames have typos ([#19154][_#19154])
* Add geometry::optimization::MakeConvexSets() ([#19207][_#19207])
* Allow QueryObject signed distance between a filtered geometry pair ([#19176][_#19176])
* Remove deprecated "register geometry to geometry" from SceneGraph ([#19177][_#19177])

## Planning

<!-- <relnotes for planning go here> -->

<!-- * TBD hotfix for direct_collocation_constraint_test memcheck failure ([#19056][_#19056]) -->

New features

* Support passing MathematicalProgram to DirectCollocation constructor ([#19156][_#19156])

Fixes

* None

## Tutorials and examples

<!-- <relnotes for examples,tutorials go here> -->

* Move meshes and models into drake_models ([#19160][_#19160])
* Remove unused Atlas scene objects (blocks, etc.) ([#19159][_#19159])

## Miscellaneous features and fixes

<!-- <relnotes for common,math,lcm,lcmtypes,manipulation,perception,visualization go here> -->

New features

* PointCloud can morph its fields after construction ([#18987][_#18987])
* Support passing a meshcat instance to ApplyDefaultVisualization() ([#19048][_#19048])
* Add DRAKE_ALLOW_NETWORK governor ([#19050][_#19050])
* Add RpyDtFromAngularVelocityInChild() ([#19018][_#19018])
* Add tool for converting OBJ files to SDFormat files ([#18886][_#18886])

Fixes

* Add filename, line, and column to C++ YAML error messages ([#18952][_#18952])
* Sanity-check the theta arg to MakeRotationMatrixZ(), etc. ([#19040][_#19040])

## pydrake bindings

<!-- <relnotes for bindings go here> -->

New features

* Provide automatic sanitization of field names in `namedview` ([#19196][_#19196])
* Bind CalcRpyDtFromAngularVelocityInChild() ([#19074][_#19074])
* Add frame (aka triad) visualization function ([#19152][_#19152])
* Bind math/quaternion.h ([#19208][_#19208])

Fixes

* Bind ImageWriter ([#19095][_#19095])
* Bind CameraConfig.MakeCameras() ([#19184][_#19184])
* Bind SpatialInertia geometries ([#19134][_#19134], [#19172][_#19172])
* Bind InverseDynamics & MultibodyPlant ([#19031][_#19031])
* Bind set_default_damping() for RevoluteJoint, PrismaticJoint ([#19015][_#19015])
* Bind AddDistanceConstraint() and AddBallConstraint() ([#19026][_#19026])
* Bind Polynomial::EvaluateUnivariate() ([#19118][_#19118])
* Don't crash on a failed reload ([#19014][_#19014])
* Enhance model_visualizer command line ([#19131][_#19131])
* Improve error message for namedview ([#19148][_#19148])
* Add missing Python kwarg for Polynomial constructor ([#19063][_#19063])

## Build system

<!-- <relnotes for cmake,doc,setup,third_party,tools go here> -->

* Add CMake support for selecting any Python version ([#19023][_#19023])
* Switch drake_models to a remote package with public visibility ([#19046][_#19046], [#19104][_#19104])

## Build dependencies

<!-- <relnotes for workspace go here> -->

* Drop dependency on python lxml ([#19027][_#19027])
* Drop vestigial meshcat dependencies ([#19080][_#19080])
<!-- * Fix documentation in new_release.py ([#19185][_#19185]) -->
* Upgrade abseil_cpp_internal to latest commit ([#19185][_#19185])
* Upgrade bazel to 6.1.1 ([#19012][_#19012])
* Upgrade buildifier to latest release 6.1.0 ([#19189][_#19189])
* Upgrade clang to 14.0.0 on Ubuntu ([#19030][_#19030])
* Upgrade common_robotics_utilities to latest commit ([#19036][_#19036])
* Upgrade curl_internal to latest release curl-8_0_1 ([#19185][_#19185])
* Upgrade dm_control_internal to latest commit ([#19185][_#19185])
* Upgrade fcl_internal to latest commit ([#19006][_#19006])
* Upgrade fcl_internal to latest commit ([#19185][_#19185])
* Upgrade lcm to latest commit ([#19185][_#19185])
* Upgrade msgpack_internal to latest release cpp-6.0.0 ([#19185][_#19185])
* Upgrade mypy_internal to latest release v1.2.0 ([#19185][_#19185])
* Upgrade petsc to latest release v3.19.0 ([#19186][_#19186])
* Upgrade rules_python to latest release 0.20.0 ([#19185][_#19185])
* Upgrade scs_internal to latest release 3.2.3 ([#19185][_#19185])
* Upgrade sdformat_internal to latest release sdformat13_13.4.1 ([#19185][_#19185])
* Upgrade statsjs to latest commit ([#19185][_#19185])
* Upgrade tinyobjloader to latest commit ([#19185][_#19185])

## Newly-deprecated APIs

* drake::geometry::render::kHasRenderEngineGl ([#18877][_#18877])
* drake::geometry::render::MakeRenderEngineGl ([#18877][_#18877])
* drake::geometry::render::RenderEngineGlParams ([#18877][_#18877])

## Removal of deprecated items

* drake::geometry::SceneGraph::RegisterGeometry against GeometryId ([#19177][_#19177])
* drake::geometry::SceneGraph::GetPoseInParent ([#19177][_#19177])
* //multibody/tree:multibody_element ([#19216][_#19216])

# Notes


This release provides [pre-compiled binaries](https://github.com/RobotLocomotion/drake/releases/tag/v1.15.0) named
``drake-20230418-{focal|jammy|mac|mac-arm64}.tar.gz``. See [Stable Releases](/from_binary.html#stable-releases) for instructions on how to use them.

Drake binary releases incorporate a pre-compiled version of [SNOPT](https://ccom.ucsd.edu/~optimizers/solvers/snopt/) as part of the
[Mathematical Program toolbox](https://drake.mit.edu/doxygen_cxx/group__solvers.html). Thanks to
Philip E. Gill and Elizabeth Wong for their kind support.

<!-- <begin issue links> -->
[_#18433]: https://github.com/RobotLocomotion/drake/pull/18433
[_#18877]: https://github.com/RobotLocomotion/drake/pull/18877
[_#18886]: https://github.com/RobotLocomotion/drake/pull/18886
[_#18952]: https://github.com/RobotLocomotion/drake/pull/18952
[_#18955]: https://github.com/RobotLocomotion/drake/pull/18955
[_#18987]: https://github.com/RobotLocomotion/drake/pull/18987
[_#18992]: https://github.com/RobotLocomotion/drake/pull/18992
[_#19006]: https://github.com/RobotLocomotion/drake/pull/19006
[_#19012]: https://github.com/RobotLocomotion/drake/pull/19012
[_#19014]: https://github.com/RobotLocomotion/drake/pull/19014
[_#19015]: https://github.com/RobotLocomotion/drake/pull/19015
[_#19016]: https://github.com/RobotLocomotion/drake/pull/19016
[_#19018]: https://github.com/RobotLocomotion/drake/pull/19018
[_#19023]: https://github.com/RobotLocomotion/drake/pull/19023
[_#19026]: https://github.com/RobotLocomotion/drake/pull/19026
[_#19027]: https://github.com/RobotLocomotion/drake/pull/19027
[_#19029]: https://github.com/RobotLocomotion/drake/pull/19029
[_#19030]: https://github.com/RobotLocomotion/drake/pull/19030
[_#19031]: https://github.com/RobotLocomotion/drake/pull/19031
[_#19036]: https://github.com/RobotLocomotion/drake/pull/19036
[_#19040]: https://github.com/RobotLocomotion/drake/pull/19040
[_#19046]: https://github.com/RobotLocomotion/drake/pull/19046
[_#19048]: https://github.com/RobotLocomotion/drake/pull/19048
[_#19050]: https://github.com/RobotLocomotion/drake/pull/19050
[_#19056]: https://github.com/RobotLocomotion/drake/pull/19056
[_#19058]: https://github.com/RobotLocomotion/drake/pull/19058
[_#19062]: https://github.com/RobotLocomotion/drake/pull/19062
[_#19063]: https://github.com/RobotLocomotion/drake/pull/19063
[_#19066]: https://github.com/RobotLocomotion/drake/pull/19066
[_#19074]: https://github.com/RobotLocomotion/drake/pull/19074
[_#19075]: https://github.com/RobotLocomotion/drake/pull/19075
[_#19080]: https://github.com/RobotLocomotion/drake/pull/19080
[_#19082]: https://github.com/RobotLocomotion/drake/pull/19082
[_#19085]: https://github.com/RobotLocomotion/drake/pull/19085
[_#19087]: https://github.com/RobotLocomotion/drake/pull/19087
[_#19095]: https://github.com/RobotLocomotion/drake/pull/19095
[_#19104]: https://github.com/RobotLocomotion/drake/pull/19104
[_#19111]: https://github.com/RobotLocomotion/drake/pull/19111
[_#19112]: https://github.com/RobotLocomotion/drake/pull/19112
[_#19117]: https://github.com/RobotLocomotion/drake/pull/19117
[_#19118]: https://github.com/RobotLocomotion/drake/pull/19118
[_#19124]: https://github.com/RobotLocomotion/drake/pull/19124
[_#19125]: https://github.com/RobotLocomotion/drake/pull/19125
[_#19129]: https://github.com/RobotLocomotion/drake/pull/19129
[_#19131]: https://github.com/RobotLocomotion/drake/pull/19131
[_#19134]: https://github.com/RobotLocomotion/drake/pull/19134
[_#19141]: https://github.com/RobotLocomotion/drake/pull/19141
[_#19145]: https://github.com/RobotLocomotion/drake/pull/19145
[_#19148]: https://github.com/RobotLocomotion/drake/pull/19148
[_#19152]: https://github.com/RobotLocomotion/drake/pull/19152
[_#19154]: https://github.com/RobotLocomotion/drake/pull/19154
[_#19156]: https://github.com/RobotLocomotion/drake/pull/19156
[_#19157]: https://github.com/RobotLocomotion/drake/pull/19157
[_#19159]: https://github.com/RobotLocomotion/drake/pull/19159
[_#19160]: https://github.com/RobotLocomotion/drake/pull/19160
[_#19162]: https://github.com/RobotLocomotion/drake/pull/19162
[_#19163]: https://github.com/RobotLocomotion/drake/pull/19163
[_#19171]: https://github.com/RobotLocomotion/drake/pull/19171
[_#19172]: https://github.com/RobotLocomotion/drake/pull/19172
[_#19174]: https://github.com/RobotLocomotion/drake/pull/19174
[_#19176]: https://github.com/RobotLocomotion/drake/pull/19176
[_#19177]: https://github.com/RobotLocomotion/drake/pull/19177
[_#19184]: https://github.com/RobotLocomotion/drake/pull/19184
[_#19185]: https://github.com/RobotLocomotion/drake/pull/19185
[_#19186]: https://github.com/RobotLocomotion/drake/pull/19186
[_#19189]: https://github.com/RobotLocomotion/drake/pull/19189
[_#19196]: https://github.com/RobotLocomotion/drake/pull/19196
[_#19207]: https://github.com/RobotLocomotion/drake/pull/19207
[_#19208]: https://github.com/RobotLocomotion/drake/pull/19208
[_#19213]: https://github.com/RobotLocomotion/drake/pull/19213
[_#19216]: https://github.com/RobotLocomotion/drake/pull/19216
<!-- <end issue links> -->

<!--
  Current oldest_commit 6411b8f86ef81daf74ac9dfab2fefc4bdc42f054 (exclusive).
  Current newest_commit d55ac42eba8027bd4a643fb485236ae01f8618c9 (inclusive).
-->
