Skip to content

Repository files navigation

Acoustic Wave Propagation Simulator (3D FDTD)

GitHub Release Python Version Taichi Lang

Description

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).

Technologies Used

  • 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.

Main Features

  • 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.

Roadmap & Future Works

  • Audio I/O Integration: Adding support for .wav files 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.

Setup

  1. Clone the repository.
  2. Install the required dependencies:
pip install -r requirements.txt
  1. Run the simulation
python main.py

License

Distributed under the MIT License.


About

A high-performance 3D simulator utilizing the Finite-Difference Time-Domain (FDTD) method to model acoustic wave behavior in complex environments.

Topics

Resources

Contributing

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages