Experimental · every number in the simulation is invented
Semantic Works: Cyber Kitchen: Episode 1: The Restaurant
October 2026

Cyber Kitchen:
Episode 1: The Restaurant

A pan flaming on a restaurant stove

A real business, modelled in about an hour. Pasha described a restaurant out loud and Claude built a living, clickable model of it. Built 100% by voice: no code or commands entered by keyboard.

Dr. Pavel (Pasha) Simakov
About the author
Dr. Pavel (Pasha) Simakov Managing Partner, Semantic Works LLC linkedin.com/in/pavelsimakov

The source for this episode is on GitHub: Semantic-Works-LLC/semantic-works-public

Before the story

Play with it right away

The finished restaurant runs live on the next slide, inside this presentation. Nothing to install, nothing to configure.

Play with it live View the source code on GitHub

You can also see the source code of everything presented here, and how the application runs.

Press ▶ below to play with it. After that, ▶ continues with the story.

What you are about to experience is live.

We built a restaurant simulator, and it is running right now. Close this window, then interact with it:

  • Click a table, a waiter, a cook or an order ticket to see what it is and what it is doing.
  • Use the magnifying glass to pick anything by name.
  • Change the speed with 1×, 2× and 4×, or pause it.

When you are done, press ▶ below to see how it was built.

Close View the source code on GitHub
The method

Built 100% by voice. Pasha talked, Claude built.

  1. Say what you want, in plain words. Pasha dictated every request the way he would explain it to a colleague, pauses and half-sentences included. No code or commands were entered by keyboard.
  2. Watch it appear. The page stayed open in his browser and refreshed by itself each time Claude changed it, usually within a minute or two.
  3. React to what you see. Waiting for food should be red. Add a pizza oven. The cooks are hard to click because they keep moving. Each remark became the next change.
  4. Let the AI fill the gaps, and say so. Pasha did not know how many cooks there were or how long anything takes. Claude chose, and listed every choice so it could be corrected.

Seventeen exchanges, about an hour. The slides that follow show what was on the screen at each step.

0:01 · Turn 2

It started with how we would work

… record this conversation in a Markdown file, clearly separating what I said from what you answered … Next, start a local Python web server and build a Hello World HTML page … push your changes to that page so it refreshes and I can see what you're doing.Pasha, lightly trimmed
A dark page that says Hello, World! with Cyber Kitchen, Episode 1 below it
The first page.
0:03 – 0:05 · Turns 3 – 4

Four minutes in, we had an interactive page

As a warm-up, Pasha asked for something he could click while watching the page update itself:

One business constraint, stated once. Pasha's corporate laptop does not allow JavaScript libraries from the internet. Claude was using none, and kept it that way for the rest of the project: everything here is hand-built and runs with the network unplugged.

A dark page with a pie chart of weekly sales beside a table, the Desserts row selected
The warm-up page, with Desserts selected.
0:07 · Turn 5

Then Pasha described the restaurant from memory

… there are a dozen tables: some round ones for four people, a couple for two, and the rest for six. There's a kitchen somewhere, and I see a couple of waiters. A waiter takes an order and puts up a piece of paper, which I guess a cook picks up; I don't know whether there is one cook or several. Plates come out of the kitchen onto a small table, and a waiter brings them over. On the page, set up an SVG live view and draw the restaurant. Then let's try an animation: waiters moving, people coming in, the kitchen cooking.Pasha, lightly trimmed

That was the whole specification: one spoken paragraph, as a visitor remembers the place. What Pasha did not know, Claude chose and listed, so it could be corrected:

0:14 · Turn 5

Seven minutes later, we had a working restaurant

The first version already ran the whole cycle, from arrival to departure:

One spoken paragraph in, a running model of the business out. It is a simulation, not a drawing: nobody scripted where each guest goes.

First version of the floor plan: twelve brown tables, a kitchen on the right, counters below
The first restaurant, 42 simulated seconds in.
0:15 – 0:17 · Turns 6 – 7

We made every table's state readable at a glance

The floor plan with tables outlined in thin coloured lines
1. Each table shows the stage its party is at. In the first version the stage was a coloured outline.
The floor plan with table tops filled in yellow, orange, red and green
2. Pasha asked for colours that run from calm to annoying. Two spoken notes later: yellow reading the menu, orange wants to order, red waiting for food, green eating, filling the whole table.
0:17 – 0:18 · Turn 8

We added a coffee machine and a pizza oven

I want to add a coffee machine and a pizza maker to the kitchen.Pasha

One sentence from Pasha. About a minute later the equipment was on the floor and part of how the kitchen works.

The floor plan with a coffee machine by the pass and a pizza oven in the corner of the kitchen
The coffee machine by the pass and the pizza oven in the corner.
0:19 – 0:23 · Turn 9

We made everything that works selectable

Click any working object and a panel slides out on the right with one "about" card:

Tables, waiters, cooks, parties, the door, the rail, the pass and the kitchen equipment could all be selected.

The page with a details panel on the right showing a card for the pizza oven
The pizza oven selected, in the panel's first form.
0:26 – 0:33 · Turns 10 – 12

We made every order something you can follow

The page using the full window width, with a ticket's card listing what was ordered
Click a ticket: what was ordered, from an invented menu, who wrote it and how long it has been waiting. It stays selected as it moves from the rail to the cook, the pass and the table.
0:26 – 0:38 · Turns 10 – 14

We built a way to pick things that move

A list of plain name buttons grouped by category inside the panel
1. People and tickets are hard to click while they move, so every object got a button with its name, grouped by category.
A pop-up picker opened from a magnifying-glass button, listing every object
2. Pasha then asked for it as a pop-up behind a magnifying-glass button. Type to filter, pick a name, and it closes and selects that object.
0:40 – 0:56 · Turn 15

We finished with a full test suite, also by asking

Pasha asked for tests with full coverage and a single command to run them. Claude wrote them, set up the tools and ran them.

SuiteTestsCoverage
The web server20100%
The page, driven in a real browser48100% (751 lines of JavaScript)
Total68, all passing
A terminal showing make test: 68 passed, 751 of 751 lines covered, seven screenshots unchanged
Pasha's own run of make test: 68 passed.
0:58 · Finished

What we ended up with: the floor

We did not only draw these objects. We modelled the state each one is in and the activities it takes part in, and the picture follows the model.

The finished floor plan 2:30 into service
The finished page, 2:30 into service.
0:58 · Finished

What we ended up with: selection

Everything that does a job in the restaurant can be selected and inspected, one thing at a time.

Table 3 selected on the floor with its about card in the details panel
Table 3 selected: its card, with the order at the table and what the party is doing now.
The result

A whole restaurant, alive, on one page.

It's all done!!! Built in about an hour, 100% by voice: watch guests arrive, order, wait and eat, follow any order through the kitchen, and click anything to learn what it is for.

A model, not a drawingGuests, waiters, cooks and orders each have a state and a job, and the picture follows them.
100% by voiceNo code or commands entered by keyboard. About an hour, start to finish.
Every objectClick a table, a person, a ticket or a stove for what it is, its purpose and what it is doing now.
Every orderTickets carry real items from an invented menu and can be followed from table to rail, cook, pass and back.
Tested68 tests cover every line of the server and of the page's JavaScript.
No installsNo libraries and nothing from the internet. One Python file and one web page.
The finished floor plan with a table selected

You can run it yourself in a minute, with nothing to install but Python.

0:00 – 0:58 · The whole conversation

What it took in tokens

Counted from the session's own log: 14.4 million tokens across 84 requests to the model, all Claude Opus 5.5.

KindTokensWhat it is
Re-read from cache13,961,491The conversation so far, read again on every request. This is 97.3% of the total and is billed at a small fraction of the normal rate.
New input230,381Text entering the conversation for the first time: Pasha's messages, tool results, files and screenshots.
Output164,443Everything Claude wrote: answers, code, commands and its working notes.
Total14,356,315

The total is large because of how a long conversation works, not because much was written. Each of the 84 requests re-reads everything before it, so the same text is counted again and again: on average about 166,000 tokens of history per request.

Other statistics

about 1 hourfirst word to finished
100%by voice, no keyboard
12 / 2 / 2tables, waiters, cooks
68tests, 100% coverage
about $8as API calls
If bought as API calls, with no subscription

What that would cost in dollars

About $7.90 on Claude Opus 5.5, the model that ran the session.

ModelRough costNotes
Claude Opus 5.5about $7.90What we used: $2.79 for cache re-reads, $1.84 for new input, $3.29 for output.
Claude Sonnet 5.5about $5.40The same token counts at Sonnet's prices. Its cache-read price is the same as Opus.

Caching is what keeps this small. With no caching, every re-read would be billed as fresh input: about $60 on Opus 5.5.

Already built

What comes next: Episode 2, The Workflow

Episode 1 shows the restaurant as a room you can watch. Episode 2 takes the same model and turns it into something you can measure and manage.

One step is still ahead of both episodes: the numbers. Every timing in the model is invented. With real figures from the owner, the same model starts answering real questions.

Follow the Episode 2 journey

The full conversation, with Pasha's words as spoken, is in TRANSCRIPT.md beside the source.

Thank you for your interest

Want to see more?

There is more from Semantic Works to explore.

See our public projects

Dr. Pavel (Pasha) Simakov
About the author
Dr. Pavel (Pasha) Simakov Managing Partner, Semantic Works LLC linkedin.com/in/pavelsimakov

Happy vibe coding with LLM AI!