jReality is a Java scene graph library for creating real-time interactive applications with 3D computer graphics and spatialized audio. Applications written for jReality will run unchanged on software and hardware platforms ranging from desktop machines with a single screen and stereo speakers to immersive virtual environments with motion tracking, multiple screens with 3D stereo projection, and multi-channel audio setups. In addition to euclidean geometry, jReality supports hyperbolic and elliptic geometry.
jReality comes with a number of graphics rendering backends, ranging from pure software to hardware-accelerated to photorealistic. A distributed backend is available for cluster-based virtual environments. Audio backends range from a basic stereo renderer to a high-performance Ambisonics renderer for arbitrary 3D speaker configurations.
jReality achieves device-independent user interaction through a layer of abstract input devices that are matched at runtime with available physical devices, so that a jReality application will work with keyboard and mouse in a desktop environment as well as with motion tracking in a virtual environment.