ViRMEn – Virtual reality MATLAB engine

vi

Dmitriy Aronov, while postdocing in David Tank’s lab at Princeton, developed a virtual reality engine that runs in MATLAB called ViRMEn. It’s open and there’s a good amount of documentation. The downloadable versions date back to 2013, and it is regularly updated. The most recent update as of the writing of this blog post was Feb 12, 2016, about 2 months ago.

Welcome to ViRMEn – the Virtual Reality MATLAB Engine. ViRMEn is a MATLAB-based software package that contains 3 components:
1. A graphical user interface (GUI) for interactively designing virtual environments (worlds).
2. An engine that performs 3D rendering of worlds on a computer monitor or projector.
3. An object-oriented toolbox for manipulating worlds programmatically outside of the GUI.

ViRMEn achieves fast graphics by directly accessing low-level OpenGL commands instead of using built-in MATLAB functions. The engine also recognizes physical boundaries in virtual worlds and performs continuous-time collision detection to manage the animal’s contact with these boundaries.

ViRMEn is designed to be highly customizable. The engine can apply arbitrary spatial transformations to virtual worlds to display them on practically any type of screen (flat, conical, toroidal, etc.). The engine can also access any type of an input device (such as an optical mouse or a rotary encoder) to obtain the animal’s movement information. Finally, the engine runs custom user-written MATLAB code that can implement experiment logic, reward delivery, data logging, etc.

Hat tip to Tristan Heintz (Lagnado lab @ Sussex).