Every tile below is the real drawDragon from
build/dragon-draw.js, running live — same pose, same instant
(t = 3.7), same ground pair for all ten, so the only variable is the palette.
The contrast numbers are read back out of the rendered pixels, not asserted.
The hard constraint is the second column. Hạ Long's background runs from a
#0E1026 night sky to a #E5D6B8 noon bay and back down to
#082226 at the seabed — a palette has to survive a near-black ground and a
near-cream one. That is what forced the jade crossfade in Round 6, and it is what kills
most of the obvious answers here. Every palette therefore carries a Lo value
(over the dark) and a Hi value (over the pale) for its four body channels.
#5AC669, sun gold #DFB13B (the
signature accent), deep forest #3C5940, bronze #81692E, cream
#FFF0D1. There is no red in it. The gold/red option below pairs sun gold
with Hạ Long's own --vermilion #B5432E — a deliberate extension of the brand, not
a match to it. Only rồng ngọc is a straight brand read.#EEE9F6, a near-white. That is flagged again in full beside the pearl variant
below; it is the single most consequential cultural note in this round.#0E1026 → #2A2150 · alpha 1.00 · aura ON#E5D6B8 → #EDE7D8 · alpha 0.52 · aura gated OFF (tone < 0.92)The auspicious pairing, and the one Jammy named first. Sun gold #DFB13B is Studio Lucky Bamboo's real signature accent; the vermilion beside it is not — there is no red in the SLB palette. This borrows Hạ Long's own --vermilion #B5432E for the crest and the belly line, so the pairing is a deliberate extension of the brand, not a match to it. Over the night sky she is the brightest thing on the page. Over the pale bay the gold has to drop most of the way to bronze or it dissolves into cream — that fall is the whole risk of this palette.
The only palette here that is a straight read of the Studio Lucky Bamboo style guide: living green #5AC669 body, deep forest #3C5940 over the bay, sun gold #DFB13B crest and belly, cream #FFF0D1 on the fire-crest. Xanh/ngọc carries growth and new beginnings, and jade is literally what the Hạ Long dragons are said to have spat into the sea. Quietest brand-safe option; the least surprising.
The register the research explicitly points at: Vietnamese lacquer painting — deep grounds, gold leaf, restraint — and the furthest thing from Tết restaurant signage. The mass is dark; the drawing is gold. That inverts the usual light-body/dark-edge relationship on purpose, because it is how sơn mài actually reads. Strongest of the five over the pale bay by a wide margin. Weakest over the night sky, where a near-black body has almost nothing to push against and the gold rim is doing all the work — look hard at the left column before choosing it.
These are the exact values on the concept page today, kept so the refactor changes zero pixels until a palette is chosen. Elegant, and the one Jammy has already seen and liked. Flag, and it is a real one: in Vietnam trắng — white — is the colour of mourning, the inverse of Western usage, and this body is #EEE9F6, a near-white. Framed as mist or as the pearl she carries it is defensible; as the dragon's primary identity it is the one choice on this page a Vietnamese viewer might read as funereal. If it survives, it should survive named — sương, not white.
The one I am arguing for, and the argument is not chromatic. The other four are northern: sea jade, Hạ Long vermilion, imperial gold. Jammy is from Bến Tre, in the Cửu Long delta — nine dragons, for the river's nine mouths. This palette is that half of the country: Đông Sơn bronze (#81692E, which is also SLB's own bronze), brackish river green, and the pale silt-and-coconut light of the delta. Bronze as a colour only — the drum and the Lạc bird are national heritage and never become texture here. Practically it is also the safest of the five: it sits between the jade and the lacquer options in value, so it is the only palette that needs no rescue on either ground. Aesthetically it is the quietest. Choose it if you want her to be from somewhere rather than to be a colour.
Palette answers what colour is she; form answers what kind of
creature is she. Jammy's Round-8 verdict on the first form axis was “a slug swimming
around,” and he was right — every form shared one host-owned body tube and could only change
the decoration on it. Round 9 moved the geometry into the renderer: every form marked
v2 now carries its own body profile (wide skull, neck pinch, deep chest),
a real head — skull mass, open jaw with teeth, an eye with a pupil, nostril, brow — scales
that break the silhouette, jointed limbs with four-clawed paws, and tapered curling barbels.
All tiles sit on the tone 0 · night sky, because form is a silhouette question;
each row leads with a 2.6× head-detail tile. ribbon is the control and
still runs the Round-8 renderer byte-for-byte (proven by verify.html).
The horn rule, as history. Rounds 6–8 carried it as a gate: the strict
Lý form (1010–1225) is hornless and limbless, and stag horns or a fifth toe read as a Chinese
dragon. Jammy's 2026-08-02 call supersedes the gate — full anatomy on every rebuilt form,
visual impact wins — but the rule survives as a label: every card says its tradition out
loud, rồng Lý keeps the hornless mào lửa head (her limbs are the
later Trần/Lê evolution of the Vietnamese dragon, not a Chinese import), and claws are
four-toed everywhere — a fifth toe is still an error.
⚠ Deliberate departure from the Vietnamese form. Chinese · Sino-Vietnamese temple carving.
Deliberate departure — read this before picking it. The gold temple dragon from Jammy's first reference, and it is Chinese: branched antlers with real mass, a flame mane, the deepest chest of the set, plate armour that scallops the outline, four clawed limbs (four toes, never five) and two pairs of barbels. It is built because Jammy named the reference first and the call is his; it is labelled because a Vietnamese legend rendered as a Chinese dragon should never be chosen by accident. If the goal is ornateness with the nationality kept, rồng Lý gets there.
Tradition: Sino-Vietnamese festival dragon dance (múa rồng) — costume craft
The gold-and-vermilion parade head from Jammy's reference: horns AND a full fur ruff AND furry brows over a bulging painted eye, a wide toothy grin, two whisker pairs — maximal, the way the costume actually is — riding a banded cloth-hoop body, which is what a dance dragon's barrel really looks like. Built for the lion-dance gait: this is the form the choreography was made for.
Tradition: Vietnamese · Nguyễn dynasty, Huế imperial city
The gold statue from Huế's imperial city, from Jammy's reference — a real VIETNAMESE dragon with full anatomy and no Chinese import needed: dense overlapping plate armour, swept flame-horns and a flame mane, the deeply curled Nguyễn snout, the mào lửa kept, and the thickest paws of the set. If the goal is imperial weight with the nationality intact, this is the strongest claim in the lab.
Tradition: Vietnamese · Lý dynasty
The Round-8 dragon, unchanged — the control, and the only form still on the legacy renderer. A smooth tapered ribbon with soft dorsal scutes, the mào lửa fire-crest, trailing whiskers and a silk tail flare. Jammy's Round-8 verdict on this family: “a slug swimming around.” Every v2 row below is measured against this one — if a rebuilt form does not obviously beat it, the rebuild failed.
Tradition: Vietnamese · Lý/Trần → Lê lineage
The Vietnamese option, now with the anatomy it deserved: a real skull with the up-curled Lý snout, an open jaw, plate scales that break the outline, and a flame-scroll crest down every segment. Hornless, by the rule — the mào lửa fire-crest stays her defining mark. The four clawed limbs are the documented Trần/Lê-dynasty evolution of the Vietnamese dragon (four toes, never five), added per Jammy's 2026-08 full-anatomy call — said out loud here rather than smuggled in.
Tradition: Theravada · Thai / Lao / Khmer — ornamental influence
The temple-naga reference, finally drawn like it: a tiered crown stepping back off the skull, a hood fan flaring behind the head, a red open mouth with fangs, and the tall serrated comb running the full spine. Honest label ×2: the nāga is Theravada — Thai, Lao, Khmer — not Vietnamese; and a true nāga is limbless, so the four clawed limbs here are Jammy's full-anatomy call applied over the reference, not the reference itself.
Tradition: Vietnamese lacquer craft · Thai gold-leaf influence
Flat gold linework on a lacquer ground — no gradients, no aura, and now a real head and limbs rendered as crisp strokes, which is exactly what the Thai lacquer panels do: fully-drawn dragons in flat gold line. Scale crescents instead of filled plates, kranok scrolls trailing the body, and the longest, curliest barbels of the set (two pairs). Still the form canvas 2D renders natively well rather than approximately.
Tradition: Sino-Vietnamese festival lion dance (múa lân) — costume, not zoology
The lion-dance costume from Jammy's reference, worn by the serpentine body: a HUGE head (1.7×) with the bulging painted costume eye, thick furry brows, a blunt grinning muzzle with a full tooth row, a full fur ruff behind the head, and fur tufts streaming off the body instead of scales. Honest label: a real lân is a lion with a short two-dancer body — this is the lân treatment on the dragon; the true short-bodied lân dances beside her on the Hạ Long page itself (Round 10's companion). Round-motion 2026-08-06: ruffScale 1.35 added — the motion-clip frames show a denser, deeper fringe than the Round-10 default carried.
Measured, not asserted: each v2 profile's skull must beat its neck by ≥1.3× with the chest deeper still (the anti-slug geometry), and — normalized by the union of the two dragons' own footprints, so the number means "this fraction of her changed" — each v2 form must differ from ribbon by ≥40% and from every other v2 form by ≥20% (40, not 45: larger heads grow the union denominator and dilute the score).
WCAG 2.2 §1.4.11 puts the bar for a meaningful graphical object at 3:1. green clears it, amber reads but is carried by motion, red is a ghost. The last column is each palette's worst case — the number that actually decides it, because she has to work on every band of the page, not on her best one.
alpha 0.52, so less than half of every pixel of her is
actually her. Measured ceiling: —. A bay number close to that
ceiling is a good palette on a thin alpha; a bay number far below it is a bad palette. If the
chosen palette still reads thin over the bay, the lever is the 0.52 alpha floor in
dragonAlpha(), not the hex — and that is an approved Round-6 value, so it is
flagged here rather than quietly raised.| palette | night · body | night · crest | bay · body | bay · crest | worst |
|---|
"Iowan Old Style", on the record that it was
"chosen to hold Vietnamese diacritics." It holds the tone marks fine. It does not
hold the horn on ơ and ư — it stacks a floating hook above the letter
instead of attaching a stroke at its shoulder, so sơn renders as sớn,
Cửu Long as Cửu with the horn detached, and Âu Cơ as
Âu Cở. Measured, not eyeballed: in Iowan, ơ is exactly as wide as
o and 39 px taller — the signature of a stacked mark. In Palatino it is 8 px
wider; in Georgia, 24 px wider. That is the difference between a horn and a hook.
sơn mài, Cửu Long, Âu Cơ and sương — four
of the five new Vietnamese phrases contain a horn. Fix applied: the concept's
--display stack now leads with "Palatino", then
"Palatino Linotype" / "Book Antiqua", with Iowan Old Style demoted
behind them and Georgia as the cross-platform floor. All three of those draw the horn
correctly.Tone marks are graded on height (they sit above or below the letter); horns are graded on width (they attach at the shoulder and extend right). Grading horns on height is what would have let the broken face through.
| face | ơ · the horn | ư · the horn | tone marks | specimen |
|---|
and the concept's phrases, set in the corrected stack:
Hạ Long · Lạc Long Quân · Âu Cơ · Bến Tre · Cửu Long
bọc trăm trứng — con Rồng cháu Tiên · sơn mài · sương
Generated by dragon-lab/build/gen_dragon_lab.py from
build/palettes.py + build/dragon-draw.js. Re-run the generator
after any palette edit; the same build/_dragon-palettes.js block is what lives in
ha-long/index.html.