Announcements
- SceneGraph now supports in-memory meshfiles.
- The Mesh and Convex shapes can now specify meshfile data in-memory, instead of only ever loading meshes from disk.
- This is especially useful when meshes need to be created dynamically; now a temp directory is no longer needed to story the mesh data.
- An in-memory mesh shape can make use of heterogeneous supporting files (e.g., an in-memory obj uses an in-memory .mtl but uses an on-disk texture).
- All geometry consumers in Drake (e.g., visualizers, render engines,
collision queries, plant contact dynamics) support the in-memory data.
- Downstream code that directly access a shape’s mesh data (by calling the
filename()
function) should be adjusted to handle both file paths and in-memory buffers.
- Downstream code that directly access a shape’s mesh data (by calling the
- RenderEngineVtk now offers the option to use EGL on Ubuntu (#22025)
- EGL is an alternative to GLX for obtaining an OpenGL context, and allows for rendering in the cloud without running a separate Xorg server.
- This feature should be viewed as in “beta testing” in this release; please send us any bug reports. In the future, we hope to make EGL the default.
- Drake no longer supports macOS Ventura (i.e., macOS 13),
as documented on our OS Support page and the
Supported Configurations
table (#22004).
- Therefore macOS x86_64 wheels have reached end of life as well (because
GitHub Actions does not offer x64_64 runners for macOS >= 14).
- This will be the last release for macOS x86_64 wheels.
- We are working to add official support for macOS Sequoia (15) soon.
- Therefore macOS x86_64 wheels have reached end of life as well (because
GitHub Actions does not offer x64_64 runners for macOS >= 14).
- Building from source on macOS now uses a venv for Python dependencies (#22036).
Breaking changes since v1.33.0
- None
Refer to our Drake Stability Guidelines for our policy on API changes.
Changes since v1.33.0
Dynamical Systems
New features
Fixes
- None
Mathematical Program
New features
- Add getter for thread safety of MathematicalProgram and EvaluatorBase (#21903)
- Implement AffineBall::DoAddPointInNonnegativeScalingConstraints (#21898)
- Implement fail-fast heuristic in VPolytope::DoPointInSet (#21988)
- Add Hyperellipsoid::Scale() (#21985)
- Handle unbounded domains in Iris and IrisInConfigurationSpace if the user specifies a valid bounding region (#21942)
- Add derivative boundary conditions in Toppra::SolvePathParameterization (#21975)
Fixes
- None
Multibody Dynamics and Geometry
New features
- SceneGraph support for in-memory meshfiles
- Introduce InMemoryMesh and MeshSource (#21890)
- Implement obj->mesh in terms of MeshSource (#21914)
- Mesh and Convex now uses MeshSource as storage (#21922)
- Add supporting files to InMemoryMesh (#21923)
- RenderMesh and RenderMaterial parse .obj files from MeshSource (#21944)
- Convex hull computation uses MeshSource (#21945)
- Add utility for working with glTF files (#21949)
- PlanarSceneGraphVisualizer supports in-memory meshes (#21950)
- Illustration supports in-memory meshes (#21952)
- RenderEngineGl supports in-memory meshes (#21953)
- RenderEngineVtk (and GltfClient) support in-memory meshes (#21954)
- Deprecate Mesh::filename() and Convex::filename() (#21881)
- RenderEngineVtkParams offers the option to use EGL instead of GLX (#22025)
- MuJoCo parser: Support “gear”, “armature”, and “position” (#21967)
- MuJoCo parser: Support equality “connect” constraints (#21970)
- SDFormat and URDF: Add parsing for hydro margin (#21831)
- Add Meshcat option for strict=False when removing buttons or sliders (#22028)
Fixes
- Fix uninitialized (or NaN) MultibodyPlant body_spatial_acceleration output prior to first step (#22020)
- Fix contact force port crash when deformables are present (#21931)
- glTF parser: fix VTK loader crash on empty file (#22011)
- Fix RenderEngineVtk cloning (#21962)
- Fix abort in JointSliders and MeshcatPoseSliders destructor (#22028)
Planning
New features
- Add MinCliqueCoverSolver and MinCliqueCoverSolverViaGreedy for solving the minimum clique cover problem (#21892)
- Adjust GcsTrajectoryOptimization::AddEdges and AddRegions to automatically compute edge offsets if they’re not provided (#21946)
Fixes
- None
Tutorials and examples
- None
Miscellaneous features and fixes
- Fix Schunk WSG trajectory bug with initial zero target (#21925)
pydrake bindings
New features
- Add support for yaml_dump_typed on Transform (#21934)
- Bind
pydrake.multibody.plant.IsAnchored
(#21933) - Bind
pydrake.multibody.plant.NumBodiesWithName
(#21933) - Bind
pydrake.multibody.tree.Body.CalcCenterOfMassTranslationalVelocityInWorld
(#21926)
Fixes
- Fix signatures to use Python types (not C++) (#21908, #21911, #21913, #21907, #21916, #21909, #21919, #21917, #21918, #21921, #22002)
- Improve a yaml_dump error message (#21935)
- Do not convert an int to a bool in Python binding of Meshcat::SetProperty (#22021)
Build system
- Building from source on macOS now uses a venv for Python dependencies (#22036)
- Remove official support of macOS 13 (Ventura) (#22004)
- Fix CMake logic in Drake’s installed pybind11 config (#22012)
- Track when the is_wheel_build setting changes (#21938)
- Add out-of-line destructors for common, geometry, and solvers classes (#22010, #22018, #22030)
Build dependencies
- Upgrade abseil_cpp_internal to latest commit (#21992)
- Upgrade bazel to latest release 7.3.2 (#21997)
- Upgrade bazelisk to latest release 1.22.0 (#21972)
- Upgrade build_bazel_apple_support to latest release 1.17.1 (#21992)
- Upgrade crate_universe to latest releases (#21992)
- Upgrade curl_internal to latest release 8.10.1 (#21993)
- Upgrade gz_math_internal to latest release 8.0.0 (#21995)
- Upgrade gz_utils_internal to latest release 3.0.0 (#21995)
- Upgrade libpng_internal to latest release 1.6.44 (#21992)
- Upgrade libtiff_internal to latest release 4.7.0 (#21994)
- Upgrade mujoco_menagerie_internal to latest commit (#21992)
- Upgrade rules_rust to latest release 0.52.0 (#21996)
- Upgrade rust_toolchain to latest release 1.81.0 (#21996)
- Upgrade sdformat_internal to latest release 15.0.0 (#21995)
- Upgrade sympy_py_internal to latest release 1.13.3 (#21992)
- Upgrade tomli_internal to latest release 2.0.2 (#21992)
- Upgrade vtk_internal to latest commit (#21894)
Newly-deprecated APIs
drake::geometry::ReadObjToTriangleSurfaceMesh
overload that takes astd::istream
(#21914)drake::systems::sensors::RgbdSensor::color_render_camera
(#21937)drake::systems::sensors::RgbdSensor::depth_camera_info
(#21937)drake::systems::sensors::RgbdSensor::depth_render_camera
(#21937)drake::systems::sensors::RgbdSensor::parent_frame_id
(#21937)drake::systems::sensors::RgbdSensor::X_BC
(#21937)drake::systems::sensors::RgbdSensor::X_BD
(#21937)drake::systems::sensors::RgbdSensor::X_PB
(#21937)drake::geometry::Convex::filename
(#21881)drake::geometry::Mesh::filename
(#21881)
Removal of deprecated items
drake::geometry::optimization::GraphOfConvexSets::GetGraphvizString
overload that usesstd::optional
instead of a nullable pointer (#21749, #21974)drake::multibody::MultibodyPlant::EvalPointPairPenetrations
(#21608, #21974)drake::multibody::MultibodyPlant::get_geometry_poses_output_port
(#21609, #21974)drake::multibody::MultibodyPlant
output port named “spatial_accelerations” (#21609, #21974)drake::multibody::MultibodyPlant
output port named “spatial_velocities” (#21609, #21974)drake::multibody::Parser.collision_filter_groups
(#21562, #21974)drake::multibody::SpatialInertia
default constructor (#21198, #21974)drake::planning::trajectory_optimization::GcsTrajectoryOptimization::AddEdges
overload that usesstd::optional
instead of a nullable pointer (#21749, #21974)drake::planning::trajectory_optimization::GcsTrajectoryOptimization::AddRegions
overload that usesstd::optional
instead of a nullable pointer (#21749, #21974)
Notes
This release provides pre-compiled binaries named
drake-1.34.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.