House of Bonsai · Development update

A tree that answers back.

A change of direction, or rather a sharper one. Every care decision should lead to a response you can see, with less waiting between shaping a tree and seeing what the choice did. The first two pieces are built: a before-and-after view drawn from exactly the same camera, with a close-up of the trunk, and a watch that runs a whole season with its care set up front and stops only when the tree needs you. Under them sit a care tag on the pot, manuals that say what a choice does and never what shape is right, and an audit of every decision in the game, sorted into what needs a new mechanic and what only needs better feedback.

Results

Every check ran on a rented GPU this time, so the development PC stayed free. The care manuals went in after two runs (50 of 54, then the three it missed: 20261017-183652, 20261017-192225). The care warnings ran 56 of 58 (20261017-193215; the two misses were a check that always fails on a rented machine and the cherry's false alarm, fixed). The before-and-after and the season watch took four runs to get right (20261017-195150 to 20261017-200955), and the whole branch then ran 59 of 60 checks on the rented machine (20261017-201214; the one miss is the check that always fails there, and it passed on the development PC) before going in.

Development capture, 17 October: a ficus's first summer, 1 June beside 1 September, from the same camera, as the season watch ends.
Development capture, 17 October: a ficus's first summer, 1 June beside 1 September, from the same camera, as the season watch ends.

The direction

A bonsai is a long conversation with a living thing: you cut, bend and wait, the tree answers, and the answer gives you your next idea. The game already grows its trees from what you do to them, but too often the answer came weeks of watching later, or never visibly at all. A trunk thickens two to four millimetres a year in a pot, which at the bench's usual framing is less than two pixels a millimetre. A year of watching took thirteen separate watches for a ficus and over thirty for a cherry.

So the test for every feature from here: after ten minutes, can someone point to a change they caused, feel pleased or intrigued by it, and already want to try their next idea? The tree should feel like a collaborator. It responds to your choices, sometimes surprises you, and never has a correct shape it is waiting to be cut into.

That last part changes the manuals too. They now say what a choice does, never what is right. "Cutting every new tip keeps the tree small and slows its thickening" is useful. "An attractive outline" and "a finished bonsai" are gone.

Before and after, from the same camera

Press F7 at the bench, or Before / after on the tree's plaque, and the tree as it is now is laid over a picture of how it was, drawn from exactly the same camera. A wipe sweeps from before to now and settles on the trunk, the left half of the tree as it was and the right half as it is. Drag to move the wipe, Space flips between the two, 2 switches to a close-up of the trunk's base, and [ and ] step back through earlier pictures.

The bench takes the pictures itself: when you open the tree, when time starts after you have worked on it, and when time stops. It opens on what you most likely mean. After a cut, that is the tree before the cut; after a watch, the tree as you left it. Under the pictures is the change the model measured: the trunk's diameter at its base, new shoot length and foliage.

The journal's photographs could not do this, because each one is framed by the tree's own height, so a taller tree is photographed from further away and the growth scales itself out of the picture. Here the frame never moves. If you have turned the pot since, it is turned back for an instant while now is drawn, behind the view's dark backdrop, so you compare the same side, against the same room, in the same light.

A ficus from the nursery, from 1 JuneTrunk at the baseNew shootsFoliage
After 30 days5.0 → 5.3 mm (+6 %)+15.9 cm+23 %
After 90 days5.0 → 6.2 mm (+23 %)+47.3 cm+58 %
A ficus sapling on the bench with a vertical wipe through its trunk: on the left as it was on 1 June, on the right on 1 July with new shoots and pale fresh leaves.
Thirty days: the wipe rests on the trunk, before on the left, now on the right.
The same ficus compared with its picture from 1 June after 90 days: the right half of the tree taller and leafier.
Ninety days: against the tree as it was opened.
A close-up of the ficus trunk's base at the soil on 1 June.
Press 2, 1 June: the trunk at its base, 5.0 mm.
The same close-up 90 days later, the trunk visibly thicker.
90 days on: the same close-up, 6.2 mm.

A season in one watch

The watch card has a new span: To the next season, which runs to the next 1 March, June, September or December, up to 92 days, at the game's own pace. Its care is set on the card, in the open. As its manual says means the game reads the moisture probe at eight in the morning and seven in the evening and waters at the manual's mark until it reads 8, a cherry every morning while it is in leaf. Only what you set means exactly that.

It stops only for problems: flagging, injury, death, a wire biting into a thickening branch, or a ficus caught outdoors by the cold. Everything else that happened, such as the first new shoot or leaves turning, is named in the line that ends it, with how many times the tree was watered. Then the before and after opens by itself, from where the season began.

Nothing about growth changed. The model grows the tree exactly as it did; only the waiting got shorter. Multiplying growth rates was never the answer: tried at 365 times, one day gave a ficus less trunk than a real year does, the seasons did not move, and within two weeks the tree outgrew its pot.

One summer, 1 June to 1 SeptemberFicus, growing roomCherry, courtyard
Watches11
Time on screen68 to 73 s70 to 72 s
Waterings, as the manual says20159
Trunk at the base5.0 → 6.3 mm (+25 %)5.0 → 7.4 mm (+48 %)
New shoots+47.0 cm+47.7 cm
Foliage+64 %+114 %
Before: watches for a whole year1332 to 34
A ficus on the bench split by the wipe: 1 June on the left, 1 September on the right after one season-long watch.
One watch: a ficus's summer, 1 June to 1 September, as the watch ends on its own comparison.
The watch card with To the next season selected and As its manual says chosen under Care while watching.
The card: the span and the care, said in full before you start.

A tag on the pot

When a tree needs something, a paper nursery tag now hangs from the bowl's rim on your side: amber when to act soon (flagging, growth slowing, starving, too cold, a wire biting), red while tissue is being lost (injured, frost). The plaque's condition line becomes the same colour. A click on either, or Shift+M, opens a care card: what to do, and the tree's needs from its manual beside how it is kept now.

Measured over a year, a tree kept by its manual shows no red tag and almost no amber, and a neglected one shows its amber tag 46 to 123 hours before any injury. The first measurement also caught a false alarm. A young cherry kept exactly by its manual fills its training bowl by about day 57, and the tag would have asked for a midsummer repot for four months. Crowded roots are now a note on the card, repot when it next wakes, rather than a tag.

A ficus on the bench five days unwatered, an amber paper tag reading Growth slowing hanging from the bowl's rim, the plaque's condition line amber.
Five days dry: the tag and the plaque.
The care card: the warning and what to do, then rows for place, bowl, soil mix, water and drip timer with the manual's advice beside how the tree is kept.
Shift+M: its needs beside how it is kept.

What every decision shows

Before building more, I traced every decision in the game through the code: what the tree does with it, how long until that shows, and what tells the player. Most of what is missing is feedback. The tree already does the thing, and the player cannot see it or connect it to what they did. A cut wakes buds, but the marks showing which ones vanish as you cut, and nothing later says they broke. A wire sets 78 % of a bend in 30 growing days and 95 % in 60, and nothing shows that progress. The real mechanic gaps are fewer: defoliating the nursery's own stock never re-leafs, a biting wire leaves no scar, there is no pot bigger than the training bowl to thicken a trunk in, and you cannot choose which roots to prune.

DecisionWhat the tree doesWhat tells the player nowMissing
CutWakes up to two buds; a stub dies back in 21 daysMarks before the cut, nothing afterFeedback
WireSets 78 % of a bend in 30 growing days, 95 % in 60One moment when it bitesFeedback, and a scar
Remove leavesGrown shoots re-leaf in one to two weeksOne line at the timeThe nursery stock never re-leafs
Let a shoot runThe trunk below thickens twice as fastNothing, until the close-up aboveFeedback
RepotGrowth waits while the roots regrowOne lineChoosing which roots; no bigger pot
WaterLeaves recover in about half a dayFlagging stays on the plaque for up to two daysFeedback
SeasonsA cherry blooms only when a midsummer check passesOnly when it succeedsFeedback
WatchingA year took 13 to 34 watchesThe season watch aboveStarted

Leaders that thicken as they grow

A screenshot from a long session in the courtyard showed a juniper's leader tent-poling: a thin shoot standing on a thick stock. A real stem grows thicker and longer at the same time. The stock had been laying its supporting wood up to its own tip and stopping, so the leader that continued it got none. The stock and its leader now take that wood as one column, tapering from the top. The leader starts at 0.91 of the stock tip's radius instead of 0.67, and grows 40 % thicker while it grows 75 % longer. It is waiting for a last look before it goes in.

A juniper's leader on 29 September under the old rule: thin above the stock.
Before: the old rule.
The same juniper and day with the fix: the leader thicker, tapering from the stock.
With the fix: the same tree and day.

What's next

  • Show what a cut did: keep the woken buds marked until each has a leaf, say when they break, and let a watch stop when your edit responds.
  • Readouts on the plaque: the trunk's diameter and this year's gain, and how much a wired bend has set.
  • Trees with a history: an inherited, neglected or storm-damaged starting tree with a note on where it came from, and no restoration target.
  • Presentation as its own art: pot angle, viewing front, stones and space, work that needs no time to pass.

What I learned

A picture you mean to compare must come from a camera the renderer has actually moved. Godot hands a node's new position to the renderer at the end of the frame, so the first before-and-after pictures each came from where the camera had been for the previous one, the very first from inside the pot. A check that averages a whole picture cannot see one twig cut from it; measure where the change is. And a warning that fires for a tree kept exactly as its manual says is a false alarm, however true the condition behind it.

Sources & development context

Based on House of Bonsai's source history and notes from 17 October: the check runner's records (runs 20261017-183652 to 20261017-201214, with 20261017-143242 on the development PC), the before-and-after, season-watch, care-warning and leader studies' captures (windowed runs on a rented GPU at 1920 by 1080, shown cropped to the comparison's frame), the model's own measurements of trunk diameter, shoot length and foliage area, and two read-only audits of the game's code. These are game captures and model outputs, not field measurements.

All House of Bonsai posts