By midday the cube had a physics and an agent had been sent to break it (the physics underneath). The afternoon was about how anything found on the model reaches the apps.

not the whole book

The agent that tried to break the model came back with ten findings. Selim did not want them played. “I don’t like being thrown the whole book onto me,” he said. “I want to step onto them myself. And probably they will come.” The findings were kept, parked rather than thrown away, and the red cases will grow “from a user experience rather than an agent experience.”

What he set instead was a direction. Something he meets in an app or on the model page becomes a red case on the model. The model turns it green on its next round without breaking what held. Then a library thread moves it into the shared angular package, and app threads take it from there into Mosaic’s home and Todarch first. One way down, one piece at a time.

The flow of 7 November: what Selim meets becomes a red case on the model, then a piece of the shared package, then part of every app.

The flow of 7 November: what Selim meets becomes a red case on the model, then a piece of the shared package, then part of every app.

the ground first

The first trip was the ground every screen stands on. Every cube app had copied the same five pieces by hand: the zoom and its trail back, the head of a level, the tile, the tile’s size, the quiet line with its undo. The copies had drifted, and it showed: the tiles were not the same size in different places. Before any code moved, the thread put the list of what moves and what stays in front of Selim. He tapped yes, all five within minutes.

The proof was the model page itself, rebuilt with its own copies dropped for the package’s: all 222 cases gave the same verdict as before. The cases alone said nothing had changed, but a pixel comparison of the two rounds found two small shifts no case could see, and both were fixed before the release.

Then Mosaic’s home took the pieces, and this time the regression cases came first: what the home does today, written down before anything was touched, plus Selim’s own report of tiles shrinking between levels as a red case. After the swap every old verdict held, and the red one turned green: on a phone, every level’s tiles are now the same size. It was the first fix that travelled the whole way, from the model page into an app in use.

the physics, too

Selim then opened the new home and found neither the physics agreed on the model nor still tiles. “I’m confused what is our strategy,” he said, “because I thought that’s what we were going to do.” The physics had been held back on purpose, waiting for a decision nobody had put in front of him. A plain list (what is in the app, what is in the package, what is only on the prototype) and one decision card settled it: the physics becomes one piece of the shared package, with no words of its own, and each app gives it its words and its data.

He widened the picture at the same time: “Mosaic Home has its own domain as well. It’s not going to be just a lobby.” So the home was rebuilt on the shared physics, its apps as the items of one table and his own groups as ways of looking at them. It cost something, and it was said plainly: four taps to an app instead of two, for Selim to judge in use.

add is a cube of its own

Mid-way, Selim saw something about the one verb a cube app has. “Add is a cube of its own. I’m realizing now, and that cube could have its parts.” A tap on add no longer jumps to a sheet for a name. It opens a cube of three parts: new (only a name), one I have (pick something you already have), and offered, the place where an app will later offer shapes, behind your consent. Writing down which part exists at which place found a rule by itself: the app offers shape, never your own things.