Recent Works
Project Komodo: Open-Source, Higher Education-Focused Social VR Platform

November 2019 - Ongoing.
About the Project
For the IDEA Lab Developer Studio at Grainger Engineering Library, I helped create and maintain an open-source, multiplayer, WebXR VR platform designed for education.
More about Project Komodo Modules >>
Award, Paper, and Presentations
ALA RUSA Best Emerging Technology Application (BETA Award)
2021 Winner
With Elisandro Cabada, William H. Mischo, David Tamayo, and Robert Wallace.
Research Paper
Tamayo, David. (2021). Using web-based authoring tools to overcome the third barrier to classroom technological integration: design thinking. 10.13140/RG.2.2.16154.57287.
Immersive Learning Research Network 2020 (iLRN)
Immersive Learning Showcase
Presented with the Komodo Team
Screenshot featured by Kent Bye
Beyond Zoom by Dartmouth + UPenn
Bell, J. (n.d.). Beyond Zoom: XR For Teaching and Research in the COVID-19 Era Session 3. YouTube. Retrieved March 25, 2022, from https://www.youtube.com/watch?v=FtbTtj-5Sds?t=600s (10m 0s)
Presented with Elisandro Cabada
Coalition for Networked Information
Spring 2021 Virtual Membership Meeting
Project Komodo: Catalyzing Browser-Based Virtual Reality Teaching and Learning in the Library (Vimeo) Presented by Elisandro Cabada and William H. Mischo
University of Illinois “Forever Leading” Newsletter
Virtual reality provides new tool for fashion design class
Daily Illini Article
Finn, A. (2022, March 24). UI advancements change the purpose of virtual reality. The Daily Illini. Retrieved March 25, 2022, from https://dailyillini.com/life_and_culture-stories/2022/03/09/virtual-reality-uiuc/
ALA RUSA Podcast
(Guest on upcoming podcast episode as of 3/25/22)
With Elisandro Cabada
My Contributions
The four best descriptions of my work are software project management, software testing, virtual reality development, and web development. My role never cleanly fit into any of these categories, and I’d switch hats as the team needed. I’m comfortable continuing to do so, but I enjoy hands-on making — writing features, fixing bugs, refactoring code, designing interfaces, making 3D models — the most.
For software project management, I co-designed features that would become part of our core product or forks of the core product, with two instructors and one PhD student. I would share the results of our brainstorming, user story mapping, status updates, and discussion with the team, and also lead Scrum ceremonies to order and update the work, all using online tools like Miro and GitHub. I co-presented the project at conferences and as part of a podcast, contributed to our own grant applications, created training and instructions for using the platform in a classroom, and continued to explain the project from technical and non-technical perspectives to any potential partners. As a result, two instructors were able to use our product across three semesters, with an average session time of 90 minutes, with up to eight students per session, and we were able to contribute some support to ongoing PhD research.
For software testing, I helped our project status evolve from experimental prototype to classroom product by introducing and regularly updating WebXR VR manual test plans, web automated testing, internal VR test sessions, and a public VR test session, with everything done remotely. We worked with the Oculus Quest 1 & 2 and the Rift S. I created templates for issues and pull requests modeled off of typical DevOps processes, and helped adapt the Git branching strategy to fit a shifting team makeup. I subscribed to the idea of refactoring as we’d implement new features or fix existing ones. As a result of my work, we specified many tests, caught many edge cases, refactored many lines of code, and had no unrecoverable classroom sessions.
For virtual reality and 3D development, I modeled, textured, and lit two new virtual environments, two existing virtual environments, 3D UI elements, and 3D models for the classroom activities. I remixed an existing model to make our avatar. (It’s not fully inclusive by nature, but I’m proud of its simple likeability in place of any future, customizable avatar system.) My strongest feature contributions included a 3D/VR menu redesign, a VR height calibration feature, and an interface for our SocketIO-based relay client. I pair-programmed larger features including Tilt Brush Toolkit integration, support for multiple third-party 3D model runtime import tools, and 6DOF-controller based scaling gestures (both for objects and the world). Sometimes I’d contribute to prototyping features. I drove the project in a direction of more visual and interactive consistency, higher-fidelity 6DOF-controller interactions, and higher polish.
For web development, my strongest contributions included fixing bugs on our SocketIO relay server, refactoring the server into modules, creating an admin monitoring page for the relay server, and using ThreeJS to create a utility that could turn uploaded images into rectangular prisms in the GLB (v2) format. I became adept enough to independently maintain our Linux server. I wrote and presented a guide for deploying our platform on any Linux server (or AWS EC2). Through frequent interface and architecture sketches, I helped team members design and implement features. Our platform grew more robust in our admin panel features and our experimental immersive capture system under my guidance.
I had some experience with team supervision, but while I deeply appreciated my team members (and what we were able to accomplish), I am not seeking management opportunities at this time. If you’re curious, I researched accessibility, privacy, and security training resources; provided training for course assistance, virtual reality development, and web development; and helped coordinate studio resources, schedules, all-hands meetings, and one-on-one meetings. Our team makeup shifted with each semester, so I periodically revised our processes to fit the people.
Collaborators
I highlighted my best accomplishments above, by I owe a lot of gratitude for people who taught or inspired me on this project.
Thanks to the many fantastic team members and fellow staff I got to work with:
Yifan Bao • Xianzhuo (Patrick) Cao • Yi-Shiuan Ho • Jiayu (Jonathan) Lin • Mihir Joshi • Welisa Lewis • Nishi Mehta • Dennis Piehl • Xiaohan Yin • Wendy Zhu
I appreciate the vision, attention to detail, and risk-taking innovation I saw firsthand from our instructor and researcher partners: PhD candidate James Planey, Dr. Andre Schleife, and Professor Chiara Vincenzi.
Thanks to David Tamayo for innovating in the project and sharing tons of knowledge, to William Mischo for unwavering support in the face of many challenges, to Elisandro Cabada for being the number one champion of the project, and to Robert Wallace for architecting the platform and practically mentoring me on software development.
Technologies, Tools, and Processes
Development Technologies
General
Bash • Docker • Git • Linux • SFTP • SSH
Web Platform
CSS • Express • Glitch • HTML • JS • MochaJS • MySQL • Nginx • NodeJS • NPM • Python • REST API • SocketIO • ShouldJS • SSL Certificates • Traefik • Twilio • VueJS • Vuetify
WebXR VR Client
Blender • C# • JSLib • OpenUPM • SocketIO • Tilt Brush Toolkit • Unity (WebGL) • WebXR VR
WebXR VR Browsers
Google Chrome • Mozilla Firefox • Mozilla Firefox Reality (Quest) • Mozilla Firefox Reality (Viveport) • Oculus Browser
WebXR VR Devices
Oculus Quest 1 • Oculus Rift S
Other Development Technologies
AWS S3 • ESLint • Localtunnel • Roslynator • unity-webxr-export (De-Panther)
Tools
Gather • Gitflow • GitHub Issues • GitHub Pull Requests • GitLab • Miro • Teamflow • Teams
Other Tools
Icosa Gallery • OBS • Ovito • Tilt Brush (Open Brush) • Vectr • VMD
Processes
CI/CD • DevOps • Gantt Charts