# Jajce Center 02 Captured: 2026-07-16 ## Files - [before overview](jajce_center_02_before.png) - [after overview](jajce_center_02_after.png) - [close gameplay grass check](jajce_grass_gameplay_02.png) - `tools/capture_jajce_lookdev.gd` The two overview images use the same 1280×720 camera, fixed daylight value, warmup, and Metal renderer. The gameplay image is a separate readability check, not part of the matched comparison. ## Reference reading The reduction uses Jajce's hierarchy rather than attempting a literal city reconstruction: - the [UNESCO tentative-list description](https://whc.unesco.org/en/tentativelists/2098/) describes the citadel at the summit of a rocky pyramid, ramparts descending its slopes, and residential roofs forming an amphitheater beneath it; - the [official Jajce fortress overview](https://www.agencija-jajce.ba/en/the-fortress/) supports treating the fortress as the primary long-distance landmark; - official Studio Ghibli still collections for [My Neighbor Totoro](https://www.ghibli.jp/works/totoro/) and [Princess Mononoke](https://www.ghibli.jp/works/mononoke/) were used only as broad references for layered green masses, clear silhouettes, restrained natural motion, and small warm human details inside large landscapes; - [Tiny Glade](https://store.steampowered.com/app/2198150/Tiny_Glade/) supports the low-detail diorama reading of whimsical castles, cottages, ruins, and incidental life; - the [Terrain3D instancer guidance](https://terrain3d.readthedocs.io/en/latest/docs/instancer.html) informed the split between camera-local particle grass and intentional tree placement. No building, frame, or asset is copied from those references. The project keeps its own compact low-poly language and real simulation constraints. ## Implemented reduction - The ridge block becomes a larger warm-stone citadel with a rocky plinth, ramparts, descending walls, towers, gate, crenellations, banner, and narrow window slits. - Eight timber-accented plaster houses now cascade below the citadel instead of leaving three isolated boxes in an empty field. - The waterfall is wider, softly animated, misted, and framed by irregular mossy rock columns. Its plunge pool feeds a turquoise ribbon that samples the live Terrain3D height field instead of disappearing beneath it. - The bridge gains a full river span, stone abutments, center pier, rails, and posts. House windows and chimney smoke add small warm points. - Existing rounded deciduous trees are richer and wind-reactive; authored conifer clusters strengthen the citadel, falls, and valley edges. - Three intentionally oversized butterflies add quiet ambient life. - A bounded camera-local Terrain3D grass field uses roughly 10,400 particles. Its project-owned process material keeps blades short and patchy, while a shader receives at most eight real player/NPC transforms and bends grass away from their feet. - Haze and saturation are reduced so green terrain, warm roofs, stone, and turquoise water separate more clearly. ## Authority boundary Grass, butterflies, smoke, water motion, and foliage sway are transient presentation. They do not enter saves or checksums. Player and `NpcVisual` nodes merely expose real transforms to the grass shader. Finite food and wood still come only from stable-ID `ResourceNode` anchors bound to simulation-owned records. The conifers and grass are decorative; the next resource-discovery phase can pair selected Terrain3D-authored visuals with intentional resource anchors without turning every blade or background tree into authoritative state. Livestock is deliberately deferred until one animal has a real identity/state/interaction contract; ambient butterflies do not pretend to be simulated food or work. ## Remaining visual work This is a stronger prototype composition, not final environment art. The next art pass should sculpt a true river channel and waterfall shelf into Terrain3D, replace procedural fortress/house geometry gradually, add bank stones and flower/fern clusters through bounded instancing, and validate a representative frame-time budget. The matched comparison should remain the checkpoint before those asset-heavy changes. ## Capture command ```bash HOME="$PWD/logs/quality/godot_profile" \ APPDATA="$PWD/logs/quality/godot_profile" \ LOCALAPPDATA="$PWD/logs/quality/godot_profile" \ /Applications/Godot.app/Contents/MacOS/Godot \ --path "$PWD" --script res://tools/capture_jajce_lookdev.gd -- \ --output=res://docs/baselines/jajce_center_02_after.png ```