The Leadership Class Computing Facility's (LCCF) High-Performance Computing (HPC) Extended Reality (XR) Supercity is a web-based augmented reality (AR) application that delivers an educational experience and interactive AR exhibit designed to help users learn how supercomputers work. The experience runs directly in a mobile web browser and overlays interactive 3D models of supercomputer components onto real world image targets.
The project is built using WebXR technologies and the 8th Wall framework, enabling users to explore computing concepts through immersive interaction and visual analogies.
This repository contains the source code and assets used to build and run the AR experience locally.
AR SuperCity is an augmented reality learning experience developed to teach users about the structure and functionality of modern supercomputers through interactive 3D visualization and analogy-based instruction.
The experience was created as part of research at the Texas Advanced Computing Center (TACC) to explore how immersive technologies can support learning about complex computing systems.
Users interact with the system by:
- Launching the AR web application
- Scanning image targets placed in the physical environment
- Viewing interactive 3D models of supercomputer components
- Learning how each component works through explanations and analogies
Before building or running the project, install the following tools:
Node.js is required to manage dependencies and run the development server.
Recommended version:
Node.js 22.9.0+
npm 10.5.0Verify installation:
node -v
npm -vIf Node is not installed, download it from:
Clone the repository and install dependencies.
git clone https://github.com/andrewsolis/lccf-xr.git
cd lccf-xrnpm installThis installs all required libraries defined in package.json.
To start the local development server:
npm run serveThis command starts a local server that hosts the application.
After running the command, the terminal should display a local URL such as:
http://localhost:8080You can open this URL in your browser to view the application UI.
However, AR functionality will not work properly on desktop browsers, since camera access and AR tracking require a mobile device.
Because AR requires camera access and HTTPS, the experience must be opened on a mobile device through a secure connection.
One way to test locally on a phone is using ngrok.
If you do not already have ngrok installed, install it using Homebrew:
brew install ngrokAlternatively, download it from:
https://ngrok.com/downloadCreate a free account at:
https://ngrok.com/After signing up, copy your authtoken from:
https://dashboard.ngrok.com/get-started/your-authtokenRun the following command once to connect ngrok to your account:
ngrok config add-authtoken <YOUR_TOKEN>Replace <YOUR_TOKEN> with the token from your ngrok dashboard.
In one terminal:
npm run serveIn a second terminal:
ngrok http 8080Ngrok will generate an HTTPS forwarding address similar to:
https://example-name.ngrok-free.dev- Copy the HTTPS ngrok URL
- Open it on your mobile device browser
- Tap Get Started
- Allow camera access
- Point the camera at one of the image targets
Image targets used for AR tracking are located in:
image-targets/Each target contains several generated images.
The files most useful for testing are:
*_target.png
*_target.jpeg
These images should be displayed on another screen or printed and scanned by the phone camera.
To generate a production-ready build:
npm run buildThis compiles and bundles the application for deployment.
The build output will be placed in:
dist/This directory can be hosted on any static web server.
| Name | Role | Contact |
|---|---|---|
| Andrew Solis | Principal Investigator | asolis@tacc.utexas.edu |
| MJ Johns | Senior UX Researcher | mjjohnsdesigner.com |
| Jo Wozniak | RESA IV | tacc.utexas.edu/about/staff-directory/jo-wozniak |
| Ayon Das | Software Engineer | linkedin.com/in/ayon-saneel-das |
| Karen Heckel | Software Engineer | linkedin.com/in/karen-heckel |
| Sanika Goyal | Experience Design Lead | sanikagoyal.com |
| Gloria Jang | Junior Visual / Experience Designer | linkedin.com/in/minjoo-jang-056223243 |
| Imelda Ishiekwene | UX Designer | |
| Pascal R Garcia | Contributor | |
| Tyler Henry | Contributor | |
| Dawn Hunter | Contributor |
-
src/- Main application source code.
.expanse.jsondefines the AR scene graph and component hierarchy.index.htmlentry point for the web application.app.jsconfigures XR behavior (e.g., image target loading).scripts/custom ECS components and interaction logic.assets/3D models, fonts, audio, and other runtime assets..dependencies/internal dependency mappings used by the XR engine.
-
image-targets/- Contains all image target JSON files used for AR tracking.
- These are loaded manually via
XR8.XrController.configureinapp.js.
-
images/- Static images used for documentation and testing.
-
external/- Contains external runtime dependencies:
runtime/8th Wall runtimexr/XR engine
- Contains external runtime dependencies:
-
config/- Webpack and build configuration files.
- Includes loaders and TypeScript definitions.
-
node_modules/- Installed npm dependencies.
-
Root files:
package.jsonproject dependencies and scriptstsconfig.jsonTypeScript configuration.gitignoregit ignore rulesREADME.mdproject documentation











