In recent times, a tremendous amount of data is being generated every day. We use mobile phones, IoT devices, GPS, social media and so on, which are the sources of this huge data. These data are complex, multidimensional and encode hidden knowledge within them. Without uncovering this knowledge, the data is useless and is difficult to take decisions and corrective actions. Hence it is very important to understand and make sense of this data.
Statistically, 90% of the information to the brain is visual and 65% of the total population are visual learners. This shows that the visualization serves as a bridge between the complex data and human intuitions/understandings.
We generally visualize the data to present them in a meaningful form and to explore the data to derive some meaningful insights out of it. The traditional methods for data visualizations are histograms, pi-charts, bar charts, etc. There are also different ways to visualize multidimensional data, but they have their own constraints. Virtual Reality is evolving and there is proven success in different domains such as health care, therapy, cool museum exhibition, training, mapping blockchains, etc,. There are also a few sets of companies that have already started adopting VR for presenting and exploring the data visualization.
Brain Chirls, the Creative Developer in Datavized says, “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”.
There were several research studies conducted by leading companies like Virtualistic and demonstrated the effect of human perception of data when immersed in VR. These studies concluded that humans are much optimized to deal with physical 3D space and our brains are very effective in identifying patterns and relationships between them when we are immersed in such spaces.
A virtual environment is created not only for an individual experience but can also be made as a common platform where we can invite our colleagues. Each of them will have different perspectives of the same data, perform analysis, collaborate, discuss and derive insights that are much faster than other means of data visualization.
There is an important aspect called “Presence”, which gives the feeling of being there 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”. That person seems to perform more effectively if he feels more present in that remote location through the robot. This same concept was later adopted by Virtual Reality. It is not that easy where the user gets the feeling of being present in a VE just by wearing the headset. Some of the factors affecting the feeling of presence is, update rate, the field of view, user attention, interactions, etc. One should consider all these factors while building a VE, else the user might feel a break in the presence and comes out of the VE immediately.
There are two visualizations built in VR. They are
- Earthquake and tsunami visualization
- GPS satellite visualization
The first visualization shows the earthquake and tsunami data scattered on the globe. The colors signify the magnitude type, like body-wave, surface-wave, regional, etc. The solid bars which are pointing outward from the globe represent the magnitude and the transparent bars which are pointing inward represents the depth. For more information, the user can point the controller on the data of interest. The globe can be rotated to see the other side by choosing the rotate mode and rotating the controller accordingly. The same controller is used for changing the time and seeing the respective data within the time range by choosing the time mode.
The second visualization shows 24 to 30 GPS satellites orbiting around the globe and their respective coverage on 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.
These prototypes were developed in Unity3D. There were a lot of key optimizations to be done while building a data visualization containing around 20K data instances in such a tool. These optimizations helped us to maintain the frame rate to the maximum. Following are the key things to be kept in mind while developing a visualization.
- Use primitive shapes like cube or quad instead of a sphere, plane or any other complex shapes for representing the data instance. This reduces the overall vertex count to be processed.
- Used shared materials instead of creating a new materials. This helps us to reduce batches.
- In the data instance prefab, disable cast and receive shadows. This helps to the greater extent to maintain the fps to the maximum.
- Disable MeshRenderer components of the objects which are hidden from the camera and enable when they fall in the frustum.
- Disable Colliders when it is not needed. Example while rotating the globe, the colliders of data instances can be disabled. This leads to a smoother rotation.
- Even if using the primitive objects like cube or quad, the vertex count is too high (> 1M) then try using sprites instead of geometry. This helps significantly to decrease the batching and increasing the frame rates.
- Enable Static property in the prefab, if this object is not going to change its position in runtime.
- Remove update() method for all these data instances. Instead perform computations by creating events when ever required.
Most of the user experience aligns with Don Norman Design principles. Here are some of the factors that has to be considered while building a VR application:
- Be predictable with controls. For rotating the earth, map the gesture which is more close to performing this rotate action with the controller used. This helps the users to predict controls and expect a relevant response from the system.
- Design to avoid disorientation. Users might feel nauseated when they move in VR space but static in the real world. Instead restrict navigation when it is not needed and spread the information around them.
- Show less text to avoid unnecessary visual distraction
- Provide instructions and indicators to guide the user
- Locate UI below field of view, as users report looking down is more comfortable than looking up.
- Use 3D SFX for better experience
Using a VR tool for data visualization is more interesting and fun, but on the other hand, it provides more space for data, enhances our focus by removing the distraction from the real world and at the same time increases the data processing speed. Such a VR experience can also serve as an effective tool for storytelling. Companies like Virtualistics, Datavized, Looker started providing solutions in the same space.