Visualization and optimization tools for recording studio acoustic simulations created with go-recording-studio.
This toolkit provides two main functionalities for acoustic studio design:
-
3D visualization of acoustic simulation results, helping studio designers:
- View reflection paths and their interaction with room surfaces
- Identify problematic reflection points
- Visualize the Reflection-Free Zone (RFZ)
- Analyze reflection patterns with reduced visual noise
-
Bayesian optimization of studio parameters, enabling:
- Automated search for optimal speaker and listening positions
- Multi-process parameter optimization
- Customizable optimization objectives
- Constraint-based parameter exploration
The visualization tool processes simulation results from go-recording-studio and provides interactive 3D views using trimesh:
- Load simulation results from a go-recording-studio output directory
- Render the room geometry, reflection paths, and RFZ
- Support interactive viewing with zoom, pan, and rotate capabilities
- Provide specialized viewing modes:
- Step mode (
--step): View individual reflection paths sequentially - Culling mode (
--cull): Group similar reflections for clearer visualization
- Step mode (
The optimizer uses Bayesian optimization to find optimal studio configurations:
- Define parameter bounds and constraints
- Run parallel simulations across multiple processes
- Primary optimization goals:
- Achieve minimum 30ms Initial Time Delay (ITD)
- Minimize required absorptive surface area
- Support for custom optimization objectives
- You'll have to do some hacking. The optimization code is functional for fellow hackers but really not polished enough for non-hackers.
- Create and activate a Python virtual environment:
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate- Install dependencies:
pip install -r requirements.txt- Python 3.x
- A completed simulation from go-recording-studio
Basic usage:
python main.py /path/to/experiment [options]Available options:
--step Step through reflections one at a time
--cull FLOAT Cull very similar paths from the render
(Values between 0.05 and 0.3 meters recommended)
--points Show the location of the final reflection in each arrival
For each reflection path, the visualization displays:
- ITD (Initial Time Delay) in milliseconds
- Path gain in dB
- Shot gain in dB
- Number of reflections
- Surface name of last reflection
In step mode, navigation controls are:
- 'n': next reflection
- 'p': previous reflection
- 'q': quit
The visualization tool reads three key files from the simulation output:
annotations.json: Contains reflection paths and geometry data (see annotations_schema.md)summary.json: Contains acoustic parameters and results (see summary_schema.md)room.stl: Contains acoustic parameters and results (see summary_schema.md)
-
Create a configuration file based on the example config
-
Run the optimizer:
python acoustic_optimizer.py config.yamlMIT license. (See LICENSE file)
- Uses go-recording-studio for acoustic simulation
- Built with trimesh for 3D visualization
- Optimization powered by scikit-optimize