A constellation that grows as you talk
On 22 May, XNeuronal's home screen stopped showing a demonstration orb, identical for everyone, and started drawing the real memory of the person talking: one dot per memory, one shape per category, one colour per area of life, from the very first memory. The same day, cards learned to display their formatting instead of its symbols, and "what have I got next week?" went from eight queries to a single one.
In the evening, Ellie tells her day
Ellie has picked up a habit. In the evening, once the dishes are done, she props her phone against the cup, presses the button, and talks. "Had lunch with Tom, he's changing jobs in September. Thursday, car inspection at eight, I need to remember the registration papers. And Mum called about Dad's birthday, it's on the 14th." She does not sort, she does not file. She talks to someone who listens, who answers, and who will remember.
Until 22 May, while she talked, the middle of the screen showed an orb. A beautiful orb, fourteen iterations to find its balance point, pulsing gently at rest and stirring a little while listening. But it was the same orb for Ellie as for someone who had just installed the app and had not said a word yet. It knew nothing about Tom, or the inspection, or the 14th. It was a demonstration: what an app that listens looks like, in general.
Her memory, the real one, lived elsewhere. In the settings, a "Constellation" page drew every memory as a dot and every link as a thread, and you could drag it, pinch to zoom, tap a dot to open its card. That is where, a week earlier, every dot had been given a shape according to its category. A carefully made map, three screens deep, that nobody opened in the evening while telling their day.
Taking the map out of the settings
Around midday on 22 May, that map moved up to the home screen. Not a simplified copy: the very same component as the settings page, in a square that takes the full width, centred a little above the middle to leave room for the conversation thread.
Two differences from the settings version. First, it responds to no gesture. No dragging, no pinching, no tapping a dot. On the home screen, the constellation is a backdrop, not a map to navigate; the only gesture on that screen is still the button to talk. Second, it moves, and we will come back to that.
One decision came with the move: the constellation only replaced the orb from twenty active memories upward. The reasoning seemed sound: three lonely dots would look poor to someone just starting out, whereas the orb is pretty straight away. So as not to flash the orb during the two hundred milliseconds when the app does not yet know how many memories it has, a flag was set on the phone the first time the threshold was crossed, and later launches went straight to the constellation, even if deletions brought the count back under twenty.
That threshold did not make it through the evening. But before saying why, we need to say what you see.
A map that breathes
The settings page drew a still constellation. On the home screen, stillness would have felt like a potted plant. So 22 May wrote an animated mode, with every parameter chosen so that it lives without distracting.
Every dot drifts. Not a tremor: a slow open curve, obtained by giving each dot two slightly different frequencies, one horizontal and one vertical, between five and twelve seconds per cycle. No two dots ever follow the same path, and none returns exactly to where it started. The amplitude is large enough for the eye to notice the motion, and small enough that two memories never overlap.
Every halo breathes, eighteen percent either side of its value, at a rhythm of its own for each dot, between two and four seconds. The rhythms are deliberately scattered: if every halo breathed together, the constellation would have a visible beat, and a beat draws the eye.
And every memory lights up, now and then. Every ten to twenty-five seconds, depending on the dot, a swell of a quarter more opacity and eight percent more size, rising and falling smoothly over a tenth of the cycle. Never a flash: a thought lighting up for a moment, not a strobe. The threads between the dots were redrawn as two stacked strokes, a wide translucent one behind and a thin crisp one in front, so that they have the thickness of a thread rather than a hair. And the whole thing inhales and exhales by two and a half percent every three seconds, the way the orb used to.
One detail matters more than the rest: everything is determined by each memory's identifier, nothing is drawn at random. Tom's trajectory, the rhythm of his breathing, the moment he lights up, are the same from one day to the next. The constellation never reshuffles its cards.
When Ellie presses the button, listening waves are added around the map. When conversation bubbles fill the screen, the constellation fades to a quarter so the bubbles can be read. Twenty-four frames per second, a rate chosen to stay smooth with a few hundred dots redrawn on every frame.
Where each memory sits, and why
The layout is not decorative. It says something about memory.
Two rings. Inside, what matters now: the memories that sit in the working layer of the memory, those with high importance, and those that are crossroads, linked to many others. Outside, the rest. Each dot has a fixed angle, with a little play so the ring does not look like a clock face. The radius of the whole grows with the square root of the number of memories: a memory of a hundred is not ten times wider than a memory of ten, it is denser.
The size of a dot grows with how many times you have talked about it, with its importance, and with its role as a crossroads. A memory told again, recognised as the same one and reinforced rather than recreated, gets bigger. A memory said once stays small.
The colour of the halo tells the area of life. Amber for family, blue for work, red for health, green for friends, yellow for money, orange for home, cyan for what you are learning, violet for yourself. Grey when the app does not know. The shape of the core tells the category: a solid circle for a fact, a circle ringed in white for a person, a diamond for an event, a hexagon for a memo, a triangle for a task, a small hollow diamond for a reminder, a star for a topic. And the threads, the ones the memory had been writing from the start, join what belongs together: light blue for most, red when one memory corrects another, dashed orange when one replaces another.
It grows while you talk
The essential point fits in one line of code, but it is the line that changes what Ellie sees.
The home constellation reloads at two precise moments: as soon as the assistant's reply is placed in the thread, before the voice has even finished reading it, and again when the voice goes quiet. It is the trigger that already moves the memory counter at the top of the screen at the moment of the bubble, not six seconds later. It also reloads when you come back into the app, and a deleted memory vanishes from the map at once.
So Ellie's evening changes in nature. She says Tom, and a circle ringed in white appears, green, in the outer ring. She says Thursday's inspection, and a diamond settles, with a triangle beside it for the registration papers, and a thread between the two. She says the 14th, and an amber diamond lights up. While she tells her day, her memory draws itself in front of her, and the following evening, yesterday's dots are still there, in their place, at their rhythm.
The home screen is no longer the picture of an app that listens. It is the picture of what Ellie has told it.
The afternoon: a crash, then the end of the threshold
Two and a half hours after the constellation moved up, the app crashed at launch for everyone who had it. The cause lies in the rendering engine, which requires a component to declare the same number of small internal states on every render. The animation calculation had been placed after the line that says "if there are no dots, draw nothing". On the first render, the memory was not loaded yet: early exit, calculation never declared. On the next render, the dots were there, the calculation was declared, and the engine counted one more state than before. It refused, and the app died on the launch screen. The fix was a few lines moved; it is the kind of flaw that raises no error when written and stops the app from opening.
At six in the evening, the twenty-memory threshold was removed, along with the flag that remembered it and the demonstration orb itself. Three reasons. The flag, meant to avoid a flicker at launch, produced another: on a cold start, the app sometimes showed the wrong thing while reading it back, and if the threshold had been crossed during another session, the screen stayed stuck on the demonstration long afterwards. Then, the static orb no longer rendered properly, and the person who uses the app asked for it to go. Finally, the reason that had justified the threshold turned on itself: three sparse dots on a calm screen do not look poor. They say "your memory is taking shape", which is precisely what you want to tell someone who is starting out.
Since then, the constellation shows from the first memory. Before it, the space stays empty and calm, and fills as the memory fills. The orb has not left the app: it remains, small, at the bottom of the screen while the assistant speaks, as the target to tap to interrupt it. But at the centre of the home screen, nothing is the same for everyone any more.
Stars around the words
The same afternoon, an older annoyance was settled. When the assistant writes a card, it writes with light formatting: headings, bold, bullets. A small home-made reader knew how to display it, but only in two places, the memo card and the result of a search. Everywhere else, the detail of a card, the reminder, task and memo lists, the inbox, the memory list, the text showed raw. Ellie opened Tom's card and read stars around "September".
Two routes were laid. The body of a card, when opened, now goes through the reader: headings are headings, bold is bold. List rows, clipped to two or three lines, cannot carry formatting; they go through a cleaner that removes the symbols and the block prefixes, hashes, dashes, numbers, and keeps the words. The same cleaner serves the labels read by the screen reader, and the confirmation box that quotes a memory before deleting it: it no longer quotes the stars.
The reader gained three inline styles along the way: italics, inline code on a small grey pill, useful for a file name or a command, and highlighting, on a soft amber marker, like a highlighter on paper. It stays deliberately limited to what the assistant produces; it is not a full reader, and it is not meant to become one.
"What have I got next week?"
The day had begun, in the morning, with a question from Ellie that went badly: her schedule for the week. The answer had taken more than two minutes. The logs showed why: for one question, the assistant had fired eight searches in parallel through the memory.
It was not a whim of the model, it was a badly exposed tool. The service that queries the memory had long known how to filter by a window of dates, and the database had a dedicated index, sorted by due date, that makes that query near instant. But those two filters had never been declared in the description of the tool the model sees: from its point of view, they did not exist. It was left with two bad choices, fetch everything and filter itself, or search by meaning, which compares the question to five hundred candidates and understands nothing about "next week". Second flaw: even with a date window, the results came back sorted by last mention. The index delivered them in chronological order; an explicit sort overrode it, and the model had to put the days back in order in its head, at the risk of getting them wrong.
The morning declared both ends of the window in the tool, with the instruction to compute it precisely: "this week" is today to Sunday midnight; "this weekend", Saturday to Sunday; "this month", the first to the last day. When a window is requested, the results come back in date order. And the server now writes a warning in its logs whenever a single turn triggers more than three searches, to catch a regression before it costs someone two minutes.
Three minutes later, a second fix, because the assistant itself had explained what it had done: several queries on the week's window, one for events, one for tasks, one for each kind of reminder, then a recap rebuilt day by day. Again, it was structural. The tool accepted only one category at a time; even the most disciplined request had to fire four queries to be complete. Since then, the category accepts a list, and a schedule is a single query: events, tasks and reminders, in order, in one go.
The instruction given to the assistant was rewritten the same way. The preferred route for a schedule is direct display, where the server runs the query itself and shows the list of the moment, the one that, since the same day, leaves a thumbnail under the reply and opens card by card. The window stays strict: no spilling over into neighbouring days, even if the assistant knows interesting things there. If it thinks context is missing, it offers at the end of the reply, "want me to list the following week too?", and never goes there on its own.
What remains open
The home constellation cannot be touched. To open Tom's card from a dot, you still have to go through the settings page. That is a choice for now, not a technical limit.
Twenty-four frames per second with a few hundred dots is the ceiling we aim for. A memory of several thousand has not yet been drawn on a modest phone. The amplitudes, the frequencies, the thresholds that place a dot inside or outside are settings by eye, not measurements, and they will be revisited by watching real memories live.
The warning about multiple searches is a signal in the logs, not a barrier: it warns, it prevents nothing. And the formatting reader will stay small, as long as the assistant only writes what it knows how to read.
For Ellie, what 22 May changed can be seen without being explained. She tells her day to someone who listens, who answers, and who remembers; and while she talks, the screen no longer shows her a demonstration. It shows her what she has entrusted to it, taking shape.
