Digital Prototype

The app, designed like it ships.

High-fidelity UI for the NutriScan companion app — a MyFitnessPal-class daily loop where the user does exactly two things: pick a meal in the app, press Measure on the scale. Everything else — weight, recognition, allocation, the whole report — generates itself and syncs in.

Design language

One palette across hardware and app: the scale's arc-display blue is the only action colour; macros use the health-standard triad; the raw bowl's clay is reserved for raw-mode states.

Colour

Action bluebuttons · rings · active tab
Protein / successmacro · scale-verified
Carbsmacro · over-target
Fatmacro
Clayraw-mode states only
Cloudapp background
Inknumbers first

Principles

  • Numbers are earned, not typed. Anything scale-verified wears the green badge; estimates never do.
  • One thumb, one flow. The whole log loop runs on bottom-third primary buttons.
  • The bowl speaks. Raw vs cooked is detected from the fitted bowl and shown as a persistent chip — never a setting to remember.

How the scale and the app connect.

Paired once over Bluetooth (Profile → My scale). After that, every report starts with a single press of the Measure button — the app only needs to know which meal it belongs to.

1 · In the app

Pick the meal

Breakfast, lunch, dinner or snack — the only input the app ever asks for before a report. Then it just listens.

2 · On the scale

One press of Measure

The hardware captures everything at once:

  • total weight W — locked, e.g. 310 g
  • food types + volume shares (in-dome AI camera)
  • bowl state — cooked · white / raw · clay
  • one photo, auto-captured
Measure
3 · Back in the app

The report generates itself

The sync packet lands and the app does the math:

  • allocate grams so Σ mᵢ = W
  • look up the Calories & Elements table (raw or cooked, per the bowl)
  • compose the report → diary → weekly stats

Log a meal — two actions, one report.

S01 → S07: the user picks a meal in the app and presses Measure on the scale. Every screen after that is the report generating and landing — no other input exists.

9:41
Tuesday, Jul 14
Today
🔥 12
1,000 kcal left
Goal1,900
Food900
Scale-verified88%
PROTEIN
63 /110g
CARBS
121 /210g
FAT
18 /60g
BreakfastOats · yogurt · blueberries
412 ✓ scale
LunchChicken · rice · broccoli
380 ✓ scale
DinnerNot logged yet
SnackApple · estimated
108
+  Log a meal
Today
Log
Community
Insights
Profile

S01 · Today MyFitnessPal-style budget ring, but with a stat only hardware can earn: a scale-verified share. 88% of Linda's calories came off the scale — only the mid-morning apple was a guess, and estimates never wear the green badge.

9:41
‹ Today
Log a meal
Which meal is this?
🥣
Breakfast
Logged · 412 kcal
🥗
Lunch
Suggested now
🍲
Dinner
Not logged
🍎
Snack
Logged · 108 kcal
Next: place the meal on the scale and press Measure.
No portions to enter — one press does it all.
Continue
Today
Log
Community
Insights
Profile

S02 · Choose meal Four cards, current slot pre-selected by time of day. This is the only input the app asks for — one tap, then the hardware takes over.

9:41
‹ Lunch
NutriScan Pro · connected
Cooked bowl fittedAuto-detected — the clay bowl would switch to raw data
1
Place the whole meal on the scaleNo portions, no order — everything at once
2
Press ● Measure on the scaleWeigh + scan + photo, all in one press
NutriScan Pro
Waiting for Measure…
Nothing to tap here — the app just listens.
The report will arrive on its own.
Today
Log
Community
Insights
Profile

S03 · Hand over to the scale Deliberately button-free: after picking the meal, the app goes passive. Capture belongs to the hardware — the bowl chip shows the scale already knows cooked from raw.

9:41
Generating report…
Measure pressed · syncing from the scale
Weight locked — 310 gfrom the scale · the only trusted weight
Cooked bowl → cooked tablebowl state, read on fit
3 foods + volume shareschicken 46% · rice 32% · broccoli 22% · 📷 photo
Allocating grams — Σ = 310 gcomputed in the app · AI never weighs
5
Calories & Elements lookupreport card next
One press sent everything.
The app turns raw signals into the report — unstable pass? The scale re-samples itself (S04L).
Today
Log
Community
Insights
Profile

S04 · The report builds itself Data generation, made visible: each row names its source — weight and bowl state off the scale, types and volumes off the camera, the gram split and table lookup computed in the app.

9:41
‹ Scan
Confirm foods
Allocated by volume shareΣ = 310 g ✓ scale
Chicken breast218 kcal
142 g
White rice132 kcal
99 g
Broccoli30 kcal
69 g
+ Add an item · search library
Rename, delete or nudge any item —
grams re-allocate so the total always equals 310 g.
Looks right
Today
Log
Community
Insights
Profile

S05 · Confirm The list arrives pre-filled from the sync — checking it is optional, correcting it is easy. Every gram is explainable: 142 + 99 + 69 = the 310 g the scale locked; edits re-balance, never re-total.

9:41
Lunch✓ scale-verified · 310 gCooked bowl
380 kcal
Protein43 g
Carbs38 g
Fat6 g
Chicken breast · 142 g218
White rice · 99 g132
Broccoli · 69 g30
Save to Today
Post to Community
Today
Log
Community
Insights
Profile

S06 · Result Traceable end to end: 310 g on the scale → three items → table lookup → 380 kcal. The bowl tag records which nutrition table produced it.

9:41
Saved to Lunch
380 kcal · scale-verified
🔥 12-day streak
BEST YET
Day 12 — her longest streak yet
Left today1,000 kcal · P 47 g
Back to Today
Check in to Community
Today
Log
Community
Insights
Profile

S07 · Saved The habit loop closes MyFitnessPal-style: streak, remaining budget, and a one-tap check-in that carries the photo + verified numbers to Community.

One meal, two truths — the bowl decides.

Linda preps her chicken the night before in the clay raw bowl, then serves it cooked in the white bowl. Water loss changes everything — so the fitted bowl switches which nutrition table the scale reads. Same food, honest numbers both times.

Raw bowl · clay matte
290 kcal
335 g on the scale · raw table
P 34 C 26 F 5
Cooked bowl · true-white
380 kcal
310 g on the scale · cooked table
P 43 C 38 F 6

When it isn't perfect.

The system fixes itself first. A human is only asked in when physics gets in the way — and the ask is always one concrete action.

S04L · auto-correct

It retries by itself

Steam glare on pass 1

Re-sampling and re-recognizing automatically… (2/3)

No buttons, no anxiety. The loop re-samples, re-tunes, re-verifies — Linda just sees a quiet banner, then the confirmed list.

S04h · manual help

Extreme cases only

Too packed to tell apart

Spread the items slightly apart, or wipe the lens — then rescan.

RescanEnter manually

Only two triggers exist: food too densely packed, or steam blocking the lens. Both come with one concrete fix and a rescan.

S05a · edit sheet

Fix a label in place

“White rice” → search

brown rice · fried rice · rice noodles…

Replace

Renaming swaps the lookup row; grams re-allocate to keep Σ = W. The scale's total is never editable — that's the whole point.

Beyond the log.

Three more tabs turn verified meals into a habit: proof to share, a week to read, and the hardware looked after.

9:41
Community
Following · For you
L
Lindajust now · day 12
380 kcal ✓
First week of real numbers done 💪
P 43C 38F 6· 310 g
♥ 24💬 6
W
Wei · lifter1h · meal-prep Sunday
5 × 640 kcal ✓
♥ 51💬 12
Today
Log
Community
Insights
Profile

S10 · Community Check-ins, not food porn: every card is a real logged meal — the auto-captured photo with its scale-verified numbers attached. Shared data stays honest by construction.

9:41
This week
Jul 8 – 14
CALORIES VS 1,900 GOAL
M
T
W
T
F
S
S
goal
5/7
days on target
96 g ↑
avg protein
+12 vs last wk
91%
scale-verified
COACH NOTE
Protein dips on workdays. Weigh a raw batch Sunday night — the clay bowl remembers it's raw.
Today
Log
Community
Insights
Profile

S08 · Insights The weekly report a beginner can actually read: days-on-target, protein trend, and one coach note — written from verified data, so the advice is worth following.

9:41
L
LindaFat loss · since Jul 2
Daily goalFat loss · steady
1,900 kcal · P 110 g ›
Weight check-inWeekly · Sunday
62.4 kg ↓ ›
MY SCALE
NutriScan ProFirmware 1.2.0 · up to date
86%
BowlsAuto-detected on fit
Cooked · Raw
How accuracy worksScale pins the weight · AI splits it
NutriScan app 1.4 · scale S/N NS-2841
Today
Log
Community
Insights
Profile

S09 · Profile & device Goals, weekly weigh-in, and the hardware page: battery, firmware, both bowls paired, and the one-line accuracy story — “the scale pins the weight, the AI splits it.”

Key copy · why each line exists

ScreenMain copyDesign intent
S01“88% scale-verified”The differentiator vs MyFitnessPal in one stat — most calorie apps can't know this number
S03“Press ● Measure on the scale”The hand-off is explicit and button-free in the app — capture belongs to hardware; the bowl chip shows raw/cooked is already known
S04“Generating report — Measure pressed”Data generation made visible: every number names its source (scale / camera / app math), killing the “is the AI guessing?” doubt
S05“Σ = 310 g ✓ scale”Edits re-balance, never re-total — the scale's number is law
S06“380 kcal · scale-verified · Cooked bowl”Result carries its provenance: weight source + which nutrition table
S07“12-day streak · check in”Habit loop borrowed from MyFitnessPal; proof-backed so sharing feels safe
S10“380 kcal ✓” on every cardA feed where numbers can be believed — the community moat