Mikael Hermansson's Avatar

Mikael Hermansson

@mikael.hermansson.io

πŸ‡ΈπŸ‡ͺ Developer at W4 Games, working on #GodotEngine. Creator of the Godot Jolt extension. Previously at Frostbite, Avalanche and others.

1,139
Followers
406
Following
25
Posts
29.11.2023
Joined
Posts Following

Latest posts by Mikael Hermansson @mikael.hermansson.io

Yeah, ideally this is how things would work on the engine side too, I guess. The signals could live in PhysicsBody3D just as well, and be emitted for both bodies when a RigidBody3D overlaps it.

It doesn't even sound like that breaking of a change, but I'm probably missing something.

28.02.2026 08:05 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

More or less, yes, but even a frozen RigidBody3D would be doing more stuff during its state sync. Hard to compare with GDScript involved though.

By using a StaticBody3D you also avoid the clutter of all the properties that RigidBody3D brings with it, but that can be fixed in other ways as well.

28.02.2026 07:54 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
extends StaticBody3D

func _ready() -> void:
    PhysicsServer3D.body_set_mode(self, PhysicsServer3D.BODY_MODE_KINEMATIC)
    PhysicsServer3D.body_set_max_contacts_reported(self, 10)
    PhysicsServer3D.body_set_state_sync_callback(self, _on_state_sync)

func _on_state_sync(state: PhysicsDirectBodyState3D) -> void:
    if state.get_contact_count() > 0:
        print("Contact!")

extends StaticBody3D func _ready() -> void: PhysicsServer3D.body_set_mode(self, PhysicsServer3D.BODY_MODE_KINEMATIC) PhysicsServer3D.body_set_max_contacts_reported(self, 10) PhysicsServer3D.body_set_state_sync_callback(self, _on_state_sync) func _on_state_sync(state: PhysicsDirectBodyState3D) -> void: if state.get_contact_count() > 0: print("Contact!")

This might very well be the same as the rigid body workaround you've tried already, but if you're willing to accept the slight performance hit of having your static body be an always awake kinematic body instead then this should also work.

28.02.2026 00:22 πŸ‘ 3 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

Yeah, that's a good point.

I guess I see it as a quick "just make it work" button that can handle shearing and all that, without having to deal with the potentially quirky output from proper convex decomposition, but maybe the usefulness of that is more limited than I imagine.

26.02.2026 02:57 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Other engines (like Unreal) seem to implicitly generate the convex hull approximation for you at runtime, last I checked, which seems like it must surely be frustrating in other ways instead, but maybe that is the more pragmatic approach, I don't know.

26.02.2026 01:54 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

That in combination with some editor feature to bake oddly scaled shapes into convex hull approximations would go a long way I think, but there's probably an argument for having something like what your addon does alongside that as well, when you absolutely want the primitive shapes.

26.02.2026 01:54 πŸ‘ 1 πŸ” 0 πŸ’¬ 2 πŸ“Œ 0

I really need to get around to making a pull request to get rid of that error at the bottom when working in the editor, in favor of having the node configuration warning reflect the actual limitations when using Jolt (which can handle non-uniform and negative scaling within reason).

26.02.2026 01:54 πŸ‘ 3 πŸ” 0 πŸ’¬ 3 πŸ“Œ 0

I don't know anything about the PS5, but generally speaking, would you be able to track down multi-threading bugs with this, like race conditions and such, or would that still be at the whims of the OS scheduler and thus be non-deterministic?

13.02.2026 10:40 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Preview
Godot 4.6 Release: It's all about your flow With the stability gained over the past five releases, it's time for polish and quality of life improvements for everyday development.

#Godot 4.6 is out, and all about your flow!

This release puts you and your workflow first with a new theme, flexible docks, and dozens of UX improvements. And Jolt Physics by default, revamped IK, better reflections, and more.

Less wrestling with UI. More making games.
godotengine.org/releases/4.6

26.01.2026 17:43 πŸ‘ 1363 πŸ” 377 πŸ’¬ 28 πŸ“Œ 50
A strand based hair simulation running on GPU
A strand based hair simulation running on GPU YouTube video by Jorrit Rouwe

A sneak peak of what I've been working on: A strand based hair system for Jolt Physics (WIP): youtu.be/Rl19G0c003o

10.01.2026 21:07 πŸ‘ 85 πŸ” 17 πŸ’¬ 4 πŸ“Œ 0
Godot Engine – 2025 Showreel
Godot Engine – 2025 Showreel YouTube video by Godot Engine

The Godot 2025 showreel is out! We're so grateful for every submission, vote, and support from our community πŸ’™

www.youtube.com/watch?v=7ZwE...

07.11.2025 16:02 πŸ‘ 394 πŸ” 144 πŸ’¬ 5 πŸ“Œ 15
GodotΒ 4.5, making dreams accessible – Godot Engine From mind-blowing effects now made possible by the stencil buffer to accessible descriptions of your GUI elements that opens up the possibility for people with disabilities to play your game β€” we are ...

#GodotEngine 4.5 has finally arrived! πŸŽ‰

With this new release, we made meticulous efforts in order to amplify what is possible to do with our engine, guided by our goal of making gaming and game development for everyone!

godotengine.org/releases/4.5/

15.09.2025 20:30 πŸ‘ 1385 πŸ” 411 πŸ’¬ 28 πŸ“Œ 70

Having once tried to implement hot-reloading for MSVC, by hijacking the jump thunks used by their incremental linking, static variables was indeed what (pretty quickly) made me throw in the towel, so I'm glad it seems to be as messy as I imagined it would be.

19.03.2025 09:20 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

Note that since the extension now has to live alongside the built-in Jolt module in Godot 4.4, I've renamed both the engine and the project settings category, to hopefully make things less ambiguous.

Both of those should migrate automatically, so shouldn't require any action in most cases.

10.03.2025 18:26 πŸ‘ 3 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

For anyone still in need of the few extra features that weren't carried over to Godot 4.4's built-in Jolt module, or who might still be using Godot 4.3, version 0.15.0 of the extension is out now, which brings with it some bug fixes as well.

github.com/godot-jolt/g...

#GodotEngine

10.03.2025 18:26 πŸ‘ 11 πŸ” 1 πŸ’¬ 1 πŸ“Œ 0

There might be some explanation for needing that, but odd discrepancies between the two physics engines like that should generally be considered bugs, so should still be reported.

08.03.2025 21:34 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

I haven't tried it myself, but it does sound like a bug of some sort.

If you're able to, I'd appreciate if you reported this as an issue to Godot's GitHub repository, ideally with a minimal repro project as well.

08.03.2025 18:05 πŸ‘ 2 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

Not detected in what way? When listening to the body_entered signals of either body?

04.03.2025 19:29 πŸ‘ 1 πŸ” 0 πŸ’¬ 2 πŸ“Œ 0
Preview
GodotΒ 4.4, a unified experience – Godot Engine Look forward to plenty of quality of life improvements hidden within this release. Faster load speeds, reduced stutter, streamlined processes - spotting all the optimizations that have been applied in...

#GodotEngine 4.4 is finally here! πŸš€

Look forward to plenty of quality of life improvements hidden within this release. Faster load speeds, reduced stutter, streamlined processes, and more!

godotengine.org/releases/4.4/

03.03.2025 17:08 πŸ‘ 1958 πŸ” 521 πŸ’¬ 54 πŸ“Œ 106

If you're able to construct some kind of repro for it (even if it's not 100% reproducible) it would be great if you reported this issue on Godot's GitHub.

19.02.2025 02:23 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

It took a Brackeys video for me to realize that I had messed up the packaging of the now three months old release of Godot Jolt, resulting in it ending up in the root project folder when installed from the editor, as opposed to the addons folder. 🫠

Still neat to see it mentioned though!

10.02.2025 02:09 πŸ‘ 20 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

You'll likely run into problems when running the current release of the extension in Godot 4.4, as there are class name collisions between the two implementations. I need to put out a new release that is explicitly compatible with Godot 4.4.

You can always compare against Godot Physics instead.

18.01.2025 15:59 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

They should in theory be largely the same, but I submitted a couple of scary optimizations for the Godot module over the holidays that seem to have caused some regressions, so keep an eye out for any issues.

18.01.2025 15:12 πŸ‘ 2 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

I'm not involved in those decisions myself, but assuming everything goes well with Jolt then it will most likely become the default, and Godot's own 3D physics engine would be deprecated some time after that.

11.12.2024 23:51 πŸ‘ 2 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

I haven't taken the time to profile them both side-by-side, but I wouldn't expect a massive difference. The GDExtension bindings didn't add that much overhead last I checked.

What might matter is the compiler used, as Clang seemed to do better at optimizing Jolt, whereas Godot compiles with GCC.

11.12.2024 17:00 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

It definitely wouldn't have gotten to this point without the help from @jrouwe.bsky.social, so a big thank you for his continued support.

Also, thank you to everyone who took the time to try out the Godot Jolt extension these past two years, especially the ones who reported issues.

11.12.2024 14:39 πŸ‘ 47 πŸ” 1 πŸ’¬ 0 πŸ“Œ 0
Preview
Add Jolt Physics as an alternative 3D physics engine by mihe Β· Pull Request #99895 Β· godotengine/godot Closes godotengine/godot-proposals#7308. This pull request adds a new engine module (found under modules/jolt_physics) which integrates Jolt Physics, a 3D physics engine developed by Jorrit Rouwe (...

I'm very happy to report that Godot just merged the integration of Jolt Physics, as an experimental alternative to Godot's own 3D physics engine.

github.com/godotengine/...

#GodotEngine

11.12.2024 14:39 πŸ‘ 434 πŸ” 81 πŸ’¬ 19 πŸ“Œ 4

Fair enough! πŸ™‚ It's almost certainly 0.12.0 then.

Congratulations on all the success with PGRC in general. I've been meaning to pick it up and try it for myself. I was a big fan of both JellyCar and Where's My Water back in the day.

21.11.2024 15:49 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Congratulations! It seems like the perfect title for something like the Steam Deck.

I'm a little bit curious what version of Godot Jolt you ended up shipping with, if you happen to know?

21.11.2024 14:53 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

Don't forget @jrouwe.bsky.social as well. πŸ™‚ The work that happens on the extension side is very much dwarfed by his work on the Jolt side of things, often to accommodate for the Godot extension.

04.11.2024 17:12 πŸ‘ 3 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0