Slow Iteration: Building Orbit Courier With AI

17th Oct 2026
Creation & Media
The original Slow Iteration Note illustration: a ceramic courier, floating islands and a bridge taking shape. Concept artwork, not gameplay.

AI taught me a phrase I hadn't expected: slow iteration.

Most of my working life has moved in the other direction. Scrum, sprints, delivery, the next improvement. There is always a reason to move faster. Then, while making a little game with AI, I found myself considering a different rhythm. We could keep working on it simply because I liked it. A light today, a bridge another day, a small world that gradually became more complete.

On October 7, I wrote a Note about that feeling. I compared it to writing a novel: come back, add something, revise a passage, see what the world wants to become.

Then there were the pictures.

A ceramic courier waited on a floating island. A wooden bridge reached toward the next platform, with a small glass section catching the dawn light. The metal was warm, the stone had weight, and everything seemed suspended above a quiet morning.

I wanted to be able to drive into that picture.

That became the next ambition for Orbit Courier: take our little browser game and patiently work toward a world with that quality. Morning Crossing is now its first public route. The journey to it involved a lot of looking, choosing, saying “Go” again, and eventually discovering that a beautiful world also has to be a good place to play.

The cover is the original illustration from the Slow Iteration Note. It captures the world that inspired this direction; the real game frames appear below.

I Wanted to Drive Into This Picture — Making Orbit Courier With AI

A picture made me want to keep going

There was already a game to build on. At the end of September, an earlier blog project with Dot had produced Orbit Courier: a little rover, floating islands, rotating obstacles and three energy cores to collect before returning to a coral rocket. Dot made the downloadable project; Codex checked and recorded its automated demonstration locally. I wrote about that first stage in OpenAI Dot: Make It Playable.

I liked the materials and the character of the little courier. The phrase slow iteration gave me a way to think about continuing it. The images made the possibility much more vivid.

We developed a sunrise direction around ceramic, coral, champagne metal, stone, timber and glass. I chose two bridge images as the visual references for the game. They gave us something to return to when a change was technically complete but the scene still didn't feel right.

The selected Sunrise bridge concept, showing the ceramic courier and a timber-and-glass crossing

One of the Sunrise concepts we used as a visual target. This is artwork, not an in-game screenshot.

What I wanted was quite specific. The courier should have the warmth of a small object you could pick up. The metal should catch the dawn without turning into a flat yellow surface. The islands should feel like pieces of a world, with stone underneath and a route on top. A bridge should invite you across while leaving enough empty space to make the crossing matter.

The original illustration could hold all of that in one still image. Our browser scene had to make it work from different angles, with a moving vehicle and changing surfaces.

On October 7, we gave the game an independent workspace and kept the original source package. It had become something I wanted to continue in its own right. There was no deadline to justify, and no need to turn the next brief into a campaign full of levels. One crossing was enough to give us work worth caring about.

Go. Then another pass.

The rhythm became familiar. Look at the result, decide what mattered next, and tell the AI to go on.

Go.

Keep the direction. Make the next improvement. Bring back something I could inspect.

Across those sessions, we let this work run for tens of hours. Sometimes the change was in the shape of an island. Sometimes it was a material, a reflection or the way the clouds sat behind the bridge. The game received far more attention than its short route might suggest.

The actual October 7 browser scene, early in the independent game's visual development

The actual game on October 7. The route was there; the island shapes, materials and atmosphere still needed work.

The early scene made the distance from the pictures very clear. It had the right family of objects, but the rocks were sharply faceted and the surfaces were broad and simple. The visual ingredients were present. They needed to belong to one another.

We worked on the hanging island bodies, the thickness of the champagne rims, the ceramic finish, the wood edges and the glass. Light had to make the courier sit on the platform rather than float above its reflection. The clouds needed depth without swallowing the scene. Existing graphics libraries and licensed source assets were part of the work, with their credits and provenance retained.

Some passes were satisfying immediately. Others produced a long technical explanation and a very small visual change. Keeping the actual screenshots mattered. I could put a new frame beside the reference and decide whether we were getting closer to the world I wanted.

The actual October 8 game after more work on stone, ceramic, metal and dawn light

The game on October 8. These are development views from different positions, showing the scene's evolution rather than a controlled image comparison.

There were rejected directions and reversals along the way. A completed implementation didn't oblige me to keep it. The next “Go” could mean continuing a promising change, or returning to the previous version and trying a more useful next step.

This was the part of the process I had been imagining in the Note. An interest could receive sustained care. I could ask for a more convincing piece of stone, a quieter light or a better view of the courier, and then come back to something I could see. The picture remained a direction to work toward, rather than a claim that the browser had already matched it.

The world had to run, too

After enough visual work, a different problem became hard to ignore.

In an older Preview, I was waiting one or two minutes for the scene to load, seeing roughly 17 FPS, and looking at a game that felt too small inside its window. I liked the world. Getting into it and moving through it still needed attention.

Clouds, reflections and soft shadows all helped create the atmosphere. They also gave the browser a lot to do. A scene could look calm while the computer was working very hard to draw it.

On October 9, I had already selected performance as the priority and put further art refinement aside. That phase brought useful improvements, but it also brought detours. One shadow-cache experiment was withdrawn after I reported severe machine unresponsiveness, including Codex. We did not establish one definitive hardware cause for that incident. We restored the baseline and addressed how the game used resources.

One especially practical change concerned pausing. The simulation could stop while the renderer continued drawing. The rover stood still, but the computer didn't get the same rest. Rendering sleep let a stopped scene keep its last image and redraw only when necessary. Leaving the tab should let the game rest as well.

Performance work became more careful about short checks, resource ownership and cleanup. Some ideas survived real-browser comparisons; others failed later checks and were dropped. We exercised the route, falling, recovery and retry in bounded automated windows. A promising number had to survive more than one kind of inspection.

Eventually I also permitted practical reductions to cloud, background and lighting detail for a lighter playable edition. That was a product choice about the experience I wanted to release. The scene mattered enough to protect its character, and the player needed to be able to enter it and move.

The different measurements from this period don't add up to one clean speedup chart. They came from different windows, startup states and test paths. What changed most usefully was our focus: the world now had to work for the person opening it.

The courier needed to feel right in my hands

Once we could review a concrete playable candidate, the next decisions became much easier to describe.

A and D should turn the courier's nose. W should move it in the direction it faces. S should reverse. I wanted the vehicle's orientation to mean something, with looking around kept separate from driving.

The game should also fill the window. We could let the view occupy the available space while keeping the actual drawing buffer bounded, so a larger display didn't automatically demand more rendering work.

Morning Crossing filling the window during an actual local browser check

Actual Morning Crossing in a local native check. The visible Start button and one-second guard label are diagnostic UI; the later ordinary controls use direct driving input.

The interface became quieter. Once the scene is ready and the first-use guide is dismissed, a fresh driving key begins play. Dragging the mouse or using the arrow keys lets the player look around; C resets the view. Idle and background states still let the game sleep.

Those details gave the work a different kind of satisfaction. We had spent so much time looking at the courier. Now the decisions were about taking control of it: understand which way it faces, see the route, cross, fall if you miss, and have another go.

We also improved the first-use presentation. The loading screen uses brand imagery and follows actual preparation progress. If it takes longer, it offers a quiet recovery option. The controls guide lives inside the player, remembers dismissal in the browser and can be reopened from the menu.

That presentation work didn't establish a faster underlying load. It made the wait and the next action easier to understand. A new player shouldn't have to know the development history to work out what to do.

A name, a planet and a front door

As Morning Crossing came together, I wanted the identity to reflect a game I intended to keep building.

Crossing became the thread. The first route is a beginning; I want later crossings to have their own places and increasing challenges. The warmth of the world and the readability of the route should remain recognizable as the game develops.

The brand images helped express that ambition. I accepted six pictures of the courier and its world, with the first courier image as the primary one.

The approved primary Orbit Courier artwork, showing the ceramic rover on a champagne platform

The approved primary product artwork. It expresses the game's identity; it isn't a gameplay frame or a promise of additional finished levels.

The logo went through its own iterations. I liked the orbit idea and wanted it to have the material quality of the game: a planet, a ring and a satellite, with ceramic, champagne metal and coral. I chose the third material option, Floating World Planet. It gave the name a small world of its own to carry around.

Then came the official website. I chose the Night Beacon direction, with deep blue around the warm scene and coral actions. We developed it into a full-window hero, a Morning Crossing introduction, a gallery showing the wider vision and a final invitation to start.

The released Orbit Courier website, with the selected logo and an entrance to Morning Crossing

The actual released website. Its world illustration supplies the atmosphere; the text, navigation and buttons are real web elements. The game loads separately in the player.

The earlier blog case had already included a local website. This was the official entrance for the independent game I was now ready to release. Its footer carries my name, Aaron Guo.

There was practical finishing work behind that entrance, too: review the package, repair stale tests, make the build reproducible, connect the private repository and verify that the public domain served the committed main revision. The game had reached a place someone else could open.

The first crossing is a beginning

At the October 17 launch, Morning Crossing was the first playable route. The October 18 update below expands it to three crossings. Play in desktop Chrome with a keyboard and no account.

When I wrote the Note, I imagined returning to a little world the way I might return to a novel. That idea became much more concrete than a metaphor. There is a courier, a bridge, a place to go, and a history of choices behind how it looks and moves.

I like that AI made room for this kind of project. I could care about the finish of a material or the shape of a small island. I could keep a picture nearby, ask for another pass and see what changed. And when a new problem appeared, we could stay with the same game long enough to work through it.

The public release is one more step in that relationship with the world. I wanted to enter the picture. Now there is a first crossing to try, and a reason to come back for the next page.

Play Morning Crossing · Explore my Builds

October 18 update: three crossings to explore

The first crossing now opens into a small journey. Finish Morning Crossing to unlock Sundial Crossing, then complete Sundial to reach Skywheel Ascent. The Crossings menu lets you return to an unlocked route; progress stays in this browser, with no account required.

01 · Morning Crossing

The original route remains the beginning: a quiet dawn, timber and changing glass between floating islands. It is a place to learn the courier’s steering, hopping and timing.

Actual Morning Crossing gameplay: the ceramic courier and a timber bridge between sunlit islands

02 · Sundial Crossing

The second route adds a wider moving bridge, a turning copper sweep and two independently changing boards. A refuge and checkpoint offer a place to recover before the next leap.

Actual Sundial Crossing gameplay: the courier approaches a copper sweep and changing bridge boards

03 · Skywheel Ascent

The third crossing goes upward. A wheel carries level gondolas between heights; the courier can board one, ride to an upper refuge, then hop across floating steps toward the elevated beacon.

Actual Skywheel Ascent gameplay: a gondola carries the courier toward upper islands and floating steps

These are actual local gameplay captures, cropped from paused browser checks. The concept illustrations earlier in this story remain visual references. Camera framing differs between captures.

The game now also has a warm, light ambient score and sounds that respond to driving, jumping, landing and the changing route. The world should feel calm even as the crossings ask for more attention.

There are still rough edges. In play, I noticed landings that looked right but ended in a fall. Improving the agreement between the visible surfaces and the rover’s collision support is the next research task. This release does not establish broad device compatibility or sustained performance on ordinary computers.

Play the three-crossing journey

Subscribe to my newsletter

I build with AI and write about what works. Subscribe to get new posts delivered.

No tracking. No spam. Pure content.

© 2020-2026 Aaron Guo