← all epics

Art direction — finding Spellgrove's vibe

design

repo: land-of-lor · depends on: graphics-tierscharacter-composition-pocnaming-and-brand

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.

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.

Steps 1–4 were done on 2026-10-20 in a Claude web conversation (the conversation): the feelings, the references, the this-not-thats, the anchor Ni no Kuni; the style sheet is draft v0 at workshop/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 — #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), written up in workshop/brand/style.md (draft v0):

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:

Non-goals

Relevant docs

Deliverables (3)

Work on this epic

The granular work is GitHub Issues, one label per epic: epic:art-direction (private repository — sign-in required). The dated Where this stands section above names the open ones.

Ask an agent about this epic

    Also available as raw markdown.