Python scaffold for simulation-first research on passive acoustic array sensing.
The first milestone is intentionally narrow:
- define a bounded
1 km x 1 kmworld - place multiple acoustic array nodes at known coordinates
- define one moving sound source on a trajectory
- generate per-node multichannel audio with propagation delay and distance attenuation
- write raw outputs and ground truth to disk for downstream processing
This is a research harness, not an operational system.
openspec/changes/build-v1-simulator/ # proposal, design, and tasks
src/acoustic_array_sim/ # Python package
examples/ # example scenario configs
output/ # generated runs
tests/ # smoke tests
cd /Users/harisrashid/repos/acoustic-array-sim
uv venv .venv
source .venv/bin/activate
uv pip install -e ".[dev]"
python -m acoustic_array_sim.run examples/basic_scenario.json --output-dir output
python -m acoustic_array_sim.qt_app- Config-driven world definition
- Sensor node placement with local microphone geometry
- Moving source trajectory sampling
- Synthetic multichannel audio generation
- Export of
scenario.json,ground_truth.csv, and one multichannel WAV per node - Static visualization export as
world_top_down.pngandworld_isometric.png - Interactive Streamlit + Plotly 3D scene viewer with timeline controls
- Scenario-driven terrain and placed object rendering in the Streamlit 3D scene
- Qt desktop simulator with persistent 3D scene, playback controls, source stats, and per-node audio panels
- terrain-aware simulation effects
- obstacle / reflection modeling
- DOA estimation stage
- classifier hooks
- multi-node fusion