Recent Works

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


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.

About Project Komodo >>

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

Gallery

Coming soon. For now, see the the Project Komodo Modules >>