Import or generate 3D models and transform them into real-time playable physical audio models!
The generated audio model can be played in real-time by "striking" (clicking) on mesh vertices in the 3D mesh viewer or by exciting them with an audio input device (such as a microphone).
This project started as the final project for Karl Hiner and Ben Wilfong for GA Tech CSE-6730 Modeling & Simulation, Spring 2023. The code as it was at the end of the school project is here. This original repo also supports 2D axisymmetric audio model generation with lower fidelity due to only having two degrees of freedom.
Work on this project continues here, including a full Vulkan rewrite and many new features.
$ brew install glew llvm eigen
(Only tested on Ubuntu.)
$ sudo apt install llvm libc++-dev libc++abi-dev libeigen3-dev
$ ln -s llvm-config-17 llvm-config
$ export PATH="$(llvm-config --bindir):$PATH"
Install GTK (for native file dialogs) and OpenGL dependencies:
$ sudo apt install build-essential libgtk-3-dev libglu1-mesa-dev freeglut3-dev mesa-common-dev libglew-dev
$ git clone --recurse-submodules [email protected]:khiner/mesh2audio.git
$ cd mesh2audio
./script/Clean./script/Clean -d [--debug]./script/Clean -r [--release]./script/Build./script/Build -r [--release]Debug build is generated in the ./build directory relative to the project (repo) root.
Release build is generated in ./build-release.
To run the freshly built application:
# The application assumes it's being run from the build directory when locating its resource files.
$ cd build # or build-release
$ ./mesh2audio
.npy files (used in WIP RealImpact explorer).