Vivek Raman

Software Developer

Virtual Reality in the classroom - things I've learned

Some of the challenges I faced while organizing VR-based assignments in a classroom.

, last updated on

Alongside my masters degree at San Jose State, I am working part-time at the Center for Faculty Development and Teaching Excellence (CFETI) as a student assistant. Some of my duties at the CFETI involve extending accommodations for incorporating innovative technology like generative AI and VR in the classroom.

I’d like to share a little bit about a project I worked on, some of the challenges I faced, and workarounds I applied.

The project

This was a collaboration with the Mathematics department. They had developed a Virtual Reality lab showcasing various modules of the Linear Algebra syllabus for the undergraduate Math major. In Spring 2025, they wanted to launch a pilot lab class involving this VR application.

  • The class had two batches of around ~40 students each.
  • Lab sessions were scheduled every Thursday, for 1.5 hours per batch and the classes were scheduled one after the other.
  • We were given 25 headsets to work with. They were a mix of Meta Quest 3S and Meta Quest 2 headsets.
  • Students were to work in groups of two, with one headset per group. Each student would take turns on the headset.
  • Each group needed to cast their headset’s view to a computer or tablet to ease communication and collaboration with their group partner and the lab assistants.

Challenges

We were able to anticipate the obvious challenges with this task, but some of the problems were unexpected.

  1. Casting turned out to be a big hassle. To use Meta Horizon OS’s built-in wireless casting, the students would need to log in to the same Meta account used on the headsets. Scaling this to an entire classroom of students caused significant difficulty.

  2. If you’ve used these headsets before, you’ll know that casting drains battery. This affected the Quest 2 devices, and they were unable to stay consistently usable for the 3 hours.

  3. The program that was used during the lab was under active development through the semester. This meant that new builds needed to be pushed to the devices, often coming in at the last hour.

  4. The students may not be comfortable with virtual reality. Using it for their first time can be disorienting, especially when in an unpolished development build.

  5. Sharing headsets during a lab session and across lab sessions raise hygiene concerns. This is a fundamental issue prevalent in any shared item, and is more important when it comes to contact with sensitive areas like the face.

  6. The Quest 2 controllers drained batteries unusually quickly. Sometimes this was due to the triggers or buttons staying depressed when stored in their cases. Nevertheless, we ran through 2 sets of batteries over 3 weeks.

My recommendations

If you are planning a virtual reality lab class, a public workshop, or a demo booth - here is my advice to you.

Training and Onboarding

  • Provide the users with adequate training on VR usage. This is important for using the VR experience as well as for tasks like casting. This can be via a training segment at the start, and/or a list of guidelines.

  • Record a video that users can refer to during or in-between sessions for these tasks. You’ll want the sessions to be focused on the content, so encourage the users to refresh their memory using the recorded videos.

  • Try to disperse assistants around the crowd to assist users with setting up.

Battery life

  • Try to optimize your VR experience and be mindful of performance-critical code.

  • If possible, try to cycle multiple headsets so that you have some backups ready.

  • Between each session, ensure that the headset is put to sleep, and ensure that casting is turned off.

Casting

  • We created a new account for each headset with a password that is similar to the usernames. We tagged the headsets with a number and placed one on each table for two. Then, as our students took their seats, they could see the number on the headset and access the corresponding accounts for casting.

  • For 2FA, we took note of the backup codes and attached those to the headsets. This was a lot of work, but it gave us the flexibility of mixing and matching groups based on their presence. Any student could sit with any other student and choose any table because the credentials and the 2FA code were available on the headset itself.

  • Casting also stresses the local network if all the headsets are streaming through a single wireless access point. This isn’t really easy to solve, and we just tried to offset the workload between VR and paper tasks in order to stagger the number of headsets actively casting.

Controllers

  • Although our application did not use the controllers, it’s important to keep a whole stock of spare batteries and to ensure that no buttons or triggers are half-pushed when stored away.

View posts by tag

#extended-reality #sjsu #project #chromium #automation #productivity #university #research #unity #spring #work #vuejs #react #gcp