---
id: ground-types/006
title: The looks — tune the eight ground types and their 64 variations
epic: ground-types
state: done
priority: 2
blocked_by: []
estimate: M
created: 2026-08-17
updated: 2026-08-18
claimed_by: null
claimed_at: null
delivers: []
review_artifact: land-of-lor/docs/handoff/ground-types/badlands-textured.png
---

## What to do

Spec items 3 and 4 as a content pass with the game running, separate from the rendering
plumbing. Set the placeholder colours and patterns in `game/shell/elements.js` (`ground` on the
eight trigrams, `groundVariant` on the 64 elements) until each of the eight reads at a glance —
grass green, sand yellow (some variants dirt), snow and ice, lava red-orange, water and deep
water blues, mountain grey, Heaven as eight distinct decorative floors (tiles, bricks, paths) —
and each variant is visibly a flavour of its base. Write into `elements.js`'s header that ground
colours are **not** the trigram identity colours (Earth's identity colour is brown; grass is
green). Re-run `sync-elements.sh`.

## Definition of done

Screenshots of all eight types (and the Badlands showcase) in `docs/handoff/`; Kris reviews.
Committed and pushed in `land-of-lor`.

## Where the work lands

`land-of-lor/game/shell/elements.js`, `docs/handoff/`.

## What was done (2026-08-17, laptop session)

- Base albedos retuned for how they light (grass `#467a31`, sand `#c2a866` + two dirt
  flavours, snow `#a9b6c0` + two ice flavours, water, lava, mountain, deep water, stone
  `#9c9081`); Stone's eight became named floors (Stone tiles, Plank floor, Gravel path,
  Mosaic, Red bricks, Cobbles, Blue tiles, Gold flagstones) with `bricks` / `planks` /
  `checks` patterns added to the atlas; the scene's ambient 0.6 → 0.45 and sun 1.0 → 0.9 so
  light types stop clipping (both in `client_main.gd` and `_shots.gd`). Header of
  `elements.js` says why.
- Judged in `_shots.gd` (a new `g-ground-corner` close-up) — screenshots in
  `docs/handoff/ground-types/`. Snow still reads bright, deliberately; its flavours survive.
- **This is a placeholder pass; Kris's eye decides.** Every value is one line in
  `elements.js` and re-syncs with `sync-elements.sh`.

## 2026-08-18 — the brief for real art

`land-of-lor/docs/design/briefs/GROUND_TILES_BRIEF.md` — for Claude Design: 64 seamless tiles, the
constraints the engine imposes (repeat per cell, the shader does the transitions, flat-lit),
the storybook direction, and the full table of the 64. Kris pastes it in; the PNGs drop into
`world/client/ground/<lower>/<upper>.png` and the engine uses them over its drawn tiles.