Vrui (Virtual Reality User Interface) is a C++ development toolkit for highly interactive and high-performance VR applications,
aimed at producing completely environment-independent software. Vrui not only hides differences between display systems and
multi-pipe rendering approaches, but also separates applications from the input devices available at any environment. Instead
of directly referencing input devices, e. g., by name, Vrui applications work with an intermediate tool layer that expresses interaction with input devices at a higher semantic level. This allows environment integrators to provide
tools to map the available input devices to semantic events such as selection, location, dragging, navigation, menu selection,
etc., in the most efficient and intuitive way possible. As a result, Vrui applications run effectively on widely different
VR environments, ranging from desktop systems with only keyboard and mouse to fully-immersive multi-screen systems with multiple
6-DOF input devices. Vrui applications on a desktop are not run in a “simulator” mode mostly useful for debugging, but are
fully usable and look and feel similar to native desktop applications.