Irene Cheung

Product Designer

MUGSY capture dome shown from inside: a 171-camera rig recording at 11MP and 90Hz

The capture dashboard behind Meta's Codec Avatars

Redesigning the internal tool that orchestrates 300+ camera and sensor streams, as the team's only designer and a daily operator of the system.

Internal ToolsHardware R&DShippedNDA Protected

Summary

Category

Internal Research Dashboard

Org

R&D Engineering & Spatial Computing

Product

Meta Reality Labs, Codec Avatars

Role

Only designer on a five-person project team

Core Challenge

  • 01 Real-time data with near-zero tolerance for latency
  • 02 Years of inherited design debt
  • 03 Ambiguous error-handling protocols
  • 04 Delayed sensor capture schedules

Impact

  • 01 Delivered a UI specification and multi-state verification guidelines for the engineering team
  • 02 Rapidly prototyped and user-tested a complex troubleshooting flow within one day

Hired to run the captures, I became the team's only designer and redesigned the dashboard I used every day.

The redesigned flows let operators resolve pipeline failures themselves instead of stopping a session to pull in engineers.

Tool

Figma

Design System, Prototyping

Miro

Card-Sorting, UX research synthesis

System Impact

Codec Avatars

Quest Pro

Stakeholder

  • TPM
  • Engineers
  • System Integrators
  • Research Operators

Background

Codec Avatars represent Meta's long-term research project to create photorealistic, real-time digital identities that use neural networks to mirror human expression and presence in VR.

Problem Space

One missed failure could cost the capture, or the whole day's schedule.

  1. 01 The old dashboard showed nearly all 300+ streams at once, with equal visual weight
  2. 02 Nothing told the operator what mattered right now
  3. 03 Camera lag, sync drift, and system-health errors surfaced late
  4. 04 A mid-session failure could invalidate the capture, and cascade into the day's back-to-back schedule

I knew exactly where it hurt, because I ran these sessions every day.

Comparison of Codec Avatar renders: relit 3D face captures above matching source photos of the same six peopleSource

For a bit of context

This is the exact physical infrastructure I designed for, and operated daily. A capture session inside this dome runs 300+ synchronized camera and IMU streams at once.

Two fisheye views inside the MUGSY capture dome, showing rings of cameras surrounding an empty operator chair
Grayscale camera-array capture grid showing a subject's face from many synchronized anglesColor camera-array capture grid showing a subject's face and shoulders from many synchronized angles

One dashboard had to work for three very different capture rigs.

Each rig produced different data and failed in different ways. A normal reading on one rig could mean trouble on another. I needed one interface that stayed legible across all three, without asking operators to hold three mental models.

How I ran it

Audit the existing dashboard → shadow and interview operators (myself included) → clickable prototypes → engineering review → operator testing → ship in increments

From research to decision

Repetitive signals

My decisions came from repetitive pain points I watched in the lab every day, connected to the metrics our PM tracked.

Designed for errors

"Edge cases" weren't rare here. They happened daily, and most gave off warning signs before they became failures. So I designed defensively: recovery mechanisms for the failures we could detect, clickable prototypes reviewed with engineers, and testing with the operators who would actually run them.

From collaboration to decision

Building internal tools is about trade-offs

No one dominates the design: engineering, research, and operations each had a wishlist, and my job was balancing them while building guardrails that let those wishlists ship safely.

Design with human in the loop

Neither the AI nor the human is completely trustworthy, so the dashboard had to keep a human in the loop and make the handoff clear: some moments the operator can resolve things alone, and some moments you pull in an engineer. The dashboard's job was to know the difference.

I design technical tools in three layers, from the backend up

This project taught me to think in layers. The dashboard itself stays under NDA, so what I can show is the thinking: how I broke an unfamiliar, deeply technical system into pieces until I could see where design would help.

I was new to R&D when I started. Building this framework is how I stopped being new.

Data

What do the sensors see and feel? And what do they miss?

Telemetry dataEdge casesLatency

Logic

What does the system make of it all? What matters, and what's a no-no?

System statesGuardrailConfidence level

UX

And what does the operator get? What's happening, and what do I do next?

Error handlingExplainabilityPredictabilityAbility to overrideStakeholders' mental model

Becoming a better designer

Design became decisions the team could act on.

PMs, engineers, and designers speak different love languages. So I stopped presenting "UI" and started speaking the listener’s.

TPM
Design changes translated into the metrics they already tracked: capture throughput, failed sessions, time lost to errors.
Engineers
Feasibility first. No static handoffs. I brought clickable prototypes and iterated with them inside their constraints.

Read more