PreForm Print Validation

PreForm Print Validation

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

Interaction Design
Prototyping
Product Strategy
User Research

Interaction Design, Prototyping, Product Strategy, User Research

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.

  1. Existing UXR reports

I dived deep into 6 reports to understand users' feeling about current troubleshooting process and who might be the target audeince.

  1. Support tickets

I also reviewed ~20 recent support tickets regarding 3D model errors to learn how troubleshooting failed in real use cases.

I also reviewed ~20 recent support tickets regarding 3D model errors to learn how troubleshooting failed in real use cases.


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.

Criteria

Option 1




Option 2




Option 3

Control granularity

Based on type only




Based on type, parent model, single error



Based on single error




Ease to use

Direct visibility toggle and focus view grabber



Extra clicks to select errors before locating



Direct focus view grabber

Learnability

Locate icon button is clear and associated with the targeted type of error

The connection between selection and locate CTA can be misunderstood

Locate icon button is clear and associated with the targeted error

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.

Seattle, WA

8:02 PM

© 2025 Yubo Zhao

Seattle, WA

8:02 PM

© 2025 Yubo Zhao

© 2025 Yubo Zhao