Primeval review

Ground

The new ground materials, Classic beside New. Newest first.

New ground, round three: greener where Classic is green

2026-11-10 · 20 pictures

What changed
After your note ("a lot less random green grass areas") the ground is green again where Classic is green; snow ripple broken up; the town-hall apron fades within about 4 m; narrower paths; weaker, one-sided ore rings; calmer desert; lava on a smooth outline with a crust.
Numbers
Green share Classic / round two / round three: volcanic base 18 / 10 / 28%, volcanic river bank 31 / 14 / 29%, temperate base 91 / 67 / 83%, tropic base 93 / 72 / 86%, desert base 4 / 1 / 11%.
Still wrong
Paths still show as brown lines on temperate and tropic bases; green halos have a firmer edge than Classic from afar; the basalt net is calmer, not gone; the lava edge is still crisp.
State
You said you want to play a match on it before deciding.

Desert (Classic, round two, round three)

2026-11-10 · picture · tap to open full size

Classic | round two | round three.

Desert (Classic, round two, round three)

Fixed map AmmoniteLagoon (Classic, round two, round three)

2026-11-10 · picture · tap to open full size

Classic | round two | round three.

Fixed map AmmoniteLagoon (Classic, round two, round three)

Fixed map ElderwoodBasin (Classic, round two, round three)

2026-11-10 · picture · tap to open full size

Classic | round two | round three.

Fixed map ElderwoodBasin (Classic, round two, round three)

Fixed map EmberfallCaldera (Classic, round two, round three)

2026-11-10 · picture · tap to open full size

Classic | round two | round three.

Fixed map EmberfallCaldera (Classic, round two, round three)

Fixed map Rimeheart (Classic, round two, round three)

2026-11-10 · picture · tap to open full size

Classic | round two | round three.

Fixed map Rimeheart (Classic, round two, round three)

Fixed map SevenWells (Classic, round two, round three)

2026-11-10 · picture · tap to open full size

Classic | round two | round three.

Fixed map SevenWells (Classic, round two, round three)

Random map, seed 11, desert

2026-11-10 · picture · tap to open full size

Round three on a random map.

Random map, seed 11, desert

Random map, seed 11, snow

2026-11-10 · picture · tap to open full size

Round three on a random map.

Random map, seed 11, snow

Random map, seed 11, temperate

2026-11-10 · picture · tap to open full size

Round three on a random map.

Random map, seed 11, temperate

Random map, seed 11, tropic

2026-11-10 · picture · tap to open full size

Round three on a random map.

Random map, seed 11, tropic

Random map, seed 11, volcanic

2026-11-10 · picture · tap to open full size

Round three on a random map.

Random map, seed 11, volcanic

Random map, seed 4242, desert

2026-11-10 · picture · tap to open full size

Round three on a random map.

Random map, seed 4242, desert

Random map, seed 4242, snow

2026-11-10 · picture · tap to open full size

Round three on a random map.

Random map, seed 4242, snow

Random map, seed 4242, temperate

2026-11-10 · picture · tap to open full size

Round three on a random map.

Random map, seed 4242, temperate

Random map, seed 4242, tropic

2026-11-10 · picture · tap to open full size

Round three on a random map.

Random map, seed 4242, tropic

Random map, seed 4242, volcanic

2026-11-10 · picture · tap to open full size

Round three on a random map.

Random map, seed 4242, volcanic

Snow (Classic, round two, round three)

2026-11-10 · picture · tap to open full size

Classic | round two | round three.

Snow (Classic, round two, round three)

Temperate (Classic, round two, round three)

2026-11-10 · picture · tap to open full size

Classic | round two | round three.

Temperate (Classic, round two, round three)

Tropic (Classic, round two, round three)

2026-11-10 · picture · tap to open full size

Classic | round two | round three.

Tropic (Classic, round two, round three)

Volcanic (Classic, round two, round three)

2026-11-10 · picture · tap to open full size

Classic | round two | round three.

Volcanic (Classic, round two, round three)
Full notes (2 files)
green_coverage.txt 2026-11-10 02:11
GREEN COVERAGE of the ground per still (share of ground pixels reading green: hue 55-155 deg, 44-155 on desert, sat >= 0.22;
trees, rocks, units and water masked out where CLASSIC and NEW round 2 draw the same pixel). CLASSIC | NEW before | NEW after

volcanic (seed 7, 1v1; the owner's circled spot is edge_game34 (river bank and the ground under the trees by the base))
00_base_game34              47%     18%     10%     28%
02_clearing_game34          54%     15%      4%     19%
01_edge_game34              22%     31%     14%     29%
06_clearing_zoom70          44%     16%     10%     26%
07_centre_zoom110           39%     29%     12%     36%

desert (seed 7, 1v1)
00_base_game34              54%      4%      1%     11%
02_clearing_game34          74%      1%      0%      7%
01_edge_game34              24%      4%      1%     16%
06_clearing_zoom70          58%      4%      1%     12%
07_centre_zoom110           49%      6%      1%     17%

temperate (seed 7, 1v1)
00_base_game34              56%     91%     67%     83%
02_clearing_game34          68%     95%     89%     95%
01_edge_game34              37%     93%     72%     83%
06_clearing_zoom70          53%     88%     79%     86%
07_centre_zoom110           46%     88%     88%     90%

tropic (seed 7, 1v1)
00_base_game34              54%     93%     72%     86%
02_clearing_game34          74%     99%     94%     97%
01_edge_game34              24%     93%     65%     79%
06_clearing_zoom70          55%     95%     86%     91%
07_centre_zoom110           45%     97%     93%     95%

snow (seed 7, 1v1 (green not expected on snow))
00_base_game34              27%      0%      0%      0%
02_clearing_game34          28%      0%      0%      0%
01_edge_game34              12%      0%      0%      0%
06_clearing_zoom70          26%      0%      0%      0%
07_centre_zoom110           27%      0%      0%      0%

map-Rimeheart
00_base_game34              38%      0%      0%      0%
02_clearing_game34          34%      0%      0%      0%
01_edge_game34              29%      0%      0%      0%
06_clearing_zoom70          26%      0%      0%      0%
07_centre_zoom110           30%      0%      0%      0%

map-SevenWells
00_base_game34              84%      0%      0%      0%
02_clearing_game34          90%      0%      0%      0%
01_edge_game34              81%      1%      0%      4%
06_clearing_zoom70          82%      0%      0%      2%
07_centre_zoom110           72%      2%      0%      7%

map-EmberfallCaldera
00_base_game34              57%      1%      2%      1%
02_clearing_game34          71%      0%      1%      3%
01_edge_game34              68%      1%      3%      5%
06_clearing_zoom70          70%      2%      2%      6%
07_centre_zoom110           64%      4%      2%      6%

map-ElderwoodBasin
00_base_game34              62%     95%     70%     84%
02_clearing_game34          78%    100%     89%     95%
01_edge_game34              73%     98%     93%     96%
06_clearing_zoom70          69%     97%     87%     93%
07_centre_zoom110           60%     99%     94%     96%

map-AmmoniteLagoon
00_base_game34              67%     94%     75%     84%
02_clearing_game34          82%     99%     89%     93%
01_edge_game34              79%    100%     89%     92%
06_clearing_zoom70          68%     98%     89%     93%
07_centre_zoom110           31%     99%     89%     93%

seed 11 volcanic
00_base_game34              54%     38%     12%     36%
02_clearing_game34          62%     35%      9%     45%
01_edge_game34              29%      2%      7%      6%
06_clearing_zoom70          50%     32%     16%     48%
07_centre_zoom110           32%     11%     14%     23%

seed 11 desert
00_base_game34              64%      3%      1%     13%
02_clearing_game34          70%      2%      0%     14%
01_edge_game34              42%      2%      2%      4%
06_clearing_zoom70          73%      1%      0%     14%
07_centre_zoom110           42%      3%      3%      7%

seed 11 temperate
00_base_game34              57%     90%     71%     87%
02_clearing_game34          57%     98%     98%     99%
01_edge_game34              38%     87%     73%     85%
06_clearing_zoom70          38%     91%     90%     92%
07_centre_zoom110           36%     93%     90%     92%

seed 11 tropic
00_base_game34              61%     94%     75%     88%
02_clearing_game34          66%     98%     97%     98%
01_edge_game34              40%     93%     75%     85%
06_clearing_zoom70          46%     95%     91%     94%
07_centre_zoom110           38%     97%     92%     94%

seed 11 snow
00_base_game34              29%      0%      0%      0%
02_clearing_game34          26%      0%      0%      0%
01_edge_game34              15%      0%      0%      0%
06_clearing_zoom70          21%      0%      0%      0%
07_centre_zoom110           18%      0%      0%      0%

seed 4242 volcanic
00_base_game34              40%     27%     13%     30%
02_clearing_game34          57%     30%     10%     32%
01_edge_game34              21%     13%     14%     22%
06_clearing_zoom70          35%     28%     20%     40%
07_centre_zoom110           29%     33%     19%     41%

seed 4242 desert
00_base_game34              44%      5%      1%     13%
02_clearing_game34          66%      5%      0%     12%
01_edge_game34              24%      5%      3%     10%
06_clearing_zoom70          44%      4%      1%     16%
07_centre_zoom110           36%      6%      2%     14%

seed 4242 temperate
00_base_game34              40%     92%     58%     79%
02_clearing_game34          55%     95%     95%     96%
01_edge_game34              21%     91%     59%     81%
06_clearing_zoom70          29%     92%     93%     93%
07_centre_zoom110           28%     92%     89%     91%

seed 4242 tropic
00_base_game34              43%     91%     62%     80%
02_clearing_game34          62%     98%     96%     97%
01_edge_game34              24%     89%     64%     80%
06_clearing_zoom70          38%     94%     94%     94%
07_centre_zoom110           32%     95%     91%     93%

seed 4242 snow
00_base_game34              25%      0%      0%      0%
02_clearing_game34          25%      0%      0%      0%
01_edge_game34              12%      0%      0%      0%
06_clearing_zoom70          19%      0%      0%      0%
07_centre_zoom110           17%      0%      0%      0%

REPORT.txt 2026-11-10 02:22
GROUND POLISH (round 3 of the new ground) - REPORT                 2026-11-10, local file: PrimevalMirror only, nothing committed
Presentation only. RulesRevision stays 120; no NetProtocol, save or replay change; nothing under Simulation/ or WorldGen/
changed. Map hashes unchanged (MapGeneratorTests and MapLayoutTests all pass). Classic draws exactly as before (its pins pass).

1. GREEN WHERE IT WAS GREEN (the owner's volcanic point)
  Cause, both halves:
  (a) material: V5 "dark fertile soil" was dark soil with ~100 sparse tufts. Redrawn (local file: work
      mats_r3.py, headless Blender) as GRASS WITH EARTH SHOWING: dense leaning tufts and short sward over ~68 % of the
      surface, the dark soil in ragged gaps, Classic's volcanic greens. The desert's D5 "damp oasis earth" was the same kind
      of material (brown mud, dry stalks): redrawn the same way in the desert's own olive / yellow-green (D5w and D5p).
  (b) placement: the new volcanic and desert rules now use Classic's own green signals as input: its "green round the
      water" ramp (SoftDensity(water, 4) 0.004..0.05, ~10 m) and its forest floor (Density(trees, 3) 0.14..0.48), slightly
      softened, plus a few green tongues reaching into the ash/sand within ~22 m of water or woods. The hall yard and paths
      are laid before the green, as Classic paints its village ground over its green.
  Proof (new test GroundLayerTests.TheBareMapsAreGreenWhereClassicIsGreen: of the cells Classic paints >= 0.6 green, share
  with >= 50 % new grass; it FAILED on the old placement): Emberfall 71 % -> 99 %, Seven Wells 75 % -> 95 %, Bonewater
  87 % -> 98 %; the new grass also covers more cells in all than Classic's green on each.
  On screen, green share of the ground per still (green_coverage.txt has every still, map and seed): CLASSIC | before | after
    volcanic seed 7: base 18|10|28  open 15|4|19  river bank (owner's spot) 31|14|29  70 m 16|10|26  110 m 29|12|36
    volcanic seeds 11 / 4242 (open ground): 35|9|45 and 30|10|32
    desert seed 7:   base 4|1|11  open 1|0|7  edge 4|1|16  110 m 6|1|17 (desert green is olive; measured from hue 44)
    temperate seed 7: base 91|67|83  open 95|89|95  edge 93|72|83  110 m 88|88|90
    tropic seed 7:   base 93|72|86  open 99|94|97  edge 93|65|79  110 m 97|93|95
    snow: 0 everywhere in all three (no green expected). Elderwood base 95|70|84, Ammonite base 94|75|84.
  Temperate / tropic: their G10 / T4 were already green; the losses were the yard, path fringes and wide banks (see 3).
  The temperate G11 dry grass and G15 bank and the tropic T2 mud were not redrawn: G15 / T2 bands are narrower instead.

2. SNOW: the S2 wave grain is broken: each anti-tiling region (now 3 repeats) turns S2 its own way at a random angle and
  scale 0.85-1.2 (new shader option, normals turned back; off for every other slot and for Classic), waves calmer (normal
  0.5 -> 0.28, colour calmed 0.55 -> 0.72), and the calm S1 drifts take up to 75 % of broad open stretches (was 55 %).
  Open snow reads calm at 34, 70 and 110 m in the stills; close in (15 m) faint waves still show, running different ways.

3. YARDS AND RINGS: hall apron fades within ~4 m (was 6.5 m with a 12 m fringe), paths narrower (core 0.6 m, wear out to
  ~3 m), the dry fringe beside them halved. Routes to berries / ore / wood / water thin over their last 6 m (no round cap).
  Round SMALL clusters (fewer than ~12-26 rock cells within 3 m) the rocky turf / moss / scree / hardpan reach out mostly on
  the side facing the nearest hall (2.2 m behind, up to 4.5 m in front on grass maps) and are 25-40 % weaker; outcrops and
  rock fields keep their old reach.

4. DESERT: scree only close to outcrops (small clusters: a 1-2 m lee at 60 %), hardpan halo 0.6 -> 0.2-0.45 and shorter; the
  ripples (D1) turn up to 45 degrees per region. The base in the stills is now mostly plain sand.

5. VOLCANIC: basalt on a bedrock plain itself is only 0.45 of the mix (was 0.8), V2 plates larger (10 -> 13 m), calmer
  (normal 0.7 -> 0.5, colour calmed 0.3) and turned per region. Lava (New only): its overlay follows a smooth contour (the
  0.5 line of its cells' bilinear coverage, quarter-metre marching squares: straight along runs of cells, rounded corners)
  with a dark cooled crust out to the 0.22 line, so it steps glow -> black crust -> ember-cracked V4. Classic keeps the old
  cell quads. Every lava cell stays covered at its middle (a lone cell is a small rounded diamond).

STILL SHORT (honest)
  - Temperate and tropic bases are still 8-14 points less green than Classic in the base / edge stills: the yard is now
    about Classic's disc, but the paths to wood and water still show as brown lines across the green.
  - The new volcanic / desert green halos end in a firmer edge than Classic's very soft gradient from 70-110 m (still a
    soft ramp, but it reads as a band round a pond). Desert halos read olive-dark rather than Classic's yellow-green.
  - Rings round ore are smaller and one-sided, but on a temperate base a small ore cluster still has a visible stony patch.
  - The volcanic plain's "net": calmer, not gone; judged only in stills at 34 and 110 m.
  - Lava still has a crisp outline (now smooth and with a crust, not a gradient); no glow spill onto the ground beyond V4.
  - Desert paths from the hall still read as long arcs on open sand (unchanged placement idea).

COST: control-map bake in the player 22-26 ms (was 18-25 ms), 33-40 ms on 224-256 m maps; world build 267-336 ms (as
  before). Memory unchanged: layer textures temperate 17.1 MB New vs 21.6 MB Classic, volcanic 14.5 MB New vs 0 Classic;
  the lava contour adds a few thousand triangles on volcanic maps only. Frame rate (autotest avg over the 70 s tour,
  1600x900; another Unity was busy during some runs, so noise is large): temperate New 150 / 131 / 168 vs Classic 166 / 130
  / 168 / 171; volcanic New 153 / 136 / 171 vs Classic 171 / 134 / 169 / 172. In the quiet runs New = Classic within 2 %.

TESTS (205 run: GroundLayer, Ground, GroundTileUploader, GroundMip x2, EdgeScenery, WorldRendererCull, VisualPolish,
  BiomeGrade, BiomeWeather, MapGenerator, MapLayout, FreezeScan, MapLookProbe): after re-pinning 197 pass (re-pinned group re-run: 59/60, the 1 the sim drift), 6 skipped,
  2 fail, both the known sim drift (GroundLayerTests.TheSimulationNeverSeesTheGround and EdgeSceneryTests.TheSimulation-
  NeverSeesTheScenery, 0x95EC4727C614DDBE expected, 2609061906737532392 got), not this job.
  Re-pinned by design: GroundLayerTests.TheNewGroundMasksArePinned, all 8 cases (Random 777, Elderwood, Ammonite, Rimeheart
  (A only), Seven Wells, Bonewater, Emberfall, Titan's Rest). Classic pins unchanged and pass (TheOldGroundUnderTheLayers-
  IsUnchanged, TheDesertAndVolcanicGroundAreUntouched). New: TheBareMapsAreGreenWhereClassicIsGreen (3 maps).

SHEETS (local file: ground_polish and local file: round3): <biome>_classic_new1_new2.jpg x5 (CLASSIC |
  NEW before | NEW after, green share on each still), fixedmap_<map>_classic_new1_new2.jpg x5 (Emberfall with the lava
  close-up), seed11_<biome>.jpg and seed4242_<biome>.jpg (NEW before for these seeds is the previous job's seed run, taken
  before its last tweaks), green_coverage.txt. Night Emberfall still: local file: nightlava.

FILES: changes.diff. Code: GroundLayers.Placement.cs, GroundLayerLibrary.cs (+ RotateRegions on a layer), WorldRenderer.cs
  (two lines), ConceptMapScenery.cs (SoftLava), GroundLayered.shader (region turn), GroundLayerTests.cs, library asset.
  Art: local file: Ground V5, D5w, D5p re-baked (old versions in local file: ArtSource and the studio's local file: *_r2; note the
  studio's round-one V5 folder was moved to local file: V5_v1 by bake2.py, also kept as local file: V5_r2). Arrays re-packed with
  GroundLayerBuilder.BuildSets. Not touched: FootPlant / unit renderer files, local file: Primeval, CatapultInstallTemp.cs (kept).
  ProjectSettings/GraphicsSettings.asset noise from a run reverted; the other ProjectSettings edits were there at the start.

NOT VERIFIED: night and rain on the new V5 / D5; the lava from the low close camera at night beyond one still; 512 m and
  8-player maps in a window; a real match (GameTrails wear over the narrower paths); GPU time on its own; low-end GPUs.

New ground in the game (round two)

2026-11-10 · 14 pictures

What changed
New ground on by default on all five map types, placed by reason (meadow in the open, trodden paths to wood and water, rock by cliffs and ore, damp banks); Settings > Graphics "Ground: New / Classic".
Numbers
Memory per map 12-17 MB; frame rate within noise; map load within 10%; map hashes unchanged.
State
You said "it looks better its elevated the game" but wanted less loss of green: round three above.
Not checked
GPU frame time on low-end cards, large maps in a window, the settings row clicked in a running game.

Desert (before vs after)

2026-11-10 · picture · tap to open full size

Base area: before | after, in the test build.

Desert (before vs after)

Fixed map AmmoniteLagoon (Classic vs New)

2026-11-10 · picture · tap to open full size

A fixed map: Classic vs New ground.

Fixed map AmmoniteLagoon (Classic vs New)

Fixed map ElderwoodBasin (Classic vs New)

2026-11-10 · picture · tap to open full size

A fixed map: Classic vs New ground.

Fixed map ElderwoodBasin (Classic vs New)

Fixed map EmberfallCaldera (Classic vs New)

2026-11-10 · picture · tap to open full size

A fixed map: Classic vs New ground.

Fixed map EmberfallCaldera (Classic vs New)

Fixed map Rimeheart (Classic vs New)

2026-11-10 · picture · tap to open full size

A fixed map: Classic vs New ground.

Fixed map Rimeheart (Classic vs New)

Fixed map SevenWells (Classic vs New)

2026-11-10 · picture · tap to open full size

A fixed map: Classic vs New ground.

Fixed map SevenWells (Classic vs New)

Night temperate (Classic vs New)

2026-11-09 · picture · tap to open full size

Temperate at night: Classic vs New ground.

Night temperate (Classic vs New)

Night volcanic emberfall (Classic vs New)

2026-11-10 · picture · tap to open full size

Emberfall Caldera at night: Classic vs New ground.

Night volcanic emberfall (Classic vs New)

Rain temperate (Classic vs New)

2026-11-09 · picture · tap to open full size

Temperate in rain: Classic vs New ground.

Rain temperate (Classic vs New)

Snow (before vs after)

2026-11-10 · picture · tap to open full size

Base area: before | after, in the test build.

Snow (before vs after)

Temperate (before vs after)

2026-11-10 · picture · tap to open full size

Base area: before | after, in the test build.

Temperate (before vs after)

Transitions close

2026-11-10 · picture · tap to open full size

Close-up of the soft transitions between ground materials.

Transitions close

Tropic (before vs after)

2026-11-10 · picture · tap to open full size

Base area: before | after, in the test build.

Tropic (before vs after)

Volcanic (before vs after)

2026-11-10 · picture · tap to open full size

Base area: before | after, in the test build.

Volcanic (before vs after)
Full notes (1 file)
REPORT.txt 2026-11-10 00:33
GROUND INTEGRATION (ground v2) - REPORT                       2026-11-10, local file: PrimevalMirror only, nothing committed
Presentation only. RulesRevision stays 120; no NetProtocol, save or replay change; map generation, walkable and buildable ground
untouched (MapGeneratorTests 6/6 and MapLayoutTests 59/59 pass; no file under Simulation/ or WorldGen/ was changed).

WHAT A PLAYER SEES NOW (Settings > Graphics "Ground: New", the default)
  Every map type has its own procedural ground, placed by reason from the map (integration notes v2 rules), every boundary a
  wide smoothstep ramp (3-28 m) bent by two noises, the height blend only a gentle modulation inside it (influence 0.30,
  softness 0.40):
  - Grass maps: lush meadow (G10) in the open, dry sparse grass (G11) on exposed ground and as a fringe round worn ground,
    trampled earth (G12) as a soft apron round each start's hall plus a path network, forest floor (G13) under the canopy and
    3 m out with a darker shade tint 10 m into the meadow, rocky turf (G14) round rock/ore/cliffs, damp bank (G15) along water.
  - Tropic: jungle cover T4, moss T3 at the shade edge and round rock, G12 paths, leaf litter T1, G14, wet mud T2 by water
    (the beach band keeps the old sand paint, as before).
  - Snow: wind-crusted S2 in the open, the old S1 scan (6 m) banked against trees and rock and in broad soft stretches,
    ice S3 along water/ice edges, thin snow S5 on trodden ground and under dense trees.
  - Volcanic: quiet ash V1, a soft basalt apron V2 near rock and lava, scorched V3 on worn ground, ember-cracked V4 only
    within 5 m of lava (its cracks glow, gently by day, strongest at night, slow shimmer), dark fertile V5 by water and trees.
  - Desert (warm colourway, keeps the orange): rippled sand D1, cracked pans D2 in exposed flats (never on dunes), hardpan
    D3 on worn ground and round rock, scree D4 close to rock/ore, damp D5 by water and under trees. Pale colourway built and
    selectable in the library (GroundLayerLibrary.Desert = Pale), not default.
  Paths: one cheapest-route search per start (110 m window) to its wood line, two berry clusters, nearest ore, water, the map
  middle and halfway to the nearest neighbour; the routes share trunks and fork; smoothed, then a stronger sideways meander
  (two noises ~34 m / 13 m, up to 6.5 m, pulled back from blocked ground); widest and barest at the hall, greening out with
  distance; the ways out fade over their last 25 m. GameTrails' live wear still works on top (the painter's earth channel
  is taken whole by each map's trampled material). Deterministic from map + seed (integer-hashed noise, presentation salt).

THE SETTING
  Settings > Graphics "Ground  New / Classic", saved with the other settings (PlayerPrefs Primeval.Settings.GroundStyle),
  applies at the next match like "Map edge scenery" and says "(next match)" meanwhile (there is no Classic/New tree option in
  the mirror to copy; a live switch would re-bake the desert/volcanic splat in one frame). Command line: -groundLayers
  classic | new (off and campaign as before). Classic draws exactly today's ground: same arrays, rules, shader path (every new
  shader term is gated by uniforms that are zero for Classic). Classic vs the lead's "current" stills: mean pixel difference
  0.02-2.9 of 255 per still, all of it moving units/wind (local file: classic_vs_current.txt); Classic pinned paint/splat hashes pass.

MEMORY (layer arrays + control maps, BC7 1024 slices, from the game's own estimate; 192 m 1v1 map)
  Classic: grass and tropic 21.6 MB, snow 48.3 MB (incl. S4 28 MB), desert/volcanic 0.
  New: temperate 17.1, tropic 17.1, snow 11.8, volcanic 14.5, desert 14.5 MB. Arrays are split per map type and loaded by
  path, so a map holds only its own set (the library no longer references any array). Control maps are now 2 texels/m:
  +1.1 MB on a 192 map, about 8 MB on a 512 map. Build size: about 31 new slices, roughly 85 MB more in Resources.

FRAME RATE (autotest avg fps over the 70 s tour, 1600x900; two runs each; run-to-run noise is about +-8 %)
  temperate  Classic 151 / 171  New 171 / 157      snow     Classic 170 / 172  New 173 / 154
  tropic     Classic 171 / 171  New 169 / 171      desert   old 164 / 172      New 172 / 167
  volcanic   old 172 / 172      New 161 / 172
  So: no measurable cost on grass and tropic maps; snow, desert and volcanic maybe 0-5 % (inside the noise). GPU time was
  not measured separately. alloc_kb_per_frame world = 0.00 everywhere (no per-frame allocation). No new shader keywords:
  variant count unchanged.
MAP LOAD: world build 287-346 ms today vs 303-331 ms New on the same maps; the new bake itself is 18-25 ms in the player
  (fields 5-11, paths 6-8), the old bake was 15-27 ms. Within 10 % on every map type (desert/volcanic +~20 ms).

TESTS (202 run in GroundLayer, Ground, GroundTileUploader, GroundMip x2, EdgeScenery, WorldRendererCull, VisualPolish,
  BiomeGrade, BiomeWeather, MapGenerator, MapLayout, FreezeScan, MapLookProbe): 194 pass, 2 fail, 6 skipped (explicit/
  diagnostic). Failures: GroundLayerTests.TheSimulationNeverSeesTheGround and EdgeSceneryTests.TheSimulationNeverSeesThe-
  Scenery, both 0x95EC4727C614DDBE expected, both 2609061906737532392 got: the same simulation drift in both (the EdgeScenery
  one never builds a ground), from the uncommitted sim work in the mirror, not this job (no sim file touched). Not re-pinned.
  New tests: new placement deterministic and seed-dependent and stack sums to one (8 maps, all five types); every map type
  resolves its own set with exactly its slices, Classic resolves the old sets and desert/volcanic to the painted ground;
  the style chooses the set in the world; bare maps keep open ground out of the earth channel (64 % -> 0 %); the setting
  saves/loads/clamps; new masks pinned on 8 maps (TheNewGroundMasksArePinned). Old Classic paint/splat hash pins unchanged
  and pass; EdgeScenery and GroundLayer pinned hashes pass.

SHEETS (also in local file: ground_new)
  <biome>_before_after.jpg x5 (CURRENT | NEW, seed 7: base, open ground, woodland edge, 70 m, 110 m), transitions_close.jpg,
  fixedmap_<map>_classic_vs_new.jpg x5 (Rimeheart, Seven Wells, Emberfall, Elderwood, Ammonite), night_temperate_*,
  night_volcanic_emberfall_* (lava edge close: glowing cracks), rain_temperate_*. Seeds 11 and 4242: local file: seeds_<biome>.jpg.

WHERE IT FALLS SHORT OF THE PREVIEWS / THE OWNER'S CONDITIONS
  - Snow: S2's wind waves are baked into its colour; even calmed (normal 0.5, colour 55 % toward its mean, S1 mixed in over
    broad stretches) the open snow still shows a regular wave grain at 34-70 m. Best candidate for a new open-snow material.
  - Desert: busier than today's smooth ground near bases (pebbly hardpan, red scree by ore) and the ripples read as a fine
    regular grain at 110 m. Close to the preview, but not as calm as today's.
  - Hall yards are larger than today's disc (the hall apron plus several short routes merge into one plaza).
  - Round small ore clusters the rocky turf and its fringe still read as rings from 70-110 m.
  - Volcanic: Emberfall's bedrock plain takes the basalt apron widely, a faint plate net from 110 m. The lava itself is the
    old cell-stepped overlay (not part of this job) and looks harsher next to the soft new ground.
  - Tropic mud ring and snow S5 paths: as the art notes warned (S5 reads as speckled tufts, not trampled snow).
  - Ash "downwind" drifts not built (as in the notes).

NOT VERIFIED
  - GPU frame time; low-end GPUs; 512 m maps and 8-player maps in a game window (only in editor tests); BC7 artefacts close up
    beyond the 15 m still.
  - The settings row was not clicked in a running game (load/save/clamp tested, the row compiles); live switching not built.
  - GameTrails wear on the new ground was not filmed over a long match; fog of war, crater/blood decals and snow weather cover
    were not specifically checked (they sit on the same shader inputs as before). Minimap colours come from map features, not
    the ground, so unchanged.
  - Grass tuft colours were left as they are (they sit acceptably on G10/T4 in the stills).

FILES: changes.diff (every changed file against its state before the job; originals in local file: orig). Changed: WorldRenderer.cs,
  WorldRenderer.Edge.cs, GroundLayers.cs, GroundLayerLibrary.cs, PresentationSettings.cs, GameSettings.cs, SettingsMenu.cs,
  GameBootstrap.cs, ShowcaseDirector.Ground.cs, GroundLayerBuilder.cs, GroundLayered.shader, GroundLayerTests.cs,
  Resources/GroundLayers/GroundLayerLibrary.asset. New: GroundLayers.Placement.cs, 12 array PNGs (+meta) in
  Resources/GroundLayers, 28 source folders in ArtSource/Ground. Ground.shader and GameTrails untouched. No settings/material
  noise in git status from my runs. Builder: Primeval > Build Ground Layers (new sets only) / Reset New Ground Set Settings.