jammyphan.com · jar-design-lab · built 2026-07-28 · extends TSK-2026-0228 · prior rounds: jammy-phan-logo-lab · concept atlas
Every jammyphan.com concept now carries a jam jar, and the logo has spent seven rounds fitting one into an uppercase A — but the jar's own form has never been decided in one place. This page is that place. It exists so "what does the jar look like" stops being re-answered independently by the site concepts and the logo track.
The dual constraint, from TSK-2026-0228: one silhouette has to work free-standing as a jam jar with no context at all, and nested as the counter of an uppercase A in the wordmark. Every variation below is therefore shown twice, and measured.
Nothing here is hand-drawn. The geometry is generated from parameters in
build/jar.py, and every small-size image is a real raster (sharp, density 900)
shown at its true pixel grid — so when a mark dies at 16px you watch it die instead of
reading a claim that it survives.
Punching a jar into the A's solid mass leaves two ribs of ink between the counter and the letter's outer edges. Those ribs — not the jar — are what fails first. On a 512-unit canvas rendered at 16px, one pixel is 32 units, so a rib has to be roughly 50 units wide before it survives. Here is the same jar at seven counter widths.
Jar is 3.8px wide at 16px.
Jar is 3.4px wide at 16px.
Jar is 3.1px wide at 16px.
Jar is 2.8px wide at 16px.
Jar is 2.5px wide at 16px.
Jar is 2.2px wide at 16px.
Jar is 2.0px wide at 16px.
| counter width | narrowest rib | rib at 16px | jar at 16px | verdict |
|---|---|---|---|---|
| 122u | 25.8u | 0.81px | 3.8px | dies |
| 110u | 31.0u | 0.97px | 3.4px | dies |
| 100u | 35.3u | 1.1px | 3.1px | marginal |
| 90u | 39.7u | 1.24px | 2.8px | marginal |
| 80u | 44.0u | 1.37px | 2.5px | marginal |
| 71u | 47.9u | 1.5px | 2.2px | marginal |
| 64u | 50.9u | 1.59px | 2.0px | marginal |
Read the third and fourth columns against each other. That is the whole problem.
The two requirements move in opposite directions. Widen the counter so the jar carries real information and the A's ribs fall to 0.81px and alias into grey mush. Narrow it until the ribs survive (64u counter, 1.59px ribs) and the jar is 2.0px wide — a nick, carrying nothing. There is no width where both hold. This is not a drawing problem that a better curve fixes; it is arithmetic.
Seven rounds have circled this — Round 2 noted the jar is "inherently ~5% of the mark's width", Round 4 flagged that colour survives where outline dies, Round 6 added a mono twin per row. None of them put a number on it. The number is above.
So the answer is two marks, not one compromise. Which is what the resolution ladder below sets out — and it is good news, because each mark then gets to be excellent at its own job instead of mediocre at both.
Six numbers describe the silhouette. Everything in this lab is these six plus a lid style, a fill treatment and a contents choice.
| parameter | range explored | what it controls |
|---|---|---|
| neck_ratio | 0.55 – 0.92 | Mouth width over body width. The single biggest lever on "is this a jar or a glass". |
| height_ratio | 0.70 – 1.15 | Total height over body width. Below 1.0 reads preserves; above reads apothecary. |
| shoulder | 0.0 – 1.0 | Soft swell to crisp corner. Also the quietest way to buy back rib width. |
| neck_h | 0.14 | Neck height as a fraction of total. Held constant this round. |
| base_r | 0.18 | Base corner radius. Held constant — sharper reads industrial, rounder reads soft. |
| counter_w | 64 – 122u | Body width when nested in the A. The favicon-survival number. |
Left image in each pair is free-standing; right is the same silhouette nested in the A.
Band wide/low/square, disc narrow/high/round. The read comes from the delta between them, not from either alone.
One clean slab. Quietest, and the only lid that never muddies at 16px — but it also reads as a tin, not a preserve.
Most literal. The knurl ridges are the first detail to vanish; shown here specifically so you can watch them go.
The jar carried entirely by the shoulder. Cleanest letterform, weakest jar.
One parameter moved at a time, so the comparison means something.
Wider than tall. Reads as preserves — the round-2 finding that a squat jar reads 'jam' where a tall one reads 'test tube'.
The Round-6 proportion, kept as the reference point so this round is comparable rather than a restart.
Slides toward apothecary/test-tube. Also pushes the counter into the crossbar, which the generator has to compensate for.
A decanter shoulder. Strongest jar silhouette of the set, and the flare buys back a little stem width.
Nearly a tumbler. The shoulder disappears and with it most of the jar information.
A round swell instead of a corner. Widest surviving stem in the set — the curve pulls ink back into the ribs.
Lots of glass above the jam. Airy, but at small sizes the jar becomes a thin band of colour on a big empty shape.
Enough jam to carry colour, enough headspace to still read as a vessel.
Colour survives smallest here. The risk is it stops reading as a jar and starts reading as a filled rectangle.
A knocked-out wrap label. Adds a second horizontal — which competes with the fill line rather than reinforcing it.
The crushed-seed scatter is the Round-7 anti-boba fix, now a seeded generator rather than baked coordinates: independent rx/ry per speck, ratio never 1.0 (a circle reads as boba), rotation randomised, and reproducible from the seed.
Pure silhouette. Most typographically disciplined, and the only one that is honestly monochrome-native.
One flat mass under a sagging meniscus.
The Round-4 A8 move. Colour survives where drawn outline dies — but the pieces merge into one blob below ~32px.
The Round-7 anti-boba fix, now generated rather than baked: independent rx/ry, ratio never 1.0, seeded so it is reproducible.
Does the jar-profile counter actually earn its keep, or would a plain window plus lid hardware say the same thing? The middle card is the control.
Solid A, jar-shaped hole, no hardware. Pure negative space — the FedEx principle, the object built from the letter's own mass.
The A itself is the jar: apex wears the lid, counter is a neutral window. Control case for whether the jar-profile earns its keep.
Lid hardware AND jar-profile counter — what Rounds 6 and 7 shipped. Most information, most to lose at size.
What section 01 forces: each size gets the mark that can actually hold it.
Favicon, avatar. Filled silhouette only — no strokes, no knurl, no label. A 7-unit outline is 0.22px at this size; mass is the only thing that survives.
App icon, profile mark. Ribs are 1.61px at 32 — thin but holding. Below this it stops being an A.
Site header, resume, deck. The jar-in-A inside "J A MMY PHAN", where the counter has room to say jar and the letter still reads first.
One-colour contexts. Contents convert to even-odd knockouts so they punch through instead of vanishing into the fill.
Survives 16px intact. Lid, glass and jam band all still legible. This is the favicon.
Same silhouette, drawn as an outline. At 16px it is grey mush around a pink band — proof that the small cut has to be authored as mass, not reduced from the large one.
Excellent at 64px, holding at 32px, gone at 16px. Exactly as the arithmetic predicted.
One-colour cuts of both marks.
New this round. The pod wraps the jar for atmospheric entry across six site concepts, so its proportions get locked here rather than improvised six times. Built from the silhouette language Jammy referenced — sphere, circular porthole, lattice panels, thick hinged hatch, comet plume, crater crash with light shafting out of the opening — drawn as an original shape rather than a copy of a specific ship.
Jar visible through the porthole as the hatch seals. Porthole is 0.50R; the jar inside sits at 0.46R body width.
Plume streams up, behind a pod that is falling — a plume below reads as thrust, which is the opposite story. Compression glow rides the leading edge.
Hatch thrown open on its hinge, interior lit, light shafting up out of the opening. The jar leaves from here.
All seven site concepts draw in hand-rolled canvas 2D, not SVG. So the handoff is not a shared file — it is this ratio table, re-drawn at each concept's own scale and in its own materials (lacquer lid in Hạ Long, brass in Bamboo House, instrument-white in Stratos).
| property | value | why |
|---|---|---|
| neck_ratio | 0.75 | Shoulder reads at distance without the neck becoming a bottle. |
| height_ratio | 0.84 | Squat enough to read preserves, not apothecary. Round-2 finding, re-confirmed. |
| shoulder | 0.45 | A defined corner that still curves — the soft end buys rib width but blurs the jar. |
| neck_h | 0.14 | Enough neck to step, not enough to read as a bottle. |
| base_r | 0.18 | Rounded, not industrial. |
| lid | two-step mason | Band wide/low/square + disc narrow/high/round. Survives to 32px; the knurl variant does not. |
| fill | 0.62 | Colour carries small, headspace still reads as vessel. |
| contents | crushed seed | Specks at large sizes; they merge into one honest mass small, which is fine. |
| counter_w (in A) | 122u | Optimised for the wordmark, deliberately not for the favicon — that job goes to the solid mark. |
| jam | #E0316E → #8E1140 | The established jam palette. |
| seed specks | #96123F | Never black. Darker raspberry, or it reads as dirt. |
| pod porthole | 0.50R | Large enough that the jar inside is legible at 64px. |