GPU-accelerated spatial audio occlusion SDK for Unity. Ray-traced audio propagation through voxelized scene geometry.
v0.2.0 — early developmentMeta discontinued their XR Audio SDK. AudioBounce replaces it with an open, ray-traced occlusion pipeline. XR is optional — targets desktop, Android, and XR platforms equally.
A complete GPU-driven audio occlusion pipeline, from voxelization to gain output.
Möller SAT triangle-box overlap test converts mesh geometry into a flat 3D voxel grid with material IDs.
Amanatides & Woo traversal with slab-method AABB entry. Rays march through the voxel grid on the GPU with hit normal output.
Full-sphere ray distribution using Fibonacci spiral placement. Uniform coverage from every audio source position.
Configurable 0–8 bounce depth. Reflected rays propagate via DDA step-axis normals for realistic sound paths around obstacles.
Walks bounce chains and accumulates energy from segments passing near the listener, with geometric decay per bounce.
Non-blocking readback with round-robin source processing. Runs at a configurable rate (default 30Hz) without stalling the main thread.
OnAudioFilterRead applies occlusion via volatile float with a 15% minimum floor. Lock-free, zero-allocation audio path.
Multi-segment bounce rays rendered with bounce-level coloring. Red/green through orange, yellow, and cyan per bounce depth.
Ray-traced audio occlusion in six stages, from scene geometry to speaker gain.
Scene meshes are voxelized on the CPU using Möller SAT triangle-box overlap. Each cell stores a material ID.
Fibonacci-sphere distributed rays are dispatched from each audio source. GPU compute traces them through the voxel grid via DDA.
On voxel hit, rays reflect using step-axis normals and continue tracing. Up to 8 bounces per ray, all on the GPU.
Each ray's bounce chain is walked. Segments passing near the listener contribute energy with geometric decay per bounce.
AsyncGPUReadback transfers results without stalling. Round-robin scheduling processes sources at 30Hz.
Occlusion values reach the audio thread via volatile floats. OnAudioFilterRead scales the audio buffer per-sample.
Built on Unity's compute pipeline with zero external dependencies.