Skip to content
/ evert Public
forked from sbrodeur/evert

Accelerated beam tracing algorithm adapted from the original source code by Samuli Laine.

License

Notifications You must be signed in to change notification settings

silky/evert

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EVERT

Accelerated beam tracing algorithm adapted from the original source code by Samuli Laine.

alt tag

Main requirements:

  • autoconf, automake, make, swig
  • OpenGL, GLUT

Dependencies on Ubuntu:

Install the basic dependencies:

sudo apt-get install build-essential autoconf automake libtool swig make

Install the OpenGL and GLUT dependencies:

sudo apt-get install libgl-dev mesa-common-dev libglu1-mesa-dev \
freeglut3-dev mesa-common-dev libgl1-mesa-dev

Installing the library

Download the source code from the git repository:

mkdir -p $HOME/work
cd $HOME/work
git clone https://github.com/sbrodeur/evert.git
cd evert

Prepare the source code (debug enabled):

aclocal && autoconf && libtoolize && automake --add-missing

Configure for development

./configure CFLAGS='-g -O0' CXXFLAGS='-g -O0'

OR configure for optimization

./configure CFLAGS='-O2' CXXFLAGS='-O2'

And finally build the library

make
sudo make install

By default, the shared library will be installed under /usr/local/lib . You may have to add this directory to the LD_LIBRARY_PATH environment variable:

export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH

This can also be added at the end of the configuration file $HOME/.bashrc

Compiling the Python bindings

To compile and install the Python bindings system-wide:

# assuming you are still in the evert directory
cd python
sudo pip2 install .

OR install it in development mode

sudo pip2 install -e .

Running the main program:

To visualize acoustic beam tracing of a room (sigyn) for included room data:

evert $HOME/work/evert/data/sigyn.room

Running the samples (Python):

To simulate acoustic beam tracing for a procedurally-created cube:

cd $HOME/work/evert/python/samples
python cube.py

To simulate acoustic beam tracing of a room (kuunteluhuone) for included room data:

cd $HOME/work/evert/python/samples
python room.py

Citation

Please cite EVERT in publications when used:

S. Laine, S. Siltanen, T. Lokki, and L. Savioja, “Accelerated beam tracing algorithm,” Applied Acoustics, vol. 70, no. 1, pp. 172–181, Jan. 2009 [Online]. Available: http://dx.doi.org/10.1016/j.apacoust.2007.11.011

BibTeX entry for LaTeX:

@article{Laine2009,
title = "Accelerated beam tracing algorithm",
journal = "Applied Acoustics",
volume = "70",
number = "1",
pages = "172 - 181",
year = "2009",
issn = "0003-682X",
doi = "https://doi.org/10.1016/j.apacoust.2007.11.011",
url = "http://www.sciencedirect.com/science/article/pii/S0003682X07001910",
author = "Samuli Laine and Samuel Siltanen and Tapio Lokki and Lauri Savioja",
keywords = "Beam tracing",
abstract = "Abstract Determining early specular reflection paths is essential for room acoustics modeling. Beam tracing algorithms have been used to calculate these paths efficiently, thus allowing modeling of acoustics in real-time with a moving listener in simple, or complex but densely occluded, environments with a stationary sound source. In this paper, it is shown that beam tracing algorithms can still be optimized by utilizing the spatial coherence in path validation with a moving listener. Since the precalculations required for the presented technique are relatively fast, the acoustic reflection paths can be calculated even for a moving source in simple cases. Simulations were performed to show how the accelerated algorithm compares with the basic algorithm with varying scene complexity and occlusion. Up to two-orders of magnitude speed-up was achieved."
}

About

Accelerated beam tracing algorithm adapted from the original source code by Samuli Laine.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 76.5%
  • Python 22.7%
  • Other 0.8%