Gazebo Jetty Released!

The Gazebo team is happy to announce the 10th major release of Gazebo, code named Jetty! :gazebo:
Jetty is a long term support (LTS) release, meaning it has a longer support lifetime, September 2030 to be exact, and we recommend Gazebo users upgrade to Jetty as their daily driver. Ryan Hungerford created the artwork for Gazebo Jetty, and if you would like to pick up Jetty swag, and support the project, you can visit the Open Robotics fourthwall shop.

Our next release, the forthcoming Gazebo Kura release, will be a short term development release, slated for release in September, 2026. We would love to hear what features you would like to see in the K release roadmap, so please take a moment to complete our Gazebo K roadmap survey.

If you would like to see Gazebo Jetty in action, we will demonstrate many of the new features at our Jetty Demo Day this Wednesday, October 1st, at 9am PST.

Here’s a brief summary of all the new features in Gazebo Jetty:

A new Jetty Demo World

We created a realistic warehouse environment designed to highlight the latest Jetty features. This free, downloadable demo includes shelving and an autonomous forklift for loading and unloading. As an added bonus, it also features an Open-RMF demonstration.

Zenoh transport support, working towards improved ROS integration

Up until Ionic, Gazebo used ZeroMQ (0MQ) as its primary message transport protocol. Gazebo now supports Zenoh as an alternative transport implementation, offering improved discovery, interoperability, and performance. To enable Zenoh, set the environment variable `export GZ_TRANSPORT_IMPLEMENTATION=zenoh`. This allows Gazebo to leverage Zenoh’s features and potentially integrate more seamlessly with ROS 2 Jazzy and other systems utilizing Zenoh.

New reinforcement learning demo code and tutorials

Based on community feedback we’ve added a full tutorial on performing reinforcement learning using Gazebo Jetty and the Stable Baselines3 Python library. These tutorials walk you through using reinforcement learning to build a controller for an inverted pole mounted on a robot cart. StableBaselines3 is just the beginning, and more advanced developers can use the tutorial as a starting point for integrating other reinforcement learning frameworks into Gazebo.
Demo of a classic cartpole trained to balance itself

ROS Standard Sim Interface

Members of the ROS community have built a standard simulation interface to improve the portability of robot code between simulators. This new standard interface should allow ROS developers to quickly and easily switch between simulators based on their development needs.

Simple demo showing conveyor belt based test setup using Simulation Interfaces

New occupancy grid export functionality

Occupancy grids are simple 2D maps that robots use for path planning. Open source navigation frameworks like Nav2 use these maps to guide robots safely to their destination. You can now easily export these occupancy grid maps from Gazebo using the /scan_image topic and running the following command:
gz topic -t /start_exploration -m gz.msgs.Boolean -p 'data: true'
New occupancy grid export functionality

New auto-inertia calculation makes adding objects easier

Previously, the inertial/@auto attribute in SDFormat required you to specify an object’s density to automatically compute its inertial properties. Now you can specify an object’s mass in SDFormat and Gazebo will automatically compute its density and inertial parameters!
From left to right: drills using default, auto, manually computed inertias

A new and improved Qt6 interface!

Qt is the cross-platform GUI subsystem used by Gazebo and we recently upgraded to the latest version, Qt6. Qt version 5 went end of life on May 26th, 2025 forcing us to upgrade to version 6. This upgrade was no small feat, as it required updating hundreds of files across the Gazebo project. Gazebo plugin developers will need to update their Gazebo GUI plugins to QT6 to maintain compatibility. We’ve created a Gazebo plugin QT migration guide to help developers update their plugins.

Dynamically adjust wheel slip / friction

We’ve added a new LookupWheelSlip system to gz-sim that uses an 8bit RGB lookup map to dynamically change a materials friction parameters. This new feature allows users to map specific colors in a texture image to specific friction values. Want to add an oil slick to the floor of your simulation? Simply draw the oil patch on the texture image and set the desired friction value!
Dynamically adjust wheel slip / friction

New Gazebo standalone executables

We’ve modified how the `gz` tool works to make debugging your application easier and to improve cross-platform support for Windows and MacOS. To do this we’ve moved away from the Ruby-based CLI loading libraries back to loading standalone applications.

Better downloading of simulation models and faster start times

We’ve changed how Gazebo downloads models from Fuel, our online model repository. Models now download in parallel and in the background, making Gazebo simulations start faster and download assets more efficiently.

Refactored package names to remove major versions

Including major versions in package names was done to allow side-by-side installation of two different Gazebo versions. While helpful for some users, this approach caused major headaches for developers who had to regularly update these version numbers. We’ve ended the practice to make Gazebo simpler to maintain and easier to use for package developers.

Bazel Module Migration

We have migrated `gz` packages from the legacy Bazel workspace-based setup to the new Bazel module system (Bzlmod). As part of this effort, key third-party dependencies including DARTSim, Bullet, FreeImage, Assimp and more were packaged and published to the Bazel Central Registry (BCR). All Jetty and Ionic versions of the libraries have been uploaded to BCR.
Demo showing Bazel based client program using gz-transport

Platform Support

As of the release date, the currently supported platforms are:

  • Ubuntu Noble (24.04) on amd64

Platforms supported at best-effort include arm architectures, Windows and macOS.

If you would like to take Gazebo Jetty for a spin you can find full installation instructions here. If you are planning on pairing Gazebo with ROS please check out our guidance on this documentation page. Like Gazebo Harmonic, and Ionic, Jetty supports ROS vendor packages, allowing you to install and build against Gazebo by simply installing a set of Apt packages.

Contributors and Supporters

We’d like to give a special thanks to the community members who helped us make this Gazebo release happen by reviewing tutorials during our Jetty Test and Tutorial Party. The results from our Jetty Test and Tutorial Party were quite impressive and we were so happy to see so many new contributors! Our tutorial party went incredibly well! We had 25 participants help us with testing the Jetty release which allowed us to:

  • Close 388 Issues, 68% of our total issues
    • Close 148 out of 148 Ubuntu tickets (100%)
    • Close 65 out of 83 MacOS tickets (44%)
    • Close 47 out of 147 Windows tickets (32%)
    • Close 128 out of 128 all platform tickets (100%)
  • Create 74 PRs fixing the issues that were found!

Our top twenty contributors to the T&T Party include:

  1. Akky20: 719.2 points
  2. Creator-1705: 410.6 points
  3. Nikodemj9: 310 points
  4. Saiaravind19: 273.6 points
  5. Jmackay2: 269 points
  6. Physic69: 234 points
  7. Srmainwaring: 187.2 points
  8. Jasmeet0915: 165.6 points
  9. Avanmalleghem: 114 points
  10. Narashima1808: 111 points
  11. AronLapp: 100 points
  12. Matosinho: 84.4 points
  13. Mukul2020: 79.2 points
  14. SuperGops7: 76 points
  15. Pratik-adhikari: 75 points
  16. Mohamedsayed18: 66 points
  17. Shreya-ramesh: 53 points
  18. CursedRock17: 45 points
  19. S0um0r0y: 40 points
  20. Chen-harrison: 40 points

We would also like to thank everyone that contributed to Jetty:

List of Contributors

:gazebo: The Gazebo Dev Team :gazebo:

9 Likes

Ooooo! What a pretty logo!

1 Like