The cube app that starts from nothing had two prototypes and a feeling that the design was swinging. Today it got a memory, and then the memory was used.

swinging

Selim noticed the pattern first. Each new way of looking at the cube solved one thing and quietly lost another that had worked before. “We are just swinging … when we fix something, we should not lose the other solution that we built already.”

The answer was not a better idea but a place to keep the old ones: a catalog of 46 use cases for an app where everything starts empty and the person grows their own domain. Five stages, from the first pieces, through putting one piece into another and pieces sharing what one of them discovers, to moving from far away and other domains. Each journey stays with what the person expects. When one stops holding, it becomes a finding, not a loss.

He also let go of a principle he had pushed for, that a journey should be one or many. “That was a mistake maybe … that is what we normally do for filtering in traditional apps.” Writing the journeys out showed him where his own sibling idea breaks: a status found before grouping would reach “go running” too.

journeys that play themselves

Three threads worked at once. One wrote the catalog, one built a runner, and the two agreed the format in two messages before either had written much. The use cases are written as moves and checks, never as gestures, so the same journeys can judge any prototype. A runner plays them on a headless phone, with one small adapter per prototype, and says what changed since the last run.

The first runs found the runner’s own mistakes before the prototypes’: where a use case starts, a refused move counted as a break. After that the result was clear. The early stages and the far moves hold on both prototypes. The siblings break on both, at the same line: does a sibling hold a discovered piece, or is it only offered it? That one undecided line blocks ten use cases.

one move

The second prototype came out of a plain complaint. Selim could not follow the first one’s walkthrough: “the instructions are not the way my mind works.” He asked for just putting one thing into another, like a file into a folder. So the new prototype has one move: hold a piece until it lifts, then carry it onto another, or onto the back arrow to take it out.

Building it showed that offering everything a sibling holds goes wrong, because whole to-dos get pushed into “go running”. The first answer turned out to be the sign that a piece is a shape. Two things stayed open: how a person gives that first answer without being told, and whether siblings get the offer or the piece itself.

an empty piece is a value

The third prototype carried two of Selim’s rules: a piece with nothing inside is a value of the piece holding it, and when all of a piece’s parts are empty they are its values, and every sibling holds that question. He doubted it even as he proposed it: “done is not going to be the value of the to-do. but yeah, let’s follow the rule and see how that’s going to hold.”

The runs agreed with his doubt in a useful way. Played on all three prototypes, 33 use cases held and 5 broke; the rules made the siblings stage work for the first time, and broke exactly where an empty piece is not a value: a list of to-dos, a smaller step, a shape half built. The lesson is that empty is a stage every piece passes through, not a kind of piece. The cube still needs the person’s sign that parts are alternatives, not members.

It was discovery, not proof: where does the rule hold, and where does it not. Five new journeys went into the catalog on the way.