MathWorks · Sep 2023 — Jan 2024
Improving MATLAB's Plot Viewing Experience
MATLAB engineers run code and get plots, sometimes dozens per session. Every time they ran the code again, their carefully arranged plots reset to chaos. MathWorks had already built a way to fix this. In a usability study, 1 out of 7 engineers could find it.
Role
Product Designer
Year
Sep 2023 — Jan 2024
The World
Here's the world MATLAB engineers work in. The problem only makes sense once you've seen it.
MATLAB is used by engineers and scientists at Tesla, NASA, aerospace companies, and research labs worldwide. It's where they analyse simulation data, compare test results, and make sense of complex outputs. That work produces plots, sometimes dozens per session.
The standard experience: run the code, watch new plot windows appear on screen, each one floating separately, stacking on top of each other. To compare two plots, you drag and resize windows by hand. Run the code again and every arrangement is gone. Start over.
It's not a dramatic problem. Nobody files a ticket saying "this is broken." It's just slow, repetitive, and accepted as part of the job.
The default MATLAB experience: run code, get floating windows, arrange them manually. Run again, lose everything.
Why this mattersThe friction was invisible because engineers had adapted to it. The job was to surface what they'd stopped questioning.
The Problem
MathWorks had already built a better way. Almost nobody knew it existed.
The engineering team had already solved it: Tab and Tile View. All your plots in one window as tabs. One click to arrange them all into a grid automatically — no dragging, no manual sizing, no losing your layout when you re-run the code.
Before
Floating windows. Chaos every run.
Plots open in separate windows, stacking on top of each other. To compare two, you drag and resize by hand. Run the code again and your layout is gone.
Tab & Tile View
One window. One click to arrange everything.
All plots in a single window as tabs. Check Tiled View and the system picks the best grid layout automatically. Run the code again — it's still there.
Tab and Tile View in action: all plots in one window, arranged into a grid with a few clicks. Engineers who saw it for the first time didn't want to go back.
"No more manual rearrangement. Finally."
Every engineer in the study reacted the same way the moment it was shown to them. The feature worked.
But before Beta, the researcher had given those same engineers one task: find the feature that arranges plots into a grid. Five minutes. Only 1 of 7 found it without help.
engineers given the task of finding the feature
found it without guidance, in five minutes

The 'Tile All' submenu: three layout modes and a custom grid picker, for something engineers just wanted to happen automatically.
The feature was buried in a 3-dot menu under the label "Tile All." That phrase meant nothing to someone looking for a grid arrangement. And even engineers who found it hit a second wall: a submenu with radio buttons and a 5×5 grid picker — Single, Left/Right, Top/Bottom, then choose your exact layout. Like inserting a table in Word. Nobody connected that interaction to "arrange my plots." The label sent them to the wrong place, and the submenu confirmed they were lost.
The Work
MathWorks brought me in to evaluate the full plot-viewing experience before Beta — not to fix one specific problem, but to find every place it was harder than it needed to be.
Before proposing anything, I tested the current experience end-to-end. Then I looked at how engineers work in the tools they already use daily — VS Code, Figma, Chrome DevTools, Power BI, Tableau. The goal: any improvement should fit what they already know, not ask them to learn something new.

The benchmarking surfaced more than UI patterns. MATLAB's tab view was missing things that felt standard everywhere else: no way to recover a closed tab, no pinning, no grouping. The only way to get a plot back was to re-run the code.
None of these were the original brief — but they were real gaps. I ran an Impact-Effort Matrix with the researcher, PM, and engineering lead to put every candidate improvement on the board and decide together what we were actually solving. "Quick switching between views" landed High Impact, Low Effort. Unanimous. Everything else moved to the backlog.
Impact-Effort Matrix: every candidate improvement mapped as a sticky note, four named cursors representing the team. One session. One clear winner.
Since we were all aligned on making the view switch simpler to find and use, I tried a few concrete ideas, worked through each one, and learned from what didn't work.
What was tried, and why it didn't work
Add a parent header above the tabs
A structural split: a parent header layer above the tabs, with global actions in a 3-dot menu and local actions on each tab's context menu — plus two buttons to quickly switch between views. MATLAB had never done something like this before. That kind of structural change needed every team to sign off. Coordinating that across the product for a single feature improvement was out of scope.

Add a toggle button inside the menu
Visually communicates two states better than any other component. But a toggle component in the menu didn't exist in the system. The platform couldn't support it.

A View tab in the ribbon with two toggle buttons
Most visible real estate in the product. But MATLAB's View tab, everywhere else in the product, only acts on the currently open window. Switching between Tab View and Tiled View affects all open plots at once — a completely different behaviour from every other View tab in the app. That inconsistency was enough to kill it.

If dev can't build any of these, what can we actually do?
I stopped asking what the ideal solution looked like and started asking what was achievable: the 1980s codebase, existing design system components, and patterns MATLAB users already knew.
A checkbox.
Not glamorous, but a checkbox was already used throughout MATLAB's menus. Engineers knew how to read it. It fit the design system. The codebase could support it. Check it and the system picks the best grid layout automatically. No configuration. No choices.
The redesign in action: one checkbox switches from tabs to a tiled grid. System picks the best layout automatically. The menu is now grouped: Views at top, all-figure actions together, per-figure actions together.

Alphabetize and Tab Position: removed entirely. Both were present in every session but used by almost nobody.
Why this mattersRemoving low-use options reduces noise and makes the feature that actually mattered easier to find. A shorter menu is a more confident menu.
The decision that defined the redesign
What Changed
The redesign shipped with the next Beta build. Feature discovery went from 1 in 7 to all 7. Plot arrangement dropped from 35–45 seconds to 5–8.
When I walked the engineering team through the final design, the developers who'd maintained that codebase for years reacted first — before the PM, before the researcher. They'd watched users work around this problem for a long time. They knew the fix was right. That meant more than any test metric.
Before: floating windows, manual arrangement, a buried menu nobody understood. After: one checkbox, one click, plots arranged instantly.
Why this mattersThe engineer from Chapter 01 - the one who ran code and lost everything - now runs the same code and gets a tiled layout waiting for them. That's the fix.
out of 7 engineers found the feature before the redesign
faster plot arrangement: 35-45 seconds dropped to 5-8 in research sessions
design directions explored to find the one that worked within the constraints
MATLAB taught me something I carry into every project: you don't know the UI. The user does. Your job is to meet them where they already are.
Walkthrough on request
Want to see the full design process?
I'm happy to walk through the work live — covering process, decisions, and designs.
