The Gazebo team is happy to announce the 10th major release of Gazebo, code named Jetty!
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.
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.
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 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!
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!
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.
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:
- Akky20: 719.2 points
- Creator-1705: 410.6 points
- Nikodemj9: 310 points
- Saiaravind19: 273.6 points
- Jmackay2: 269 points
- Physic69: 234 points
- Srmainwaring: 187.2 points
- Jasmeet0915: 165.6 points
- Avanmalleghem: 114 points
- Narashima1808: 111 points
- AronLapp: 100 points
- Matosinho: 84.4 points
- Mukul2020: 79.2 points
- SuperGops7: 76 points
- Pratik-adhikari: 75 points
- Mohamedsayed18: 66 points
- Shreya-ramesh: 53 points
- CursedRock17: 45 points
- S0um0r0y: 40 points
- Chen-harrison: 40 points
We would also like to thank everyone that contributed to Jetty:
List of Contributors
- Aarav Gupta (Amronos)
- Aaron Chong (aaronchongth)
- Abhiroop (akky20)
- Addisu Z. Taddese (azeey)
- Afereti Pama (retinfai)
- Alejandro Hernández Cordero (ahcorde)
- Alessandro Sofia (alesof)
- Alex Faxå (faximan)
- Alexis Tsogias (Zyrin)
- Alon Nusem (4lon)
- amaldev (AmalDevHaridevan)
- Ansh Chablani (anshium)
- Antoine Van Malleghem (avanmalleghem)
- Arjo Chakravarty (arjo129)
- Benjamin Perseghetti (bperseghetti)
- bill (bill997)
- Carlos Agüero (caguero)
- chcaya (chcaya)
- ChenYing Kuo (CY) (evshary)
- Ching-Hsiang Wu (TigerWuu)
- Chris (PimpMyPizza)
- Clara Berendsen (claraberendsen)
- Cristóbal Arroyo (Crola1702)
- Daisuke Nishimatsu (wep21)
- David Dorf (david-dorf)
- David Morilla Cabello (dvdmc)
- Dheeraj Deevi (dheerubhai-101)
- Dyst-0 (Dyst-0)
- efferre79 (efferre79)
- Emmanuel M (EmmanuelMess)
- erling (erlingrj)
- Ethan Holter (ethanholter)
- Fabrice Larribe (teyssieuman)
- Federico Vichachi (Federico-Vichachi)
- FmJarecki (FmJarecki)
- Gabriel Augusto (gabrielaugz)
- Gabriel Pacheco (gabrielfpacheco)
- Gaurav Kumar (GauravKumar9920)
- Gilbert Tanner (TannerGilbert)
- Gopikrishnan K (SuperGops7)
- Griffin Tabor (gftabor)
- Guilhem Saurel (nim65s)
- Gwenn Le Bihan (gwennlbh)
- Harrison Chen (chen-harrison)
- Ian Chen (iche033)
- Ignacio Vizzo (nachovizzo)
- Jasper van Brakel (SuperJappie08)
- Jenn Nguyen (jennuine)
- Jeremy Nimmer (jwnimmer-tri)
- jmackay2 (jmackay2)
- Jorge J. Perez (Blast545)
- Jose Luis Rivero (j-rivero)
- Josh Newans (joshnewans)
- Joshua J. Damanik (damanikjosh)
- Júlia Marsal Perendreu (roboticswithjulia)
- Kai Pastor (dg0yt)
- Khaled Gabr (khaledgabr77)
- Kostubh Khandelwal (exMachina316)
- Leander Stephen D’Souza (leander-dsouza)
- Leo Lin (LeoLin6)
- Luca Della Vedova (luca-della-vedova)
- Maksim Derbasov (ntfshard)
- Marcel Jacobse (mjacobse)
- Martin Pecka (peci1)
- Michael Carlstrom (InvincibleRMC)
- Michael Carroll (mjcarroll)
- Mohamed Hassan (mohamedsayed18)
- mosfet80 (mosfet80)
- muttistefano (muttistefano)
- Nate Koenig (nkoenig)
- Nathan Rogers (torn8to)
- Nguyễn Tấn Anh Khoa (kitare17)
- Nikodem (nikodemj9)
- Nizam Gifary (ngifary)
- Noa Thouard (Noa-Thouard-Nexxis)
- Oscmoar07 (XINJIANGMO)
- Patrick Roncagliolo (roncapat)
- Pravin Dangol (Pravin-Dangol)
- Qingyou Zhao (qingyouzhao)
- Rahul K.A (Rahul-K-A)
- Ramir Sultanov (sumir0)
- Rhys Mainwaring (srmainwaring)
- Rnishu (Rnishu)
- Rômulo Cerqueira (romulogcerqueira)
- Sai Aravind (saiaravind19)
- Saurabh Kamat (sauk2)
- Shady Gmira (shadygm)
- Shameek Ganguly (shameekganguly)
- Shashank (shashank1300)
- Shyam Ganatra (ganatrask)
- Sikiru O. Salau (siksal)
- Silvio Traversaro (traversaro)
- Steve Peters (scpeters)
- Tatsuro Sakaguchi (Tacha-S)
- Trushant Adeshara (trushant05)
- Udaya Prakash (udaya2899)
- Utkarsh Yenurkar (BA-Utkarsh)
- Vasily Kiniv (v-kiniv)
- Vedant Randive (Vedant87)
- VM (Vicky) Brasseur (vmbrasseur)
- WangWeiLin-MV (WangWeiLin-MV)
- Wiktor Bajor (Wiktor-99)
- Xiaochuan Ye (XueSongTap)
- Yaswanth (yaswanth1701)
- Øystein Sture (oysstu)
The Gazebo Dev Team