Through the looking glass: Data visualization in virtual reality
A snapshot of the data being produced daily: 500 million tweets, 294 billion emails and many more such mind-boggling numbers. We use a wide variety of devices, such as smartphones, IoT devices, GPS and so on to send and receive data. The data is complex, multi-dimensional and encoded with hidden knowledge. It will remain as just zeroes and ones and the right decisions and corrective actions cannot be taken, unless time and effort are taken to make sense of it.
According to the Visual Study Alliance, 90% of the information sent to the brain is visual and 65% of the global population are visual learners. This is a clear indicator that visualization serves to bridge the gap between complex data and the human ability to understand it.
Data visualization presents data in a meaningful form and aids in further exploration of data to obtain meaningful insights from it. The traditional representations of data include histograms, pi-charts, bar charts, and so on.
There are different ways to visualize multidimensional data, but each has its constraints. Even though virtual reality continues to evolve, it has been successfully implemented in different domains, such as healthcare, therapy, training, blockchain mapping, and so on. Many companies have adopted VR for data visualization purposes.
Voice of the industry
“The biggest difference between virtual reality and flat, map-based data visualizations is that you can be placed “inside” the data, rather than above it. We’ve experienced an unexpected intimacy from these visualizations, along with a sense of scale… The subjective point of view is also more cinematic than a map, making it potentially more powerful for storytelling”. Brian Chirls, Chief Technology Officer – Datavized
Several research studies, conducted by VR industry leaders, have demonstrated the effect of human perception on data when immersed in VR. These studies have concluded human beings are better equipped to handle physical 3D space and effective in identifying patterns and the relationships between them when engaged in VR spaces.
The more, the merrier
A virtual environment is created not only for an individual experience but can also be made as a common platform for multiple players to participate. Each of them will have different perspectives of the same data, perform analysis, collaborate, discuss, and derive insights, which can be executed much faster than other data visualization methods.
An important VR aspect, known as ‘Presence’, provides the feeling of actually being in a virtual environment. This concept was originally rooted in the teleoperation system, where a person from ‘location A’ operates a robot in a remote ‘location B’. The person would seem to perform more effectively if he or she felt more present in the remote location by operating the robot.
In a VR environment, a user does not automatically get the feeling of being present, just by wearing a VR headset. Other factors, such as update rate, the field of view, user attention, interactions, affect the feeling of presence. These factors should be taken into consideration when building a VR environment. Else, the user might experience a disconnect in the VR environment and exit immediately.
High-end VR devices, such as Oculus Rift, Oculus Quest, HTC VIVE, have their respective controllers with absolute positioning sensors, which offers a better mode of interaction. The set of devices, such as Oculus Go, has a simple controller for a basic level of interaction.
If such devices seem unaffordable, you can even use your smartphone mounted on an HMD to run a VR application, with a simple bluetooth joystick for interaction. Alternatively, you can also embed a leap motion sensor on the VR headset and use hand gestures for an advanced level of interaction.
Data visualization prototypes in VR
At Imaginea Labs, we did a couple of VR prototypes that are discussed here.
Earthquake and tsunami visualization
The first visualization shows the earthquake and tsunami data scattered across the globe. The colors signify the magnitude type, body wave, surface wave, regional information and so on. The solid bars pointing outward from the globe represent the magnitude and the transparent bars pointing inward represent the depth. For more information, the user can point the controller on the data of interest. The globe can be rotated to view the other side by choosing the rotate mode and rotating the controller accordingly. The same controller is used for changing the time and viewing the respective data within the time range by choosing the time mode.
GPS satellite visualization
The second visualization shows 24 to 30 GPS satellites orbiting around the globe and their respective coverage of it. This visualization serves as an exploratory tool, where users can analyse the coverages by switching on/off different satellites, freezing at any point of time with forward and rewind controls, zoom in/out, and rotating the visualization.
The prototypes were developed in Unity3D. There were many key optimizations to be performed while building data visualization, which contained around 20,000 data instances. The optimizations helped to maintain the frame rate to the maximum. Here are a few pointers to keep in mind, when developing a data visualization project:
- Instead of a sphere, plane, or any other complex shape, use primitive shapes, such as a cube or quad, to represent the data instance. This reduces the overall vertex count to be processed.
- Use shared materials, instead of creating new materials. This helps to reduce the number of batches.
- In the data instance prefab, disable cast and receive shadows. This helps immensely to maintain the Frames Per Second (FPS).
- Disable MeshRenderer components of the objects, which are hidden from the camera, and enable when they are about to fall in the frustum.
- Disable colliders, when they are not needed. For example, while rotating the globe, the colliders of data instances can be disabled. This leads to a smoother rotation.
- Even when using primitive objects, like cube or quad, the vertex count will be quite high (> 1M); try using sprites, instead of geometry. This helps to significantly decrease the batching and increases the frame rates.
- Enable static property in the prefab, if the object is not going to change its position in runtime.
The user experience mostly aligns with Don Norman’s design principles. Here are some of the UX factors to be considered while building a VR application:
- Be predictable with controls. To rotate the earth, map the gesture that most probably will perform the rotate action with the controller. This helps the users to predict controls and expect a relevant response from the system.
- Design to avoid disorientation. Users might feel nauseous when they move in VR space, but static in the real world. The alternative would be to restrict navigation, when not needed and spread the information around them.
- Show less text to avoid unnecessary visual distractions.
- Provide instructions and indicators to guide the user.
- Locate the UI below the field of view, as users have reported that looking down is more comfortable than looking up.
- Use 3D SFX for a better experience.
Into the unknown
VR experiences can serve as an effective storytelling tool. People might stay away from traditional methods of communication and learning; however, a virtual environment has the potential to keep them engaged for much longer.
There is no doubt that data visualization through VR tools is a lot more interesting and fun. It provides more space for data, enhances user focus by removing real-world distractions, and increases the data processing speed as well.
The art of storytelling is still alive and well, only the tools to augment the storytelling experience have changed. VR has the potential to not only entertain, but also to educate consumers. The consumer experience through VR will only get better and detailed in the years to come.