
One coin size. One weight class. Four faces to know — Flying Eagle, Indian Head, Wheat, Lincoln. Numi v4 sorts every denomination at 250 coins/hour. Penny Hunter does one coin, and uses that freedom to go 10–20× faster.
A dedicated copper-era coin hunting machine. Not a general sorter — a specialist. It reads pennies, decides in one look whenever it can, and hands the rare ones (Flying Eagle, Indian Head, 1943 bronze, 1909-S VDB, 1955 DDO, 1969-S DDO, 1972 DDO, 1970-S small date, 1982-D small date copper, 1960-D small-date-over-large) to a human instead of guessing. Built from the Numi v4 playbook — its wins kept, its documented mistakes deleted.
Every penny that ever crosses the rail is one of these. Hover a coin to turn it over — the reverse is where a machine's second camera earns its keep.


1856 was pattern-only (~1,000 struck); the series ran three years. 88% copper, 12% nickel, 4.67 g — the weight alone gives it away.


The machine reads the date and mint and hands it to a human. Keys: 1877 · 1908-S · 1909-S, plus the 1873 open/closed 3.


The wheat back, with V.D.B. in tiny letters below the stalks — that's the 1909, and the S-mint version is the holy grail.


A magnet catches every steel cent in milliseconds. The coin it also finds: a magnetic-free 3.11 g 1943 — a $150,000 bronze error, caught by physics before any camera fires.
Coin photography: Smithsonian National Numismatic Collection (public domain); 1984 cent photos via Wikimedia Commons (CC BY-SA 3.0). Machine's-eye view — the stage sees these same faces, one every fraction of a second.
Numi v4 pays a generalist tax on every coin: four denominations, four sizes, four weights, four edge configurations, a full licensed catalogue in the prompt, and a lighting/camera geometry that has to work for a dime and a half dollar. Penny Hunter pays none of it.
19.05 mm. Bronze 3.11 g · zinc 2.50 g · steel 2.70 g. Every coin clears the same gap, lands at the same distance from the lens, and can be verified by a fixed weight window in milliseconds — composition becomes a sensor reading, not an AI question.
Numi's lighting swing problem (brightness varying ~10× because coins land at different distances) shrinks to one diameter. Locked focal distance, locked LED geometry, metered once, calibrated forever.
The AI only ever sees pennies: 4 series, 170 years, ~40 date/mint/variety combinations that matter. Smaller context = faster tokens, cheaper calls, fewer hallucinations — the model can hold the entire penny key-date table in-context instead of retrieving.
No bridging from mixed diameters, no mis-set rails, no funnel expecting dimes. A single-diameter wheel sorter (Numi v5's own plan) becomes trivial when every coin is the same disc.
The point isn't that pennies are easy. It's that the machine only has to be excellent at one thing — which is precisely the trade Numi, sorting everything, cannot make.
Justin Hinh's v4 is the honest engineering document this machine is built from — every number below is from his own build notes and logs. Where his lessons point, Penny Hunter moves.
| Numi v4 number | Reality | Penny Hunter answer |
|---|---|---|
| 250 coins/hour (~14 s/coin) | Started at 60 s/coin; weeks of work; gains came from overlapping steps | 3,000+/hr target — overlap everything, never stop for the AI |
| $0.25 / 1,000 coins | Gemini Flash vision call per coin, two images | ≤$0.05 / 1,000 — local net pre-screen, cloud only on the 2–5% that need it |
| 1 camera + flipper arm | Flipper is the #1 jam source; user attends ~hourly | 2 cameras, zero flippers — both faces shot at once |
| Laser rangefinder hopper | Stops feeding at 90 mm, restarts at 108 mm (hysteresis gap) | Keep the idea; hysteresis band avoids motor stutter |
| 19-LED ring, 5 MP, 1600×1200 | Brightness swings ~10× near-to-far; lettering blows out or dates vanish | Fixed diameter = one flash exposure, metered per station, polarized |
| Browser tab = master loop | "If the tab dies, the machine stops mid-coin" | Keep the dashboard; move the loop on-board with a watchdog |
| Funnel + un-jam shake routine | "Writing a function to un-jam your machine is a sign you designed the wrong machine" | Delete the funnel: wheel/rail feed, no bridging |
| Plain-English sort rules in a text file | Change behavior without touching the robot. "The single thing I am most convinced about after four versions." | Adopt wholesale — every penny rule below is written that way |
| Five bins: Dump / Save / Inspect / Misc / Retry | Carousel counts magnets to know position; stops if it loses count | Same logic + a dedicated Copper bin (pre-1982) and 1943-candidate bin |
Rules in plain English, verdict as JSON: series, year, mint mark, tags, action. No dataset, no training, no retraining. Add "pull 1943 steel" as a sentence.
Numi reloads the hopper while the AI is still thinking about the previous coin. Penny Hunter overlaps the next four: frame capture, weight read, AI call, and carousel pre-position all run behind the current coin.
Flipper jams, funnels bridge. Contact-free is the goal: coins ride a glass window over a camera, gravity and vibration do the transport.
Numi halts the coin under the lens. A going concern at 250/hr means every save: shoot on the fly at a target line — strobe + global-shutter trigger, no dwell time.
Small cents, 1856 → today. Anything that isn't 19 mm dies at the feed — a large cent or half cent physically cannot enter the machine, so geometry is already a free filter. What's left is four series and about forty decisions.
| Series | Years | Composition / weight | What matters |
|---|---|---|---|
| Flying Eagle | 1856–1858 | 88% Cu / 12% Ni — 4.67 g | 1856 (~$6,000+), 1858/7 overdate, 1857/8. Short series, tiny numbers — a single one pays for the machine. |
| Indian Head | 1859–1909 | 1859–64 copper-nickel 4.67 g · 1864–1909 bronze 3.11 g | Keys: 1877, 1873 (open/closed 3), 1869/9, 1908-S, 1909-S. Acorn/leaf reverse detail = grading driver. |
| Lincoln Wheat | 1909–1958 | Bronze 3.11 g · 1943 2.70 g steel · 1944–46 shell-case brass 3.11 g | 1909-S VDB, 1914-D, 1922 no-D, 1931-S, 1955 DDO, 1943 bronze. The whole reason to build this machine. |
| Lincoln Memorial | 1959–2008 | 1959–82 copper 3.11 g · 1982 split · 1982–2008 zinc 2.50 g | 1960 small date, 1960-D small-over-large, 1969-S DDO, 1970-S small date, 1972 DDO, 1982-D small-date copper. |
| Shield / 2009 reverses | 2009–today | Copper-plated zinc 2.50 g | Face value, with the rare exception of mint errors. The Dump bin lives here. |
A load cell plus a Hall-effect sensor resolves composition before the camera even fires. Vision then only has to read what sensors can't: date, mint mark, variety, condition.
| Reading | Weight | Magnet | Verdict |
|---|---|---|---|
| copper-nickel | 4.67 g | no | Flying Eagle · 1859–64 Indian Head |
| bronze | 3.11 g | no | Wheat · 1864–1909 Indian · Memorial ≤1982 — the copper bin |
| steel | 2.70 g | STICKS | 1943 zinc-steel — instantly identified, magnetically, 100% of the time |
| zinc | 2.50 g | no | 1982+ copper-plated zinc — face value |
The free jackpot: a coin dated 1943 that is not magnetic and weighs 3.11 g is a 1943 bronze cent — a $150,000–300,000 error coin. No AI, no photo, no doubt: if year==1943 and !magnetic and weight≈3.11 → SAVE. Weight and magnetism are the two facts the machine must trust over any image.
| Coin | Approx. survived | Value (circulated → MS) | How the machine catches it |
|---|---|---|---|
| 1943 bronze | ~15–20 known | $150k – $300k+ | weight + magnet (instant, certainty) |
| 1909-S VDB | 484,000 | $700 – $2,500+ | obverse date+S · reverse VDB letters |
| 1955 DDO | ~20,000 | $1,000 – $3,000+ | obverse doubling (date + LIBERTY) — deep-dive scan |
| 1969-S DDO | ~3,000 est. | $25,000 – $100,000+ | obverse doubling; must separate from machine doubling |
| 1982-D small date copper | unknown, handfuls | $10,000 – $20,000+ | weight says copper + vision says small date + D mint — 3-way AND |
| 1922 no-D (strong rev.) | unknown error | $500 – $12,000+ | date 1922 with no mint mark + reverse strength |
| 1914-D | 1,193,000 | $150 – $1,500+ | date + mint, trivial for the reader, brutal by eye at volume |
| 1972-P DDO | ~250,000 est. | $300 – $700+ | obverse doubling on LIBERTY/date |
| 1960-D small over large | part of 1.5 B | $100 – $400+ | date geometry — small digits punched over large |
| 1970-S small date (Hi-7) | fraction of 693 M | $30 – $60+ | 7 level with 9 and 0 (geometry, not reading) |
| 1960-P small date | ~2.07 M | $2 – $20 | digit height + spacing |
| 1877 / 1908-S / 1909-S Indian | 852k / 1.1M / 309k | $35 – $1,000+ | series + date + mint reads |
| 1856 Flying Eagle | ~1,000 struck | $6,000+ | series + date |
Worth keeping in a separate "Save" stream once the hero coins can't be missed: 1909 VDB (27.99 M, $10–15) · 1911-S ($35–50) · 1912-S ($20–30) · 1915-S ($15–25) · 1922-D ($15–25) · 1924-D ($30–50) · 1926-S ($10–20) · 1931-D ($5–10) · 1933-D ($3–7). Also, every copper penny 1909–1982 carries ~4.2¢ of copper melt — the Copper bin is never empty even on a bad day (see the Copper Stacker play).
Numi v4's most convincing idea: the sorting rules are not code. They're plain English in a text file, sent with every coin, editable without touching the robot. Everything below follows that pattern — and the penny version gets something Numi's doesn't have: sensor facts (weight, magnetism) passed in as ground truth, so the AI never has to guess composition from a photo.
ROLE
You are Penny Hunter's coin reader. You receive ONE coin: two photographs
(obverse and reverse, same coin) and two sensor readings taken with it.
Fill the JSON verdict. Nothing else. Small cents only, 1856 to today.
SENSOR FACTS — trust these over anything an image suggests
weight_g : measured, exact to 0.01 g
magnetic : true / false
Composition is decided by sensors, never by the photo:
4.67 g -> copper-nickel (Flying Eagle, 1859-1864 Indian)
3.11 g -> bronze / copper (Wheat, 1864-1909 Indian, Memorial <=1982)
2.70 g + magnetic -> zinc-coated STEEL (1943)
2.50 g -> copper-plated zinc (1982+) -> face value
READ THE OBVERSE
- Series: Flying Eagle / Indian Head / Lincoln Wheat / Lincoln Memorial / Shield
- Year: read all four digits. A digit you cannot read is NOT guessed.
- Mint mark: D or S beneath the date.
- LINCOLN VARIETIES THAT ARE OBVERSE-ONLY (all read in one look):
1955 doubled die obverse (date + LIBERTY, strong, visible by eye)
1969-S doubled die obverse (dramatic doubling, lettering + date)
1972/72-D doubled die obverse (LIBERTY and date)
1960/1960-D and 1970-S and 1982: small vs large date geometry -
small date: digits shorter, "7" sits LEVEL with the tops of 9 and 0;
large date: taller digits, "7" sits clearly lower.
DECIDE (first match wins)
1 SAVE - JACKPOT
1943 with magnetic=false and weight ~= 3.11 (1943 BRONZE)
1909-S VDB (obverse S + reverse shows V.D.B.)
1955 DDO / 1969-S DDO / 1972 DDO
1982-D small date COPPER (D + small-date geometry + 3.11 g)
1922 with no mint mark (strong reverse)
1856 Flying Eagle, 1877 / 1908-S / 1909-S Indian, 1914-D, 1931-S
2 SAVE - SEMI-KEY 1909 VDB, 1911-S, 1912-S, 1915-S, 1922-D, 1924-D,
1926-S, 1931-D, 1933-D, 1960 small date, 1970-S small date,
1960-D small-over-large
3 COPPER bronze by weight, no key/variety tags (feeds the copper stack)
4 INSPECT any doubling you are not certain is die doubling, any date
geometry you cannot resolve, repunched mint marks, die cracks,
anything you would not bet a dealer's money on
5 DUMP zinc, worn common bronze, damaged
6 MISC not a US small cent (foreign, token, washer, blank)
7 RETRY double-feed, overlapping coins, empty frame, or BOTH year
and mint mark unreadable
DOUBLING: TRUE vs MACHINE
TRUE die doubling: crisp, rounded, evenly spaced extra image with a
distinct "split" or notch; consistent direction across the design; the
1955 shows clean separated LIBERTY and date. A true variety.
MACHINE doubling: flat, shelf-like, single-direction smear that differs
letter to letter and never splits a serif. Never a variety.
If you cannot tell the two apart: INSPECT. Never Dump a coin you doubt.
ASYMMETRY RULE
Dumping a common penny costs one cent. Dumping a 1943 bronze costs
$150,000. Every threshold in this document leans toward INSPECT.
OUTPUT - JSON only, no prose:
{
"series": "", "year": 0, "mint": "" ,
"composition": "bronze|copper-nickel|steel|zinc",
"weight_g": 0.0, "magnetic": false,
"variety_tags": [],
"doubling": {"present": false, "kind": "none|die|machine", "evidence": ""},
"date_geometry": "small|large|n/a",
"quality": "junk|circulated|nice|unc",
"obverse_ok": true, "reverse_ok": true,
"confidence": 0.0,
"action": "Save|Copper|Inspect|Dump|Misc|Retry",
"bin": "save_jackpot|save_semikey|copper|inspect|dump|misc|retry|candidate_1943",
"reason": "one sentence, the way a dealer would say it"
}
You see ONE photograph: the obverse (heads side) of a US small cent,
filling the frame, lit evenly. You have 500 ms. Be a screen, not a grader.
Answer only these questions:
1 is_penny : is this a US small cent obverse? (token/blank/foreign = false)
2 series : flying_eagle | indian | wheat | memorial | shield | unreadable
3 year : four digits, or 0 if not cleanly readable
4 mint : D | S | none | unreadable
5 common : true ONLY IF (memorial OR shield) AND (zinc look) AND no
doubling visible AND date+mint cleanly read
6 escalate : true = NOT common, or any doubt
7 why : five words max
Output JSON only: {"is_penny":true,"series":"memorial","year":1987,"mint":"D",
"common":true,"escalate":false,"why":"zinc memorial common"}
Every "escalate: true" goes to PROMPT 01 (full two-side pass).
When unsure, escalate. A wrong "common" is the only unrecoverable error.
You are a variety-and-error specialist. You get the obverse crop of a penny
that already tripped a variety flag, plus its year and mint. Do not re-read
the date. Judge ONE question: is this a true die variety, machine doubling,
or neither?
Known US cents deaths to check, in this order:
1955 DDO - doubling on LIBERTY and the date, crisp and separated
1969-S DDO - dramatic doubling across lettering and date
1972 / 1972-D - LIBERTY and date doubled
1983 / 1984 - doubled die reverses (rare, subtle)
RPM - repunched mint marks: a second S or D shadowing the first
Small-over-large dates: 1960-D - small digits punched over large ones,
visible as extra curves beside the numerals
Die cracks / cuds / breaks: judged as damage candidates, never value alone
For each candidate you see, state the physical evidence: where the extra
image sits, whether it is separated or a flat shelf, whether serifs split.
"No doubling" is a perfectly good answer and preferred over a maybe.
Output JSON:
{"candidates":[{"name":"","evidence":"","verdict":"die|machine|none"}],
"best_verdict":"die|machine|none","confidence":0.0,
"action":"Save|Inspect|Dump","reason":""}
SENSOR BLOCK (measured, not estimated)
weight_g : {weight}
magnetic : {magnetic}
RULES - fixed, no judgement needed:
magnetic true and 2.60-2.80 g -> 1943 STEEL. Action: Dump (or Save,
steel 1943s are worth ~$0.50-1 in nice shape)
magnetic false and 3.00-3.25 g -> *** 1943 BRONZE *** Action: Save_Jackpot.
Stop the machine. Do not flip, drop,
or vibrate this coin again.
magnetic false and outside 3.00-3.25 g -> suspect miss-sort or foreign disc
-> Retry
magnetic true and outside 2.60-2.80 g -> Retry
Vision is used for exactly one confirmation: the obverse date reads 1943.
A non-magnetic ~3.11 g coin dated 1943 has never failed this test in the
history of the hobby. It is the highest-value, lowest-cost detection the
machine can make.
You are comparing the shape of a date, not reading it. The digits 1960,
1970 or 1982 are known. Decide the GEOMETRY.
Measurement instructions:
1 the last digit (7 for 1970, 0 for 1960/1982) - where is its top edge
relative to the tops of the two digits before it?
level with them -> SMALL DATE
clearly below them -> LARGE DATE
2 digit height: small dates are visibly shorter and the numerals sit
further from the rim. Large dates nearly touch the rim circle.
3 1960-D small-over-large: small numerals punched INTO a large-date
spacing - look for doubled curves or a "ghost" outline beside the digits.
Confidence: only answer "small" or "large" if the tops are visible; if the
7/0 top is worn flat, answer "unresolved" -> Inspect. There is no third try.
Output: {"year":1970,"geometry":"small|large|unresolved",
"level_with_neighbors":true,"evidence":"","confidence":0.0,
"action":"Save|Inspect"}
This penny is already flagged as a keeper (key date, wheat era, or early
ideal). One question: does this coin deserve a human's hands, or is it a
$0.10 semi-key in a $2 holder?
Judge on the ACTUAL surfaces in the photo:
full wheat lines visible? (wheat reverses: rows of stalks intact)
LIBERTY complete, all 7 letters, edges sharp?
date fully legible without magnification?
rim contact marks? deep bag marks? corrosion or cleaning (dull, smeared
luster)? verdigris (green)?
do the fields show original luster or full circulation wear?
Output:
{"wheat_lines":"full|partial|worn","liberty":"complete|partial|worn",
"date_legible":true,"luster":"full|partial|smeared|dull",
"flags":["cleaned","corroded","bent","holed","rim_damage"],
"band":"problem|AG-G|VG-F|VF-XF|AU|MS",
"action":"Save-Jackpot|Save-SemiKey|Copper|Inspect","reason":""}
Band rules:
AG-G date barely there, LIBERTY flat -> Copper, no premium
VG-F date clear, LIBERTY worn, wheat lines gone -> only if key/semi-key
VF-XF letters sharp, wheat lines present -> the money band
AU full luster, light rub on high points -> Save + grading candidate
MS full original luster, no wear -> Save both frames, log
problem any flag present -> the flag outranks the band, always
Be harsh. A circulated 1931-S at $10 that costs 90 seconds of a human's
attention is a loss. Only AU/MS-band coins with no flags get flagged for
grading submission — everyone else gets a copy of the photo and a price band.
Change the machine's mind with a sentence — pull 1943 steel tomorrow, stop saving 1931-D next week. No dataset, no retraining, no firmware.
Weight and magnetism go in as ground truth. The model never guesses composition from a colour it can't trust — this kills the entire class of "is it copper or zinc" errors, and with them, the 1982 confusion.
Unreadable date → Retry, never a guess. Every verdict logged (model, tokens, cost, ms, weight, image hashes) exactly as Numi logs his — the logs are how the prompt file gets better.
Numi v4's 15 s/coin is a serial machine: feed → push → photograph → flip → photograph → ask AI → wait → carousel. Nearly every step waits for the one before it. Penny Hunter's premise: nothing waits. Stations run concurrently on coins in flight, and the AI is never in the critical path.
| Station | Numi v4 (serial) | Penny Hunter (pipelined) | How |
|---|---|---|---|
| Hopper feed | ~1–2 s | ~300 ms/coin | wheel/rail feed, one-diameter coins, laser hysteresis (Numi's own trick) |
| Transport to stage | ~1 s | ~150 ms | coin rides the rail through the camera gate — never stops |
| Capture obverse | ~1.5 s (then flip ~2–3 s) | ~10 ms | strobe + global shutter, frozen in flight; no flip exists |
| Capture reverse | (same flip + 1.5 s) | ~10 ms, only when needed | 2nd camera behind the glass, fired only for reverse-critical coins |
| Weight + magnet | — | ~5 ms | load cell + Hall sensor on the entry rail — composition known before the photo is even decoded |
| Fast-lane AI | — | ~300 ms local | on-box VLM decides common zinc/memorial, no network |
| Master verdict | ~4–6 s (Gemini Flash) | off critical path | only 2–5% of coins; pipeline keeps feeding while it thinks (Numi proved the overlap works) |
| Sort | ~2 s carousel spin | ~250 ms | pre-positioned diverter, aimed while the AI is still deciding (default aim: Dump — the statistically safe bet) |
| Effective rate | ~250/hr | 3,000+/hr target | throughput = slowest station, not the sum — that's the whole trick |
Zinc reads 2.50 g, bronze 3.11 g, steel 2.70 g & magnetic, copper-nickel 4.67 g. On a modern pocket-change load, ~70% of coins are zinc and never need any AI at all — weight alone sends them to Dump. The machine's AI load collapses to the coins you actually care about.
He went 60 s → 15 s mostly by overlapping. Take it to the end: feed 4–6 coins in flight, aim the diverter early, let the cloud call resolve behind two more coins. The pipeline, not the model, sets the rate.
Numi's own verdict: dropping to one camera bought a flipper that touches every coin — "a bad trade". Two cameras facing each other across museum glass photograph both faces in one pass, and the flipper never exists.
Local VLM screens everything; cloud Flash judges the non-common; a frontier model is asked only about the ~1% that could be a $1,000+ variety. Fast lane for the many, careful lane for the few, two-model agreement for anything worth over $1,000.
| Decision | Why |
|---|---|
| Global shutter, not rolling | At conveyor speeds above ~0.2 m/s, rolling shutter skews a circular coin into an oval and smears serifs — exactly the detail variety detection lives on. Global-shutter sensors (~$150–400/ea machine-vision class) fire the whole frame at once. |
| Strobe, not continuous light | A 100 µs strobe freezes a coin moving 1 m/s to ~0.1 mm of motion blur, and it beats daylight wander and coin-to-coin brightness swing (Numi measured a ~10× swing) because every exposure is the same length, same energy, same geometry. |
| 5 MP for the hero shot — 1–2 MP is plenty for the screen | Numi photographed at 1600×1200 (2 MP). Doubling needs resolution; "is this a 1987 zinc" does not. Two-tier: cheap small frame for the fast lane, full-res frame kept for escalation. |
| Fixed focus, locked geometry | One coin diameter means one focal distance, forever. This is the single biggest image-quality gift the penny-only choice gives back. |
| Polarized, diffuse, calibrated | Numi v5's own plan — circular polarizers to kill glare off copper. On a one-size coin you can calibrate once per session with a reference penny and hold it. |
The brief is right to flag this: for pennies specifically, one side goes very far. The Lincoln obverse carries date, mint mark, series identity, both small/large-date geometries, and every famous doubled die (1955, 1969-S, 1972 — DDO means doubled die obverse, the doubling lives on the head side). The reverse is needed in far fewer cases than intuition suggests — and each of those cases is a known, date-gated trigger, not a guess.
1943 bronze (date + sensors) · 1914-D · 1931-S · 1970-S small date · 1972 DDO · 1969-S DDO · 1955 DDO · Indian Head keys (1887… 1877, 1908-S, 1909-S) · Flying Eagle (1856) · 1960 / 1960-D small date geometry. One obverse photo + weight + magnet covers all of it.
1909 (any mint): V.D.B. initials sit at the bottom of the reverse — the 1909-S VDB is a $700–2,500 coin and the 1909 VDB a $10–15 semi-key. 1922 (no mint mark): weak vs strong reverse decides the $500–12,000 "no-D" variety. 1983/84: doubled-die reverses. That's the entire mandatory list.
| Coin reading | Obverse alone? | Reverse needed? | Rule |
|---|---|---|---|
| Series + year + mint (any penny) | yes | no | date tells the era — Wheat ends 1958, Memorial begins 1959. No reverse required to know the series. |
| Composition (bronze / steel / zinc / Cu-Ni) | — | — | sensors only — never an image question |
| 1955 / 1969-S / 1972 DDO | yes | no | doubled-die obverse — the name says where it lives |
| Small vs large date (1960, 1960-D, 1970-S, 1982) | yes | no | date geometry only |
| 1909-S VDB · 1909 VDB | partial (1909 + S seen) | yes | trigger: year == 1909 → route to the two-camera gate |
| 1922 no-D strong reverse | partial (1922, no mint) | yes | trigger: year == 1922 and mint == none |
| 1983/84 doubled-die reverse | no | yes | trigger: year == 1983 or 1984 |
| Wheat vs Memorial era confirm | yes (year) | optional | reverse is a cross-check, never the primary read |
The architecture this produces — two lanes, one geometry:
One camera, one strobe, one weight+magnet read. Decides date, mint, series, doubling, geometry, composition — and either sends the coin to its bin, or flags it for Lane 2. No flip mechanism exists anywhere in the machine.
Only coins that trip a reverse trigger (1909, 1922, 1983–84, or any >$1,000 suspicion) divert onto the two-camera stage where museum glass holds the coin between two lenses and both faces are strobed at once. Both sides, one instant, zero moving parts touching the coin.
The payoff: Numi spends the flip on every coin; Penny Hunter spends it on a few per thousand. And because the second camera only fires on flagged coins, both the image bill and the pipeline stay cheap. The one-side idea isn't a compromise — it's the default, with the reverse as an exception handler.
Numi proves one model can read a coin. Penny Hunter's version: never spend a frontier-model call on a 1987 zinc. Layer the stack so cost and latency track how much a coin is worth, not how many coins there are.
| Layer | 2026 model class | Latency | Cost / 1,000 coins | Job |
|---|---|---|---|---|
| 0 · OCR gate | tiny local CNN (ONNX / YOLO-class), trained on the machine's own logged crops | <10 ms | $0 | is-this-a-penny, series, raw date digits — the deterministic stuff AI keeps being asked to do |
| 1 · Fast-lane screen | small local VLM (Qwen-VL-7B / SmolVLM / Moondream class, quantized, on-board NPU or GPU) | 150–400 ms | $0 | Prompt 02: kill common zinc/memorials with one obverse look, no network |
| 2 · Master verdict | Gemini Flash-class / GPT-5-mini-class vision | 1–3 s off critical path | ~$0.03 | Prompt 01 on the 2–5% that aren't common (Numi's measured cost with every coin reaching the cloud: $0.25/1,000) |
| 3 · Variety deep-dive | frontier reasoning model (Pro-class / GPT-5 / Sonnet-class) | 3–10 s off path | ~$0.01 | Prompt 03 on the <1% that could be a $1,000+ variety — cropped, magnified, narrow question |
| 4 · Second opinion | a different vendor's model, same crop | seconds | pennies | any verdict over $1,000 needs two independent models agreeing, else → Inspect. Cheap insurance on a $150k coin. |
The arithmetic: cloud image input on the Flash tier runs roughly $0.0003/image (≈1,100 tokens per image at ~$0.30/M) — call it $0.0007 per coin for a two-image verdict. Numi's $0.25 per 1,000 is that math with the AI seeing every coin. Escalating only 2–5% lands the same machine at ≤$0.05 per 1,000 — 5× cheaper — while spending more AI thought on the coins that deserve it.
Model names rotate every few months; the architecture doesn't. Prompts talk about coin reading, not about a specific model. Swapping the escalation model is a one-line config change.
Per-coin calls aren't required to be serial — verdicts for a handful of coins can batch into one request because the pipeline keeps feeding regardless. Rate is set by the slowest station, never by an API call.
Numi logged model, tokens, cost, and response time per coin. Penny Hunter logs verdicts plus human confirmations — every confirmed reading becomes a labeled sample that sharpens the local net, pushing more coins into the free lane.
Open questions and candidate tricks — some are a sentence in the rule file, some are a station on the rail.
A Hall sensor and load cell in the entry rail catch 1943 steel, 1944 steel errors, and every zinc coin before any camera fires. Costs ~$30 of parts. Immediate: a magnetic 1944–46 penny is a $50,000+ rarity — the magnet finds it without a single pixel.
Coins reading 2.50 g (zinc) get a mechanical bypass: no photo, no AI, straight to Dump. On modern pocket change that's most of the load, and the machine's effective rate on "real" pennies multiplies accordingly.
Small-vs-large date, rim distance, and doubling candidates are measurable with OpenCV template/edge math in ~5 ms. Use AI only when the measurement is ambiguous — saves the most common escalation.
The reverse camera fires only when the obverse verdict is uncertain or date-gated (1909, 1922, 1992). Everything else never sees a second lens.
1992 close-AM / wide-AM lives on the reverse (AM in AMERICA). Same for 1998–2000 wide AM. One more date-gated reverse rule — cheap to add to the prompt file, worth $3,000+ when it hits.
Two laser profile lines across the rail measure coin flatness; warped or cupped pennies skip the camera and go to Misc — no AI time wasted on coins that can't be graded anyway.
Numi's own v5 plan: coins carried around a rotating disc. With one coin diameter it's trivially easy, and bridging — Numi's funnel failure — cannot happen.
The end state: coins never stop, a beam-break fires the strobe, the strobe timestamps the frame, the carousel is aimed before the coin arrives. The machine's speed is then bounded only by the rail and the diverter.
Bank rolls at face (see the bank-roll playbook), Coinstar/bank reject bins, estate jars. Penny Hunter is the high-volume arm of the same hunt — the Copper bin it fills is exactly what Copper Stacker turns into a position.
Sorting and holding copper cents is legal; melting them is not (31 CFR Part 82). Penny Hunter's Copper bin feeds storage, exactly as stated on the Copper Stacker site. No exceptions.
Same machine, different rule files: "bank rolls" bias → save every wheat; "estate jar" bias → save every pre-1959 and all Indian Heads; "show table" mode → raise Inspect threshold and lower Dump aggression. Behavior in text files, no code.
The two rare series are worth a dedicated "never dump, always inspect" posture — the machine should treat any pre-1859 date as automatic Save/Inspect regardless of condition.
Open questions for the next pass: the exact AI-vs-physics split for the 1982 transition (copper reading + small-date geometry must AND correctly); the cost of museum-glass two-sided capture vs a simple passive mirror for the gated lane; whether the fast lane should run at 2 MP (cheap) with a full-res capture kept alongside for escalation — likely yes; and the sourcing math on how many pennies/hour the machine must sort to fund itself against average finds.
| Numi v4 (Hinh) | RoboCoin | PENNY HUNTER (target) | |
|---|---|---|---|
| Scope | all US denominations | pennies–quarters, 4 denom | small cents only, 1856→present |
| Speed | ~250/hr (14 s/coin) | <1 s/coin claim | 3,000+/hr |
| AI cost | $0.25 / 1,000 | cloud per coin | ≤$0.05 / 1,000 |
| Cameras | 1 + flipper arm | multi-cam | 2 (obverse always, reverse on trigger) |
| Sensors | laser rangefinder | — | weight ±0.01 g · Hall magnetometer · laser rangefinder |
| Known weak points | flipper jams ~hourly, funnel bridging, 10× lighting swing | false positives, dirty coin → verify bin | engineered out by design: no part touches a coin; one coin diameter; strobed, calibrated light |
| Rules engine | plain-English text file | trained nets | plain-English text file — this is the right idea and it's kept |
| Bins | Dump/Save/Inspect/Misc/Retry | high/low/verify/reject | Dump · Copper · Save-SemiKey · Save-Jackpot · Inspect · Misc · Retry · 1943-candidate |
Hand-feed coins onto a lit stage: one global-shutter camera, a load cell, a magnet. Run Prompt 01 + the local screen. Success = the AI's verdicts match a human's on 1,000 real pennies. Nothing moves yet.
Wheel feed, weigh-and-magnet gate, strobe capture on the fly, diverter with pre-aim. Still one camera and one lane — but the coin never stops.
Gated reverse lane, tiered AI with a local VLM, the dashboards, and the log-driven data flywheel that keeps shrinking the escalation rate.
The premise in one line: Numi sorts every coin and pays for it with a flipper, a funnel, and a Flash call on a 1987 zinc. Penny Hunter knows its coin, weighs it before it photographs it, looks at one side until it needs the other, and spends its AI only where the money is. That's the whole machine.
Companion pieces: Coin Hunter (mydestiny.com/coin-hunter) — the general AI rarity-scanner play · Copper Stacker (mydestiny.com/copper-stacker) — what the Copper bin becomes · primary reference: Justin Hinh's Numi v4 build notes (justinhinh.webflow.io/projects/numi-v4).
Grading is free once the machine is already photographing every coin. The same frame that says 1931-S also says how much of it is left — and that's the difference between a $10 coin and a $60 one. Penny Hunter bands the condition, flags the value-killers, and tells the user which coins deserve a human's eyes or a slab.
| Band | What the machine sees | What happens |
|---|---|---|
| Damaged / problem | holes, bends, corrosion, verdigris, harsh cleaning (dull smeared luster), rim dents | Problem bin regardless of date — flagged cleaned / corroded / damaged so nobody overpays for it |
| About Good–Good (AG–G) | date barely there, LIBERTY flat, outline only | Copper bin (melt-band), no premium |
| Very Good–Fine (VG–F) | date clear, LIBERTY readable but worn, wheat lines mostly gone | Save only if key/semi-key date; value near its circulated floor |
| Very Fine–Extremely Fine (VF–XF) | all letters sharp, wheat lines present, moderate surface wear, some luster in the field | Real money band — key dates here are the ones worth flipping |
| About Uncirculated (AU) | full luster with light rub on the high points, sharp details | Save + grading-candidate flag |
| Uncirculated (MS) | full original luster, no wear, only bag marks | Save, photograph both sides, log the frame for submission |
Wear is judged on the three places Lincoln cents wear first — wheat lines, LIBERTY, the date — plus a quantitative luster reading (specular reflection variance across the field). Humans eyeball this; the machine meters it the same way every time, on every coin.
A 1909-S VDB with a hole is worth a fraction of a good one — so cleaning, corrosion, bends and holes are detected and stamped on the record. The grade never gets reported without its flags attached.
A photo reads surfaces, not the whole coin — so the machine bands (G / F / XF / AU / MS60-ish) and routes the top band to a human or a slab. It is a triage tool: consistent, tireless, and honest about what it can't see.
Where it pays off: the value math stops being flat. A run's report can price finds by band × key-date multiplier instead of assuming everything is a dug-up $1 coin — and the AU/MS candidates get pulled out of the copper bin before they're weighted as metal. Same 3,000 coins an hour, a truthful number at the end of the night. This runs on Prompt 06, extended with the band scale and problem flags.
Penny Hunter isn't sold to mints or banks. It's sold to anyone with a jar problem — and it's built to be watched, not tolerated. Set it running on the kitchen table, walk away, and let it chime when something good shows up.
The screen is a living dashboard: coins ticking past, bin counts climbing, the LED ring going copper for copper, green for save, gold for jackpot. Sound prompts you can hear from the next room — a soft clink per coin, a cash-register chime when a wheat drops, a full celebration when a key date does.
Find a rare one and the machine stops, lights up, and makes sure you know — on screen and out loud. Otherwise: run it in the background, come back to a progress report and a fuller copper bin.
Hourly and nightly progress reports: coins sorted, copper weight stacked, wheats and key dates found, estimated value recovered, cost of the run. The machine keeps score so the user doesn't have to.
No babysitting required — the pipeline never stops for the AI, nothing touches the coin, and the Retry bin quietly catches the machine's own mistakes. Come back to a report, not a jam.
The pitch writes itself: the AI does the boring 99.9%, and the lights and sounds make the 0.1% feel like what it is — a find. That's what turns a sorter into something people run on purpose.