Python w/ numpy & matplotlib plus any other libraries you might see fit.
Sound Sim Requirements
* 3D sound ray tracing with configurable walls that either reflect or absorb sound given an “absortion” rate, not sure what the scientific term is here.
* Ability to insatiate a room given a set of (x,y) coordinates, and a fixed Z.
* Ability to instantiate N number of microphones (receivers) in a room given a set of (x,y,z) coordinates
* Ability to instantiate N number of speakers in a room given a set of (x,y,z) coordinates mapped to a set of vectors which describe the direction each speaker is pointing at
* For each speaker, ability to determine whether it is a “regular” speaker, an ultrasonic speaker, or a regular speaker with a dish that converts it to a parabolic speaker. If a parabolic speaker is chosen, it’s curvature and other dimensions should be provided so that the researcher can use a variety of custom shapes.
* Code that transforms a source audio file (.wav or .mp3) into an input for a vanilla speaker to then output.
* Code that transforms a source audio file (.wav or .mp3) into an input for an ultrasonic speaker to output, which then emits an audible sound.
* Ability to plot a 3-D heat map of sound intensity (volume) in a room at time X. The map should have a scroll bar on a time axis that allows a user to move the X moment of time to show the change of sound intensity at that moment of time.