---
title: Drake v1.0.0
date: 2022-03-03
released: 2022-03-03
---

# Announcements

* Hydroelastic Contact model is now released!
  * Provides a rich, patch-based contact surface with pressure distribution
    between contacting objects rather than treating contact as though it
    occurs at a point.
  * Formerly an experimental feature, now fully supported.
  * Rigid-compliant and compliant-compliant contact both supported.
    A rigid object can be any shape or mesh (doesn't even have to be closed);
    compliant objects are currently limited to primitive shapes.
  * See [User Guide](https://drake.mit.edu/doxygen_cxx/group__hydroelastic__user__guide.html).
  * See [Elandt, et al.](https://arxiv.org/abs/1904.11433)
    and [Masterjohn, et al.](https://arxiv.org/abs/2110.04157) for theory.
* Drake now documents its [Stability Guidelines](/stable.html) ([#16547][_#16547]).
* Reminder: Drake will no longer support Ubuntu 18.04 "Bionic" as of
  April 1st, 2022 ([#13391][_#13391]).
  * Ubuntu users should plan to upgrade to Ubuntu 20.04 "Focal" before that
    time.
  * Drake will add support for Ubuntu 22.04 "Jammy" as soon as possible
    after it's release date, most likely by June 1st, 2022.
* Reminder: Drake will no longer support Python 3.6 or Python 3.7 of
  April 1st, 2022 ([#13391][_#13391]).
  * Ubuntu users should plan to upgrade to Ubuntu 20.04 "Focal" before that
    time (in order to switch to Python 3.8 or Python 3.9).
  * macOS users already use Python 3.9, so will not be affected.
* Reminder: The use of ``drake-visualizer`` on macOS is deprecated and will be
  removed from Drake on or after April 1st, 2022 ([#16386][_#16386]).
  * On Ubuntu 20.04, support of ``drake-visualizer`` remains intact.
  * On Ubuntu 18.04, support of ``drake-visualizer`` will remain intact as
    long as our overall support of 18.04 (which ends on April 1st, 2022).

# Breaking changes since v0.39.0

* None

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

# Changes since v0.39.0

## Dynamical Systems

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

New features

* Add DiagramBuilder::ConnectToSame sugar ([#16563][_#16563])
* Add (optional) gradients to MultilayerPerceptron::BatchOutput ([#16572][_#16572])
* Add (optional) sin/cos input features to MultilayerPerceptron ([#16605][_#16605])

Fixes

* Remove dynamic allocations from MultilayerPerceptron ([#16564][_#16564])
* Allow start_new_change_event() on const Context ([#16619][_#16619])

## Mathematical Program

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

New features

* Enable linear costs in GraphOfConvexSets ([#16680][_#16680])
* Add Intersection convex set ([#16629][_#16629])
* Add PerspectiveQuadraticCost and include it in GraphOfConvexSets cost options ([#16679][_#16679])
* Add general transformed version of AddPointInNonnegativeScalingConstraints to ConvexSet ([#16397][_#16397])
* Add two-cycle constraint to Shortest Path formulation ([#16397][_#16397])
* Add optional solver and solver options to SolveShortestPath ([#16616][_#16616])

Fixes

* Fix spelling of the kInfeasibleOrUnbounded constant ([#16688][_#16688])
* Fix arithmetic bug in NonsmoothAugmentedLagrangian ([#16689][_#16689])

## Multibody Dynamics and Geometry

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

New features

* Enable hydroelastic contacts by default ([#16569][_#16569])
* Enable AddMultibodyPlantSceneGraph for Expression ([#16585][_#16585])
* Add in place transform for volume mesh ([#16603][_#16603])
* Add URL and hostname customization to Meshcat ([#16638][_#16638], [#16654][_#16654])
* Add MultibodyPlant getter to the Parser ([#16655][_#16655])
* Add PositionConstraint functions to update lower and upper bounds ([#16631][_#16631])

Fixes

* Fix mis-parse of `drake:ignored_collision_filter_group` xml input ([#16594][_#16594])
* Add cleanup logic for unexpected websocket thread exit ([#16670][_#16670])

## Tutorials and examples

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

* Install tutorials in binary releases ([#16644][_#16644])
* Withdraw tutorials from Colab ([#16568][_#16568])
* Add hydroelastic example of compliant ball on a rigid plate mesh ([#15804][_#15804])
* Add hydroelastic example of spatula slip ([#16668][_#16668])
* Remove unused model.config files ([#16696][_#16696])

## Miscellaneous features and fixes

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

* Add RotationMatrix::IsNearlyIdentity ([#16552][_#16552])
* Give RandomGenerator efficient default and move constructors ([#16633][_#16633])
* Add if_then_else overload for Eigen::Vector ([#16621][_#16621])
* Update meldis to only serve on localhost by default ([#16654][_#16654])

## pydrake bindings

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

New features

* Add pydrake.common.configure_logging() to set up a nice formatter style ([#16577][_#16577])
* Remove tkinter-using classes from pydrake.all; pydrake no longer depends on python3-tk ([#16656][_#16656])
* Support Python subclassing of a pydrake.trajectories.Trajectory ([#16684][_#16684])
* Make BsplineTrajectory pickle-able ([#16698][_#16698])
* Make some subclasses of ConvexSet pickle-able ([#16628][_#16628])

Fixes

* Obey Python configuration to handle metadata formatting ([#16577][_#16577])
* Only re-route logging to Python if the C++ logging configuration remains unchanged ([#16577][_#16577])
* Avoid Python deprecation warning "Implicit conversion to integers using \_\_int\_\_" ([#16632][_#16632])

Newly bound

* pydrake.math.RigidTransform.InvertAndCompose ([#16573][_#16573])
* pydrake.solvers.mathematicalprogram.MathematicalProgramResult.set_solution_result ([#16688][_#16688])

## Build system

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

* Allow CMake builds to customize eigen, fmt and spdlog ([#16652][_#16652], [#16700][_#16700])
* Developer tools for valgrind testing require Ubuntu 20.04 Focal ([#16557][_#16557])

## Build dependencies

<!-- Manually relocate any "Upgrade foo_external to latest" lines to here, -->
<!-- and then sort them alphabetically. -->

* Upgrade bazel_skylib to latest release 1.2.0 ([#16685][_#16685])
* Upgrade buildifier to latest release 5.0.1 ([#16685][_#16685])
* Upgrade dm_control to latest commit ([#16685][_#16685])
* Upgrade github3_py to latest release 3.1.2 ([#16685][_#16685])
* Upgrade petsc to latest release 3.16.4 ([#16685][_#16685])
* Upgrade ros_xacro to latest release 1.13.17 ([#16685][_#16685])
* On Ubuntu, Use libjchart2d-java from apt ([#16185][_#16185])
* On Ubuntu, offer --without-clang option to install_prereqs ([#16622][_#16622])
* On Ubuntu, install recommended libomp-9-dev alongside clang-9 ([#16622][_#16622])

## Newly-deprecated APIs

* drake::math::RotationMatrix::IsIdentityToInternalTolerance ([#16552][_#16552])
* drake::solvers::kInfeasible_Or_Unbounded ([#16688][_#16688])
* pydrake.multibody.math.SpatialForce.dot kwarg name V_IBp_E ([#16350][_#16350])
* pydrake.manipulation.simple_ui.JointSliders ([#16656][_#16656])
* pydrake.manipulation.simple_ui.SchunkWsgButton ([#16656][_#16656])
* pydrake.multibody.math.SpatialVelocity.ComposeWithMovingFrameVelocity kwarg names p_PoBo_E, V_PB_E ([#16350][_#16350])
* pydrake.multibody.math.SpatialVelocity.Shift kwarg name p_BqBq_E ([#16350][_#16350])
* pydrake.multibody.math.SpatialVelocity.dot kwarg name F_Bp ([#16350][_#16350])
* pydrake.multibody.math.SpatialVelocity.dot kwarg name L_WBp_E ([#16350][_#16350])
* pydrake.systems.system_sliders.SystemSliders ([#16656][_#16656])

## Removal of deprecated items

* drake::geometry::optimization::IrisInConfigurationSpace with a `sample` argument ([#16037][_#16037], [#16678][_#16678])
* drake::lcm::DrakeMockLcm ([#16078][_#16078], [#16678][_#16678])
* drake::systems::framework::System::EvalEigenVectorInput ([#16042][_#16042], [#16678][_#16678])
* drake::yaml::YamlReadArchive constructors that accept a YAML::Node ([#16057][_#16057], [#16673][_#16673])
* The colab installer helper script ([#16073][_#16073], [#16678][_#16678])
* The use of package URIs other than `package://drake/...` to refer to Drake resources ([#15947][_#15947], [#16674][_#16674])
* The use of uncommon primitive types during yaml::YamlReadArchive ([#16057][_#16057], [#16673][_#16673])

# Notes

This release provides [pre-compiled binaries](https://github.com/RobotLocomotion/drake/releases/tag/v1.0.0) named
``drake-20220303-{bionic|focal|mac}.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> -->
[_#13391]: https://github.com/RobotLocomotion/drake/pull/13391
[_#15804]: https://github.com/RobotLocomotion/drake/pull/15804
[_#15947]: https://github.com/RobotLocomotion/drake/pull/15947
[_#16037]: https://github.com/RobotLocomotion/drake/pull/16037
[_#16042]: https://github.com/RobotLocomotion/drake/pull/16042
[_#16057]: https://github.com/RobotLocomotion/drake/pull/16057
[_#16073]: https://github.com/RobotLocomotion/drake/pull/16073
[_#16078]: https://github.com/RobotLocomotion/drake/pull/16078
[_#16185]: https://github.com/RobotLocomotion/drake/pull/16185
[_#16350]: https://github.com/RobotLocomotion/drake/pull/16350
[_#16386]: https://github.com/RobotLocomotion/drake/pull/16386
[_#16397]: https://github.com/RobotLocomotion/drake/pull/16397
[_#16547]: https://github.com/RobotLocomotion/drake/pull/16547
[_#16552]: https://github.com/RobotLocomotion/drake/pull/16552
[_#16557]: https://github.com/RobotLocomotion/drake/pull/16557
[_#16563]: https://github.com/RobotLocomotion/drake/pull/16563
[_#16564]: https://github.com/RobotLocomotion/drake/pull/16564
[_#16568]: https://github.com/RobotLocomotion/drake/pull/16568
[_#16569]: https://github.com/RobotLocomotion/drake/pull/16569
[_#16572]: https://github.com/RobotLocomotion/drake/pull/16572
[_#16573]: https://github.com/RobotLocomotion/drake/pull/16573
[_#16577]: https://github.com/RobotLocomotion/drake/pull/16577
[_#16585]: https://github.com/RobotLocomotion/drake/pull/16585
[_#16594]: https://github.com/RobotLocomotion/drake/pull/16594
[_#16603]: https://github.com/RobotLocomotion/drake/pull/16603
[_#16605]: https://github.com/RobotLocomotion/drake/pull/16605
[_#16616]: https://github.com/RobotLocomotion/drake/pull/16616
[_#16619]: https://github.com/RobotLocomotion/drake/pull/16619
[_#16621]: https://github.com/RobotLocomotion/drake/pull/16621
[_#16622]: https://github.com/RobotLocomotion/drake/pull/16622
[_#16628]: https://github.com/RobotLocomotion/drake/pull/16628
[_#16629]: https://github.com/RobotLocomotion/drake/pull/16629
[_#16631]: https://github.com/RobotLocomotion/drake/pull/16631
[_#16632]: https://github.com/RobotLocomotion/drake/pull/16632
[_#16633]: https://github.com/RobotLocomotion/drake/pull/16633
[_#16638]: https://github.com/RobotLocomotion/drake/pull/16638
[_#16644]: https://github.com/RobotLocomotion/drake/pull/16644
[_#16652]: https://github.com/RobotLocomotion/drake/pull/16652
[_#16654]: https://github.com/RobotLocomotion/drake/pull/16654
[_#16655]: https://github.com/RobotLocomotion/drake/pull/16655
[_#16656]: https://github.com/RobotLocomotion/drake/pull/16656
[_#16668]: https://github.com/RobotLocomotion/drake/pull/16668
[_#16670]: https://github.com/RobotLocomotion/drake/pull/16670
[_#16673]: https://github.com/RobotLocomotion/drake/pull/16673
[_#16674]: https://github.com/RobotLocomotion/drake/pull/16674
[_#16678]: https://github.com/RobotLocomotion/drake/pull/16678
[_#16679]: https://github.com/RobotLocomotion/drake/pull/16679
[_#16680]: https://github.com/RobotLocomotion/drake/pull/16680
[_#16684]: https://github.com/RobotLocomotion/drake/pull/16684
[_#16685]: https://github.com/RobotLocomotion/drake/pull/16685
[_#16688]: https://github.com/RobotLocomotion/drake/pull/16688
[_#16689]: https://github.com/RobotLocomotion/drake/pull/16689
[_#16696]: https://github.com/RobotLocomotion/drake/pull/16696
[_#16698]: https://github.com/RobotLocomotion/drake/pull/16698
[_#16700]: https://github.com/RobotLocomotion/drake/pull/16700
<!-- <end issue links> -->

<!--
  Current oldest_commit c95ac12807375c61d9426802570a9fc635e377c1 (exclusive).
  Current newest_commit 06e1deb12539f05eff968c5bd9e11d259916f268 (inclusive).
-->
