# Art direction — finding Spellgrove's vibe

## overview.md
```yaml
id: art-direction
title: Art direction — finding Spellgrove's vibe
area: design
summary: Deciding what Spellgrove looks and feels like — the bodies, the light, the air, the things and their colours — and writing it down so every asset, generated or drawn, is judged against the same page.
repo: land-of-lor
depends_on: ["graphics-tiers","character-composition-poc","naming-and-brand"]
parked: false
standing: 2026-10-21: the characters are the DEFAULT (simple bodies only behind dev mode), the bodies inside the native builds, sign-up picks a character, every body's hands and arms relaxed by tools/bodies/hands.py (no credits), Rah a given character — all on staging, proved on the emulator. Meshy for new bodies only; Blender for adjustments. Next: Kris's sign-off, then the live release with new screenshots; clothes as items; the light pass #34.
```

## Where this stands (2026-10-23)

**The Bazaar tent, live (2026-10-23, by voice).** The Market Stalls are the Bazaar: a striped
canvas tent stands over its door in the Village (3x2, the front middle open — a footprint may
now have a hole — the portal in the doorway, thin flaps at the outer edges of the side cells as
Kris sketched it), and inside, the same canvas walls stand round the floor at double the stall's
height, the door's side open, on a new "Grass, shaded" ground (Mountain over Earth). One palette
block in kinds.js draws both halves (`client/enclosures.gd`); an Area names the room it is
drawn inside (`enclosure`), and a wooden hut is the next row. Kris chose from two palettes and
two heights on a comparison page (deliverable 36): "exactly what I was hoping for." Handoff:
`docs/handoff/bazaar-tent.md`.

### Before that (2026-10-22)

**The fire hound, the first four-legged creature, on staging** (2026-10-22, evening): the
Elementals' banner beast, from Kris's own list (his creatures first, one at a time; a dragon
next). Meshy's rig is humanoid-only, so the body is Quaternius's CC0 wolf off poly.pizza —
the artist whose clip library every character already plays — repainted fire-engine red in
the file and set alight by a shader shell over its own skin (no particles; one extra draw).
Tripo, Anything World and Blender's Rigify were weighed and set down (the table in
`docs/handoff/cinder-hollow.md`); Kris: "I'd rather not sign up for another paid service."
A `profile: "quadruped"` set draws whole in its own materials and clips. Three rounds on
Kris's screen: "really good… excellent." His dragon is parked as a possible familiar.

**Round 3 is the hands** (Kris, 2026-10-21, after playing with the characters: "the hands of
all of the characters are still in this weird open pose, so unnatural for someone standing out
in a world"). The cause: a Meshy rig has no finger bones — the skeleton ends at the hand — so
the open, spread A-pose hand the shape was generated in is baked into the mesh, and no clip
can relax it. The fix costs no credits: `tools/bodies/hands.py` curls the fingers in the mesh
itself and turns the whole hand at the wrist inside every clip (the palm to the thigh). The
round shows four bodies (Braids, Tousle, the Elf, Esmeralda) as today, relaxed and loose —
sheets at `docs/handoff/lookdev/round3/` and `https://spellgrove.com/download/lookdev-r3/`,
the corner on `/play-staging` and the round's staging APK. Braids also gets round 2's standing
idle (her round-1 crouch with the arms out was most of her wonkiness). Kris saw the corner on his phone and asked for the fix itself: the relaxed treatment is applied to
all eleven sets and Rah (Headband and the Halfling rolled the other way), proved on the emulator.

**The arms and hands — solved the standard way (2026-10-22).** After two hand-editing passes
(parked the evening before: "better, still weird… there must be an easier way"), the answer was
the one every game uses: a standard skeleton and motion-captured clips. Every body now goes
through Godot's humanoid profile and plays the CC0 *Universal Animation Library* (Quaternius),
one shared set of clips; the mesh is fixed once per body by three measured numbers (the wrist
straightened, the palm turned down, the fingers a loose fist). Kris on the library's mannequin:
"looks perfect — can we match that?" — matched, all twelve, `docs/handoff/lookdev/round5/`.
The write-up and the one command per body: `docs/handoff/lookdev-round3.md` (the last section).
Live on the web and the v44 APK since 2026-10-22 (Kris: "a long way from where we started… send
it"); the walk pace is the knob left to judge on a phone.

**The stone golem has a body (2026-10-22).** The first creature through the same pipeline
(`golem-a`: Meshy's rounded stone-block figure, two glowing eye hollows, the standard rig and
the shared clips; the texture's stray triangles pointed at plain stone by `tools/bodies/uv_strays.py`
— the "third eye" took five attempts and a lesson about proving on Kris's own screen). Kris in
the viewer: "oh, hell yeah! nice one — I'm really happy with that." A slower attack and walk
were tried and reverted at his word ("it is the movement that looks out of place more than the
speed… we will go with this as is"). Wired in as the `stone-golem` kind's `bodySet`, live on
`/play` and `spellgrove-v45.apk`; the simple tier keeps the blocky model. The next creatures
and the twelve-character bank (`docs/handoff/lookdev-round3.md`) wait on Kris's list.

**Rah is being made** (Kris: not choosable — hard-wired to one account, so Rah is rare in the
world): from the banner and her photos, through Meshy (three previews to get a child with the
long hair AND the tunic dress). She needs the game to know a character that the picker never
offers; the account that gets her is Kris's to name.

**Meshy or Blender (Kris's question, 2026-10-21):** Meshy is paid for one more month at about
$60; after that the standing answer is **Blender for every adjustment, Meshy only for a new
body**. Meshy does three things nothing free does on this laptop: a mesh from words, a painted
texture, and an automatic rig with a clip library — the laptop's Intel graphics cannot run the
open text-to-3D models (they want an NVIDIA card), so a *new* character stays a Meshy job
(about 53 credits, a month's subscription when a batch is due, not a standing one). Everything
after that — hands, re-posing, cutting clothes off a body as separate meshes, fixing a seam, a
hat that clips, retargeting a free Mixamo clip onto a body — is Blender work, free, and
scriptable headless the way the hands tool already is in plain Python. The eleven bodies on
disk are complete (shape, texture, rig, six clips), so nothing in the game depends on the
subscription continuing. Blender is not installed yet (the disk was full — the Trash held
375 GB); install the official 4.x build under `/opt` when the first Blender job comes, and
note it in `ops/DEPLOY_LOG.md`.

**The characters are in the game.** After round 2 (Kris with Rah and Izzy: "we like all of them
this time, except for the witches"; "we are happy to go live with B, C, D, E, F, G, J, K, L as
character options" plus round 1's C; "I" becomes the witch, "called Esmeralda") Kris said bring
them in, and by voice: the detailed tier stays behind the secret hold for now and fetches its
bodies as a separate download with a prompt; in detailed mode a Character button beside the
colours cycles through them, each with its own face; the face picker stays in simple mode;
Esmeralda as she is, no hat, no staff, with her frog. Built and verified on the emulator the
same day — `docs/handoff/characters.md`: ten characters (Braids, Tousle, Headband, Pigtails,
Beanie, Sash, Hood, Elf, Halfling, Faun) as the seventh group of `faces.js`, saved on the
account (`appearance.character`), the 13 MB characters pack at `/download/packs/`, Esmeralda
in the Village. Live: the director, `/play`, `spellgrove-v42.apk`; nothing shows unless a
device turns the detailed tier on. #33 is closed (the direction is locked for the players and
the witch); the look-dev loop continues for what is left.

**What Kris decided on the way (2026-10-20):** a character is a bundle — face, hair, body
shape — and **clothes become switchable items later** (default clothes per character now, the
two colours over them; the cost is under "What was decided"); the outline makes no visible
difference at game distance, so bodies carry none and the tap outline stays; Rah's drawn
faces stay the simple tier's.

**Round 2 (#33) said:** everything but the three witches and H; Braids (the old C) "the one we
all love the most"; I "awesome" — the witch; K and L "a bit smaller" (done: 0.85 and 0.9).
Round 2's account: [`docs/handoff/lookdev-round2.md`](../../../docs/handoff/lookdev-round2.md).

**Round 1 (#32) said:** C was the standout (Kris, Rah and Izzy); G, E, H, K and F liked; I has a
good body; A and B out; every body's arms wonky; Rah read the boys' robes as Aladdin and
Spider-Man, Kris liked them (round 2 shows both); more variety — elves, races, a faun; and
**all the clothes need to be items later, switchable** (under "What was decided" below, with
its cost). Round 1's account: [`docs/handoff/lookdev-round1.md`](../../../docs/handoff/lookdev-round1.md).

Steps 1–4 were done on 2026-10-20 in a Claude web conversation ([the
conversation](https://claude.ai/chat/4f66494d-b82f-4278-a416-0a636469328b)): the feelings, the
references, the this-not-thats, the anchor **Ni no Kuni**; the style sheet is **draft v0** at
[`workshop/brand/style.md`](../../brand/style.md) until the rounds lock line weight, palette values
and proportions. What was decided is under "What was decided (2026-10-20)" below.
Decided (2026-10-20): the anchor is Ni no Kuni · the adventurer (deliverable 032) is not the direction, not as default and not as a starting point — `tools/bodies/prompts/adventurer.txt` is not a template · players are Kiki-like kids · the Witch is Granny Weatherwax's temperament with Macbeth's witches' mystery · this is Kris's call; Rah, Willow and their friends are input, never a gate.
Next: clothes as items (a new issue when Kris wants it), **#34** the light and atmosphere pass
(step 7), #35 objects and world things (step 8), and style.md to v1 with what the rounds locked.
Open issues: [`epic:art-direction`](https://github.com/krisrandall/land-of-lor/issues?q=is%3Aissue+is%3Aopen+label%3Aepic%3Aart-direction) — #34, #35 (#32 and #33 closed).

## What this is

A game's *vibe* is not one decision; it is the agreement between a dozen small ones — how round
the shapes are, how saturated the colours, how soft the light, how much detail a thing carries,
how tall a head is on a body, what the edges look like, what time of day it always is. When they
agree, the game feels like one place made by one hand. When they don't, each asset is fine and
the whole is wrong. Art direction is the job of making them agree **before** many assets exist,
and of having a page to point at when a new one doesn't fit.

Spellgrove now has a machine that makes a character in four minutes. That is exactly when a
direction is needed: the machine will happily make fifty things that don't belong together.

## Why it exists

Because "I know what I'll like, but defining and communicating it is something I've never done"
(Kris, 2026-10-06) is the normal starting point, and there is a well-trodden path from there.
And because two tiers of graphics must read as one game: the simple primitives and the detailed
bodies need the same palette and the same shape language or the toggle changes the world's mood,
not its detail.

## How this is done well — the path, in order

The craft here is older than games (film production design, animation studios, illustration),
and the steps are the same everywhere. Each one produces a *thing you can look at*; none of them
needs you to describe a feeling in words first. Words come last.

**1. Say what the player should feel, not what it should look like.** Three to five words for
the first ten seconds in the Village — *safe, curious, a little bit magic, cosy, mischievous,
brave*… — and, just as useful, two or three it must **never** feel: *grim, sterile, slick,
cute-for-toddlers, generic-fantasy*. This is the one step that is words, and it is the yardstick
for everything after. (Spellgrove's `WHY.md` and the brand work already hold some of this; it
gets restated here as feelings.)

**2. Build a reference wall before describing anything.** Thirty pictures you like and ten you
dislike, from anywhere — games, films, animation, book covers, paintings, photographs, Rah's
drawings, a street. No explanations. Dislikes are as valuable as likes: taste shows up most
clearly at the edges. Tools: PureRef (free, a desktop canvas), Are.na or Milanote (web), or a
plain folder; a page on spellgrove.com can do it too (an agent can build one, step "First step").
Twenty minutes with a phone and screenshots is enough to start.

**3. Let someone else name what the wall has in common.** You don't analyse your own wall; you
hand it over. The reader (Claude, in the web session) sorts it and writes back a one-page
*style sheet*: shape language (round / angular / mixed), proportions (heads-to-body, limb
thickness), detail level (how many things on a tunic), line (outlines or none, thick or thin),
material (flat, painterly, cel-shaded, soft-realistic), palette (five to seven hues and how
saturated), light (time of day, warm or cool, hard or soft shadows), and the three words from
step 1 as a check. You strike what's wrong. Two rounds of this and the sheet is yours.

**4. "This, not that."** The sharpest tool in the kit: pairs. *Wind Waker, not Breath of the
Wild. Ghibli skies, not Pixar skies. A storybook, not a screenshot. Hand-painted, not photographed.
Chunky, not spindly.* Six to ten pairs communicate a direction better than any paragraph, and
they go straight into prompts.

**5. One scene, three ways — the look-dev corner.** Pick one corner of the Village (the witch,
her patch of grass, a tree, a door, the rim, the sky) and build it three ways along the axis you
are least sure about: say *flatter and more storybook* ↔ *as now* ↔ *more realistic*. Same scene,
same camera, side by side on one sheet, in the real engine on the real phone. Judge them against
the words from step 1. This is cheap here: a body is 53 credits and four minutes, lighting is a
`WorldEnvironment` and a sun, the shots harness already frames the Village. Pick one, or point
between two.

**6. Write the style guide, one page, and make it the gate.** `workshop/brand/style.md`: the
words, the this-not-thats, the palette (as values — the elements' colours already live in
`game/shell/elements.js`), the proportions, the light. From then on: every Meshy prompt begins
with the same prefix drawn from it; every new asset lands on a contact sheet beside two that
already passed; anything that doesn't belong is visible before it is wired.

**7. Lighting and atmosphere are a separate pass, after the bodies.** The same body reads as
three different games under midday sun, under the witching-hour moon, and in golden hour with
long shadows. Decide the bodies first (steps 1–6), then do a short look-dev round on light alone:
ambient colour and strength, sun angle and warmth, fog or none, bloom or none, how dark night
really is. One scene, three lightings, one sheet, one choice.

**8. Objects and colour come last and go fastest.** Once bodies and light are chosen, the
rules for things (trees, rocks, towers, the cauldron) fall out of the style sheet: shape language,
detail level, palette. The sixty-four elements' colours are already a palette; the question is
how the things *around* them use it.

## What to decide, and what not to decide yet

Decide now: feelings (step 1); the wall (step 2); the body style axis for the first probe
(step 5). Leave open until seen: the exact palette values, lighting, outlines-or-not. Don't
decide from a thumbnail: judge on the phone, in the Village, at the game's camera distance *and*
in the account box — the two places a body is actually seen.

## What was decided (2026-10-20)

From the web conversation ([link](https://claude.ai/chat/4f66494d-b82f-4278-a416-0a636469328b)), written up in [`workshop/brand/style.md`](../../brand/style.md) (draft v0):

- **Anchor: Ni no Kuni** (98%) — hand-painted, dimensional, stylised, a simple world lit with care. When unsure, ask what Ni no Kuni would do.
- **The feeling:** a kid is excited, safe with a little edge, always clear what they can touch; a parent sees a really slick comic book. Never generic, trying too hard, confusing, or toy-like.
- **Line:** outlines on characters and on everything interactive ("you can touch this"), none or very faint on the landscape; weight decided in look-dev.
- **One style, many moods:** day and night and per-zone light change sky and colour, never shape, proportion, material or line. Mystery comes from shadow.
- **Players** are Kiki-like — young, plucky, grounded, in clothes that belong to Lor, with clear torso and legs zones for the colour mask.
- **The Witch** is Granny Weatherwax's temperament with the mystery of Macbeth's three witches — pointed hat, cartoony, mystery by concealment, never a joke and never horror.
- **NPCs** are often elders who know more than the players; some wise children, some mysterious fools who speak truth sideways.
- **Clothes and props become items, switchable, later** (Kris, 2026-10-20, after round 1: "all of the clothes need to be items later too"). The cost, said out loud: a Meshy body is one mesh, so on these bodies an outfit swap is a *texture* swap over the same shape (cheap, the same pipeline, the colour mask already does the first version of it) — separate clothing meshes on a shared rig are a later epic with real work in it. Round 2 already treats the witch's staff as a prop of ours hung from the hand bone (`held_override`), not part of the mesh, which is the shape of it. The bodies picked must keep clean torso and legs zones for a texture swap to work.

**How decisions are made:** it is Kris's call. Rah and Willow (and their friends) are input, never a gate — ask reaction questions ("which would you rather play", "which witch would you be scared to annoy") over labelled picture sheets.

## How look-dev review works

Kris's protocol (2026-10-20). A session picking up #32 / #33 follows it exactly:

- **Many rounds, several tracks at once.** Expect many rounds across several characters and directions in parallel (kids and witch iterate side by side; a direction that wins for one character may not for another). Round 1 is the first of several, not a single pick.
- **Labelled options every round.** Each round is shown as options A, B, C… on a clean picture sheet (phone-friendly PNG, no game UI) *and* on the local APK / staging. Kris picks one, points between two, or asks for changes; the next round narrows from there.
- **Ask, don't guess.** If Kris's choices aren't converging, or a round's feedback is ambiguous, stop and ask Kris targeted questions rather than inventing a new direction.
- **Rah, Willow and friends** see the evolved picture sheets (labelled A/B/C sheets of real Spellgrove characters), not reference images. Their reactions are input; Kris decides.
- **No 2D concept-art stage.** Alternatives are made as Meshy bodies and judged in the real Village on the phone.
- **Local APK + staging only** until Kris signs off; nothing reaches production or other players.

## Non-goals

- Making assets. This epic decides and writes down; `graphics-tiers` and the content epics make.
- Replacing Rah's drawn faces or the simple tier's look. The simple tier is signed off; the
  style guide has to *include* it, not change it.
- A brand or marketing identity — that is `naming-and-brand`. This is the game's own look.

## Relevant docs

- `workshop/deliverables/032-the-first-detailed-body.md` — the body that started this, with pictures.
- `docs/handoff/lookdev-round1.md` — look-dev round 1 (2026-10-20): the ten bodies, the sheets, the credits, what Meshy taught.
- `workshop/epics/graphics-tiers/overview.md` — the machinery the direction will drive.
- `workshop/brand/style.md` — the style sheet, draft v0 (2026-10-20): what this epic has decided so far.
- `workshop/brand/` — the name, the studio, the store identity (the style sheet lives beside them).
- `game/shell/elements.js` — the sixty-four elements and their colours, the palette the game already has.
- `docs/thought-specs/little-witches.md` — the witch/cauldron direction, the closest thing to a mood statement in the design docs.

## deliverables (3)

- #36 — The Bazaar tent — a kind of room, drawn on both sides of its door (2026-10-23) — /deliverables/36
- #35 — The characters stand like people — twelve bodies on a standard rig and motion-captured clips (2026-10-22) — /deliverables/35
- #34 — The store listing before the new graphics — what Spellgrove looks like on Google Play today (2026-10-20) — /deliverables/34