Disclaimer: I'm an experienced programmer but new to Rust/Bevy. I created this project 100% vibe coded as a proof of concept. I know AI code can be controversial so I apologize in advance. I'm here to learn, so constructive criticism is welcomed!
I'm working on bevy_spatial_acoustics, a physics-based audio engine heavily inspired by Vercidium's A First Look At Raytraced Audio. However, I’ve evolved the concept from geometry-based attenuation to true Material Physics. Instead of just measuring wall thickness, this engine uses the Mass Law to calculate transmission loss based on density, meaning a concrete wall blocks sound very differently than a foam wall of the same size. It uses Avian to handle Recursive Ray Splitting (Occlusion, Reflection, and Transmission) and feeds the resulting impulse response into Firewheel for real-time DSP.
Looking for Feedback
Since this is a "Vibe Coded POC," I am sure there are architectural crimes involved. I’m specifically looking for feedback on the workspace separation between the Physics and DSP crates, the thread-safety of the ImpulseResponse data flow, and any potential performance foot-guns you spot in the recursive logic.