Nov 5, 2026 · 3 min read

How a depth map gave a flying bus a moving camera

The bus descent, upscaled in Muse.

The bus descended, but the city around it felt flat. A depth map let us prepare first and last frames with parallax, giving the shot a convincing sense of camera movement.

Two frames, one painting

This started as a transport study. I tried animating from a single image with MiniMax H3 Max Turbo, asking the model to move the bus downward. By the last frame, the image had drifted into a more generic style. The detail I wanted to keep was gone.

Using both a first and last frame gave us more control over the appearance. We made one large painting, took crops from the top and bottom, and placed the bus in both. The model could fill in its movement between them.

That kept the buildings consistent, but everything except the bus moved as one flat picture. The frames needed to describe the camera movement as well.

Depth into layers

The original painted city, with capsule towers framing the old city and distant mountains.City painting
The Marigold depth map of the city, colored by estimated distance.Marigold depth map
The painting and its estimated depth map. The map indicates relative depth, rather than measured distances.

In Muse, our node canvas at SplayFlo, I used Marigold V2 to estimate a depth map from the painting. That helped us separate the scene into five layers, from the foreground capsule buildings through the old city to the distant skyline and mountains.

Moving those layers would reveal areas hidden behind the buildings, so we filled those areas before composing the frames. The map described relative depth in the visible painting; it could not tell us what belonged behind an object.

The right foreground capsule buildings isolated on a transparent canvas.Foreground
The near old-city buildings and terraces isolated on a transparent canvas.Near city
The distant sky and mountain backing, with hidden areas filled in.Distant backing
Three of the five scenery layers, shown at the same scale and alignment. The foreground moved most; the backing stayed in place.

We shifted the nearby layers farther than the distant ones and held the far backing in place. Their relative movement made the camera's descent convincing. The bus was a separate element, moving along its own path and passing behind the foreground structures.

We chose how far each layer moved to stage the shot. The result was a layered approximation of a camera move, with enough depth for this view.

Muse canvas with five city layers, a Marigold depth map, and an orange bus wired into the Parallax Scene node. The node previews the combined scene and offers start and end frame outputs.
The original bus assets assembled later in Parallax Scene to show the composition controls. This canvas view is a demonstration, not the original setup that produced the video input frames.

Parallax Scene in Muse brings the layers, depth map, and bus together. We can set the camera and bus at the start and end, preview their movement, and send the node's two frame outputs to a video model.

A test worth keeping

The first video input frame, with the orange bus high among the capsule buildings.First frame
The last video input frame, with the orange bus lower in the city near the terraces.Last frame
The actual frames sent to the video model. The bus changes position while the shifted scenery sets up the camera move.

The prepared frames went into Generate Video in Muse. The prompt described the downward camera glide, the bus's path, and the faster movement of nearby buildings. MiniMax H3 Max Turbo filled in the motion between the frames.

This version worked on the first attempt. I had generated it at 480p to keep the test cheap, but I liked the result enough to keep it and stop experimenting.

To use that clip in the reel, we ran it through Upscale Video in Muse. It increased both the resolution and frame rate, taking the 24 fps clip to 60 fps at 1080 × 1872. The result was good enough to show the experiment.