All Projects
2026 Developer

Immersion 2026 Featured Showcase

Built a mobile WebAR experience showcased to 50 attendees at Hometown Heroes, featured in SJSU Spring 2026 Magazine.

Overview

Shipped a stable, public-facing WebAR demo with device performance checks so it ran smoothly across all the different phones attendees brought.

This project had to work in the real world, not just in testing. Attendees showed up with all kinds of devices, so I built in performance checks that scaled the experience up or down depending on what each phone could handle.

On capable devices, real-time physics ran live. On lower-end phones, it fell back gracefully without breaking the experience.

It was featured in the SJSU Spring 2026 Magazine as part of the Immersion 2026 showcase coverage.

Development Process

1

Scoping for real-world devices

Hometown Heroes was a public booth, so the demo had to run on the phones people already carried. I scoped Sharks Way as mobile WebAR with 8th Wall, A-Frame, and AR.js, and I treated the spread of those phones as part of the design.

2

Building the performance fallback

The page checks the device before it turns on the heavy layer. On a phone that can take it, real-time physics runs live. On a weaker phone, that layer stays off and the AR scene still loads. One experience degrades. It does not die on half the handsets.

3

Event day deployment

At the booth the job was keeping that path stable while people walked up with their own devices. The same Immersion 2026 season includes a separate build in my EchoesOfExpression repo: a location-based exhibition for a walking route across the SJSU campus, the MLK Library, and San Jose City Hall. That one uses A-Frame with Niantic's distributed Spatial XR engine. Phones need HTTPS before the camera, compass, and GPS will start, and a ?preview mode walks the route on a desktop with no camera and no GPS. Statements, coordinates, and placement sit in one artworks.js file.

Challenges

  • The hard problem was the spread of phones, not one bug. Physics that feels fine on a test device will stutter on the next phone in line. The performance check is what makes the Sharks Way scene safe to hand to a stranger.
  • Public WebAR has a hard floor, and EchoesOfExpression spells it out: camera, compass, and GPS are blocked on plain HTTP except for localhost. A live demo has to be served over HTTPS, with a no-sensor preview for checking placement at a desk.

What I Learned

  • A public demo is a fallback problem. If physics cannot run, the visitor should still see the shark and the checkpoint UI. The page has to make sense on the weak phone, not only on mine.
  • With more time I would split content from the tracker the way EchoesOfExpression already does, so statements and coordinates can change without a scene rewrite. I would keep a no-sensor preview next to every phone build. That is the fastest check before a booth opens.