With CAVERN Jam scheduled for Monday of Week 6, this week was dedicated to preparing for this first major user test with real world external developers. Because people might interact with the toolkit in ways we never anticipated, our focus this week was to clearly define the aspects we want our users to test, and make that part of the toolkit as refined and stable as possible.
In the meantime, we had a breakthrough in Vive Tracker integration, finally solving this long-standing issue that had frustrated all the previous CAVERN teams. We also continued researching past ETC projects, where we tested performance of our camera with a high fidelity scene from Hycave last semester, and interviewed more former developers to gain insights into common challenges in CAVERN development.
Planning CAVERN Jam
We want our participants to focus on the current CAVERN affordances and build upon that. Spelunx provides support for stereoscopic rendering, easy setup for the CAVERN space including surround sound, a preview mesh tool to see how the world renders in the Unity editor, basic Vive Tracker integration, and a sample scene. These are our half semester breakthroughs, and we should ensure we allow participants to explore these without venturing into challenges beyond the current capabilities. We then designed the jam theme to be:
”Build a CAVERN experience using Spelunx and contains one single interaction.”
To support participants, we need to prepare:
- Documentation: tutorials for understanding the CAVERN space, setting up for development, and toolkit tutorials.
- Tech: Making sure our package can be successfully installed using Unity’s Package Manger (UPM).
- User Research: Pre-survey and post-survey to understand the development journey of participants from various backgrounds.
- Logistics: discord server for live support and announcements, Perforce folder for version control and submission, testing time-slots sign-ups for testing in the space, boba preparation to incentivize engagement.



Finally a Vive Tracker Solution
One of the biggest remaining technical hurdles before CAVERN Jam was ensuring that Vive Trackers worked reliably, so we can test this critical input system. Previous teams had struggled with complicated setup and manual configuration that is not extendable beyond the individual projects. Therefore, as a toolkit project, we aim to generalize this and make it as hassle-free as possible.
The first thing to determine was which package to integrate. Over the past three weeks, over crashes and bulky solutions, we’ve tried and switched into 5 different ones, and finally settled down with one. Here are the list of packages we’ve considered and their trade-offs:
- OpenXR + OpenVR + SteamVR – the one most widely used by past teams, yet it relies on outdated dependencies (especially since we are in Unity 6), and has many things specific to VR headsets that we won’t use, but will unreasonably increase our package size.
- OpenXR + OpenVR + Vive Tracker Package – This Vive Tracker package works exactly for our case of not using Vive Trackers in a VR headset environment. However, while it worked for some time, it eventually led to constant crashes of Unity editor, so we had to change our solution.
- OpenXR + Vive Tracker Profile – it only worked with a headset.
- OpenXR + OpenVR + VIU (Vive Input Utility) + SteamVR – partially worked, but it was extremely bulky. We eventually reverse engineered this solution to work with the second one, using its tracking implementation that eliminated the crashes with the Vive Trackers Package, and that was the one we are using now.
- Libsurvive – requires redoing the entire CAVERN setup, so we did not tried this. (Thankfully)
The final result was a fully functional, crash-free Vive Tracker integration that CAVERN Jam participants can integrate with a single click.

An improved camera performance using Hycave’s past scene
To validate our work, we also tested Spelunx’s camera rendering solution against a past CAVERN project, Hycave. They used to discard a scene with procedural generated grass due to the extremely low frame rate. Using our new camera, the frame rates tripled from around 20 to 60 FPS.

Camera 3.0 – Head Tracking
Being a physical space, players are encouraged to move about in the Cavern. The player’s position can also be tracked using accessories such as the VIVE Tracker. An example would be a game where a creepy set of eyes follow a player as they move about.
However, since the camera is currently assumed to be in the center of the screen when calculating P, this creates the issue where the perspective of the rendered image is incorrect when the player moves away from the center.
In the case of the above game example, the eyes might look like they are looking at the player when they are standing in the center of the space, but appear to be looking past the player when they walk around.
The fix is relatively simple. Rather than splitting the screen into quadrants at the center, we just split the split from the head.

Other Updates
Outside of CAVERN Jam preparation and technical testing, we made several key refinements:
- We met with Carl Rosendahl, a faculty from ETC’s Silicone Valley location for advice on how to communicate Spelunx’s impact more effectively (especially better than quarters). His suggested that rather than simply listing features we are working on, we should emphasize the our process of solving the problems in a narrative, and we can quote our user’s words to show our impact.
- We continued to interview past teams, and many of them cited a lack a documentation as being the biggest roadblock, and that it was hard to share their knowledge with future groups. This highlighted our emphasis on documentation was a crucial user need.
- We also finalized and sent the structured learning roadmap to Stacey at South Fayette, ensuring that students can onboard gradually without being overwhelmed.
Next Steps – Running CAVERN Jam and Analyzing Results
With all CAVERN jam preparations complete, with a working Vive Tracker integration, stay tuned for Week 6 updates, where we break down our findings from CAVERN Jam!