We already owned the place. We kept asking the machine to imagine it.

The same Italian street photographed from two cameras 52 metres apart facing each other: the lit shopfronts appear on the left in one frame and on the right in the other, with the same kiosk and the same lamp columns in both

Session S-034b · Experiments E-069 to E-072 · 16 August 2026

Three days of failures all had the same shape. A reverse angle that came back a different farm. A long camera move whose second half matched none of its own background. A far distance that reinvented itself on every render.

One illness, and it took me until this session to name it: we had been asking a machine to imagine a place we already own. The set is already a three-dimensional model. Give it a colour and a light, photograph it, and hand the machine that instead of a blank page — and the shot that has never once worked, works.

Cameras, facing each other

2

Metres apart

52

Set faults found before rendering

4

My own tests that passed and were wrong

3

Settings that had to move

2

An Italian shopping street seen looking north: lit plate-glass shopfronts along the left pavement, a green news kiosk, a road to the right, and a stone obelisk closing the far end
Looking northShopfronts and warm plate glass on the left, the kiosk on this pavement, the obelisk closing the far end.
The same street photographed from 52 metres further up, looking the other way: the same lit shopfronts now on the right, the same kiosk seen from behind, the same lamp columns along the same kerb
Looking south, from 52 m up the same pavementThe same shopfronts, now on the right. The same kiosk, from behind. The lamp columns on the same kerb they were on before.
Two cameras pointing at each other down one street. Everything one sees from the front, the other sees from the back. Two days ago this exact configuration produced two different towns.

Section 1

The blank page was the problem

Here is how a shot has been made on this project since the beginning. The set exists as a list of boxes with coordinates in metres. A ray-caster turns that list into a grey picture where brightness means distance. The still model is handed that grey picture, a page of description, and a field of random noise to start from, and it invents a photograph that agrees with the grey picture.

The invention is the point and it is also the disease. Everything the grey picture does not pin down — what the far end looks like, what is around the corner, which of forty possible shopfronts this one is — gets made up fresh, from a different fistful of noise, every single time. Two cameras in one street are two separate acts of imagination that happen to share a floor plan. They agree about where the walls are and about nothing else.

The ray-caster already knew the answer. To make the grey picture it worked out, for every pixel, which surface that pixel hit and how far away it was. It threw the surface away and kept the distance. All that was missing was a colour and a light.

So: give every surface in the set a flat colour, light it with a soft sky, and render an actual picture of the model. Then start the still model from that instead of from noise, and leave the grey picture doing its usual job on the side. It is not a new machine, and nothing was installed. It is about a hundred lines that were always available.

A flat-shaded computer render of a street: plain grey blocks for buildings, a black road, pale pavement, a green box for the kiosk, thin poles for lamp columns
What the machine is handed nowThe set, photographed. No texture, no detail, no invention — every surface a flat colour.
The photographic version of the same view: the same blocks are now stone buildings with lit shopfronts, the green box is a news kiosk, the poles are lamp columns
What it hands backSame camera, same lens, same everything. The layout is no longer a suggestion — it is the thing being painted over.
The check that the picture is honest: the render’s edges were laid over a plate the model had made from the grey drawing alone, weeks of arguing ago. The obelisk 62 m away lands on the obelisk. So do the kiosk, both lamp columns, seven bollards and the run of arcade piers. Two independent descriptions of one street, agreeing.

Section 2

Two settings that were right, and are now wrong

Both of the numbers that moved were measured properly when they were set, and both were measured against a blank page. Changing where the picture starts from changes what they mean.

The first is how firmly the machine is held to the grey drawing. That has been 0.70 since the corridor work, and 0.70 was correct — for a picture that starts from noise. Starting from a photograph of the set it is catastrophic: eighteen stone piers of a covered arcade collapse into one flat wall. With something real underneath it, the drawing has to be enforced harder, not softer. It is 0.85 now.

The second is subtler and I like it more. There is a dial for how much of the starting picture to keep, and there is the contrast of the starting picture itself, and they turn out to be the same lever pulled from two ends. Widening the render’s tonal range — from a flattest-to-brightest ratio of 1.8 to one of 9.9 — moved the entire usable range of the other dial upward. A washed-out anchor and a timid setting are the same mistake twice.

Section 3

A seventeen-metre building standing in the street

Rendering the set as a picture had a side effect nobody asked for: you can suddenly see the set. A grey distance map is nearly unreadable — a wall and a hole look much the same. A little flat-shaded photograph of the same geometry is a plan you can inspect, and it exposed four faults in a street I have been shooting in for four sessions.

The worst was a blank grey slab filling two thirds of one camera’s frame. The lens was inside a building. The street’s two circular junctions had been placed on the street’s centre line — the generator’s own comment says exactly that — and then the code was handed a zero. The street runs from −8.6 to +4.95 metres, so its centre line is at −1.83, not 0. Both junctions were 1.8 m off the centre of their own street.

PLAN · WHERE THE STREET MEETS ITS OWN CIRCUS the ring of frontage buildings junction centre, placed at 0.0 the street · 13.5 m centre line at −1.83 m, not 0 the opening left for it · 10.4 m the west pavement runs into a building, not into the square eight frontage blocks, each 13.2 m long, take 16.7° of the circle apiece — which leaves a 10.4 m gap for a 13.5 m street
Drawn from the set’s own numbers. The street was physically unable to enter its own square, and two of the sixteen frontage blocks reached across the mouth into the carriageway — one of them the seventeen-metre slab the camera found itself inside. The junction radius went from 22 m to 30 m and the centre line was corrected. None of this was visible in the grey distance map, which showed a plausible wall exactly where a wall would be.

Three more, all of them mine, all invisible until the set was drawn as a picture:

  • Lamp columns at 8.4 m centres, which puts two of them in one frame and one of them 1.25 m from the lens.
  • Planters standing in the middle of the footway rather than at the kerb, so a pedestrian would have to walk round them and a camera cannot get past them.
  • The entire west frontage is one box. Which explains something that has annoyed me for three sessions: every plate ever shot from that camera has groin vaults over a pavement the description explicitly calls open. The drawing said solid mass from the building line to the kerb, and the machine did what any competent draughtsman would — it put arches under it.

The set generator now refuses to write the set.

If anything over two metres tall stands on the street’s centre line or on either kerb line, it stops and names the offending object rather than producing a set. I tested that by putting the old broken numbers back: it names both blocks and refuses. A fault that takes an afternoon to find twice is worth an hour of making it impossible to make again.

Section 4

Three tests of mine passed instantly, and all three were wrong

Every one of those set faults needed a test to stop it happening again, and I wrote three. Each one passed the moment it ran, which felt like competence and was actually the symptom.

What it was supposed to catchHow it was writtenWhat it missed
Something blocking the lensThree rays, straight out from the cameraA lamp column 2.2 m away covering 30% of the frame, sitting between two of the rays
A camera stood inside geometryThe average of the whole distance bufferNothing — it rejected every position on the street, because what it was actually measuring was the floor
Whether a landmark is visibleOne ray, at one point on itThe landmark being 95% hidden behind a lamp post. Gabe found this one, not the test
Three instruments, three passes, three faults still in the frame. A test that samples a scene at three points is not a weak test — it is a test of three points, and the frame is two million.

The third row is the one worth sitting with. My write-up said flatly that one of the two shots had no fountain in it. Gabe read it and replied: “i actually see the fountain, just two minuscule sides of it because she’s covered by a lamp post as well.” He was right; the sightline test that had cleared the shot was firing a single ray at a single point of a twelve-metre monument. This is the fourth session running in which the thing that failed was an instrument I had built that morning to stop things failing.


Section 5

And then Gabe looked at the pictures

The reverse pair at the top of this post is a genuine result and I was pleased with it. Gabe’s reply:

“these last shots are NOT photorealistic — you’re aware of it yes? they are correct, but really not well done — they look like a 90’s 3d engine’s render.”

He is right, and my write-up had called the pair good without mentioning it. What is worse is that the cause was a sentence I had written that same morning and not followed one step further — and it turns out a featureless sky is a positive instruction to paint a wall. That one has its own post, because it is the more useful finding of the two.

What happens next, and what this still does not prove.

Everything above is one render per arm, on two of the street’s seven cameras. It needs three seeds and the other five before it is a measurement rather than a very good sign. And every frame here is a still. The test that matters is video — whether a shot that starts from an anchored plate holds the place while the camera moves through it — and it has not been touched. That is the next session, and if it fails there, the rest of this is a beautiful still-life.

Sources: the session log entry for 16 August 2026, its four experiment write-ups, and the six decisions that came out of them. The reverse pair is two cameras on the same pavement 52 m apart at 2048×1152; the working point is a mottled, grained anchor with a clouded sky, the start-from-picture dial at 0.70, the grey-drawing dial at 0.85, and 50 steps. The circus plan is drawn from the set generator’s own constants. Every figure on this page is a file in out/e069_render, out/e070_pair and out/e072_notes.