Dev Planet
Libre Arts: Weekly recap — 4 May 2025
Godot Showcase – Somar
Today we present a showcase that is a little different. We interviewed Frederic Plourde and Daniel Castellanos who used Godot to create an educational XR experience for SOMAR, a non-profit association focusing on the conservation of marine life in the Algarve.
Frederic Plourde is the XR Lead at Collabora where he drives AR/VR strategy, business development, and open-source innovation, leading a team of talented engineers working on XR customer projects and Monado, the cross-platform open-source OpenXR runtime. He is also Vice Outreach Officer at the Khronos Group where he promotes the OpenXR standard, fosters industry collaboration, and advocates for open and interoperable XR solutions. In the SOMAR project, Frederic took on a technical leadership role, overviewing the development of an immersive XR experience and leading Collabora’s efforts toward developing a Cardboard driver for Monado.
Daniel Castellanos is the owner of Decacis Studio, and was contracted by Collabora to work mainly as a programmer/developer on the SOMAR project.
Can you tell us a little more about the non-profit organisation behind the SOMAR project, who they are and what their mission is?
Fred: SOMAR is a non-profit organization that focuses on protecting dolphins, whales, and marine life in the Algarve. Their mission is to raise awareness about the impact of human activities—like underwater noise pollution—on marine ecosystems. By combining scientific research, education, and innovative technology, SOMAR promotes sustainable practices and works to preserve the region’s ocean biodiversity for future generations.
Can you tell us a bit about the XR experience you have created, and what you set out to achieve?
Fred: The XR experience developed for the SOMAR project was designed to provide an immersive, educational tool to raise awareness about the impact of underwater noise pollution on marine life. By immersing users in realistic coastal and offshore environments of the Algarve, the experience showcases the effects of noise from tourist boats, particularly whale and dolphin-watching activities. Users can witness firsthand how these essential marine mammals are disrupted in their communication and hunting activities, gaining a deeper understanding of the challenges they face. Through this interactive experience, we aimed to engage users emotionally and inform them about the urgent need for conservation efforts to protect these creatures and their habitats.
I understand the project is focused on being deployed in museums and in classrooms in Portugal. Can you tell us more about how this works?
Fred: The SOMAR project was designed with flexibility in mind and offers content in both English and Portuguese through Godot’s built-in localization functionality. Built on OpenXR, the project benefits from a standardized framework that simplifies deployment across multiple devices, allowing us to target both museums and classrooms across Portugal. In museums and institutional venues, the Meta Quest version of the XR experience offers a high-fidelity, immersive experience with detailed visuals, allowing visitors to explore the application in a captivating, educational environment. Meanwhile, the PhoneXR version, optimized for accessibility, is intended for use in classrooms, where students can experience the same core content through low-cost Google Cardboard-type phone holders. By running the open-source cross-platform OpenXR runtime Monado on those phones, this version is designed to be more accessible and straightforward, making it possible for kids to dive into XR for the first time, all while learning about conservation in an interactive way. This dual deployment strategy ensures that the SOMAR project can reach diverse audiences, from the general public to younger generations, fostering environmental awareness across different settings.
Will the experience be available to play by the general public and if so, where can they find it?
Fred: Yes — the SOMAR experience is now available for everyone to explore! 🐬 Dive into our open-source XR project and discover the impact of underwater noise pollution on marine life. You can download and try it out for free on SOMAR’s official itch.io page.
What were your main considerations in choosing Godot as the XR platform to create this experience?
Fred: One of the main considerations for selecting Godot as the game engine for this project was finding an open-source engine that could provide flexibility, scalability, and a strong support community. Godot stood out for its robust 3D capabilities, ease of use, and ability to run on multiple platforms. Godot’s open-source nature felt like a perfect match for the Monado-driven experience and our collaboration with a non-profit as part of Collabora’s 1% for the Planet initiative, reinforcing our commitment to both innovation and social impact. Additionally, Godot’s growing reputation within the XR and gaming communities, coupled with its ongoing OpenXR development via a Khronos-funded project, gave us confidence in its future-proof capabilities, ensuring that the SOMAR project could evolve and expand over time.
What was the most enjoyable part of using Godot?
Daniel: I’ve been using Godot for a few years now, and the most enjoyable part of it for me is being able to iterate quickly. Throughout its development, the project experienced numerous revisions, but implementing these changes was generally straightforward and quick.
What was the most difficult issue to overcome?
Daniel: Having a balance between creating the most realistic or immersive experience possible while having to keep the experience performant on mobile devices apart from the Quest.
Did you use any existing toolkits/plugins in developing this experience and what was the motivation behind choosing these or building your own solution?
Daniel: Not really! The project doesn’t feature movement, and user input is limited, so building a custom solution was not a problem. Furthermore, keeping the project as simple as possible was one of my goals, both to prevent bugs and keep the code clean and easy to understand.
What would you like to see evolve within Godot’s XR support that would have made building this project easier?
Daniel: There was a single bug or unexpected behavior that I found during development, but nothing that couldn’t be worked around. For this project, I believe Godot was the right choice and made things as easy as they could be.
I understand the project currently targets the Meta Quest headsets. What motivated this choice?
Fred: The Meta Quest headset was chosen for the SOMAR project due to its strong popularity, excellent performance, and ease of use. As a standalone device, the Quest 3 delivers high-quality visuals and immersive experiences without needing a PC or external sensors, making it ideal for both museum venues and broader accessibility. Its widespread presence in the XR market ensures compatibility with future updates, allowing us to reach a wide audience while providing a seamless and engaging experience.
How was the experience of using Godot with the Meta Quest?
Daniel: Awesome! I used Meta Quest Link for most of the development to quickly test things, but every once in a while I deployed the project directly into the Meta Quest to measure performance. Fun fact: the project uses the Khronos OpenXR runtime, and it worked flawlessly first time.
I also understand the project is also capable of using the Monado OpenXR runtime. Can you tell me a bit more about the motivation and goals of this port?
Fred: The motivation behind also targeting the Monado OpenXR runtime was to ensure broader accessibility and compatibility across different platforms, particularly for low-cost, phone-based VR systems. Monado’s open-source nature aligns with our goal of creating a flexible, cost-effective solution that’s not reliant on proprietary ecosystems. For this project, Collabora dedicated engineering resources to develop a new Monado Cardboard driver, which enables the experience to run on Android phones with Cardboard VR headsets, making the immersive content accessible to a wider audience, including kids and students. This port reinforces our commitment to open standards, allowing for future enhancements and maintaining the project’s long-term sustainability.
You can find the code for that driver on the [freedesktop.org GitLab]
(https://gitlab.freedesktop.org/bl4ckb0ne/monado/-/tree/cardboard-sdk). It will be upstreamed soon.
Fred, specifically for you, can you give us a synopsis of what Monado is and your perspective on the combination of using Godot with Monado?
Fred: Monado is an open-source, cross-platform OpenXR runtime designed to provide the fundamental building blocks for XR device vendors and developers. By offering compatibility with major platforms like Linux, Windows, and Android, Monado serves as a versatile foundation for creating and deploying XR applications. Combining Monado with Godot, an open-source game engine, creates a powerful synergy. Godot’s flexibility, combined with Monado’s OpenXR support, enables both the simplicity of Godot’s development environment and the vast compatibility of Monado’s runtime.
Are there any plans to bring this project to other VR headsets?
Fred: Yep, we’re currently testing the SOMAR application on other platforms and devices. Since Monado is built on OpenXR, it’s designed to be highly adaptable and should be able to run on many other platforms and devices with minimal effort. However, as an open-source project, the real strength lies in the community. While we continue to extend support for more headsets, we encourage developers and enthusiasts to contribute to the project and help expand its reach even further. The open-source nature of Monado makes it easy for anyone to pitch in and bring support to new platforms, creating a collaborative and growing ecosystem.
What’s next for you, anything interesting on the horizon?
Daniel: Sure. I’m currently working on my next game: Stellar Checkpoint, which will be available in both VR and desktop/flat modes. It should come out later this year, so stay tuned!
Finally, is there any advice you’d like to share especially to someone considering using Godot for their next XR project?
Fred: Absolutely! One of the most exciting things about using Godot for XR projects is the incredible community that surrounds it. Godot has such a passionate and supportive group of developers, artists, and creators, and it’s all accessible through platforms like the Godot Discord. If you’re just getting started with XR in Godot, I highly recommend joining the Discord first.
Daniel: Just try it. Read the official documentation, place a couple of cubes as hands and experience how easy it is to get started! And if you get stuck, there is always someone from the community willing to help. Godot scales really well, and it works for both simple and complex projects, and best of all, being open-source means you can extend it to fit your needs.
Some extra information about the organisations involved
Collabora is a global consultancy specializing in delivering the benefits of open-source software to the commercial world. Whether it’s the Linux kernel, graphics, multimedia, machine learning or XR, Collabora’s expertise spans across all key areas of open-source software development. By harnessing the potential of community-driven open-source projects, and re-using existing components, Collabora helps its clients reduce time to market and focus on creating product differentiation. To learn more, please visit collabora.com.
Decasis studio is an independent development studio run by Daniel Castellanos.
SOMAR is a non-profit association founded in 2020, dedicated to the conservation of the Algarve’s dolphins, whales, and broader marine life. With a focus on protecting the oceans, SOMAR operates through a variety of initiatives aimed at safeguarding the region’s rich biodiversity. The organization is driven by its commitment to raise awareness about the negative impacts of human activities, such as underwater noise pollution, on marine fauna. By combining scientific research, environmental education, and innovative technologies, SOMAR seeks to promote sustainable practices and inspire collective action to preserve the natural marine ecosystems of the Algarve for future generations.
Castle Game Engine: April improvements: physics upgrade, sphere casting, layers filtering, easy factory, iOS fixes, image improvements, and more
jMonkeyEngine: jMonkeyEngine 3.8.0-stable
Libre Arts: Weekly recap — 27 April 2025
Castle Game Engine: Pascal Cafe 2025 presentation: web (play Unholy Society on the web for free!), IFC, 3D scanning, mORMot integration
Dev snapshot: Godot 4.5 dev 3
If the past snapshot was any indication, you might think that development updates aren’t slowing down anytime soon. And… You’d be right! Indeed, progress has been booming, and the amount of new features added even compared to the previous release is staggering; curating this selection was especially difficult. As always, new features mean new bugs in need of fixing, so we encourage everyone interested to get feedback and bug reports in as early as possible.
Jump to the Downloads section, and give it a spin right now, or continue reading to learn more about improvements in this release. You can also try the Web editor or the Android editor for this release. If you are interested in the latter, please request to join our testing group to get access to pre-release builds.
The cover illustration is from Cornerpond, a fishing game that takes place entirely in the corner of your desktop. It is developed by foolsroom. You can get the game on Steam and follow the developer on Twitter.
Highlights
In case you missed them, see the 4.5 dev 1 and 4.5 dev 2 release notes for an overview of some key features which were already in that snapshot, and are therefore still available for testing in dev 3.
Screen reader support
Accessibility should be every developer’s top priority, full-stop. Someone being excluded from an experience for factors outside of their control is an area that video games and applications have the potential to circumvent entirely. It does, however, take a solid framework to allow such accommodations to be developed. To streamline this process for everyone—players and developers alike—our resident tech guru bruvzg took to the absolutely Herculean task of integrating AccessKit to Godot as a whole.
GH-76829 was a project started two years ago, which progressed in bursts alongside the AccessKit framework. For the 4.5 release, we made it a priority to finalize, and thus we now merged this major feature with over 32,000 lines of code, after hundreds of comments with feedback/testing. Users are encouraged to look at the pull request for more information, as there’s no feasible way we could properly summarize these changes. Unsurprisingly, this was by far the change with the most ramifications of the entire snapshot, so much so that it’s already seen multiple fixes to address regressions (even one right when validating this snapshot), but it’s well worth it. After all, accessibility is our top priority!
This is only the first but massive step towards making Godot more accessible. In particular for the editor, a lot more work will be needed to make it really usable, as well as integrate with accessibility frameworks for mobile or web platforms.
Script backtracing
In any other snapshot, this would’ve been the main highlight, as adding backtracing to GDScript was among the most highly requested features from our users for years. Two brave souls, Mikael Hermansson (godot-jolt) and Juan Linietsky (up-and-coming developer), helmed this task and made this process possible with GH-91006. This will make it much easier for users to find the cause of warnings/errors that previously required manually hunting down bugs. Stack traces are now available in projects exported in release mode as well if the Debug > Settings > GDScript > Always Track Call Stacks project setting is enabled. This can make it easier for users to report issues in a way that developers can track down.
Inspector section toggles
Another long-awaited feature, inspector section toggles, is now a part of the engine as of GH-105272. lodetrick has expanded editor functionality to what you see below: sections with their own dedicated checkbox to denote if they’re enabled.
And more!
There are too many exciting changes to list them all here, but here’s a curated selection:
- 3D: Set correct position of node with
Align Transform with View
in orthographic view (GH-99099). - Audio: Fix AudioStreamPlayer3D stereo panning issue (GH-104853).
- Buildsystem: Fix
.sln
project generation logic for Rider to support all OS and all C++ toolchains (GH-103405). - Buildsystem: Update the Android NDK to the latest LTS version (r27c) (GH-105611).
- C#: Avoid unnecessary StringName allocations on not implemented virtual
_Get
and_Set
method call (GH-104689). - Core: Add
create_id_for_path()
to ResourceUID (GH-99543). - Core: Add negative index to
Array.remove_at
andArray.insert
(GH-83027). - Core: Add thread safety to Object signals (GH-105453).
- Editor: Autocompletion: Don’t add parenthesis if
Callable
is expected (GH-96375). - Editor: Fix exported Node/Resource variables resetting when extending script in the SceneTreeDock (GH-105148).
- Editor: Project manager: Add option to backup project when it will be changed (GH-104624).
- Editor: Support custom features in project settings dialog (GH-105307).
- Export: Use project settings overrides with the target preset features instead of current platform features (GH-71542).
- GDExtension: Optimize gdvirtual function layout (GH-104264).
- GUI: Add
FoldableContainer
(GH-102346). - GUI: Add boolean toggle for middle-click to fire
tab_close_pressed
signal (GH-103024). - GUI: Add separate
minimize_disabled
andmaximize_disabled
window flags (GH-105107). - GUI: Add support for OEM Alt codes input (GH-93466).
- GUI: Implement
SVGTexture
auto-scalable with font oversampling (GH-105375). - GUI: Make embed floating window respect
Always On Top
configuration (GH-103731). - GUI: Replace global oversampling with overrideable per-viewport oversampling (GH-104872).
- Input: Add configuration option to disable
Scroll Deadzone
on Android (GH-96139). - Input: Allow all tool modes to select (GH-87756).
- Plugin: Add maven publishing configuration for Godot tools (GH-104819).
- Porting: Android: Add new actions and enhancements to
TouchActionsPanel
(GH-105140). - Porting: Android: Embed
TouchActionsPanel
directly into the editor UI (GH-105518). - Rendering: Detect more pipeline settings at load time to avoid pipeline stutters (GH-105175).
- Rendering: Renderer: Reduce scope of mutex locks to prevent common deadlocks (GH-105138).
- XR: OpenXR: Request the
XR_KHR_loader_init
extension (GH-105445).
Changelog
115 contributors submitted 253 fixes for this release. See our interactive changelog for the complete list of changes since the previous 4.5-dev2 snapshot.
This release is built from commit 28089c40c
.
Downloads
Godot is downloading…
Godot exists thanks to donations from people like you. Help us continue our work:
Standard build includes support for GDScript and GDExtension.
.NET build (marked as mono
) includes support for C#, as well as GDScript and GDExtension.
While engine maintainers try their best to ensure that each preview snapshot and release candidate is stable, this is by definition a pre-release piece of software. Be sure to make frequent backups, or use a version control system such as Git, to preserve your projects in case of corruption or data loss.
Known issues
There are currently no known issues introduced by this release.
With every release, we accept that there are going to be various issues, which have already been reported but haven’t been fixed yet. See the GitHub issue tracker for a complete list of known bugs.
Bug reports
As a tester, we encourage you to open bug reports if you experience issues with this release. Please check the existing issues on GitHub first, using the search function with relevant keywords, to ensure that the bug you experience is not already known.
In particular, any change that would cause a regression in your projects is very important to report (e.g. if something that worked fine in previous 4.x releases, but no longer works in this snapshot).
Support
Godot is a non-profit, open source game engine developed by hundreds of contributors on their free time, as well as a handful of part and full-time developers hired thanks to generous donations from the Godot community. A big thank you to everyone who has contributed their time or their financial support to the project!
If you’d like to support the project financially and help us secure our future hires, you can do so using the Godot Development Fund.