Event-listener to detect object collisions from world physics?

Hi,

there are some similar questions around but most very old, that’s why I dare to ask again in 2021 and for blender ~2.9 :grin:

Is there a way to listen to events in the physics simulation in blender, like for example detecting when two objects collide? Does the python API offer anything? Of course I looked in the docs and googled it, it seems there is just no way of doing it. BGE had “bullet” physics which appearently had this stuff built in, so it was possible in blender. and it’s hard to believe that now we’re no longer able to do it… I ask here because there’s this slight chance I overlooked something or maybe there’s a feasable work-around that I can’t think of but somebody else has.

Background:
I would love to add some sound to an animation by sending OSC (open sound control, similar to MIDI) messages to another software whenever two objects collide and let them play back a sample / synth on these messages. not in realtime but as a soundtrack of sorts.

If it’s not possible, I wonder what would be the closest we can get? Or is there another software one could somehow combine with blender to achieve this? I have also thought of approaching a game engine like Unity or similar (but how nice would it be to do it in Blender! :heart:)

thank you for any thoughts on this!

kind regards,
oyster