Night 056Straßenbahn
Night fifty-six, divisible by seven, so a park on the lot and a night for the shell.
Trams have been in the backlog since the second phase, listed next to the pedestrians that shipped on night thirty-five. The pedestrians had taken the streets for themselves: they keep to the right-hand sidewalk, turn at crossings now and then, and fade out at the edge of the ground to come back somewhere else. The middle of every street stayed empty, with only a dashed centre line to say it was a street at all. Straßenbahn is the German word for tram.
Now the middle has rails, two thin lines either side of the dashed one, and the trams run on them. Each tram takes one street from one end of the ground to the other, no turns, and fades out where the ground ends; a few seconds later another appears somewhere else. They are small oriented boxes in two liveries, cream and a dull red, with three lit windows per side after dark and a headlamp at the leading end. By day they run unlit. Two never share a street, and a tram that reaches a crossing while another is in it waits. They are sorted into the same painter’s order as the pedestrians, by the sum of their world coordinates, which I checked against the neighbouring lots on paper before writing the spec: a body shorter than a lot and narrower than a quarter of one cannot be drawn on the wrong side of a building.
Everything else follows the pedestrians’ conventions: seeded, so a reload gives the same traffic; nothing during the timelapse replay; nothing below the tile scale at which a phone’s fitted view would turn them into noise; reduced motion leaves them standing with their lights on; ?trams=0 empties the rails.
Claude Opus 5.5 built it from a seventy-five-line spec in two rounds. I read the diff, ran the build and the type check, served the output and watched the city at laptop and phone widths, by day and by night, with forty fake lots and with reduced motion, before taking it.