In Summer 2020, I interned with Google as a software engineer within the Front End Analytics Team. The challenge was to create another way to explore data - not just 2D interaction but bringing the data to life.
This open-source project was an exciting way to experiment with data visualization, providing a foundation for (more literally) interacting with data in new ways. Over the course of 12 weeks, I built a VR scene from scratch, using virtual reality tools (A-frame) and then adding data visualizations tools (D3) to the mix.
3D Movement
Web Version: WebVR only allows support for 2D movement so I was able to implement a solution that facilitated movement in all directions, using the W-S keys for z-movement, A-D keys for x-movement, and Q-Z keys for y-movement.
Mobile VR: Google Daydream also doesn't easily facilitate movement within a VR space, so I defined my own interface by adding arrow keys for all movements, which appear in front of the user at all times.
![](https://cdn.myportfolio.com/6ce55aec-a32e-4947-81a8-ac6be1fa6ea9/8b748ae0-9743-4c71-843e-099d7f382895_rw_600.gif?h=a9f7692a334bb0b72bcbe65ba8bb0aa8)
Movement in Web Version
![](https://cdn.myportfolio.com/6ce55aec-a32e-4947-81a8-ac6be1fa6ea9/6e79ead3-a9a0-4611-88b8-d9f2a1c0cc5c_rw_1200.png?h=cfc6797707045b9f187d7c01bfe7400a)
Mobile VR version with arrows for movement
Panning + Hover Card Focus
Web Version: Panning is harder in web because one has to use a mouse, but the mouse can still be fixed to read the values of each data sphere.
Mobile VR: Panning in Google Daydream is as easy as a turn of head and information on each of the hover cards can be read by pointing the controller at the point.
![](https://cdn.myportfolio.com/6ce55aec-a32e-4947-81a8-ac6be1fa6ea9/e0eac616-cd2f-4ac5-adc1-b4bca8ca2052_rw_600.gif?h=d57c41bad592cc29e95a5ee04fca2bec)
Panning motion in Web Version
![](https://cdn.myportfolio.com/6ce55aec-a32e-4947-81a8-ac6be1fa6ea9/8ad7f60e-a2a6-4df2-a84c-b5a8f7a10134_rw_600.gif?h=3ea7903fae061ffd37f4bdae6f76da78)
Panning motion + data values in Web Version