This project is a computer application that simulates and visualizes how sound waves travel in a 3D space. It calculates how sound moves by solving the acoustic wave equation using a method called FDTD (Finite Difference Time Domain).
- Python 3.x: Chosen for its broad support for scientific libraries and ease of development.
- Taichi Lang: The core technology powering both the computational engine and result visualization.
- 3D FDTD Engine: Simulates how sound pressure changes and moves through a 3D space.
- PML Perfectly Matched Layers: Uses special layers to simulate open, borderless spaces, and calculates how sound bounces off different obstacles.
- Environment Voxelizer: Takes complex 3D scenes (like .obj files made with Blender) and turns them into a grid of materials with specific physical properties like sound absorption so the engine can process them..
- Real-time Visualization: Uses Taichi's GUI system to render 2D slices of the 3D acoustic field dynamically.
- Audio I/O Integration: Adding support for
.wavfiles to allow importing custom source signals and exporting audio "recordings" after the simulation completes. - Advanced Pre-processing: Better synchronization with Blender and other 3D modeling software for easier scene creation.
- Voxel Optimization: Further optimization of the voxel processing pipeline to improve memory efficiency and initialization speed.
- Clone the repository.
- Install the required dependencies:
pip install -r requirements.txt- Run the simulation
python main.pyDistributed under the MIT License.