hedgepets

HedgePets

A tiny Godot 4.7 (GL Compatibility, portrait 1080 × 1920) garden-creature lab. The design notes are hedgepets, part.md (“we’re going to care about these things way too much”).

Gerald

The garden (the main scene, garden.tscn)

A messy back garden: clear junk 🪏, plant and water 🌱💧, and pets peek through the broken fence, visit, then move in when the garden suits them. docs/GARDEN.md. Transitions: docs/MOTION.md. Mobile / web export: docs/MOBILE.md. The backyard: docs/BACKYARD.md.

Gerald in 3D (the pet viewer, main3d.tscn)

Art direction, parameters and acceptance: docs/ART_DIRECTION.md. Developer view: F1.

Pets: Gerald (beaver, ivy), Clover (sitting bunny, clover, a cotton tail of blossom), Juniper (hedgehog, fern), Bramble (tortoise, a flowering jasmine shell), Spruce (moose, pine, wooden paddle antlers), Hazel (squirrel, autumn oak with acorns, a huge tail), Smudge (raccoon, silvery sage, a mask and a ringed tail), plus 40 New England animals made from data (pets/species.json via scripts/art/species_builder.gd; see docs/GARDEN.md) - each a profile in pets/*.tres on the same renderer. Switch with ‹ › or the arrow keys. Drag to turn the pet (turntable with momentum), drag up/down to tilt, wheel to zoom, tap for a hop and a heart.

pets

acceptance sheet

Seen from above and to the side like hedgepetsGoal.jpg. Everything is built in scripts/hedge_pet_3d.gd: leafy masses for the body and head (deep shade inside, no fur), about 2,000 ivy leaves as MultiMeshes placed on the surface (the same sprites and normal maps as the 2D version), vines hanging off his sides, a woven-twig tail, root feet, berry eyes, a seed nose and seed teeth, leaf ears, a warm sun with real shadows. The wind runs on the GPU (shaders/leaf.gdshader): gusts roll across him, leaves bend, flutter and twist. He blinks, turns his head a little toward your pointer, and hops with a heart when you tap him. ~59 fps.

Gerald

The 2D version is still main.tscn (open it in the editor, or set it as the main scene).

What is here (2D)

Checking it without a window

xvfb-run -a -s "-screen 0 1080x1920x24" godot --path . --rendering-driver opengl3 --script tools/capture_screenshot.gd   # /tmp/hedgepets-headless.png
xvfb-run -a -s "-screen 0 1080x1920x24" godot --path . --rendering-driver opengl3 --script tools/capture_frames.gd       # 6 frames with a tap
DISPLAY=:0 godot --path . --script tools/fps_check.gd                                                                        # frame rate on the real GPU