Logo: Max Planck Institute for Biological Cybernetics

Virtual Environments Library (veLib)

Home Introduction Screenshots Downloads
Installation instructions

The Virtual Environments Library (veLib) is a light-weight yet complete cross-platform software framework for distributed realtime virtual reality (VR) simulations.

It was designed to offer a convenient and unified interface for all sorts of different input and output devices and to hide the hazzle of different system architectures and communication methods from the user under a simple generic abstraction layer. Its design goals are, roughly ordered from most to least important, scalability, extensibility, flexibility, stability, simplicity, ease of use, performance, completeness, fanciness.

More specifically, it contains ready-made interfaces to all sorts of normal input devices (keyboard, mouse, joysticks, game pads, etc.), a basic 3D graphics engine, a nice spatial audio framework, a network communication layer, basic simulation logic such as collision detection and motion models, and various auxiliary functions such as overlay functionality, portable file input/output, and timers. The veLib is a platform independent C++ library, currently it is actively maintained for Linux and MS Windows.


veLib2 is online, check it out here.
Stable Version 1.8.2 is available for download.
  • Texture scaling is now supported by the VRML importer
  • Bugfix in the chrono class
Stable Version 1.8.0 is available for download.
  • UDP connection buildup is now handled correctly.
  • Bugfix in mandatory data transfer.
  • Syntax changes to reveicer() and sender() functions in the data container to make things more consistent
  • deviceGraphics now allows dynamic frustum
  • ...oh, and all news which were older than a year have been removed from this list :)

Stable Version 1.6.1 is available for download.
  • Major bug that prevented network devices from sending and receiving data on Linux has been fixed
  • MSVC projects for version 2003 and 2005 added
  • Small bugfixes
Stable Version 1.6.0 is available for download. Major improvements are :
  • The network device has been reprogrammed. It can now handle more data and is more reliable at the same time by using the advantages of both the TCP and the UDP protocol. Please see veLibXml.pdf for neccessary changes to initialization files.
  • The device container became for flexible as it now allows for addition of custom devices.
  • Bugfixes
veLua is a new and extremely user-friendly interface to the veLib which makes it possible to develop complete virtual reality applications without digging into the complexities of C++. For more information and download, please visit the veLua website.
The handling of external dependencies currently gets a complete renovation and switch to relative paths. As a first result of this, you find a package of all required libraries for MS VisualStudio 7.1 on the resources page. A new official stable release is also in the pipeline, so stay tuned!
Developmental Version 1.5.0 is available for download. It is the first step towards the changes that will appear in version 2.0. This is NOT a stable version and it is not recommended for download unless you need the newly build in feature to control single scene graph objects in a distributed application. Please note that old network servers built with version 1.4 or older won't connect anymore to applications built with version 1.5.
Stable Version 1.4.0 has been released! Improvements include the following :
  • The visualization now offers the possibility to render into two viewports via the new ve::deviceGraphicsGLStereo class. It's purpose is to allow for stereo graphics output for use with, for example, a Head Mounted Display.
  • The main visualization class (ve::deviceGraphicsGL) has been restuctured so that it now organizes it's drawable objects in a scene graph. This allows for future improvements such as depth or material sorting and other otimizations and makes the whole structure become more intuitive.
  • A plugin mechanism has been implemented for the visualization, which allows for custom graphic classes provided in a dynamic library file. The mechanism is based on a simple and leightweight interface.
    Two plugins, namely a class that renders a terrain based on a heithmap, and a class for skydome rendering, are provided as examples, check out the new /plugins directory.
  • As usual, many small enhancements and bugfixes.

The shader_plugin.zip package has been temporarily removed from the resources section because of the new plugin mechanism in Version 1.4. We hope to be able to provide an adapted shader package soon.

A new veLib_virtools.zip package is available from the resources section. A change in the network protocol in veLib version 1.2.0 caused connection problems with virtools clients, these have been fixed in the new version. The old one is still available in case you are using veLib 1.0 or 1.1.

Stable Version 1.2.0 has been released! This first major revision of the stable branch offers again a bunch of neat improvements:
  • The veLib now offers a convenient framework to access pixel and vertex shaders via the standardized OpenGL shading language (GLSL).
  • The visualization (ve::deviceGraphicsGL) makes now optionally use of vertex buffer objects (VBOs). In many cases this dramatically increases the actual frame rate (+50%/+100%)
  • A comprehensive reference manual has been compiled.
  • Truevision Targa (TGA) images are now natively supported.
  • The veLib can now be optionally compiled as a shared library.
  • many small enhancements and bugfixes, see the CHANGELOG.

Homepage renovated. Enjoy the improved and more polished appearance, updated documentation, and don't miss to have a look at the new screenshots.