Jefferson Project Data Viewer
The Jefferson Project at Lake George is a non-profit environmental partnership between Rensselaer Polytechnic Institute, IBM Research, and The Fund for Lake George. Part of the project involves monitoring the lake with a number of sensors, which generate a lot of data every day. This project aims to display that data in an intuitive and immersive way, projecting the weather and water readings into a virtual recreation of Lake George and allowing you to watch them play out. Built using the Unity engine and C#, plus some rendering and compute shader programming.
Development of the viewer was started by Michael Henderson, an IBM researcher. I was brought on by him to optimize and further develop the project.
My notable contributions
- Greatly optimized the terrain system, which was one of the main performance bottlenecks. The terrain system uses high-resolution draped terrain images pulled from a remote server, rather than the texture splatting more commonly seen in games. This made balancing looks, network speeds, memory usage, and GPU bandwidth a challenge. By improving chunk sizing and resizing, caching, data structures, and mesh creation, I was able to make it run at a consistent framerate on target systems.
- Greatly optimized the system used for drawing wind and water currents. The updated system makes heavy use of the GPU for updating and rendering particles, leading to an extreme improvement in performance.
- Optimized and improved the system that placed points of interest in the world, such as sensor platforms. PoI are now created dynamically based on data from the remote server instead of placed by hand, meaning that new sensors will be automatically integrated.
- Added completely new holographic displays to all sensor platforms, allowing users to easily bring up a graph of any value the sensor tracks. The graph can display the progression of a value over time, or compare two different values.
- Added the ability for the automatic progression of time to halt and wait for necessary resources to load.
- Redesigned a large part of the UI for better looks, user experience, and performance. This includes redesigning the date/time selector and the mini map, and creating the compass rose at the bottom and the "Waiting for" display at the top.
- Integrated a day-night cycle and weather plugin with the existing date and time system.
- Began work on displaying the cloud density data. The current system uses horizontal slices, but I was looking into a raytraced rendering system.
Unfortunately, the data viewer is not publicly available, and is only used internally by the research team. Please enjoy some screenshots of it instead.