Drake v1.34.0

Back to Release Notes

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.
  • 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.
  • 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

  • Add parameters to RgbdSensor (#21937)
  • Add ZeroOrderHold::SetVectorState (#22005)

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

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 a std::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 uses std::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 uses std::optional instead of a nullable pointer (#21749, #21974)
  • drake::planning::trajectory_optimization::GcsTrajectoryOptimization::AddRegions overload that uses std::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.