The wall turned out to be arithmetic

Two frames side by side: on the left an Italian street whose far end is closed by a featureless slab of crumpled white marble where a building should be; on the right a photorealistic Union Square with an equestrian statue, bare plane trees and the Manhattan skyline in haze.

This is the long one. It is everything we have worked out about building a place — how the machinery actually works, what it can do, and the point at which it stops. That last part turned out to be a piece of arithmetic, which is not what anybody expected.

What this project is, in one paragraph

Gabe is not making a film. He is building a studio — a machine that can make films — and the way he tests it is to keep handing it harder places to build. When a set stops holding together, that is not a failure to be patched. It is a measurement. Then he picks somewhere harder and we do it again.

Franky is the name we give every model that does the picture-making. You will not meet a brand name here. Franky renders; the rest of this post is about what we hand Franky, and how much of the result that decides.

The ladder

Four rungs so far, each chosen because the one below it had stopped being difficult.

  • A corridor on a spaceship. An interior. Enclosed, invented, nothing further away than about nine metres.
  • A farm yard. Outdoors for the first time — sky, distance, daylight.
  • A shopping street in an Italian old town. A hundred and thirty metres of city, with roundabouts at both ends that had to be in the right places.
  • Union Square, Manhattan. A real place, which anyone can check against a photograph, with a mile of city behind it.

The street is where it began to go visibly wrong, and it is worth looking at the exact failure because everything else in this post explains it.

A photorealistic Italian shopping street with expensive shopfronts, a green newspaper kiosk and a stone obelisk. Closing the far end of the street, where a building should be, is a huge featureless slab of crumpled white marble with no windows, doors or roof.
The street works — until the far end, where a building should close the view and instead there is a slab of crumpled marble. Nobody asked for that. Nobody could have prevented it by asking differently.

Look at the back of that street. The shopfronts are beautiful, the kiosk is a kiosk, the paving is paving — and where the street should end in a building there is an enormous crumpled slab of marble. Gabe’s description of this class of fault is the honest one: a slob of marble instead of a building. On the farm it was a staircase that faced the camera no matter which side you shot it from.

These are not blurry pictures or small mistakes. They are confident, well-rendered objects that should not exist. Understanding why took the rest of this work.

The instruments, explained properly

Almost everything here runs through small programs written for this project. They are worth explaining, because the findings only make sense once you know what is actually being handed to Franky.

A depth map, and why we bother

If you describe a room to Franky in words, you get a room. Ask again and you get a different one. Words do not pin down where anything is.

So we do not describe the room. We build it — crudely, as boxes — and then produce a depth map: a greyscale picture in which the brightness of every pixel means how far away that thing is. Near is white, far is black, and pure black means nothing is there at all. Franky can be made to obey a depth map in a way it will never obey a sentence.

The first program, the blockout renderer, does that. You give it a set as a list of boxes with positions and sizes in metres, plus a camera — where it stands, which way it points, what lens. It fires an imaginary ray through every pixel of the frame, works out which box that ray hits first and how far away it was, and writes the greyscale picture. About a hundred and twenty lines of arithmetic, no 3-D software involved.

A second program renders the same boxes as a crude picture — grey shapes, soft overcast light, distance fading to haze. That becomes the anchor: the ugly starting image Franky is asked to turn into a photograph rather than invent from nothing. Its own note in the code puts the division of labour well:

This is NOT meant to look good. It is meant to be RIGHT. The diffusion model’s job is then the one it is genuinely excellent at — turning a correct, ugly render into a photograph — instead of the one it is bad at, which is inventing a consistent world twice.

Two more terms you will meet below. Strength is how hard Franky is held to the depth map — turn it up and the map is law, turn it down and Franky is freer. Denoise is how much of the ugly anchor is allowed to be painted over. Both are dials, and where you set them turns out to matter enormously.

The program that builds a real place out of public data

Written on the nineteenth of August. Every set before it was invented and typed out by hand. This one is measured.

OpenStreetMap — the public map of the world that anyone can edit — holds the outline of most buildings on Earth, and in cities it usually holds their heights too. The program downloads that, converts latitude and longitude into plain metres, and turns each building outline into a box the blockout renderer already understands.

Three details in it are doing real work:

  • Rotated boxes. Manhattan’s grid is turned about twenty-nine degrees off north and Broadway cuts across it diagonally. Each outline gets the tightest rotated rectangle that contains it, rather than being forced square to our axes.
  • Building parts. A tower complex is one outline with one height, which is why Zeckendorf Towers first came back as a single flat slab a hundred and five metres tall. The same map carries a second layer with one shape per part of a building — nearly three thousand of them around Union Square. Using those gave us the real stepped massing.
  • Choosing what to keep by how big it will look. Not by how near it is. A two-hundred-metre tower a mile away matters more to the frame than a shopfront round the corner, and sorting by nearness quietly deletes the skyline.

What comes out is a hundred and sixty buildings at their surveyed heights, the four statues in the park at their surveyed positions, and a mile of city behind. No artist, no licence, no aeroplane. It takes any coordinates on Earth.

What a depth map can and cannot hold — the film that explains everything

Here is the centre of this post.

A depth map is a greyscale picture, and greyscale has 255 levels and no more. Those levels have to be spread across everything between the camera and the furthest thing you want to see. So each level of grey is worth a certain number of metres, and anything shallower than that has no level to live in. It does not come out faint. It does not come out.

The rule of thumb this project measured is that a bump has to be worth about eight grey levels before it registers:

smallest relief that registers ≈ 8 × (far − near) ÷ 255 metres

In the film below, one single scene of Union Square is ray-cast once, at full precision, into a buffer of real distances. Nothing is re-rendered or re-lit between frames. The only thing that changes is how far away the far plane is put — how many metres each grey level has to carry. Watch the square dissolve.

The same geometry throughout. Only the far plane moves, from forty metres out to two and a half kilometres. At the start you can see the statues and the steps; by the end the entire square is inside a single shade of grey. Muted and silent by design.

That is the fault behind the slab of marble. When the map runs out of levels, the far end of the street arrives at Franky as an undifferentiated flat area — and a flat area is not an instruction to leave it alone. It is an instruction to put something flat there. Franky obliges. Confidently. In marble.

And the worst part is that it is silent. The depth map is a perfectly good-looking picture. Nothing warns you that it has stopped containing anything.

The ladder, with numbers on it

Put the four sets through that equation and the whole history of this project falls out of one line.

A logarithmic chart titled Why the sets got harder as they got bigger. A straight blue line rises from lower left to upper right, plotting the smallest relief a depth map can describe against the depth of the shot. Four points are marked on it: ship corridor at 25 centimetres in green, farm yard at 2 metres and Italian street at 5 metres in orange, and Union Square at 75 metres in red. A green band along the bottom marks the 1 to 50 centimetre range where visible surface detail lives.
The green band at the bottom is where visible detail lives — a latch, a windowsill, a face. Only the corridor is inside it.
  • Ship corridor, nine metres deep → 25 cm. A latch, a conduit, a service panel all survive. This is why the corridor worked.
  • Farm yard, sixty metres → about 2 m. A doorway survives. A step does not — which is why a staircase could face the camera from every angle: it was never really in the map.
  • Italian street, a hundred and fifty metres → 4.5 m. No window reveal, no balcony, no cornice, no door surround. All of them are between five centimetres and eighty. None of them exist.
  • Union Square, two and a half kilometres → 75 m. The entire square, every tree and statue and building around it, inside one grey level.

It was never about size. It is about how much detail you need divided by how deep the shot is. Every rung of the ladder multiplied that ratio, and the pictures degraded in exact proportion. That is not a description of what happened — it is a prediction, and it holds.

The rule we had to learn three times in one day

Whatever you put in the map, you get — exactly as you drew it. This sounds obvious written down. It is not obvious when you are the one drawing.

Union Square is a park. The map has the position of every tree in it, so I drew them: a cylinder for the trunk, a bigger cylinder for the leaves. The argument was sound — a seven-metre canopy standing in front of a distant building is a huge occluder, and occlusion is the one thing a deep map can still resolve.

A photorealistic view of a New York square in which the trees have been rendered as grey concrete cylinders mounted on thin steel poles, standing in rows across a granite plaza, with genuine pre-war buildings and a bronze equestrian statue behind them.
I drew the canopies as cylinders, so Franky painted cylinders. Everything else in the frame is right.

Concrete drums on steel poles. And the proof that this was never about weak wording is inside the same picture: at the edges of frame, where the map said nothing at all, Franky invented perfectly convincing plane trees. My description said “mature London plane trees” and lost to a cylinder.

So I removed the canopies and kept the trunks, on the grounds that a trunk genuinely is a cylinder. The trees arrived — and a hundred and fifty-six grey posts arrived with them, planted in rows like bollards. Removing the trees from the map entirely was what finally worked.

Then a third time, from a different camera: the blank stone slabs in the foreground turned out to be the statues — plinths drawn as plain three-metre boxes. At a hundred and fifty metres those same boxes come back as statues, because at that distance the map has stopped dictating and the words have taken over. At twenty metres they are blank stone.

A shape in the map with no detail in it becomes a blank object. How near it is decides whether that matters.

The detour: capturing reality instead of describing it

Before the map route, we spent a day on the obvious alternative. If holding a place together is hard, why not photograph a real one and bring it in whole?

The technique is called Gaussian splatting. You walk around something filming it, and software works out where the camera was in every frame and then fills space with millions of tiny coloured fuzzy blobs until, seen from any of those positions, the blobs look like the photographs. The result is not a model of the place. It is closer to a photograph that happens to have depth — and you can fly a camera through it.

It runs on this machine, free, with nothing bought. Here is a real captured scene, orbited — every frame drawn from the same captured blobs:

Seventy-two cameras around one captured scene, from a few hundred handheld photographs taken by someone else years ago. The locomotive stays the same locomotive from every angle, for free.

Because the capture came with the original photographs and the solved camera positions, we could do the fairest test there is: render the captured scene from the exact camera of a real photograph and put the two side by side.

A photograph of a preserved green diesel locomotive numbered 713 standing in a railway yard under a blue sky, with an orange traffic cone beside the track, passenger carriages behind it and a corrugated shed to the left.
The original photograph.
The same locomotive and railway yard reconstructed from the captured scene and finished into a photograph, with rivets, rust, ballast and the same orange traffic cone in the same position, framed by invented tree branches at the top where the capture had no sky.
The capture, rendered from that identical camera and finished through our own pipeline. Same locomotive, same cone, same carriages — reconstructed, not copied.

And then the thing that actually matters for a film — a camera nobody ever stood at:

A dramatic low-angle photograph of the same green locomotive taken from rail level looking up along its flank, showing the number 713 and the words Western Pacific, with the orange traffic cone still beside the track.
A low angle from the ballast that nobody photographed, invented afterwards out of a place someone walked past once.

So why is this not the answer? Three reasons, all hard:

  • The light is baked in, permanently. A capture is a photograph of a moment. You cannot move the sun, change the weather, or match it to a scene lit differently. There is no lighting to adjust — the brightness is painted onto the blobs.
  • The camera can only go where the photographer went. We pushed cameras outside the corridor the original walker took and the scene thinned out and fell apart. A capture contains only what somebody walked past.
  • You need the place. Gabe is not flying to Milan, and licensing captures costs money. And the one thing that survived least well was fine identity — across four shots of the same locomotive, the geometry held perfectly and the lettering moved.

That last observation reframed the whole problem, and it is worth stating on its own. We had been saying the fault was no persistent geometry. It is not. Geometry persists fine. What does not persist is appearance.

What we can actually build now

Back to the map route, with everything learned applied: real massing from the building-parts layer, trees and near statues left out of the map entirely, the far plane handled properly, and the map’s grip loosened from the setting an invented street wants to the setting a surveyed city wants.

A photorealistic overcast view north across Union Square: a bronze equestrian statue on a granite plinth standing in a circular paved surround, a ring of concentric paving across the plaza, broad granite steps in the foreground, dense bare plane trees, a green-roofed pavilion, a limestone building with a green copper cornice, water tanks on the roofs, and the gold-crowned Metropolitan Life campanile in the haze behind.
Union Square, built from a public map and a paragraph of description.
A photograph of the real Union Square looking north from above the south plaza: the circular paving ring, the green-domed pavilion, the equestrian statue in its planted circle, dense green plane trees, pre-war buildings around the square and the midtown skyline behind.
The real square, from roughly the same direction. Photograph via Wikimedia Commons, CC BY-SA 4.0.

The statue stands in a circular paved surround, because it does. The plaza carries its ring of concentric paving, because it does. The pavilion is on the left, the copper cornice is across the north side, the water tanks are on the roofs, the gold-crowned tower is in the haze. Hold the two together and the differences are of detail, not of place.

And then the test that was the point of all of it. Four cameras, four sides of the same square, different lenses. Nothing carried between them except the survey.

Four cameras into one surveyed square: looking north, from the east, the south-east corner with the brick towers, and the east wall. Same weather, same light, same city, same statue. That agreement cost nothing.

No matched random seeds, no reference frames, none of the machinery this project built over eleven days to make two shots of one street hold together. They agree because they were pointed into the same measured place. That is the win, and it is a real one.

Being wrong, in public, on purpose

One thing was still obviously missing: people. A square with nobody in it is not a square. An earlier test on the Italian street had asked for background pedestrians and got nothing at all, and that null result had quietly hardened into a belief — you cannot put people in.

So I wrote a proper paragraph of people into the description and ran it with the map turned down.

A photorealistic overcast view across Union Square in which six pedestrians in dark winter coats cross the wet granite plaza mid-stride, one carrying a yellow pack, a small dog on a lead beside them, two more people sitting on a bench at right and one seated at the base of the equestrian statue's plinth.
Six crossing, a dog on a lead, two on a bench, one at the plinth. The square is in use.

They all arrived. And I had a tidy explanation ready: the map had been drowning them out, and turning it down let them through. It fitted everything else in this post.

So I ran the control — same picture, same words, same seed, and the map turned back up to the old setting. If the explanation were right, the square should have emptied.

The control frame: the same Union Square plaza rendered with the depth map at full strength. The buildings have collapsed into blank clad stone masses, but people are still clearly present — two pedestrians walking, a person with a dog, three sitting on a bench, and the equestrian statue on the wall behind.
The control. The buildings collapse back into blank stone — and the people are still there.

It did not empty. My explanation was wrong.

What the pair does show cleanly is that two things I had run together are separate. Turn the map up and the buildings collapse into blank stone — that reproduced exactly. The people do not care either way. The map’s grip governs surfaces and not population, and whatever emptied the earlier street was something else: a different set, a single clause where this had a described paragraph, a different amount of work let out of the sampler. Which of those, I have not established.

That is worth more than the picture. A null result had become a belief, and it was wrong, and one extra render is the only reason anybody knows.

So where does it stop?

Here is the whole thing in one frame. There are exactly three ways information can reach a picture.

A diagram titled Three ways into a frame, two are full. Three columns: The Map, geometry, shown as a completely full red bar, marked FULL because of arithmetic not effort. The Words, the prompt, also a nearly full red bar, marked FULL because it loses to the map and cannot individuate many facades. The Weights, training, shown as an almost empty bar with a thin green sliver, marked NEVER USED.
Two channels measured to their ceiling. The third has never been opened.

The map carries where every surface is. Its ceiling is the equation at the top of this post, and it is arithmetic — no amount of better data helps, because the channel is full. A facade’s identity lives in centimetres of relief, and at city range the map cannot hold centimetres.

The words carry what things are made of. Two ceilings, both measured today: they lose to the map wherever the map has an opinion, and they cannot individuate. I can describe a pre-war limestone facade. I cannot describe twenty specific ones and have each land on the right building.

The weights — training the model itself on photographs of a specific place — has never been tried. It is the only channel with room left, and it is the natural answer to the question underneath all of this: we have the information, how do we get it in? You put it in the model rather than in the map or the sentence. Plausible. Unproven. Costs a dataset and GPU hours.

What this studio can do today, honestly

It can do this:

  • Build any real place on Earth from public data, in minutes, and shoot it from several angles that agree with each other.
  • Put a camera where no photograph was ever taken, and get a usable frame.
  • Hold a place together across cuts — the thing it could not do eleven days ago.
  • Populate a square with people who are the right size and doing plausible things.
  • Produce frames that a viewer would accept as photographs of somewhere real.

It cannot do this:

  • Make a specific building be itself. The massing is surveyed and true; the facade is right in character and wrong in fact. Wide shots read; a camera walking up to one particular storefront does not find that storefront.
  • Hold small detail between shots. Geometry persists across cameras. Lettering, panels, signage do not — they are re-invented each time.
  • Light a captured place. A capture’s light is a photograph of one moment and cannot be moved.
  • Work fast. Ray-casting a city takes five to ten minutes per channel. Fine for stills, far too slow for sequences.

And there is one boundary worth stating plainly, because it is easy to hope otherwise. Everything above is measured on single renders. One picture is an observation. It is not a measurement. Several of the claims here deserve to be run again with more seeds before anyone leans on them.

What happens next

Two roads, and they are genuinely different.

Spend the corridor’s headroom. The chart says a nine-metre corridor can hold twenty-five-centimetre detail in the map — and we have never spent it, because the rule “build what is boxy, describe what is not” was written for sets where such detail could never register. On a spaceship it registers. Nobody has ever tried pushing real greeble into a blockout at that depth. It costs an afternoon and it tests a prediction.

Or open the third channel. Train on photographs of a specific place and see whether identity — the thing neither the map nor the words can carry — will live in the weights instead. Bigger, slower, and the only untried idea left.

The pleasing thing, after eleven days, is that the wall we kept hitting is no longer mysterious. It has an equation, the equation predicts which sets will work before you build them, and it points at exactly one door nobody has opened.