Expand description
RingKernel WaveSim3D - 3D Acoustic Wave Simulation
A comprehensive 3D acoustic wave simulation with realistic physics, binaural audio, and GPU acceleration.
§Features
-
3D FDTD Simulation: Full 3D wave propagation using finite-difference time-domain methods with a 7-point stencil
-
Realistic Physics:
- Temperature-dependent speed of sound
- Humidity-dependent atmospheric absorption
- Frequency-dependent damping (ISO 9613-1)
- Multiple media: air, water, steel, aluminum
-
Binaural Audio:
- Virtual head with configurable ear spacing
- Interaural Time Difference (ITD) simulation
- Interaural Level Difference (ILD) / head shadow
- Real-time stereo output
-
Audio Sources:
- Point impulses and spherical impulses
- Continuous tones (sinusoidal)
- Noise (white/pink)
- Chirp (frequency sweep)
- Gaussian pulses
- Audio file playback
-
GPU Acceleration:
- CUDA backend for NVIDIA GPUs
- 3D stencil operations
- Efficient packed buffer layout
- Actor-based computation: Cell-as-actor paradigm with message-based halo exchange
-
3D Visualization:
- Slice rendering (XY, XZ, YZ planes)
- Interactive camera controls
- Source and listener markers
- Real-time pressure field display
§Example
use ringkernel_wavesim3d::prelude::*;
// Create simulation with default parameters
let config = SimulationConfig::small_room();
let mut engine = config.build();
// Inject an impulse at the center
let (w, h, d) = engine.dimensions();
engine.inject_impulse(w/2, h/2, d/2, 1.0);
// Run simulation steps
for _ in 0..100 {
engine.step();
}
println!("Simulated {} seconds", engine.time());§Modules
simulation: Core simulation engine, physics, and gridaudio: Audio sources and binaural microphonevisualization: 3D rendering and camera controls
Re-exports§
pub use prelude::*;
Modules§
- audio
- Audio system for 3D acoustic simulation.
- gui
- GUI module for 3D wave simulation.
- prelude
- Re-exports for convenient access.
- simulation
- 3D acoustic wave simulation module.
- visualization
- 3D visualization module for acoustic wave simulation.