Skip to content

Visual: remove purple ground clutter and unify the lush Lowlands#87

Draft
ael-dev3 wants to merge 1 commit into
review/pr5-head-fc95959from
visual/lush-lowlands-unification
Draft

Visual: remove purple ground clutter and unify the lush Lowlands#87
ael-dev3 wants to merge 1 commit into
review/pr5-head-fc95959from
visual/lush-lowlands-unification

Conversation

@ael-dev3

@ael-dev3 ael-dev3 commented Jul 21, 2026

Copy link
Copy Markdown
Owner

Summary

Presentation-only Lowlands unification based on the reviewed PR5 head.

Exact review base

  • Base branch: review/pr5-head-fc95959 (preserves the deleted PR5 source ref)
  • Base commit: fc95959d3c2128c267e535a6e6cffec5aaa692ff
  • Head branch: visual/lush-lowlands-unification
  • Head commit: 52c997c7caaf848b183bbefe0d591b0e8d701522
  • This is a draft PR. Do not merge, activate, deploy, tag, or retarget it.

Diagnosis

PR5 made the grass layer readable, but the remaining Lowlands presentation still had a purple semantic heath tint, a purple-gray Ancient Stone treatment, and one ordinary heath-bloom per High/Balanced heath cell. Heath grass was also the sparsest of the usable green biomes, leaving isolated color blobs.

Changes

  • Removed ordinary heath-bloom generation and filtered the historical type from the live feature layer. The feature kind remains in the compatibility union and telemetry is explicitly zero.
  • Replaced the broad heath purple tint with a restrained moss/olive tint.
  • Reworked Ancient Stone semantic color and monolith fallback material to neutral slate/moss with no violet emissive read.
  • Increased Meadow/Lowland/Forest/Heath candidate and retention policy for more continuous grass, while retaining slope thinning, deterministic hashes, structure/resource exclusions, active-window packing, and quality caps.
  • Kept Ridge and Ancient Stone grass modest so height, outcrops, and monoliths remain legible.
  • Added bounded telemetry for feature counts, candidate/active cells by terrain, retained instances and average density by terrain, bare/rejection counts, grass luminance/green ranges, draw calls, triangles, cache state, and overview-hidden state.
  • Added the visual policy note in docs/plans/2026-07-21-lush-lowlands-unification.md.

Authority boundary

No terrain schema, terrain membership, passability, resource/core/reserve metadata, castles, routes, economy, SpacetimeDB, auth, Pages, production, or release files changed. No new runtime binary or texture was added. The shared ambient scheduler, selection/interaction uniforms, no-op grass raycast, lifecycle cleanup, camera-local cache, and quality budgets remain intact.

Budgets and overview

The existing High/Balanced/Reduced grass instance, triangle, variant, draw-call, active-window, and overview-hidden policies remain enforced. Grass remains hidden in overview mode and uses the same shared demand-driven wind scheduler.

Verification

  • Focused visual/scene contracts: 47 tests passing.
  • TypeScript project build: tsc -b passing.
  • Production client bundle: vite build passing.
  • Runtime asset verifier: 40 exact runtime assets and 4 provenance masters verified.
  • Full Vitest run reached 1,622 passing tests; remaining failures were existing sandbox-only loopback/tsx socket restrictions in Hermes/browser-probe lanes. The canonical grass digest was updated for the intentional density-policy change and the focused Genesis bounds test passes.
  • Rendered WebGL QA was attempted with elevated loopback permission but stopped before rendering because the repository's reviewed local castle-source archive is unavailable. No screenshot is claimed from that run; identical-camera screenshot QA remains blocked on that pre-existing local archive prerequisite.

Risk and review notes

Main review risks are visual calibration on real mobile GPUs, grass density/thermal behavior, and the unavailable local rendered-QA archive. The changes are deterministic and bounded; no gameplay or authority behavior is inferred from the new diagnostics.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant