diagram-cover-en.png

Snapshot

Role User Research (Internal Workflow Observation) · Interaction Design · UI Design · Cross-functional Collaboration
Project Type Feature Design & Iteration
Platform Web App
Users Internal CAD Drafting Team · Architects · Interior Designers
Team Product Director · Product Manager · Designer · Engineering Team
My Contribution 1. Helped define the feature from an open requirement with no existing spec or wireframes, and proposed the “Contour” concept and naming;
  1. Designed the core single-workspace flow and drove team alignment around it;
  2. Continued iterating the controls through two post-launch rounds. | | Current Status | Shipped and in ongoing use |

TL;DR

Scanat’s CAD drafting team needed to extract plan and elevation contours from scanned 3D building models. Previously, some sections still had to be redrawn manually by referencing the model. We designed a contour-generation feature that lets users choose a plan or elevation direction, position one or more section planes, automatically generate a 2D contour, and export it as DXF for continued work in CAD.

My contribution: I joined at the open-requirement stage, helped define the feature, designed the core workflow and 3D spatial interactions, and completed two rounds of control iteration after launch based on real usage.

https://res.cloudinary.com/v7b2p5ho/video/upload/v1786613134/pu6weyazrptggllgv0iv.mov

1. Problem

Requirement Overview

After receiving Scanat’s 3D models, the CAD drafting team still had to manually redraw some plans and elevations. Because the geometry already existed in the model, the core question became: how could we automate 3D → 2D contour extraction while preserving the existing CAD workflow?

diagram-1-en.png

Three Core Design Questions

  1. How could we make 3D sectioning easier to understand? The underlying system uses X / Y / Z, but exposing those axes directly creates unnecessary cognitive load. Users still need to understand both the direction of the cut and its exact position.
  2. How could users work continuously around the same model? While creating and adjusting section planes, the model, current state, and existing contours all need to remain visible.
  3. Where should Scanat stop and CAD begin? Scanat should handle contour extraction from the 3D model, while downstream drafting should remain in CAD.

Interface constraint: section planes needed precise positioning, while controls could not permanently consume valuable 3D canvas space.

Initial Research

I reviewed sectioning workflows in 3D modeling, architectural visualization, and CAD tools, then compared them with our internal CAD workflow. Two principles emerged: the interface should use architectural concepts such as plan and elevation instead of exposing X / Y / Z directly, and generated results should flow smoothly back into CAD. The “Contour” feature name was also defined during this stage.

2. Approach

The project began from an open requirement, and the design process can be summarized in four steps:

  1. Define the spatial language: translate X / Y / Z into plan, front elevation, and side elevation;
  2. Define the workspace structure: compare a three-step flow with a single-workspace model;
  3. Iterate section-plane controls: move from direct canvas dragging to slider + numeric input, then integrate the controls into the right-side panel;
  4. Connect back to CAD: export the generated 2D contour as DXF and continue the existing drafting workflow.

3. Design Decisions

Decision 1: Keep the Model as a Persistent Workspace, Not a Preview Step

The initial proposal used three stages: review the model and saved contour list, enter a separate page to create or edit a contour, then return to the list after saving.

diagram-2-en.png

I proposed keeping the contour list, section-plane controls, and 3D model in the same workspace. The key reason was that a contour is fundamentally defined by the current model together with one or more section planes. During creation, adjustment, and review, the model is not a disposable preview—it is the persistent operational context.

This decision came from two real usage patterns:

  1. Creation always depends on the model. While placing, moving, or adding section planes, users need to continuously inspect their relationship to the building geometry;
  2. Saved contours rarely need an isolated editing mode. When a result is not right, the typical behavior is to keep adjusting the current section plane and regenerate, rather than open a separate editor from the list.

diagram-3-en.png

The team ultimately adopted a single-workspace structure: the list manages results, the section-plane controls handle the current operation, and the model continuously provides spatial context. The controls went through two later iterations, but the core page structure remained unchanged.

diagram-4-en.png

The single-workspace approach increased on-screen state complexity, but that was a trade-off worth accepting because every action depended on the current 3D model. Splitting the flow into multiple pages would have simplified page structure at the cost of losing task context.

Decision 2: Use Plan / Elevation Instead of X / Y / Z

Technically, contour generation places section planes along the model’s X / Y / Z axes. The most direct implementation would have been to ask users to choose an axis, but that would expose the model coordinate system and force them to translate axes into architectural directions.

Architectural drafting users do not think in terms of “cut along the Y axis.” They think, “I need a plan, front elevation, or side elevation.” So the primary interface language became Plan / Front Elevation / Side Elevation, rather than X / Y / Z.

Users first choose the drawing direction they want, and the system maps that choice to the appropriate section axis. This translates the system’s coordinate model into the user’s task model and separates two questions that are easier to understand independently: which direction to cut and where to place the cut.

diagram-5-en.png

Decision 3: Let Controls Handle Precision and the 3D Canvas Handle Spatial Feedback

The first version let users drag the section plane directly in the 3D canvas. This matched common direct-manipulation patterns in 3D software and made motion easy to understand, but internal testing showed that it did not work well for drafting tasks that require precise positioning. Users could tell roughly where the plane was, but not exactly where it was.

I therefore separated the responsibilities of the controls and the canvas:

This preserved immediate spatial feedback while meeting the precision requirements of CAD-oriented work.

Moving the controls into a panel introduced a second issue: a floating panel occupied model space, especially on smaller screens. We considered drag-to-reposition and minimize behaviors, but both would still make users manage the overlap themselves. The final solution integrated the contour controls into Scanat’s existing collapsible right-side panel, so they could be expanded when needed and hidden when not in use.

diagram-6-en.png

Decision 4: Manage One or Multiple Section Planes in the Same Workspace

A contour is not limited to a single direction or a single section plane. Users can choose Plan, Front Elevation, or Side Elevation, then add the corresponding section planes within the current model as needed. A single contour can also include multiple section planes.

For that reason, multi-plane management stayed within the same model context instead of becoming a set of separate pages. While adjusting one plane, users can still see the model, other section planes, and the current contour together. The goal was not to build a complex object manager, but to keep multiple spatial states understandable around one shared model.

https://res.cloudinary.com/v7b2p5ho/video/upload/v1786935043/i4rxwmzj2rpy0olbfuch.mov

Decision 5: Solve the 3D → 2D Gap Without Rebuilding CAD

The original problem was very specific: the CAD team already had Scanat’s 3D models, but still had to manually redraw some 2D sections by referencing those models.

The product boundary was therefore not to complete the entire 2D drafting workflow inside Scanat. Instead, we used Scanat’s existing 3D geometry to automate the most repetitive step: users choose a direction and section position, Scanat generates the 2D contour, and the result is exported as DXF for continued editing in the existing CAD software.

This boundary let Scanat focus on the part where it had the strongest data advantage—3D → 2D geometry extraction—while preserving users’ mature CAD workflow instead of duplicating an entire professional drafting tool.

diagram-7-en.png

diagram-8-en.png

4. Outcome

5. Reflection

  1. Spatial interaction: the first version used direct canvas dragging because it matched common 3D software patterns. Real drafting work, however, values positional precision more highly. If I were starting again, I would separate “direction selection” from “position input” earlier and use an interactive prototype to test the precision limits of dragging against real tasks.
  2. User language: translating X / Y / Z into Plan / Front Elevation / Side Elevation reinforced that a professional tool’s technical model should not automatically become its interface language. In complex systems, I now explicitly separate the underlying data structure from the concepts users actually use to make decisions.
  3. Page structure: the controls changed twice after launch, but the page was never split apart. For workflows centered on continuous interaction with the same 3D object, I first identify which states must remain persistently visible before deciding whether page-level navigation is necessary.