Revamp 3D print troubleshooting process
PreForm is Formlabs’ (a 3D printer designer and manufacturer) all-in-one platform for 3D printing preparation. It allows users to import and edit the print files to fix potential model problems before uploading it to the printer.
In winter 2024, I collaborated cross-functionally with Design, Engineering, PM, and Services teams to revamp model error troubleshooting experience. I delivered 2 features including Error Locator and Contextual Actionable and handed off to engineers for implementation.
View another project I worked on during Formlabs, click here.
Internship Project
Oct - Dec 2024
Role
Lead Product Designer
Skills
Tools
Figma, ProtoPie, Jitter, Photoshop
Problem
Novice (non-engineering) users often struggle to understand, locate, and fix errors in their 3D models
How might we help users quickly and effortlessly troubleshoot their model errors?
Solution
Streamlined and contextual guidance to immediately focus on and resolve errors
Key Feature Overview
On-model Error Locator
Select error directly by type and model, and instantly adjust zoom and camera angle to focus on the error.
Contextual Actionables
Understand the next steps and choose between manual or automatic fixes.
1
Project Background
What is Print Validation?
An essential troubleshooting feature for 3D print preparation process
3D printing can go wrong very easily. The failed print can be caused by both hardware and software issues. In PreForm, Print Validation is the only software-end troubleshooting functionality that detects potential error in real-time as user edits the digital model.
Troubleshooting process in whole 3d printing
Print Validation in PreForm intends to surface error areas on model and provide instruction via text.
Current user flow of troubleshooting printability errors
Some design debts also exist. For example, error message is actually clickable and will lead to a documentation page which makes no sense.
However, in reality, users still face challenges more than anticipated…
During the project kickoff meeting, I learned some concerning trends on this feature from PM and Services teams.
42%
failed prints caused by improper model preparation
8%
of all support tickets are complaints and issues with Print Validation.
But why it matters? The overarching problem is…
Print Success Rate (PSR) shows suboptimal improvement despite implementation efforts
PSR is the most crucial metric used to evaluate the comprehensive usability of Formlabs’ software and hardware products. While PreForm had major improvements on error detection algorithms and editing tools, the print failures caused by 3D model errors (software-end) did not demonstrate significant reduction as expected.
As Formlabs expands into the non-engineering market segment, predominantly comprising first-time 3D printer users, this suboptimal performance could result in a huge missed opportunity.
Initial research question
We have provided great tools, but why errors are still not properly fixed?
2
Understand
Initial study
3 key areas to discover
Routine
What are user's troubleshooting habits? Any challenges?
Priority
What does user prioritize during troubleshooting? Why?
Confidence
What affects user’s confidence level on manual troubleshooting?
User research methods
Given time and resource constraints, I reviewed existing research materials and synthesized key findings.
Existing UXR reports
I dived deep into 6 reports to understand users' feeling about current troubleshooting process and who might be the target audeince.
Support tickets
Synthesize into 4 key insights
Excessive time spent on switching between checking errors and finding solutions leads to distrust and underutilization

Visibility
Non-engineering users depend heavily on error highlights yet find it difficult to pinpoint errors on multiple models because of the clutter visuals. Errors are easily getting missed.

Efficiency
Non-engineering users spend extra effort on switching between matching errors to its type and finding the right tool to fix it which leads to more frustration and dissatisfaction.

Autopilot vs. Manual
While non-engineering users prefer manual troubleshooting to maintain customization and control, they tend to go autopilot with some performance compromises to save time.

Growth
Non-engineering users frequently rely on external resources like YouTube to understand errors and solutions because of the unhelpful vague error message.
3
Define
Goal alignment
Before starting the design phase, I organized a meeting with the PM and design teams to align on our goals.

Target audience
Targeting non-engineering users (i.e. healthcare) aligns with company’s current mission to expand certain market, while we want to keep experience familiar and benefiting for our engineering users.

Metrics
Since quantitatively measuring all variables and factors (both software and hardware) would require extensive effort, we agreed to measure success using qualitative data through User Satisfaction Scores.

Implementation
Due to limited resources and time, we decided to build an MVP to gather user feedback and lay the foundation for future improvements.
Competitive analysis
Visual cues and quick actionables are prevalent pattern used by competitors
Before starting the design phase, I organized a meeting with the PM and design teams to align on our goals.
I brainstormed possible directions and opted for 2 main use cases based on Prioritization Matrix.
4
Ideate & Iterate
Experimenting on interaction
Locate error in 3D view - error selection
How to visually stand out and inform interactivity determines the overall discoverability of this helper feature.
Option 1 - Hover area
Low visibility, but larger click area, minimal and less overwhelming
Option 2 - Hover pin

High visibility, but high visual clutter when stacked
Locate error in 3D view - focus on model
By discussing with engineers with prototypes I built, I got technical approval on basic focus-on-model interaction of pins.
3D view lock-in
Instant zoom and camera angle adjustment
Dynamic pin orientation and movement
Always facing towards user and positioned at geometric center of errors
Locate error in 3D view - pin cluster
Considering visual simplicity and user expectation when grouped, I decided to use Opt. 2.
Option 1
Different types of errors are grouped together
Option 2

Only same type of errors are grouped together with number of errors
Option 3
Only same type of errors are grouped together with arbitrary quantity display
Visual design for pins
I decided to go with Option 4 because of its minimal yet clear and distinguishable visual cues even on top of overlapped highlighted areas.
To streamline the process of "select-locate-fix"
Locate error from error list
From research I learned that users want to decide which error to fix with control and confidence. So in addition to use pin on model as a helper for focusing, users should be able to select the error they want to fix based on type, parent model, and prioritization.
Option 1
Each error type can be selected as a whole and has separated visibility control
Option 2
Checkbox as both visibility control and selection. Check or uncheck errors in different hierarchal levels. Use locate button to focus on all selected errors.
Option 3
Flat list of errors in same type. Focus on any individual error with one click.
Decision
A hierarchal list for granular control: all errors in same type, same model, or single error. One click to zoom to the optimized angle and view.
Improvement based on user feedback
User testing and iterations
Due to limited resource, I facilitated 6 internal testing on non-engineering users and collected qualitative feedback.
A locate button for each error in long list creates visual clutter and confuses user which child error will be selected.
To fix this, the locate button only appears on hover and the selected parent error will highlight its child errors to reduce cognitive load.
Pins with full opacity makes model even visually busier, and users cannot know which error in the list matches the one on model unless they commit to locate, making the what-to-focus decision extremely hard.
To fix this, I added a new idle state to pins when they are only at half opacity. When user hovers on the error in the list, the pin changes to active state; when user hovers on the locate button, the pin changes to hover state; after user presses the locate button, the pin flashes to remind user again which error area has been focused on.
Edge case considerations
Stress test pin and list
I made more design considerations to holistically think about this feature within the system.
Safe area for pin rendering
Pin will not be rendered when it is blocked by Toolbar and View Control
Side dock, or quick scroll, or scrollable list for long list?
All these ideas will create extra friction to access other features so I decided to keep list as it is
Finally, to connect users to right tools
Provide contextual actionables upon error selection
What can provide helps users need
Define actionable types
I used insights from research and my own hypothesis on how user wants to use tools.
Interaction exploration
How to access actionables
I opted for Opt. 3 by balancing the scalability, discoverability, and clarity of instruction.
Option 1 - Shown on hover
Best discoverability, but obtrusive during pin selection
Option 2 - Actionable button on hover
Least visual obstruction, but compromises learnability and scalability
Option 3 - Dropdown

Fit mental model of dropdown actions, but compromises discoverability by an extra click
Position of dropdown menu
To handle the edge case of pin being at edge of 3D view, the dropdown menu will be generated at different positions
5
Execute
Effortlessly focus on the error you want to fix
Connect error types and their locations on model
Task-related guidance on next steps
Feature adoption
Tooltip provides brief intro on the unfamiliar locate button and Callout (also designed by me! See details here) helps onboard users.
Design for growing proficiency
Discoverable link to docs through Learn More. Encourage users to use shortcut of tools.
Customization
Engineer users can turn off the Print Validation (auto-calculation as default). Pin can be set as small (default) and large for better accessibility.
Test results
User Satisfaction Score increases by 19%
During final internal testing I conducted a qualitatively survey with a USC score for quantitate demonstration, which increased from 70% to 83% with new design. However, I'm aware of the limitation of internal testing and effectiveness of my metrics. If I have resource and time, I would conduct a comprehensive A/B testing to uncover the impact on error fix rate, troubleshooting session time, and overall Print Success Rate.
Reflection
Beyond Figma
Working at Formlabs' UX Team is definitely a highlighted moment of my career as a Product Designer. Not only the features that I designed to help our users print pieces better and faster, but the interpersonal connection, generous support and help, and all the insightful conversations I was honored to have there.

Get buy-in early
Prototypes speak louder than words! I learned that creating quick, tangible prototypes early in the process is key to winning over stakeholders. It's far more effective than working in silos and presenting a fully-baked idea that might miss the mark. Plus, it's a great way to spark collaborative discussions and catch potential issues before they become roadblocks.

Design in a technical environment
One of the biggest challenges I had was learning the language to communicate with engineers—software, embedded, and mechanical. My secret tool for effective collaboration with them is regular chats with sketches and flow charts to understand feasibility and edge cases as early as possible.

User research under limitation
My mindset on user research is to always conduct full-cycle study which could guide the design, while in real-world scenario, I discovered that other facets of research could also bring valuable insights, such as relating NPS to UX with marketing team and making competitive analysis with PMs.
Read Next