AI capabilities
Food photos, labels, and body data — read by AI, confirmed by you.
CaloriePilot’s assistant turns meal photos, nutrition labels, and body-measurement screenshots into structured records you can actually use. You review every draft before anything is saved. Here is what it can do, and how it behaves in real situations.
Capabilities
What the AI can do
| Capabilities | What it does |
|---|
| Photo meal recognition | Splits a plate into foods, estimates portions and nutrition as ranges, merges multiple angles of one item, and keeps each item tied to the photo it came from. |
|---|
| Nutrition label scanner | Reads per-100 g, per-100 ml, and per-serving tables, converts kilojoules to calories, and works out whole packages on request. |
|---|
| Body measurement parsing | Turns a scale screenshot into weight, body fat, and other metrics, with automatic unit conversion and confirmed-values-only saving. |
|---|
| Natural-language logging | Describe a meal or a measurement in a sentence and the assistant prepares a structured draft — dates, meal type, and units resolved for you. |
|---|
Photo meal recognition
Meal photo recognition
Attach up to four photos and the assistant looks at the whole meal at once. It lists each food on the plate, estimates portions and calories as a range, and matches what it can to your food library — the rest is kept as a clearly labelled estimate. Every result is a draft you review before it is saved.
A single message can mix different subjects: a packaged product and its nutrition table, two angles of the same item, or two separate plates from one meal. The assistant figures out what belongs together instead of guessing.
At a glance- Up to four photos are understood together as one meal.
- Each food gets its own estimate — nothing is lumped into a single total.
- Recognised foods use your food library’s nutrition; unrecognised foods stay as a labelled estimate with a calorie range.
- If you refer back to a photo you already sent, it is reused instantly without a second analysis.
A clear plate becomes structured foods
Snap a clear plate and the assistant lists the foods on it, with an estimated portion and a calorie range for each. Watermarks and timestamps printed in the photo are ignored — they never become your meal time or your record.
What it does
- Each food on the plate is identified individually.
- Each one gets an estimated portion and a calorie and macro range.
- Foods are matched to your library where possible, otherwise kept as a clearly labelled estimate.
- The answer stays read-only unless you ask to record it — then it becomes a draft for your review.
Example
You sendHelp me see what this is and estimate the nutrition.
AI respondsRecognises the plate as pasta with meat, garlic, and garnish; estimates portions and a calorie range; ignores the photo timestamp.
You can rely on
- Read-only by default — asking "what is this?" never saves anything.
- The photo timestamp is not used as your meal time.
- Estimates are shown as ranges, not as precise measurements.
A mixed meal is split and totalled
Staples, protein, eggs, and drinks in one frame are separated into individual items instead of being collapsed into one total. Zero-calorie items such as bottled water are handled correctly.
What it does
- Each distinct food is listed as its own item — never a single plate total.
- Each item gets its own estimated portion and nutrition range.
- Each item is matched to the library or kept as a labelled estimate.
- The draft lists every item separately, so you can correct one without touching the others.
Example
You sendThis was my lunch. Help me log it.
AI respondsSeparates the rice dish, fried egg, and pork from the water; totals each item’s nutrition; treats the water as zero calories; prepares a draft for your review.
You can rely on
- One item per distinct food, never a single collapsed total.
- Zero-calorie drinks are recorded without fake calories.
- Each item can be corrected independently before saving.
Two angles of one item merge into one entry
Front and back photos of the same package are recognised as the same item and merged into a single entry. The back label fills in the nutrition facts, and the two photos are never counted as two servings.
What it does
- Photos of the same product are recognised as one item.
- The product name, the amount, and the nutrition table from different photos are combined as consistent facts.
- Multiple views of the same food are merged, keeping the most reliable estimate.
- A single-item package with a printed amount is used directly when you say "one of these".
Example
You sendThese two photos are the same thing. What’s the nutrition?
AI respondsMerges both angles into one item; uses the back label for serving size and nutrition; never counts the two photos as two servings.
You can rely on
- Multiple angles of one item are merged, not double-counted.
- Conflicting details are kept separate with the uncertainty described.
- The printed amount (grams or millilitres) is respected.
A blurry photo gets an honest answer
When a photo is too unclear to identify precisely, the assistant says so and asks for more detail instead of inventing exact numbers. Uncertainty is stated plainly, not hidden.
What it does
- The result includes how confident the assistant is and what is unclear.
- Low-confidence items are presented with a range and an explicit note on what cannot be confirmed.
- If you ask to record it, the assistant asks for the missing meal, portion, or a clearer photo first.
Example
You sendI ate this. Help me log it.
AI respondsGives a low-confidence read, states clearly what it cannot confirm, and asks for the missing meal, portion, or a clearer photo before building a draft.
You can rely on
- Uncertainty is stated explicitly, never hidden.
- Blurry content is never presented as precise nutrition.
- Missing details are asked for rather than guessed.
Non-food photos are clarified, not logged
A photo that is not food — such as a smartwatch sleep screen — is recognised for what it is and is never turned into a meal record. The assistant clarifies rather than forcing a match.
What it does
- The photo is recognised as something other than food.
- Because no food is found, no meal draft is produced.
- The assistant explains what it sees and asks what you would like to do.
Example
You sendI ate this today. Help me log it.
AI respondsExplains the image shows a sleep screen, not food; does not convert sleep data into calories or create a meal record.
You can rely on
- Non-food content is never forced into a meal record.
- Unrelated numbers (sleep, steps) are never treated as calories or weight.
Composite dishes stay whole
A burger with lettuce is matched as a burger — never collapsed to a single ingredient like "lettuce". When a match looks wrong, it is rejected rather than accepted.
What it does
- Each recognised food is matched against your food library by name.
- A match is only accepted when it is genuinely the same food.
- A dish with no library match keeps its full, understandable name as a labelled estimate.
- Each item keeps the photo it actually came from.
Example
You sendThis is my lunch. Log it but don’t save yet.
AI respondsDistinguishes the beef burger and fries from the fish salad; matches whole dishes to sensible entries; keeps the source photo on every item.
You can rely on
- A burger is never reduced to "lettuce" just because the name contains it.
- Implausible matches are rejected rather than accepted.
- Unmatched dishes keep a full name and a labelled estimate.
Every item keeps its own photo
When one meal is spread across two photos, each food is linked only to the picture where it actually appears. If the link is missing, the thumbnail is simply not shown — it is never assumed to be the first photo.
What it does
- Each food is tied to the exact photo or photos where it is visible.
- A food that appears in several photos keeps several; a food in one photo keeps exactly one.
- The photo link is carried from the draft into the saved record.
- When the link is unavailable, no thumbnail is shown rather than the wrong one.
Example
You sendThese are two photos of the same lunch. Log them.
AI respondsLinks the burger and fries to the first photo and the fish salad to the second; preserves the association after you save.
You can rely on
- Each item’s photo is preserved in the draft and the saved record.
- No silent assumption of "the first photo" when the link is missing.
- Adjusting portions later updates the saved range without re-reading the image.
Nutrition label scanner
Nutrition label scanner
A nutrition label is read carefully and checked before it can become a record. The assistant tells "per 100 g", "per 100 ml", and "per serving" tables apart, converts kilojoules to calories, and only works out a whole package when you explicitly ask.
If any part of the label is unclear or contradictory, the assistant says so and asks — it never fills the gaps with made-up numbers.
At a glance- Per-100 g, per-100 ml, and per-serving labels are all supported.
- Kilojoules are converted to calories automatically.
- A whole package or several servings are calculated only when you ask.
- Unreadable or contradictory labels are flagged, never guessed.
Per-100g facts, read and converted
A clear nutrition label is read field-by-field and energy is converted from kilojoules to calories automatically. The result is marked as a verified label, not a guess.
What it does
- The table header is located and every nutrient is read from the same column.
- Each value is checked against the label before it is marked verified.
- Energy shown only in kilojoules is converted to calories.
- The verified values can become a draft once you tell it how much you had.
Example
You sendScan this label and list the per-100g nutrition.
AI respondsReads energy 572 kJ as about 137 kcal plus protein, fat, carbs, and sodium; keeps it read-only and marks the label as verified.
You can rely on
- Values are checked against the table they came from.
- Kilojoules and calories are cross-checked for consistency.
- The label stays read-only until you provide an amount and confirm.
Whole-package math, only on request
Per-100 g values are never silently treated as the whole package. A whole-package total is worked out only when you explicitly ask, and only from an amount printed on the package.
What it does
- A serving count you provide is honoured only when the package shows a per-serving amount.
- The serving size is multiplied by the count and the nutrition scaled accordingly.
- The count is kept with the draft and the saved record.
- If the amount you state conflicts with the package, the assistant flags it instead of guessing.
Example
You sendScan this and calculate the whole package.
AI respondsDistinguishes "per 100 g" from the package’s net content; works out the whole-package total and explains the math.
You can rely on
- No implicit whole-package calculation from a per-100 g label.
- Serving counts are honoured only with a printed per-serving size.
- Conflicting amounts are flagged, not silently resolved.
Per-serving labels are respected
Labels based on "per serving" are kept on that basis and never misread as per-100 g. Multiple servings scale proportionally, and a single item with a printed amount is recorded at that amount.
What it does
- A label is read as per-serving only when it actually says so.
- A serving with a printed amount (grams or millilitres) is kept consistent.
- One serving is recorded at its printed size; two servings double the weight and nutrition.
- A per-serving label without a printed amount is never faked into precise data.
Example
You sendI had one serving. Log it but don’t save.
AI respondsKeeps one box at 170 g / 220 kcal; two servings become 340 g / 440 kcal; never misinterprets a per-serving label as per-100 g.
You can rely on
- Per-serving and per-100 g labels are never confused.
- Serving scaling is proportional and consistent.
- A per-serving label without a printed size is never treated as precise.
Incomplete labels trigger questions
When fields, units, or the table basis are missing or obscured, the assistant names exactly what is missing instead of piecing together guesses.
What it does
- The label is checked for a clear table basis and readable values.
- Missing required values (protein, carbs, fat, or energy) are caught.
- The assistant tells you what it cannot confirm and asks for what is missing.
- No precise draft is produced from an unverifiable label.
Example
You sendRead this label; if it’s incomplete, tell me what’s missing.
AI respondsFlags what cannot be verified and asks for the serving basis, weight, or missing fields before producing any precise values.
You can rely on
- Unverifiable labels never produce precise records.
- Missing information is named specifically, not glossed over.
- The assistant asks instead of guessing.
Unreadable labels never fabricate data
A blurred label, a mixed-column table, or a label whose kilojoule and calorie values contradict each other is flagged. The assistant gives a conservative answer with explicit uncertainty rather than fake precision.
What it does
- A label that is not clearly readable is flagged.
- A label whose energy values contradict each other is flagged.
- Energy is compared against the three macronutrients; a mismatch is flagged.
- The assistant reports what is unverifiable and asks for a clearer photo or the missing details.
Example
You sendI ate this. Log it but don’t save.
AI respondsGives a limited read, states what it cannot confirm, and either asks for missing details or keeps an estimate clearly marked as uncertain.
You can rely on
- Contradictory energy or macro values are never accepted.
- Mixed or unclear table columns are rejected.
- No precise values are invented for an unreadable label.
Missing product names get a neutral placeholder
When the nutrition table is readable but the product name is cut off, the assistant uses an editable neutral placeholder such as "Nutrition-label food" instead of inventing a brand or saving a sentence as the name.
What it does
- The product name is taken only from text actually visible on the package.
- When no name is legible, a neutral placeholder is used.
- The placeholder is editable, so you can set the real name before saving.
- A cancelled draft can be recreated with a corrected name without re-reading the photo.
Example
You sendScan this label; if the product name is unclear, use a neutral name.
AI respondsExtracts the nutrition fields and uses an editable neutral placeholder instead of guessing a brand or saving a full sentence as the name.
You can rely on
- Product names come only from visible text.
- A missing name becomes a neutral, editable placeholder.
- The full description is never saved as the food name.
Body measurement parsing
Body measurement parsing
A body-fat scale screenshot is turned into weight, body fat, and the other numbers shown on screen. The app converts units for you, and only records what is actually visible.
If a number is blurred, covered, or missing, it is left blank and the assistant asks for it — it is never worked out backwards from another metric.
At a glance- Weight, body fat, and other measurements are read from the screen.
- Jin (斤) and pounds are converted to kilograms automatically.
- Only values actually visible on screen are saved.
- Missing numbers are asked for, never reverse-engineered.
A scale screenshot becomes structured metrics
A full body-fat scale screen is parsed into weight, body fat, and the other metrics shown. The app converts units for you, so you never have to do the math.
What it does
- The raw weight number and its unit (kg, jin, or lb) are read exactly as printed.
- Jin and pounds are converted to kilograms automatically.
- Body fat and the other visible metrics are read into their own fields.
- A draft is created only when you explicitly ask to record.
Example
You sendThis is my scale screenshot. Show me weight and body fat.
AI respondsConverts 162.4 jin to about 81.2 kg and reads 23.6% as body fat; keeps BMI, muscle mass, and other metrics in their own fields.
You can rely on
- Units are converted for you automatically.
- BMI, muscle mass, and other metrics are never mistaken for body weight.
- If no unit is stated, the assistant asks instead of guessing.
Partial screenshots save only what is confirmed
If a key value is hidden, it is left blank rather than worked out backwards from BMI, muscle mass, or another metric. The assistant records only what is actually visible.
What it does
- Any field that is blurred, covered, or missing is left blank.
- The assistant explicitly lists the missing fields.
- Only the confirmed fields go into the draft.
- Weight is never derived from BMI, muscle mass, body water, or bone mass.
Example
You sendThis is an incomplete scale screenshot. Record only what you can confirm.
AI respondsReads the visible date and body fat but leaves weight empty and asks for it; never derives weight from BMI or muscle mass.
You can rely on
- Only visible, confirmed values are saved.
- Missing weight is left blank, never worked out backwards.
- Missing fields are listed clearly.
Privacy and trust
Smart enough to help. Careful enough to ask first.
The assistant is built around a simple rule: it may prepare, but it never commits until you confirm. Everything below is designed to keep your data yours and your numbers honest.
✓You approve before anything is saved
Every change starts as a draft. Nothing is written to your account until you tap approve, and you can cancel at any point before then.
👁️Read-only by default
Questions like "what is this?" analyse and explain without saving anything. A draft is only created when you explicitly ask to record.
∅No made-up numbers
Unreadable, contradictory, or missing information is flagged and asked about — never filled in with a guess. You will never be handed a number the AI invented.
🔒Your data stays private
Your photos and records are kept private to your account, and they are never used to train models. Everything is isolated to you.
🛡️Can’t be tricked by hidden text
Text hidden inside a photo is treated as content to describe, never as an instruction. It cannot make the assistant do anything you did not ask for.
⚓Answers you can trust
When the assistant quotes your numbers or trends, it is based on your own records — not a guess. If it is not sure, it says so.
Questions and answers
Frequently asked questions
How does CaloriePilot count calories from a photo?+
The assistant looks at the whole plate, lists each food, and estimates each one’s portion and nutrition as a range. Recognised foods use your food library’s data; the rest are kept as clearly labelled estimates. Every result is a draft you confirm before it is saved.
Can CaloriePilot scan nutrition labels?+
Yes. It reads per-100 g, per-100 ml, and per-serving labels, converts kilojoules to calories, and verifies the numbers before they can become a record. Incomplete or contradictory labels are flagged rather than guessed.
What happens if my photo is blurry or unclear?+
The assistant tells you what it cannot confirm and asks for a clearer photo, the missing portion, or the meal — instead of inventing precise numbers. Uncertainty is always stated plainly.
Does the AI save data automatically?+
No. Every change starts as a draft. Read-only questions never save anything, and you confirm or cancel before a draft is written to your account.
Can it read a body-fat scale screenshot?+
Yes. It reads weight, body fat, and the other metrics shown on screen, converts jin and pounds to kilograms automatically, and only saves the values actually visible — missing values are never worked out backwards.
Which image formats are supported?+
JPG, PNG, WebP, and HEIC photos can be uploaded, with up to four images per message. Invalid or corrupted files are rejected with a clear, friendly message.
Does the AI ever guess numbers it cannot read?+
No. Unreadable, contradictory, or missing values are flagged, asked about, or left blank. The assistant never fabricates data to complete a record.