Computer vision / Specialty coffee / 0 to 1

RoastPic: Making coffee quality data accessible to small roasters

RoastPic uses computer vision to measure bean size, roast color, and visible defects from a single photo, making physical coffee analysis more accessible to smaller roasteries.

Role

Sole product designer, collaborating with engineers and the CEO

Scope

Research, IA, end-to-end product design

Timeline

July 2022 – June 2024

Five RoastPic screens in sequence: capturing beans, the measured result, saving it to a coffee, the measurement history for that lot, and a comparison between two roasts.

Role & impact

As the sole product designer, I took RoastPic from its initial MVP into a more persistent visual QC experience. After our early pilots, I led research to understand where RoastPic’s measurements fit within roasters’ broader quality workflow, defined the direction for the next release, and translated those findings into a new information architecture, database, history, and comparison experience.

MVP Getting a measurement out of one photo

Problem

Coffee quality checks take time, labor, and specialized equipment

For coffee professionals, understanding a bean goes beyond tasting it. Physical characteristics such as size, roast color, and defects provide important signals for evaluating consistency and quality.

Traditionally, collecting this data requires separate processes—from manual grading and defect inspection to dedicated roast-color equipment. For smaller roasteries, that can mean more labor, higher costs, and a fragmented workflow.

RoastPic started with a simple question:

What if roasters could get these measurements from the camera already in their pocket?

Traditional workflow

Each check needs its own tool and leaves its own record.

A roaster hand-sorting beans across a grading sieve Size

Sorting beans by hand through sieves

A roaster operating a benchtop roast-color instrument Color

A dedicated benchtop colour reader

A roaster inspecting beans for defects with a magnifier Defect

Checking bean by bean against a chart

Manual Expensive Labor intensive

RoastPic workflow

All three checks come out of a single photo.

A roaster photographing beans laid out on a calibrated Photosheet Take one photo

Beans on a printed reference sheet

A phone analyzing the captured bean image RoastPic analysis

The app reads the beans against the sheet

Size, color, and defect results returned together All three results

Size, colour and damage, all at once

One device Seconds One record

The MVP

Turning one photo into a usable measurement

The core technology was already working: with a calibrated Photosheet as a reference, RoastPic could turn a smartphone photo into measurements of bean size, roast color, and defects.

My goal at this stage was to turn that capability into a usable MVP—from taking a photo to receiving a result—while making the process feel simple enough for everyday use and reliable enough for roasters to trust.

I defined three principles to guide the first experience:

01

Keep it as easy as a photo

Taking a measurement should feel like using a camera, not operating an instrument.

02

Protect the accuracy

Lighting and bean placement change the result, so the app had to steer people towards a good photo without turning into a manual.

03

Make the result believable

Numbers on their own are easy to doubt. People needed to see enough of the process to trust what came back.

RoastPic capture screen with a framing tip for the photo sheet
RoastPic capture screen showing a low light warning
RoastPic analyzing the captured beans
RoastPic results screen with size, color, and defect breakdowns
Validating the MVP

What testing revealed

Testing revealed what roasters needed beyond measurement

The MVP validated the core idea: roasters could use a phone photo to capture physical measurements of size, color, and defects. Through user testing and feedback, I also found that a measurement rarely stood on its own. Roasters wanted to save results, connect them to a coffee or roast, and reference previous measurements over time.

Within a couple of weeks most of the pilot roasteries had stopped opening it. Nobody was complaining about the numbers, and the questions coming back were not about accuracy at all.

What roasters wanted to know

  • What coffee is this from?
  • Which roast was this?
  • What did the previous batch look like?
  • Is this getting more or less consistent?

These needs pointed to a larger workflow beyond the measurement itself.

Research

Understanding where measurement fits in the larger QC workflow

To define what RoastPic should support next, I went back to our pilot roasteries and observed their quality-control workflow beyond the scan — how measurements were recorded, referenced, and used to evaluate future batches.

Roasters seated at a cupping table evaluating samples during a quality session.
A roaster loading beans into a small sample roaster.
A handwritten paper quality-control form recording roast details and a roast curve.
A roasting machine beside a laptop showing roast profiling software.
Sacks of green coffee stencilled with lot, crop year and weight.
Someone photographing roasted beans laid out on the RoastPic reference sheet.

Mapping the workflow around a measurement

Across the roasteries I observed, quality control followed a recurring loop: prepare a batch, evaluate it, record the result, compare it with previous or target roasts, then use that information to adjust what comes next.

RoastPic supported the evaluation step, but the measurement it produced was often carried into the rest of the workflow through paper notes, spreadsheets, or other tools.

Roaster’s workflow

Scroll to see all seven stages →

What roasters do Tools / output
1 Green coffee / lot Select the coffee to roast Lot / origin records
2 Roast batch Roast toward a target profile Roaster, time / temp data
3 Cool & sample Prepare a sample for QC QC sample
4 Evaluate Assess roast quality Roast profile, cupping, RoastPic
5 Log QC result Save findings with context Notes, software, records
6 Compare Review against target or past roasts Historical records
7 Decide / adjust Approve or modify the next roast Historical records
RoastPic MVP Handled outside the app — paper, spreadsheets, memory Stage 7 feeds the next batch — the workflow is a loop

A single reading describes one sample. To understand consistency, roasters needed to know what the measurement belonged to, find it again, and compare it with previous results.

This helped define the boundary for the next release. RoastPic did not need to replace roast-profile, cupping, or inventory tools. It needed to make its own physical measurements useful beyond the moment they were captured.

What roasters needed from a measurement

Across the roasteries I visited, the same three needs kept appearing: measurements had to stay connected to their coffee, remain easy to find, and support comparison over time. I translated those patterns into three requirements for the next phase.

01 Know what it belongs to

Nobody looked at a number on its own. They always asked which coffee and which batch it came from.

A result stops meaning anything the moment the app forgets what it was measuring.

Every measurement stays attached to its batch and its coffee.

02 Keep it

People needed old results back, but they were spread across notebooks, spreadsheets and the app.

Producing a number was only half the job. It also had to be kept and findable.

A simple record of every measurement, searchable by coffee, date or label.

03 Compare it

To judge a batch, people held it up against an earlier one or against a target.

What people wanted to know was rarely the number itself. It was what had changed.

Put any two batches side by side and show the difference.

How might we grow RoastPic from a single-use measuring tool into a lightweight physical QC record — retrievable, trustworthy, comparable.

01

Retrievable

Any measurement can be found again months later, by the coffee it belongs to rather than the day it was taken.

02

Trustworthy

A saved reading keeps the photo and the context it came from, so it can be checked rather than taken on faith.

03

Comparable

Two readings of the same coffee can sit side by side and be read as a change, not as two unrelated numbers.

Structure

Mapping the app to the way roasters already think

Before designing the new screens, I mapped the information structure around the way roasters already identified their work. Rather than treating every scan as a standalone result, RoastPic would organize measurements under the coffee and lot they belonged to. This gave saving, history, search, and comparison a shared structure.

Information architecture: the coffee library branches into coffees such as Ethiopia Guji and Colombia Huila, each coffee into its lots, and each lot into the individual measurements taken from it.
Every measurement hangs off a lot, and every lot off a coffee.

Design

An app where a measurement outlives the moment it was taken

Each of the three principles became its own part of the product: a way to give a reading a name, a place for it to live, and a way to read two of them as a change.

01

Giving every measurement a name

Saving happens right after a photo is analysed, while the roaster still remembers what they just made. The screen asks for the two things that identify a batch — which coffee it came from, and which roast of that coffee it is — and fills in as much of that as it can guess.

Save analysis sheet with a roasted or green toggle, a batch reference field and a list of coffees to save into.
1 Save analysis
Roast and batch reference picker showing a suggested next roast number and recent roasts in the same lot.
2 Batch reference
New coffee form with required name and lot fields and optional origin, process, tags and notes.
3 New coffee
Confirmation dialog reading analysis saved, added to Ethiopia Guji lot A24-17 as roast number 18.
4 Confirmation
  1. 1
    Raw or roasted, decided first

    A coffee is measured twice in its life, green and roasted, and the same photo means different things in each case. So the app asks first.

  2. 2
    A label that fills itself in

    Optional, and already filled in with the next roast in the sequence. The common save needs no typing.

  3. 3
    Only two fields are required

    A coffee the app has never seen needs a name and a lot. Everything else can wait.

  4. 4
    The full name read back

    The full name read back, so a misfiled measurement is caught now rather than months later.

02

Somewhere for the measurements to live

Once results are being kept, they need a place a roaster can walk back into. The library is organised the way roasters already think — by coffee, and by the particular purchase of that coffee — rather than by the day a photo happened to be taken.

Coffee library listing coffees grouped by lot, each with a roasted or green tag and a measurement count.
1 Coffee library
Measurement history for one lot, newest first, each row showing size, colour and defect rate.
2 History
About tab for a coffee lot showing origin, process, altitude, date added and roaster notes.
3 About this coffee
A single saved measurement showing the analysed photo above size, colour and defect readings on their own scales.
4 One measurement
  1. 1
    Grouped by coffee, not by date

    The unit on screen matches the unit roasters talk in. Dates sit inside a coffee, not above it.

  2. 2
    A history that reads as a trend

    All three numbers sit on the row, newest first, so a drift is visible without opening anything.

  3. 3
    The facts that never change sit apart

    Origin, process and notes get their own tab, which keeps the history a clean list of events.

  4. 4
    The photo stays attached to the number

    The photo stays with the reading, and each number sits on a bar marked with its normal range.

A library is only as good as its worst day

Empty library state explaining that measurements are grouped by coffee and lot, with an analyse coffee button.
Nothing saved yet — the empty state explains how the library fills up
Search field focused but empty, showing recent searches, tags to browse and recently viewed coffees.
Before anything is typed — recent searches, tags and the last coffees opened
Library filtered by the Espresso tag, listing the three coffees carrying it.
Browsing by tag — the groupings roasters give their coffees themselves
Search results split into coffees and lots, and individual measurements.
Searching by name — coffees and single measurements kept apart
Filter sheet with roast state, sort order and date range options.
Too much to scroll — filters narrow by state, order and date
03

Seeing what changed

This is the piece roasters asked for most directly. A single measurement rarely answers a question on its own — what they want to know is whether this batch came out different from the last one, and in which direction.

Compare picker inside one lot, with baseline A and current B selected from a list of past measurements.
1 Choosing two
Comparison result showing size up 0.3 millimetres, colour 2.2 darker and defect rate up 2.5 points.
2 The difference
  1. 1
    Comparison starts inside a lot

    Both readings come from the same coffee, so the app can never compare two things that were never comparable.

  2. 2
    The change is the headline

    The change leads and the raw readings sit underneath. Colour carries meaning, not direction — a climbing defect rate turns red, a darker roast stays neutral.

Outcome

A measuring tool became a record a roastery could build on

The technology worked early. What changed was what it was for — not a way to read three numbers off a photo, but a lightweight quality record a small roastery could actually keep. A proven measurement and a product that reached past it made a far stronger case together than either did alone, and that is what the next round of funding was raised against.

95%+ Agreement with lab equipment

How closely the app's numbers matched the professional instruments we tested it against.

30+ Roasteries in the pilot

Coffee roasters around Davis and Northern California who used it on real batches.

$250K Raised off the back of it

Early funding helped support the next stage of development.

Reflection

What I took away from being the only designer

Most of this project was spent deciding what not to do. As the only designer at a startup, nobody hands you a scoped problem — you get an ambiguous one, and the first real piece of work is turning it into something small enough to build. Sitting with that ambiguity, rather than rushing to draw screens, is the part I got better at.

01

Alignment is most of the job

In a small team it is easy for everyone to be enthusiastic about slightly different products. Ambition arrives faster than capacity, and the instinct is to build all of it at once. A lot of my value came from keeping us pointed at one thing at a time and making sure we all meant the same thing by it.

02

Understanding the business changes the design

Deciding not to build a full quality-control suite was as much a business call as a design one: who we could realistically compete with, what roasteries already paid for, and what we could support with the team we had. I could only argue for the narrow scope because I understood those constraints, not just the interface.

03

Design gets to shape direction

This work did not start as a design brief. It started with usage going quiet and nobody being sure why. Going out and mapping the work is what turned that into a direction the whole team could get behind — which taught me that a designer at this stage is shaping where the product goes, not only what it looks like.