Creatures, a camera, a team structure and an interface
Five creatures and the Seed-Bot through a new character pipeline (Glimmer Grazer, Skyweaver, Vinebloom Stalker, Luminbloom and Moss), a first/third-person camera switch, the project organized for many agents at once, and an interface cut from Jeremy's own sprite sheets.
17entries38screenshots3agents
historymossterrain
00:51history
The Glimmer Grazer, the first polished creature
characterscreaturesshader
Day look in the showcase: pale plates, light through the leaf wingsNight: the herd's courtship display, with the test panel open
The creature rigged the evening before (a Tripo model with broken weights and an unrigged fifth leg) turned out to be the Glimmer Grazer, and Jeremy asked to polish it to its concept sheet: "the first polished game asset, so make it count". He chose about 1.4 m tall, keeping the fifth leg, and a look that follows the light where each grazer stands.
Look: a new creature shader with two states. By day, pale pearl and sage plates whose thin leaves let light through; at night, amber light organs pulse nose to tail and blue nodes glow at the joints.
Behaviour: herds graze together, stand tall and watch within about 8 m, and bolt as a herd after one alarm chirp within 3.5 m.
Test bench:GlimmergrazerShowcase with a panel for light, behaviour, herd size and an intruder.
Fixed on the way: the first version followed the player's area, so every grazer lit up while the Seed was underground.
All ten grazers in VerdantSpire now use it (commit bf57f86).
01:39history
The Skyweaver, and a pipeline skill for every character
characterscreaturesskillworkflow
A Skyweaver drifting past the floating islands in its showcaseAt night the tendrils glow full cyan
Jeremy asked for the Grazer process to become a reusable skill, since more Tripo characters were coming. tripo-character-pipeline writes it down as phases (intake, rig audit and repair, IK, animation, look, Unity import, behaviour, showcase, placement), each ending with a render, a number or a Play test. It ships a Blender helper module and Unity scripts, and was tested by repairing a copy of the original broken rig in about 4 seconds.
The Skyweaver was its first test, and Jeremy expected it to show the skill was too Grazer-specific. It was:
The jellyfish came with no bones at all, so the skill gained a build-a-rig-from-scratch branch: a spine, a pulsing bell bone and five tendril chains.
Movement is waves, not legs: Hover, Drift, Swim and Communicate. CreatureGait no longer needs a NavMesh agent.
One shared PlantGame/Creature shader and CreatureLook replace per-species copies.
About 8 m long, glowing tendrils, curious: three drift over VerdantSpire and come down to look at the player. The Grazer showcase was re-checked after the shared changes (41a678f, 5fbaa6f).
02:33history
The Seed-Bot: the player gets a real body
charactersplayeranimation
The Seed-Bot in its test course, rooting, with the station panelCanopy Glide off the test tower, leaf wings open
Next, the main character, from four concept sheets. The Tripo model was an unrigged 1 m mesh, so it got a humanoid skeleton where each bark plate and leaf follows its own bone rigidly, and 19 in-place clips: locomotion, jump, fall, land, glide, swim, dodge, a three-hit combo, hurt, and one for each ability (Connect, Sense, Rooting, Threadroot swing, pull and yank).
Body-change parts are real meshes now: leaf wings for the glide made from the model's own leaves, a root coiled round the arm for Threadroot, glowing fibres down the legs for Root Sense.
Canopy Glide: hold Jump while falling. From the 14 m test tower it covered about 42 m. How it unlocks is still Jeremy's call.
Size: 1.6 m; the capsule kept its old width, because a narrower one failed a ledge-climb test by 3 cm.
Test course:SeedBotShowcase, one station per interaction, with a panel to grant abilities and preview every clip.
VerdantSpire's player uses the shared prefab, so it changed with no scene edit. All 18 PlayMode tests pass (3b86710, 749a1c0).
03:11history
Seed-Bot polish: plant-like motion, symbiotic strikes, living vines
charactersplayeranimationvfx
The new rooting roots, by day and by nightRooting, Connect, a vine lash, the root eruption, Root Sense and the Threadroot swing
Jeremy's notes after playing: rooting should start later, the walk and run were too mechanical (it should move like a plant), the vines needed a better look, and the punches didn't feel symbiotic. He gave free rein to keep polishing.
Movement: weight shifts side to side and the motion travels up the body with a lag, like a stem in wind; arms swing like branches.
Vines: one vine renderer and shader for every vine: bark, a glowing spiral vein, travelling pulses, leaf buds. Connect now creeps from the hand along the ground to the node.
Rooting: starts after 3.5 s still (was 1.2 s); roots spread from both feet and sink into the soil.
Combat: strikes 1 and 2 are whip-like vine lashes; the finisher plunges both hands down and a fan of root spikes erupts.
Also: leaves that grow over the body with each bond, the head turning toward points of interest, seedlings in its footprints.
A bug in the skill's import helper (re-imports silently dropped materials) was fixed along the way. 18/18 tests (d28333c).
09:20history
Sunken Grove polish pass
worldlevelworkflow
Before: the Canopy Gate as a blockoutAfter: roots, vines, the machine door and a waterfall from the wallThe Flooded Engine's water wheel and cyan core
Jeremy asked for the Grove to be polished toward its concept, run as a multi-agent workflow: 17 agents, never more than 5 at once and only one in the Unity Editor.
The art is an add-on layer under a single "Grove polish" root (Plant Game → Scenes → Apply Grove Polish), so it can be reapplied without touching layout, gameplay objects or colliders:
Canopy Gate: buttress roots, a bronze collar and a machine door on the hearttree.
Central Basin: waterfalls off the ruin walls, light shafts, varied lily pads, a paved causeway.
Flooded Engine: a paddled water wheel with a glowing cyan core.
Hidden Cavern: a rock-roofed grotto with glowing mushrooms and crystals.
Ruins: arcades of broken arches.
About 385 new renderers, no shadowed lights, 18/18 tests (ce7435c). The art review scored the first round 3-6 out of 10; the fix round was not re-scored. Honest read: richer, but still a polished blockout - primitive props, mushroom-disc canopies, flat lighting. Real hero assets and a lighting pass are the next steps.
10:05history
Organizing for many agents
projectworkflowscenes
New Game through the Bootstrap scene: the Seed in the Vault with HUD and objective
With several sessions now working at once, Jeremy asked for the project to be organized so any agent can find things and work safely.
Guides: a project map (every folder, scene, system, generator and test), a working guide with an Editor lock for the one shared Editor, and a decisions record.
Cleanup: everything no longer useful was removed after a reference check - the first prototype scenes, raw Tripo imports, template leftovers (24 items, about 153,000 lines). The design bible moved to Docs/.
Design site: the living design document is now linked as the source of truth, with a digest of its status labels.
Scene standard: after research on current Unity 6 practice, every scene has the same top level (_Systems, _Lighting, _Environment, _Gameplay, _Zones). The research also found about 600 components silently dead because several classes shared one file. Each now has its own.
Bootstrap: the game now runs as a Bootstrap scene (session, Seed, cameras) plus the region loaded next to it, so new regions can be added as their own scenes. 18/18 tests (a3247b1).
10:41history
The Vinebloom Stalker, now able to climb walls
charactersenemiesai
Patrol by day and night, charge glow, climbing over a wall, hidden in fernsComing down a wall head-first after the Seed
The Stalker enemy replaces its primitive placeholder with the Tripo model from its concept sheet. Jeremy chose about 1.3 m, amber eyes (the model's bake had lime) and wall climbing on top of the existing AI.
Rig and clips: a body bone, four three-bone legs with IK, the bloom and crown; 16 clips covering walk, run, climb and every AI state (hidden, spot, crouch, leap, swipe, stunned, death).
Look: amber eyes and knee lights that brighten while hunting; the bloom flares pink as a leap or swipe winds up, the warning the AI already had.
Climbing: climb links on the navigation mesh that only Stalkers use. A tool finds walls 1.2-7 m tall with walkable ground on top; VerdantSpire got 25 on the 5 m ruin walls. In the arena one climbed 5 m down head-first in about 1.6 s, then chased and leapt.
Gameplay: a 0.5 s rear-up and hiss when it spots the Seed; no climbing while backing off.
All 7 placed Stalkers updated through the prefab. 18/18 tests (ff79257).
12:16history
The Luminbloom: Vitality Blooms that wake up
charactersplantsworld
Dormant bud at night, in the test sceneFull bloom with the Seed close byIn VerdantSpire's Crystal Basin, stem turned toward the Seed
The plant from the flora concept sheet becomes the model of the existing Vitality Bloom (the in-game name stays the same). The Tripo plant had no rig and was almost one connected mesh.
Behaviour: the bud wakes within 13 m, is fully open by 4.5 m, turns its stem up to 70° toward the Seed and chimes softly. When absorbed it flares, snaps shut and sinks into the ground before disappearing.
Look: blue-violet petals and cyan trunk nodes. The petals first rendered washed-out white, and needed two material passes.
Fixes: a skinning helper sent leaf tips to the flower core; a separate code review found 5 bugs, the worst being a test scene that would have overwritten the real save file.
All 6 placed blooms updated through the prefab. The work waited for the Editor lock while the Moss session held it. 20/20 tests (c62d637). Jeremy's standing rule from here: always commit your own work.
12:23moss
Moss, the companion, joins the game
charactercompanionface
Moss's face: the 12 expressions, each with its own eyes, lids, brows and mouthThe first meeting, beat by beat, ending on the introduction cardMoss waiting in the Seed Vault
Moss is in, built from the Moss - Companion NPC concept sheet: the Tripo model rigged and animated in Blender (23 clips), about 0.6 m tall, with a drawn face that can show 12 expressions, blink, and look at things. The face is there because Moss is meant to be someone the player connects to, not only a body that moves.
Where: waiting in the Seed Vault, tinkering beside a pod. The first time the Seed comes close, a short scene plays (Moss peeks, hides, looks up and lights up), then a card introduces them.
What they do: follow the Seed, stay or come on command (R / d-pad up), and go look where the Seed aims (G / d-pad down).
Test bench:MossShowcase has a panel for every expression, clip and command, plus a button to replay the meeting.
12:38history
Keep getting better: practices, trials and a commit gate
projectworkflowtools
Before: the Basin's far bank missing its shore rocksAfter the rebuild: shore rocks and reeds back along the far bank
Jeremy asked for the project to improve its own workflow: what agents repeat becomes a best practice, what must be followed becomes a standard.
Process (IMPROVING.md, PRACTICES.md): observations become candidates, then best practices or standards; a manual routine done a third time becomes a tool. Every task ends with a close-out: docs, a short retro, check_project.py.
Trials: practices from outside research start as trials with a hypothesis and a kill signal, and need 3 real rounds before adoption. Three started, each aimed at a failure this project had already hit.
ContentValidator: its first sweep found 7 Grove shore pieces pointing at meshes never committed. The cause was the Grove tool's cleanup deleting meshes after a failed run; it now never deletes a mesh a scene uses, and the shores were rebuilt (1814aed).
Commit gate: the pre-commit hook now blocks commits with assets that exist only on disk, missing .meta files or missing scripts. Sessions can also claim a scene they're editing.
Held back for Jeremy: splitting VerdantSpire into smaller scenes, and a second project copy for tests (505192f).
13:32moss
Characters stand on the ground now (and the tests that prove it)
animationtestscharacters
The Seed running in the grounding test: the planted foot meets the groundThe test's survey of placed characters: Moss in the Seed Vault
Jeremy noticed models not sitting right on the ground and moving strangely, and couldn't tell if the ground or the models were wrong. The new CharacterGroundingTests measure it for every character standing, walking and running: the gap between the lowest point of the visible, animated mesh and the real ground, and how far planted feet slide.
Verdict: the ground was fine; the models floated. The navigation surface sits up to 20 cm above the colliders it was built from, and the Seed's controller hovers by its skin width. Stalkers and Grazers floated 8-20 cm, the Seed 5 cm.
Fix:GroundSnap lowers each model onto the real ground while it is grounded. The walk-to-run blend was also redone so feet stop skating at in-between speeds, and the Seed's lean now pivots at the hips.
Still open: the old Root Guardian placeholder (no real model yet), and toes dipping 4-5 cm on the Seed's and Grazer's run cycles.
17:42history
First person, and a steadier third-person camera
cameracontrols
Third person in the Moss test benchSame spot in first person: eye level, body hidden; the green shapes are the spawn bed's petals
Jeremy asked for a switch between third and first person and for the camera to feel smoother; the game didn't feel quite right.
The switch: V or a right-stick click, or scroll the wheel all the way in. A 0.3 s eased move to the eyes; both views share one aim, so the camera moves straight in instead of swinging round. In first person the body is hidden (its shadow stays), turns with the view, and the field of view is 8° wider.
Measured before changing anything: no judder while running. But the camera rose 1.51 m on the Seed's 1.64 m jump, so every hop bobbed the view; it now holds its height through a normal jump. Respawns swept the camera across the level for about half a second; now they cut.
Smaller: zoom and field of view were updating in the same step as Cinemachine, sometimes after it; the controller auto-follow waits 1.5 s (was 0.9).
New CameraViewTests; a review found 4 bugs, all fixed. PlayMode 28/28. Not yet played by hand. Commit c8bf8cf.
18:59history
A first interface pass, drawn by code
interface
The drawn version: new-symbiosis card, connect prompt and vitality gaugeDrawn pause menu and journal
Jeremy shared his UI concept sheets and asked for an interface that fits the game: unique, not flashy. The sheets were low resolution with the background baked in, so this first pass didn't cut from them. Tools/generate_ui_art.py drew 28 sprites in their style instead: bronze frames around dark teal glass, round medallions, vine sprigs, a leaf slider knob and 14 icons.
HUD: vitality gauge under the Seed's emblem, the key in a medallion whose ring fills while you hold to connect, ability medallions with recharge rings, framed new-ability cards, a boss bar.
Menus: medallion lists for title and pause, bronze-edged settings rows and tabs.
Not built: inventory, map, ability wheel, growth tree, scan screen, dialogue portraits. No systems behind them yet, and an inventory goes against the design's "world interaction over inventory" rule.
PlayMode 28/28; a review found 2 minor bugs, fixed. Commit be4a711. Jeremy's verdict came a minute later (next entry).
19:26history
Jeremy's own sprite sheets instead
interface
The card in the sheet's frame, with the leaf medallion set into the topPause menu with the sheet's medallion buttons and vine frame
Jeremy: the code-drawn UI doesn't look as good; use the sprite sheets he sent. The sheets are 1536×1024 with no transparency, and automatic detection of the pieces was too noisy, so the crop boxes were picked by hand. A new Tools/extract_ui_sheet.py cuts each piece from its box, removes the sheet background around it and keeps the dark glass inside frames. The drawn pieces are now only a fallback.
Where they went: medallion menu buttons (cyan glow when selected), the vine frame for menus and journal, the large dialogue frame for cards, bronze bars, tabs and a leaf knob in settings, the leaf emblem and gauge tube for vitality, toasts, marker and reticle, and the icon sheet's medallions for abilities.
Problems: stretched vine edges smeared, so they repeat now; tiled glass showed seams, so the glass inside is plain. The pieces are small in the sheets (a toast is about 210×40 px) and look a little soft at 1080p.
Jeremy asked to note missing or low-res art rather than block on it: Docs/UI_ART_NEEDS.md started. Commits de2b4e9, ee6406b.
20:15history
Three more sheets: key bar, frames and gauges
interface
The key bar with the bound key written on its discA sound caption in the cyan speech bubbleBoss bar: amber fill, pale damage trail, phase gems, medallion in the ring (test values)
Jeremy sent more sheets over the next hour, each covering items on the art-needs list. The pieces were bigger, so they didn't need upscaling.
Key-prompt sheet (957c4d7): the interaction prompt is now his key bar. The baked "Y" is painted out and the real bound key is written on the cream disc (E, A or Cross); the bar glows cyan while you hold to connect. Also ready/recharging ability medallions, the gauge tube, a gold pin, an amber reticle and a bronze mouse cursor.
Frame sheet (b53e012): menu buttons with an empty ring, so each entry's icon sits in it instead of covering a baked one; a card frame with a ring slot for the ability medallion; a cyan speech bubble for sound captions. The captions first didn't show in captures: the Editor ran at about 8 fps in the background, and the 2.2 s caption had expired.
Bar sheet (0760748): his green, cyan and amber fills for vitality, sliders and a new boss bar.
Then an image prompt for the rest, asking for a flat background: the blurred ones were the hardest to cut.
21:41history
The requested sheet: ability icons, key caps, menus
interface
Area banner, message plate, Seed emblem and the seedbed toastFinal pause menu: lit medallion on the selected entry, gem-cornered panelSettings: row states, folder tabs, cyan slider fills and key caps in the hints
The sheet Jeremy made from the prompt had a flat background, so its pieces were found automatically (3728684).
Abilities: all eight have their own medallions now (Threadroot, Root Sense, Dodge, Connect, Rooting, Moss, Seedbed, Vitality Bloom), bright when ready, dim while recharging.
Key caps: a tool writes each key's label onto about 12 blank caps, making 283 icons (letters, F-keys, mouse, Xbox, PlayStation, sticks, d-pad). The free generic set is now the fallback.
Also: a banner for area names, a plate for messages and behind the title tagline, a tall gem-cornered panel for pause and settings, a seven-frame loading ring.
Jeremy asked whether each key needs its own sprite. The big HUD prompt already writes its letter in code; the sprites are for prompts inside a sentence ("Press [E] to connect"), where the text system can only place an image. They cost one ~2 MB texture.
A last menu sheet (93f91e9) gave settings rows in three states, folder tabs and seven menu medallions, with only the selected one lit. UI_ART_NEEDS.md now lists nothing missing for the current screens. PlayMode 28/28.
22:09terrain
Where the world started
worldresearch
The Sunken Grove before the world researchThe approach to the Verdant Spire
Jeremy asked to tackle the terrain: it did not look like the finished game should. Before changing anything, ten baseline captures of the current world, measured: median brightness 0.04 and 63% near-black - only 2 of 10 pass the value screens we later set from 89 reference screenshots. Four research agents then read all 26 design-site pages and the concept art.