ESG VR Showroom
Environmental, Social, and Governance tools
Contracted VR Developer 2023
My Description
If you’re a fan of Flow Immersive, then you should be a fan of this project! The main idea was to use the 3D nature of XR to display various data in easy-to-parse forms. As someone who likes numbers, and who is often aware of the delta between my mental model and how words are portraying it, this was a fun and intriguing challenge to dive into.
Development Responsibilities
- Programming
- Systems design
- Particle effects
- Shaders
- Tools Maker
Nerd Zone
I’m especially proud of one feature that I’ll shamelessly nerd-out on now. Read on at your own risk! The heatmap feature in question can be seen in the hype video below.
The goal was to create a 3D heatmap over a 3D map of the environment. The heat data is updated/created in real-time as users move about the space, and everything needs to be networked. The end solution was multifaceted.
The heat data was networked as a single collection of floats which was minimally updated (we were using a networking package that used a serverside datastore as the source-of-truth). Each float represented the normalized heat value of a specific cell on a 2D grid overlayed on the map.
The next strategy arose partly because the map’s model was already created and didn’t use uniform polys, and partly because I wanted to make this feature modular. To display the data, I construct a mesh through code that is large enough to “drape” over the 3D map. After using raycasts to place each vertex in the heatmap mesh just above the 3D map, the result is stored in a ScriptableObject so that this expensive process doesn’t have to happen during runtime.
Finally, as the heat data is updated, the UV of the mesh is adjusted so that different vertices are “colder” (blue) or “hotter” (red) and the color is lerped across the poly’s face.