In this chapter

In this chapter

  1. More objects will not fix the empty feeling
  2. Slightly off centre
  3. Even the empty meadow needed a test
  4. And yes, there is a duck
  5. Still in the making

More objects will not fix the empty feeling

Procedural clutter is easy to scatter and hard to arrange well. A perfectly legal pot can block a door, an even spread looks like wallpaper, and ten equally prominent things leave a courtyard with nothing to look at first.

The shared composition layer starts with places people recognise, lanes and small courtyards. It builds a keep-clear field around doors, openings, low windows, gates, stair feet, landings and even the editing handles, plus a separate visual-mass field that estimates where the scene already feels heavy.

For packing, pieces are treated as circles, largest first. Each group gets one anchor, such as a tree, a pergola or a table, and the smaller pieces go around it. If a suitable object is already there, it becomes the anchor, so the layer doesn’t plant a rival next to it.

One garden, two anchors
Composed garden using seed 0, with a tree as the courtyard anchor
Two layouts from the early garden experiments. Look inside the courtyard beside the houses. These were generated for test scenes before the system was connected to live editing.

Slightly off centre

The first version tries thirty seeded layouts for each group. Each piece samples possible positions, and the cost weighs clear space, visual mass, grouping and where the lane or courtyard wants its activity.

The score targets a leftover imbalance of 0.15 of the group radius instead of perfect balance. The slight asymmetry is deliberate. It lets a group feel arranged without looking as if a spreadsheet centred it.

Seeds make the experiments repeatable. The same scene and seed should give the same arrangement whatever the animation clock says, and measurement time is kept out of the deterministic signature, so tests can come back to a visual choice and check it.

Even the empty meadow needed a test

Review found that a small bare patch of ground could count as a courtyard with no building or wall anywhere near it. The system would then dutifully decorate the meadow with a focal point nobody asked for.

A guard now rejects courtyard groups with no members. The regression test uses the same patch twice: bare, it produces no group; with a house next to it, it can qualify. It’s a neat example of turning a visual intention into a precise test.

Some limits remain. A few lane anchors sit outside the chosen camera’s view, tall trees can dominate the imbalance target, and terrace and single-facade groups aren’t derived yet. Those are questions about composition as much as about the algorithm.

And yes, there is a duck

The first creature experiment was a mallard: one low-poly mesh, a small palette, a readable outline and three poses (paddle, dabble and wake). That was enough to ask whether this animal belonged in this world.

The birds in that experiment have to be switched on explicitly. They exist only at runtime and never touch saves or undo. Flock behaviour and other species were still to come.

Richer clutter and foliage, ambient sound, a layered score and softer look profiles were still plans. The next four chapters follow that work through 24 September.

The first mallard in an enlarged capture, before work began on the wider creature behaviour.

Still in the making

So far, small things have kept turning out to depend on each other. A better brick needed a shared coordinate system, a warm window needed a stable light pool, a friendly placement tool needed candidates to score, and a convincing garden needed to be allowed to leave space empty.

The player should be able to get lost in a little town. Most of the work underneath is finding the rules that let them forget there are any.

From the project notebook

This chapter draws on the project’s records as they stood on 23 September 2026.

  • docs/visual-handoff.md · Feel B0a and its review fix
  • scripts/composition.gd · Initial shared composition layer
  • docs/visual-handoff.md · Feel C1g mallard gate
  • docs/tiny-glade-feel-handoff.md · Approved mallard gate and remaining stages
Read the source excerpts
End of part 08Back to the chapters