After this course students will be able to:
articulate AR/VR visualization software tool goals, requirements, and capabilities;
construct meaningful evaluation strategies for software libraries, frameworks, and applications; strategies include surveys, interviews, comparative use, case studies, and web research;
execute tool evaluation strategies;
build visualization software packages;
comparatively analyze software tools based on evaluation;
be familiar with a number of AR/VR software tools and hardware;
think critically about software;
communicate ideas more clearly;
before after
---- ----
1 | 5 | Goal 0: example goal showing "novice" score before and "expert mentor" after
1 | | Goal 1: Articulate AR/VR visualization software tool goals, requirements, and capabilities
1 | | Goal 2: construct meaningful evaluation strategies for software libraries, frameworks, and applications; strategies include surveys, interviews, comparative use, case studies, and web research;
2 | | Goal 3: execute tool evaluation strategies;
1 | | Goal 4:build visualization software packages;
2 | | Goal 5: comparatively analyze software tools based on evaluation;
2 | | Goal 6: be familiar with a number of AR/VR software tools and hardware;
4 | | Goal 7: think critically about software;
4 | | Goal 8: communicate ideas more clearly;
2 | | Goal 9: present complex ideas with confidence.
Real-Life Guitar Hero
Wearing the headset while playing the bass. Instead of reading sheet music, colored "notes" fly from the virtual distance toward the fretboard.
Immersive Stock Market Topology
Instead of staring at 2D candlestick charts, you build a VR experience that visualizes the stock market as a 3D landscape. The X/Y axes could represent sectors and time, while elevation could be volatility or volume. Then, hand tracking would grab a specific stock cluster.
NBA Jam
A pure hype filter for basketball practice. If you hit 3 in a row, your ball gets a glowing "On Fire" trail (like the classic video game).
Virtual Lighting Studio
Before you drag out heavy lights for a photoshoot, you use AR to place virtual softboxes and LED panels in your real room. You can see exactly how the shadows will fall on your subject (or a virtual mannequin) without setting up a single piece of gear.
Real-Life Guitar Hero
Wearing the headset while playing the bass. Instead of reading sheet music, colored "notes" fly from the virtual distance toward the fretboard.
Immersive Stock Market Topology
Instead of staring at 2D candlestick charts, you build a VR experience that visualizes the stock market as a 3D landscape. The X/Y axes could represent sectors and time, while elevation could be volatility or volume. Then, hand tracking would grab a specific stock cluster.
NBA Jam
A pure hype filter for basketball practice. If you hit 3 in a row, your ball gets a glowing "On Fire" trail (like the classic video game).
Virtual Lighting Studio
Before you drag out heavy lights for a photoshoot, you use AR to place virtual softboxes and LED panels in your real room. You can see exactly how the shadows will fall on your subject (or a virtual mannequin) without setting up a single piece of gear.
Tue 2/10 — Tech Stack + Data Structure
Deliverable: Unity + Quest 3 MR project created; data dictionary + narrowed dataset chosen.
Thu 2/12 — Data Parser
Deliverable: CSV loads and validates in console; multi-ticker + multi-day values parse correctly.
Thu 2/19 — “Greybox” Tabletop Landscape
Deliverable: Bars/cubes spawn from data anchored to a real table plane in passthrough.
Tue 2/24 — Interaction (Input + Hover)
Deliverable: Controller ray works; hover highlighting clearly indicates target.
Thu 2/26 — Information Layer (World-Space UI)
Deliverable: Selecting a bar spawns a readable info panel + a minimal legend (“height = X, color = Y”).
Tue 3/03 — Time Scrubbing
Deliverable: Timeline slider/dial updates day index; bars animate smoothly (lerp).
Thu 3/05 — In-Class Activity (User Testing) + Beta Build
Deliverables:
In-class activity run (tasks + observation)
Beta ready
Data gathered: task time, accuracy, quick usability ratings, and confusion notes.
Tue 3/10 — Feedback Integration + Fix Pass
Deliverable: patch build addressing top issues from testing (clarity, legend, selection feedback, timeline discoverability).
Thu 3/12 — Final Submission
Deliverables: final APK + evaluation summary + documentation + wiki contributions packaged.
Dates: Feb 10 – Feb 23
Goal: Go from a blank screen to a static 3D mountain range generated by data.
Mon 2/10 (Milestone): Tech Stack & Data Structure
Deliverable: Project Plan & Data Dictionary (e.g., Row 1 = Ticker, Row 2 = Price, Row 3 = Volume or X/Y/Z).
Activity: Select the engine (Unity/Unreal) and find a clean CSV dataset (starting with historical data).
Wed 2/12 (Milestone): The Data Parser
Deliverable: A script that reads the CSV and logs it to the console for verification.
Activity: Write the loop that parses the data. Extract variables ($Price, $Volume) for a single stock.
Wed 2/19 (Milestone): The "Greybox" Landscape
Deliverable: Procedural Generation Script.
Activity: Instantiate cubes/bars based on the data.
Success Metric: You see a "city" of blocks where height = price or volatility. It doesn't need to look pretty, just correct.
Dates: Feb 24 – Mar 09 Goal: Make it playable. The user needs to be able to touch the data and understand it.
Mon 2/24 (Milestone): Hand Tracking / Input
Deliverable: Working VR Player Controller.
Activity: Implement "Ray Interactors" (laser pointers) or "Direct Touch" (hands).
Key Depth Feature: Add a "Hover State" (blocks change color when you point at them) so users know what they are targeting.
Wed 2/26 (Milestone): The Information Layer (UI)
Deliverable: World-Space UI Canvases.
Activity: When a user selects a block, spawn a floating window with text: "AAPL: +2.4% Volatility: High."
Mon 3/03 (Milestone): Bug Fixes & Optimization
Deliverable: A stable build running at 72fps+ (essential to prevent motion sickness).
Activity: Merge meshes if the frame rate is low. Fix text readability issues.
Wed 3/05 (Milestone): The "Beta" Build (MVP)
Deliverable: A build ready for the classroom.
Activity: Code Freeze. Stop adding features. Focus solely on ensuring the app doesn't crash during the demo.
Before 3/13: The In-Class Activity (User Testing)
Event: Let classmates try the headset.
Data Gathering: Watch them play. Do they know how to grab a stock? Do they understand that height = price? (Write down every struggle they have).
Dates: Mar 10 – Mar 23 Goal: Add the "4th Dimension" (Time).
Feedback Integration:
Take the notes from the In-Class Activity and fix the UI/UX friction points.
New Feature: Time Scrubbing
Instead of a static snapshot, implement a "Timeline Slider" or "Scrub Bar" that allows the user to watch the landscape shift and grow over a year.
Depth Check: This requires animating the height of the bars smoothly (Lerp) between data points.
Dates: Mar 24 – Apr 06 Goal: Transform it from a "3D Graph" to a "Cyberpunk World."
Visual Polish:
Replace standard cubes with custom meshes (glowing pillars, holographic textures).
Implement Shaders: Make the stocks pulse if they have high volume.
Spatial Audio:
Attach sound sources to specific volatile sectors.
Experience: If the Tech sector is crashing, the user should hear a low rumble coming from that direction (spatialized sound).
Dates: Apr 07 – Apr 20 Goal: Technical Depth.
Choice Point:
Option A (Live Data): Connect an API (like Alpha Vantage) to make the market update in real-time.
Option B (Deep Analysis): Add analytical tools (e.g., a "flashlight" tool that highlights all stocks with P/E ratios under 15).
Documentation: Start writing your technical documentation or "How To" guide for the final submission.
Dates: Apr 21 – May [Final Date] Goal: Perfecting the user journey.
The Lobby: Create a starting room/tutorial area where the user learns the controls before entering the data map.
Optimization Pass: Final profiler check to ensure smooth performance.
Final Build: Build the standalone .APK (if Quest) or .EXE.
Additions/Changes:
Focusing more on AR (figuring out what that would look like)
Data on a table, keeping people anchored to one area.
Wiki additions: specifying what I'm going to add
Evaluation component: comparison/evaluation component
What specific aspects are you comparing, and how are you specifically measuring the evaluation
Class activity -- having a date before 13th of March
Documentation: what software and how can support
Narrowing down what data
Project 1 Proposal <ADD LINK>
Presentation for Project 1 Proposal https://docs.google.com/presentation/d/1Nw7w-sCvmW86JlVIuf-wfXRiVmr1QfKl2NZUboHoXIM/edit?usp=sharing
End Presentation for Project 1 <ADD LINK>
Project 2 Proposal <ADD LINK>
Presentation for Project 2 Proposal <ADD LINK>
Poster <ADD LINK>
In-class Activity <ADD LINK>
Public Demo <ADD LINK>
CONTRIBUTION 1 [short description] <ADD LINK>
CONTRIBUTION 2 [short description] <ADD LINK>
.....
CONTRIBUTION N [short description] <ADD LINK>
Total: X hours
2/3/26 - 4 Hours
Read through 5 papers in the VR Research papers tab to get a sense of the space
Investigating the Impact of Virtual Element Misalignment in Collaborative Augmented Reality Experiences
What stuck out to me: The differences in how individuals experience AR can line up despite looking at the same thing. It made the idea of everything being in the same place at the same time in an AR experience feel very intentional, unlocking real collaboration between people if they are working in the same setting.
Design Patterns for Situated Visualization in Augmented Reality
Gave me a bunch of project ideas, highlighting the idea of displaying data that lives in the real world and being able to experience it, rather than just displaying it as a computer would. One of the examples that was really cool was the display of a temperature graph directly on a machine part rather than a separate screen for that information.
SpatialTouch: Exploring Spatial Data Visualizations in Cross-Reality
What was really interesting was the collaboration between different systems; in this case, it was what someone was seeing in a VR headset being able to be interacted with by a flat touch screen.
FIESTA: A Free Roaming Collaborative Immersive Analytics System
FIESTA was a prototype that allowed people to share data visualizations in a massive space, rather than tethering people to a screen or small circle.
CoVAR: a collaborative virtual and augmented reality system for remote collaboration
This was really cool to read because it described AR and VR systems working together between two different people. It almost gave me the impression that, for example, a mechanic could virtually stand next to me, guiding me through fixing something in my car if there was an emergency.
Be sure to always include the amount of hours you've worked.
2/7/21 - 4 Hours
Began by addressing some of the feedback received in the previous class regarding some concerns with my project idea and its proposed execution
The first main concern is the lack of AR focus in my project
Another main concern was the project timeline; a new timeline that aligned with the first project, only being half of the semester
Dove into the Wiki to figure out how my project could build on an existing page, or create a completely new page
Decided on:
Adding a “Table-top Data Visualization” end-to-end experience
Extend “CSV Usefulness for VR”
Add specifics to structuring time-series CSV data.
Add a “Tabletop UX patterns” section to AR Interactions
Hover feedback, selection, legend placement, time scrub placement, text readability in passthrough.
2/11/21 - 2 Hours
Worked on catching up with the MetaQuest 3 setup, ran into an issue that prevented it from turning on and functioning
Used the remaining time to dive into software possibilities for the project
Decided to utilize Unity to build it out.
Installed Unity 2022.3 LTS and configured Android build support
Set up initial project structure (Assets/Resources/Data, Scripts folders)
Installed Meta XR SDK + verified passthrough + scene permission settings conceptually
Drafted initial dataset schema + data dictionary format
Created first CSV dataset (multi-ticker, multi-day) and verified formatting (date,ticker,close)
Built a CSV loader that parses and validates rows (tickers, dates, min/max)
Confirmed console validation outputs for multi-ticker + multi-day parsing
Cleaned up Resources path conventions for stable loading
Implemented first “greybox” bar spawning from CSV
Iterated on grid spacing, bar width, height normalization for readability
Debugged Unity scene organization and runtime-spawn behavior
Integrated Meta XR Building Blocks into a stable scene workflow (camera rig + passthrough)
Fixed Android manifest / project setup tool issues and resolved package dependencies
Stabilized dev workflow for desktop iteration vs headset testing
Began refining data mapping (height normalization and color assignment)
Rebuilt visualization architecture to support timeline/scrubbing (one bar per ticker)
Implemented dataset-driven bar updates over time (early time-index model)
Confirmed bar updates + mapping consistency across tickers
Started first pass on UI layout planning (scrubber + info display)
Resolved Unity package issues (UGUI/TextMeshPro essentials) and compile errors
Hardened project reliability (scene saving discipline, version control usage)
Began desktop-first interaction approach (mouse ray design for later controller swap)
Finalized historical dataset choice (COVID crash/recovery window) for strong visual story
Loaded historical weekly dataset into Resources and validated tickers/dates count
Implemented smooth height transitions to make scrubbing readable
Tuned camera framing and bar layout for “tabletop” feel in desktop mode
Built working UI timeline slider + date label updates
Implemented click selection interactions (desktop mouse version)
Added Info Panel to display ticker/date/close/% change, wired selection to panel
Added baseline explanation concept + tooltip/modal plan for % change definition
Improved UI layout consistency (panel placement, slider placement, typography)
Implemented continuous info panel refresh when scrubbing timeline
Added modal tooltip behavior (open/close, background click close) for “% change vs baseline”
Began polishing label readability strategy (axis/ticker strip planning + removing cluttered per-bar labels)