hero image Back

Rebuilt an AR medical simulation platform for 1500+ students and instructors, turning years of unused session data into analytics instructors could actually act on.

Over the summer of 2026 I interned at Lumis, an AR medical simulation startup in Pittsburgh, as their sole designer. Working alongside a data science intern and the engineering and business teams, I led a design overhaul of the platform and introduced a new analytics layer for its users.

From the initial audit, to building a design system from scratch, to delivering production ready prototypes, I owned the design direction while balancing it against business needs.

Role
Sole Product Designer
Timeline
Jun to Aug 2026
Team
Me, a data science intern, engineering and business
Scope
27+ screens across 7 pages, 3 user roles, first design system, 0 to 1 analytics

what's the context?

Training on a physical patient

A Pittsburgh based startup building AR simulation training that lets nursing and medical students practice clinical skills on a physical manikin. The InSight Platform runs scenarios, scores technique, and stores every session.

1500+students and instructors
13clinical competencies tracked
3user roles
20+courses in the built in library
The Lumis AR unit, where students train on a physical manikinthe AR training unit
The AR unit, where students train on a physical manikin

what did the audit find?

27 issues across eight heuristics, collapsing into three patterns.

There was no inherited research and no design process they had followed before. There was no design brief either, so the first natural step was to run a heuristic analysis across the whole platform.

I mapped both journeys end to end. Student: login, modules, practice, assessment. Instructor and admin: content authoring, reports, user management.

Then I ran a Nielsen heuristic evaluation across every screen in both.

The instructor journey, mapped end to endinstructor journey map
The instructor journey, mapped end to end
The old dashboard course list, before the redesignbefore: old dashboard course list
Before: the old dashboard course list
  1. 01
    No role appropriate insight.

    Every simulation generated rich data. None of it reached the person who needed it: the student deciding what to practice, the instructor deciding who to help, the admin deciding whether to renew.

  2. 02
    No system.

    Icons, CTAs, modals, and states were decided screen by screen, because there had never been a designer to decide them once.

  3. 03
    Too many clicks.

    Creating a lesson took three fragmented steps. Viewing a lesson summary loaded the whole lesson, showed a modal, then sent you to a page to click again.

I presented the audit to leadership, along with the questions it raised that I couldn't answer alone.

  1. 01

    Design system. Component library and icon set

  2. 02

    Dashboards Where the platform's own data was going unused.

  3. 03

    Modules. Apply the system back across student practice flows.

why build a system first?

Building the foundation first

53components
77icons
48variables

The audit found inconsistency everywhere. Icons were PNGs dropped in at different sizes with no shared source. Grey was doing almost all the work across the interface, so nothing had visual priority.

Lumis has no designer on staff. A system was the only way the work would survive past my internship, giving developers a defined set of components to build future releases from instead of deciding each screen on their own.

Students use this standing at the AR unit, often gloved.

Touch targets sized for a mouse fail here, so components needed generous hit areas and spacing that tolerates imprecise input. Instructors and admins do their work at a desk, where analytics and reports live, and density matters more than reach.

The platform also runs in a Unity environment. I worked with the dev team throughout to confirm what was feasible to build there, so the system specified components they could actually implement rather than ones they would have to approximate.

The component library built on the variable systemcomponent library and variable system
The component library, built on the variable system

Variables. Two layers. Primitives hold raw values: color ramps, spacing, radii, font sizes. A semantic layer above them defines surface and text, so components reference meaning instead of hex codes.

Core components. Buttons, selections, inputs, tables, cards, modals. 53 components and a 77 icon set curated from Lucide, replacing the PNGs.

Variables

The primitive and semantic variable layersthe variable system

Components

The component library in detailcomponents, in detail
The variable system and components, in detail

Smart peripheral pills. The most context specific component in the system. Every lesson requires particular physical instruments, and students previously found out which ones only after committing to a practice. The pills communicate what a lesson needs and what is currently connected, before it starts.

before

Peripheral pill component statespill component states

after

Course card showing peripheral pills in usecourse card with pills in use
Pill states, and pills in place on the course card

Modal window. Standardized so the patient monitor and every other overlay behave the same way. The audit had found modals with inconsistent CTAs and no clear exit.

before

Patient monitor modal before standardizationpatient monitor modal, before

after

Patient monitor modal after standardizationpatient monitor modal, after
The patient monitor modal

Upload interaction. Bulk CSV import was the one admin action with no visible feedback between upload and confirmation, which is exactly when someone clicks twice and creates duplicate accounts. A static frame could not specify that, so I prototyped the full sequence in Figma Motion.

upload interaction, figma motion
The upload sequence, prototyped in Figma Motion

who is this page for?

One under-built landing for everyone

The audit found the landing page surfaced nothing at all. Each role needed a different answer to the same question: what should I do next.

General

The old landing pagelanding, before

Student

The old student landing pagestudent landing, before
Before: the old landing, near-identical whatever your role

Student. Personal performance, a skills overview split into hands-on and knowledge skills with a total skill score, and recent courses showing progress, required peripherals, and status.

The redesigned student landing pagestudent landing, redesigned
Student, redesigned

Instructor. Cohort performance across assigned coursework, a learning content summary, an entry point into the Content Authoring Toolkit with counts of custom and work in progress courses, students flagged as needing attention, an alerts feed, and current package status.

The redesigned instructor landing pageinstructor landing, redesigned
Instructor, redesigned

Admin. User statistics including unique users and average time per user, platform-wide student performance, the Content Authoring Toolkit, recent course completion rates, and plan status showing tier, renewal, license count, and warranty.

The redesigned admin landing pageadmin landing, redesigned
Admin, redesigned

what was the data saying?

Every session generated data. None of it reached anyone.

A data science intern joined the same summer to make sense of what Lumis had stored. My job was deciding what was worth surfacing, and to whom.

The skills model. Every AR lesson was tagged to clinical competencies like CPR and patient assessment. Those 13 competencies were grouped into primary skill buckets, and split into hands-on skills and knowledge skills so the two kinds of learning could be read separately.

The student dashboard

Version 1 Surfaced performance metrics, active skills across the cohort, a peer comparison band, parent skill trends plotted over six months, recent courses, top three lesson struggles, and a recommended next practice.

Then the data pushed back. Students do not use the platform on a uniform schedule, so a monthly trend line was measuring when someone happened to practice rather than whether they were improving.

Final version Replaced trends over time with skills trends per recent course, comparing hands-on against knowledge performance for each. Everything else stayed: the peer band, recent courses, the top three struggles ranked by low score and high attempts, and the recommended next practice based on lowest score and time since last attempt.

Student dashboard version 2Final version
The student dashboard

The instructor dashboard

Version 1 Listed every course on the platform with completion and average score, so instructors could scan the whole catalogue at once.

Utilization data killed it. Instructors typically teach four or five lessons in a semester, so most of that table would have shown zero, and the most valuable real estate on the page would have gone to courses nobody was running.

Final version Led with data visualization instead. Recent courses with completion rates, skills trends across those courses, students flagged as needing attention, and the top three lesson struggles ranked by low scores and failed attempts so instructors could triage. Flagging students is what turned the dashboard from a report into something actionable.

Instructor dashboard version 2Final version
The instructor dashboard

Course level reports

One course at a time, in more depth: how many students started versus completed, average score, average attempts per module, and the lessons students struggle with most.

Frequently missed questions open in a modal showing the correct answer against what students actually chose, so an instructor can see the misconception rather than just the score.

The report splits into a student level view and a lesson level view, with data export throughout.

The course-level reportcourse-level report
The course-level report
The frequently missed questions modalfrequently missed questions modal
Frequently missed questions, with the misconception surfaced

how many clicks to start practicing?

Getting to the practice faster

7 → 3clicks to start practicing
3m → ~40sto complete a task

Course cards Now show every smart peripheral a course requires, so students arrive with the right equipment rather than discovering the gap partway through. A business decision to let instructors assign courses to students, Canvas style, added start and end dates to the same cards.

Lesson pages Gained performance metrics, the peripherals needed, and the skills covered. Lesson cards carry status pills and completion bars. Instructors and admins get a direct route into the Content Authoring Toolkit to edit that specific course.

Practice pages Now surface the at-a-glance content in place, alongside each practice with its estimated time and required peripherals, and the assessment with its minimum passing score. The modal, the navigation, and the second click are gone.

after: the full flow (recording)
The whole flow to practice, before and after

who runs the account?

Making admin work easier

Utilization Gained filters for modality, department, and timeframe, and split into users, sessions, and tier statistics. The table was cleaned up and given an entry point to add users.

User management Was promoted to its own page with summary statistics broken down by role, bulk import and export, and a table carrying department, status, and row level actions.

before

User management beforeuser management, before

after

User management afteruser management, after
User management

Deactivating a user Had been a single click with no confirmation. I added a review modal listing exactly who is about to lose access, because a misclick here locks a student out of their coursework.

The deactivation review modaldeactivation review modal
The deactivation review modal

Bulk import Now offers a CSV template to download and fill, with the upload sequence prototyped so the state between submitting and account creation is visible.

The package page did not exist. Users had no way to see what their plan included or when it renewed. The new page shows current features, plan status, license counts, and warranty, with support and feedback entry points. A second tab surfaces available add-ons, from extra licenses and peripherals to advanced reporting and extended warranty, which gave the business an upsell surface it had not had.

The package page, plan tabpackage page, plan
The package page, plan tab
The package page, add-ons tabpackage page, add-ons
The package page, add-ons tab

what came out of it?

A dashboard brief that became a design system

27issues found in the audit
53components built
25+screens
3user roles

She was tasked with designing the interface of a new dashboard, and instead pushed for a complete reworking of our entire design system, which she then spearheaded. Her design work was thoughtful towards both the user experience and towards engineering constraints.

Ryan Torbic, VP of Product and Software Development, Lumis Corp
  1. 01
    Designing from data constraints, not around them.

    Both dashboards went through a version that had to be thrown out, and in both cases the data told me what was actually possible. The second versions are better because the first ones failed honestly.

  2. 02
    Sole designer means deciding what not to build.

    With one summer and no design partner, scoping was the job as much as designing was. The design system came first specifically so the work would outlast me.

  3. 03
    The physical context changed the interface.

    Gloved hands at an AR unit and a desk-bound admin are different users with different tolerances, and designing for both meant the same system had to flex.