Virtual Reality (VR) is trending nowadays, in the gaming industry, simulation, education, and industrial sector. Over a decade ago, Second Life was trending as an online virtual world. Since then some games and application emerged in the same context, but the virtual world is not the same as virtual reality, augmented reality or mixed reality. So what are the differences?
What is Virtual Reality?
Virtual Reality is a computer-generated simulated environment. It simulates 3D motion graphics that appears to be realistic from the perspective of the user.
Virtual Reality uses the head-mounted display (HMD); A helmet-sized device that has a small display optic directly in front of one or both eyes.
The major players in Virtual Reality include HTC Vive, Oculus Rift and PlayStation VR (PSVR). However, Samsung, Apple, Google & Lenovo has been pushing forward with gadgets.
Virtual reality was a hype, some may consider it dead or struggling, but it's alive and well. But it's not for everyone.
What is Augmented Reality?
Augmented Reality (AR); Is an enriching real-world scene with computer generated graphics, like 3D models, text, video, or audio. It's already used in many games like Pokémon GO, Ingress, Jurassic World Alive & the famous treasure hunting game Geocaching.
What is Mixed Reality?
Mixed Reality (MR) is about mixing virtual reality with the real-world view in real-time, ending in creating new enrolment with computer generated objected simulated into the real scene.
About this list
There are many commercial highly-priced VR platforms, aiming for the gaming industry, & simulation, so We have collected here the most promising open-source virtual reality (VR) projects, aiming to provide open-source VR software developers with a comprehensive list of options to choose from for their projects.
Many of the framework, platforms, VR graphics engines we have listed here supports most of the VR gadgets, but some projects we have added here are providing open-source instructions, tools to help to build low-cost VR gears, aiming to help engineers, startups to lower the cost their products and innovate.
GuriVR is an open-source virtual reality (VR) editor, that comes with a unique way to convert text description of a 3D scene into 3D VR-Ready scene. It's based on Mozilla's A-Frame and works as smoothly on the modern WebGL-enabled web browsers like Mozilla Firefox, Google Chrome. GuriVR generates a rich virtual reality experience that can be exported into a standalone web app or embedded into a website. It can also be generated to desktop apps and uses OpenGL.
GuriVR supports text, 3D models, images, audio, voiceover, sky, panorama, video-sphere, video cover, 3D charts, & links. It's easily created and can be shared easy at websites, or through a hosted service.
OpenSpace3D is a free open-source virtual reality development platform, for building rich virtual reality experience applications and virtual reality powered games. It supports a wide variety of control and simulation devices like Leap Motion, HTC Vive/ Oculus headset, Google cardboard, Myo, Toii eyex, & 3D rudder.
OpenSpace 3D also supports creating augmented reality (AR) apps which can be used for creating functional entertaining, & educational games for kids.
OpenSpace is a complete virtual reality development environment, it provides a scene editor, a visual programming editor (PlugITs System), multi-media support, 3D models exporter that supports 3DS Max, Maya, Cinema 4D, & Blender. It also supports a wide variety of devices, with an out-of-box physics engine.
3- Google's ARCore
ARCore is an open-source SDK for augmented reality (AR), & virtual reality (VR) released and maintained by Google. It supports mobile development environments for iOS/ Android (Java) and works with the most popular game engines created Unreal, & Unity.
ARCore is released under the Apache 2.0 license, in early 2018. It supports mobile sensors, allows the phone to detect the size and location of all type of surfaces, and use current light conditioning within the dynamic active experience.
- Used to create many applications
- iOS support
- Android support
- Unity support
- Unreal engine support
4- Holokit: Build Rich Mixed Reality (MR) experience
HoloKit is an open-source mixed reality (MR) that provides a comprehensive mixed reality software and custom HeadKit cardboard headset to enrich the experience. Holokit supports iOS (iPhone), & Android.
Holokit cardboard is available for developers with a demo project for iPhone (iOS), & Android. It's available only at their website.
- iOS: iPhone 6S, iPhone 6S+, iPhone SE, iPhone 7, iPhone 7 Plus, iPhone 8, iPhone 8 Plus, iPhone X
- Android: Samsung Galaxy S8, Google Pixel / Google Pixel XL
- Tango Phone: Asus Zenfone AR
ApertusVR is an open-source modular, distributed virtual & augmented reality library. It's written in C++ which provide better performance on normal and advanced hardware specifications. It's also embeddable, platform-independent, & easy to configure, and use. ApertusCore the core library has extensions to specific computer-generated reality experience/ simulation domains like mixed reality (MR), & augmented reality (AR).
Apertus has plugins for most of the popular virtual reality devices like OpenVR / SteamVR based glasses (i.e. HTC Vive), Oculus DK2 and CAVE systems. Developers also can build plugins to certain controllers, devices, & headsets.
ApertusCore supports many 3D models extensions and provides wide options for hardware specifications including RaspberryPi.
- VR, MR (Mixed Reality), AR (Augmented reality) modules
- RaspberryPI support
- Supports many VR peripherals and control devices.
6- Relativty: Build your own VR Headset
Relativty is an open-source project helping developers to build their own VR hardware with less than $100. The project is providing 3D models set, schematic, and instructions to assemble a VR headset. The project started by a team that evolves into a powerful community which provides support for developers all around the world.
Relativty uses Arduino, among many open source tools/ libraries like OSVR (Open source VR http://www.osvr.org/) to build high-quality VR set with minimal cost.
7- IdeaSpace VR (CMS): Virtual Reality Content Management System
IdeaSpaceVR is not a development framework or hardware-focused platform, it's an open-source custom CMS (Content Management System) that manage, publish virtual reality content.
IdeaSpaceVR is self-hosted, user can install it on their servers, it's built with PHP/ MySQL (MariaDB), modular, with built-in virtual reality content player/ viewer. It uses A-Frame to create rich virtual reality and augmented reality experience.
The project IdeaSpaceVR supports desktop, mobile, VR headsets out-of-box, it works smoothly on modern browsers like Google Chrome, Mozilla Firefox, with WebGL support as it uses WebVR.
- Easy to use
- Theme support
- Assets management
- Works with any VR headset
- File-types support
- Built-in Image manipulation
8- OSVR: Open Source Virtual Reality Platform
OSVR is an open-source software platform for virtual and augmented reality. It allows discovery, configuration and operation of hundreds of VR/AR devices and peripherals. OSVR supports multiple game engines, and operating systems and provides services such as asynchronous time warp and direct mode in support of low-latency rendering. OSVR software is provided free under the Apache 2.0 license and is maintained by Sensics.
OSVR is an open-source software platform for virtual and augmented reality. It provides built-in functions to discover, connect, & manage devices and peripherals for virtual reality (VR), & augmented reality (AR).
OSVR is used to build many VR projects, including the Relativty: Open source initiative aiming to help developer build their own VR headset with low-cost.
9- A-Frame (MR/ VR)
A-Frame is an open-source browser-ready WebGL framework for creating rich virtual reality (VR) and mixed reality (MR) experience. A-Frame has been marked as a top WebGL framework in our article: (xxx). and it's the recommended library in Mozilla Mixed Reality project.
A-Frame works smoothly on many virtual and mixed reality gears like Vive, Rift, Daydream, GearVR, & it works very well on desktops as well. It is used by the world top companies like Disney, Google, Mozilla, NASA, Samsung, Sony, & Toyota.
- Built for Virtual Reality (VR) & Mixed Reality (MR)
- Performs well on Mozilla Firefox, & Google Chrome
- Works on mobile
- Works with many VR platforms
- Used by big companies, & brands in their VR/ MR projects
10- Lovr: Lua-based AR game engine
If you are a fan of Love 2D game engine which uses Lua programming language, You will like Lovr, Love uses the same concept but it aims to create rich virtual reality experience-rich that works smoothly on all platforms as Love does.
Lovr is simple to learn, easy to use and to master, It comes with a set of powerful modules like audio, headset module, built-in physics module, and a powerful graphics engine. Lovr is like Love it works on Windows, Linux (Debian, Ubuntu, Fedora, LinuxMint) and has a rich libraries repository. Lovr supports WebVR out-of-the-box.
JanusVR is an open-source virtual reality VR development, it aims to provide collaborative real-time virtual reality experience to build, customize VR space. Janus has server-side which is built with NodeJS (Open source), and client which is built with QT5 library (Closed source). JanusVR allows the developer to create collaborative virtual reality space easy, which can be used for meeting, gaming, or creating virtual reality-powered classrooms.
- real-time content creation
- The built-in editor allows users to join together to create content in real-time.
- Embeddable into web pages
- Media support
- Customizable server
- Multi-user support
- Full support for Oculus Rift
- Leap motion support
- HTC Vive support
- Razor OSVR support
- Custom Markup language to built VR scenes (Janus Markup Language)
PlayCanvas is a lightweight fully featured 3D web game & graphics engine. It's the favorite WebGL 3D game engine among developers. It has an impressive list of features that provides game developers with everything they need to build browser-based games, and virtual reality experience. PlayCanvas is used by many games developers, there are several successful games on the market. PlayCanvas is not built only for games but it can be used to build AR (Augmented Reality) & VR (Virtual Reality) applications.
- Fast loading
- Mobile-browser support
- Web-based graphics editor
- Supports building AR (Augmented Reality) & VR (Virtual Reality) apps
- GPU Particle engine with editor
- Static, skinned and morphed meshes
- Full model export pipeline from Maya, 3DS Max, Blender
- Powerful audio library
- Full integration with 3D rigid-body physics engine ammo.js
- Input: Mouse, Keyboard, Touch, Gamepad, VR
- Rich API documentation
- Several games examples with the source code
13- Babylon.js: Web 3D Graphic Engine
Babylon.js has a very large community of developers that supply its inventory of code snippets, tutorials, and of course re-usable extensions to extend its core functionalities.
- Online editor
- Easy to setup
- Rich examples list
- Rich snippets library
- Modular and packed with many useful extensions
- Extensible Modular online viewer
- Features-rich engine
- GUI tools.
- Free/ Open source
- C++ Support
- Unity Gaming engine support
- Large community
- Well documented
- Single camera position/orientation tracking.
- Tracking code that uses simple black squares.
- The ability to use any square marker patterns.
- Easy camera calibration code.
- Fast enough for real-time AR applications.
16- Primrose VR
PrimroseVR works on mobile browsers as well, like Safari on iOS, & Google Chrome on the new Android devices.
Mixare is short for (mix Augmented Reality Engine), it is an open-source augmented reality (AR) browser built for mobile Android, & iPhone. It's available for download from Google Playstore, & Apple AppStore. It's an old project, started back in 2009, & released under GPLv3.
Mixare apps for Android/iOS are available for download at Gitlab.
Khronos royalty-free open standards for 3D graphics, Virtual and Augmented Reality, Parallel Computing, Neural Networks, and Vision Processing.
An open industry consortium of leading hardware & software companies creating advanced acceleration standards for 3D graphics, AR/VR, vision & machine learning.
Please check them out.
There are many great tools to create virtual reality experience, which lower the cost for developers and startups. Some of them are backed by companies like Google, & Mozilla, and supported by powerful communities. This is merely a list to help developers, and students to find their right tools for their projects.
We didn't list some specific open source VR tools which built for medical education, clinical usage, or industry-specific platforms, as we plan to separate them in another article.
If you know of another tool, platform, or framework that we didn't list here, please send us an email, and we will gladly update this list.