slab3d logo

slab3d is a real-time virtual environment rendering system originally developed in the Spatial Auditory Displays Lab at NASA Ames Research Center.  slab3d performs spatial 3D-sound processing allowing the arbitrary placement of sound sources in auditory space.  It is released free to the public under the NASA Open Source Agreement.  This is a non-NASA website maintained by Joel D. Miller to support both NASA and non-NASA slab3d development.  slab3d was previously known as SLAB.


XScape Screenshot

slab3d release contents


  • XScape renders an audio-visual virtual environment with an emphasis on visual content.  Spatial sound processing is performed by the slab3d assembly.  Graphics processing is performed by the slabx assembly.
  • SLABScape renders an audio-visual virtual environment.  Several scene parameters can be manipulated in real-time.  Spatial sound processing is performed using the SRAPI library.
  • HeadMatch is a listening utility for comparing HRTF databases.
  • AvADE (Aviation Auditory Display Engine) allows a Windows PC to be dedicated as an auditory server with sounds and actions triggered via UDP or TCP/IP command strings.  The AvADE Client app serves as an example client and supports scripting for tests and demos.
  • SLABWireDemo demonstrates the features of the slabwire library.  It includes wave, spectrum, and spectrally-triggered OpenGL displays.
  • SLABSound provides ASIO, DirectSound, Waveform API, and Wave (RIFF) file information.
  • slabcon is a Microsoft Visual Studio console application demonstrating SRAPI-based development.
  • mcon is a C# version of slabcon demonstrating the managed use of SRAPI.
  • and other assorted demo and test applications...


  • SRAPI (SLAB Render API) renders an auditory display and/or virtual acoustic environment (VAE).  Using SRAPI, the user can allocate sound sources, define an acoustic scene, select sound output destinations, configure frame-accurate callbacks, automatically modify scene parameters, load scripts and macros, and control rendering.  SRAPI is also the interface between user applications and Render Plugins (see below).
  • slabwire is used to configure a StreamIn-DSP-StreamOut processing chain.  It is used internally by SRAPI but it can also be used as a stand-alone library.
  • slab3d and slabsharp provide a managed interface to SRAPI.
  • slabx provides a set of XNA-based classes for constructing virtual environments.
  • traklib provides a high-level interface for the Polhemus Fastrak electromagnetic tracker.

Render Plugins encapsulate the VAE rendering engine and auditory display processing.  Plugins can be swapped in and out while rendering allowing for the comparison of different rendering strategies.  Plugins also allow for the construction of tailored displays for specific applications (e.g., a spatial communications system).

  • Spatial renders a virtual acoustic scene.  Most SRAPI functions are designed for use with Spatial.  See specs below.
  • Spatial2 extends Spatial with level meters, instant replay, and silence-skip catch-up.
  • Mixer mixes each sound source into 32 possible sound outputs including two spatial aux sends per source.  See the Mixer block diagram in the slab3d User Manual, the SRAPI SrcMix functions, and the SLABScape Mixer Settings dialog.
  • Left-Monotic, Right-Montic, Diotic, and Dichotic render trivial displays for spatial/non-spatial A/B comparison.

Generator Plugins provide the signal generator sound sources available to SRAPI and slabwire.  The plugin format allows users to add additional signal generation algorithms without modifying slab3d itself.  slab3d includes two Generator Plugins:

  • gslab contains sine, square, noise, noisepulse, triangle, amplitude modulation, and impulse signal generators.
  • gstk contains all of the STK v4.5.1 instruments.

SLABScape screenshot

SLABWireDemo screenshot

slab3d layers

Also Included

A complete list of contents by release is available in the Version History "Contents" section.

hlab screenshot

slab3d specs

Operating Systems Windows 2000/XP/Vista/7/8/10
Sample Inputs

-  Waveform-Audio device
-  ASIO device
-  direct-from-disk file (8,16-bit PCM)
-  memory-buffered file (8,16-bit PCM)
-  recorded input (track recorder)
-  real-time user samples
-  Voice-over-IP (VoIP)
-  DIS frequency
-  DIS radio
-  HTTP URL-specified internet file (8,16-bit PCM, 32-bit float)
-  source submix
-  signal generator plugins
-  channel link

Sample Outputs

-  Waveform-Audio device
-  ASIO device
-  DirectSound device
-  direct-to-disk file
-  memory-buffered file
-  splitter

Sample Rates Sample Input:  arbitrary, resampled to engine rate as needed
Engine (processing and output):  arbitrary
Spatial Renderer (HRTF and material filters):  8000, 8192, 11025, 22050, 44100, 48000 Hz
API Latency 4.3ms (ASIO buffer size = 64 samples, fs = 44.1kHz), 23ms (DirectSound buffer size = 1024 stereo samples, fs = 44.1kHz)
Full-Duplex Latency 6.1ms (ASIO buffer size = 64 samples, fs = 44.1kHz)
Delay Lines 2x upsampled (optional) with linearly interpolated extraction
Frame Size 32 samples
Acoustic Scene
Number of Sound Sources arbitrary, limited by CPU resources, 256 max
Number of Listeners 1
Room rectangular room, image model, 6 first-order reflections
Environment Modeling sound source location (x,y,z), wall location (length, width, depth), listener position (x,y,z,pitch,roll,yaw), head tracker sensor location (x,y,z); Render Plugin parameters for sound propagation delay, spherical spreading loss, wall materials, head and pinna (HRTF database HRIR and ITD interpolation)
Scene Update Rate arbitrary, 120 Hz typical
Numerical Precision double-precision floating-point scene geometry calculations
Spatial Render Plugin
Environment Modeling sound propagation delay, spherical spreading loss, wall materials, head and pinna (HRIR and ITD)
DSP Update Rate delay line indexing = every sample (22.7us), FIR taps = every 64 samples (1.45ms), leaky integrator parameter tracking
HRIR FIR Taps variable, typical: direct sound path = 128 taps, reflections = 32 taps
Wall Materials Filter first-order IIR filter
Numerical Precision single-precision floating-point signal processing calculations

More Information

Last Updated:  2017.04.18