A universal framework for multimedia simulation

Om is a cross-platform C++ application framework for multimedia simulation.


  • Pure C++ API, no dependencies exposed in headers
  • Small number of dependencies
  • Minimal use of standard library, targeted for C++03
  • Supports Windows, Mac OS X, Linux (partial)

  • Edits all Om data types
  • Simple intuitive design

  • Scene management
  • Supports any graphics API (currently only OpenGL)
  • Generic data-driven shader binding system
  • Forward, deferred, and ray tracing renderers
  • Generic post-processing system
  • Skeletal animation

  • Sound/MIDI device I/O
  • Graph-based sound/MIDI processing
  • Multichannel recording/playback
  • User-defined sound processing modules
  • Internal plugin format, support for external AU plugins. VST/RTAS support planned
  • Reference-quality HRTF implementation.
  • Low-latency dynamic streaming convolution.
  • Sound Formats: Ogg, AIFF, WAVE, FLAC

  • Generic simulation framework supports any sound propagation techique
  • State-of-the-art geometric sound propagation
  • Scales to different requirements (offline, interactive, fast simulation)
  • Source and listener directivity via directional transfer functions (e.g. HRTF)
  • Area sound sources

  • Custom highly-optimized simulator
  • Standard collision shapes - sphere, cylinder, capsule, box, convex hull, mesh
  • Supports user-defined collision shapes, force fields, constraints

  • Lightweight GUI system wrapping platform-native widgets
  • Custom GUI system for hardware-rendered widgets
  • Callback delegates (function objects) provide flexible event handling


Om has been designed to be extremely flexible and can be used for almost any application that requires real-time processing of multimedia data. This includes:
  • Game Engine - Om contains most functionality needed by modern game engines, including graphics rendering, physics simulation, sound simulation and DSP, GUI and input handling.
  • Audio Workstation - Om has advanced sound processing capabilities and supports external plugins (AU (implemented), VST (support coming)), plus an internal plugin format (SoundFilter). The DSP system supports directed acyclic graphs of audio processing components and can be used for both recording and live-performance applications.