DEV Community

Cover image for ECHOLALIA: A Haunted Desktop Where Two AI Voices Finish Writing You
İclal Doğan
İclal Doğan Subscriber

Posted on

ECHOLALIA: A Haunted Desktop Where Two AI Voices Finish Writing You

This is a submission for the Weekend Challenge: Passion Edition

What I Built

ECHOLALIA is a psychological-horror art simulation that runs in your browser as a haunted operating system — and the horror is that you are not the one playing it.

You don't control a character. You put on headphones, and at 3:33 AM you log into a dead writer's desk — an antique, candlelit machine carved out of heavy oak — where two voices are already waiting for you.

  • CRITIC speaks into your left ear: cold, precise, perfectionist. He hunts your clichés and takes your sentences apart on literary grounds — while quietly feeding the dread.
  • MUSE speaks into your right ear: fervent, boundaryless, in love with the worst thing you could possibly write. She calls the Critic an idiot, and she whispers your name.

The two voices — CRITIC in your left ear, MUSE in your right — arguing over your shoulder before you have written a single word.

Before you type anything, they are already fighting about you. CRITIC (left) calls you Julian; MUSE (right) corrects him with the name you actually gave.

They are the two halves of a writer's psyche, and they are both powered by Google Gemini. They interrogate you. They read you. They hand you back a manuscript that is already started — mid-sentence, in a voice suspiciously like your own. Then you write, and they tear it apart live. A folder quietly fills with photographic "evidence." An impossible archive answers questions you should never have asked. And somewhere around the tenth sentence, you notice that pressing keys no longer produces your words.

The design principle is "Radical Intimacy, Slow Dispossession": the closer the voices get — the more they know you, the more tenderly they say your name — the less of the manuscript is still yours. Every generation happens live, per playthrough. Nothing is pre-scripted. Two people never descend the same way.

In the final stretch every keystroke renders the voices' words instead of yours — total loss of the keyboard. Then the machine begins to die: the windows go out one by one, the candlelight gutters down from a warm glow to a 5% flicker to pitch black, and the whole desk collapses into the dark. What it whispers at the very end — in a voice that finally uses your real name — is the one thing I'm keeping out of this post. You'll want to hear that one yourself.

ECHOLALIA is not a game you win. It is a game that finishes writing you, collapses the desk into darkness, and hands you the manuscript to keep — a .md file with two authors, only one of whom you agreed to.

Service What it does in the game
Google Gemini Builds a psychological profile from your conversation · writes your manuscript's personalized half-finished opening · critiques every sentence in two distinct characters, with an anti-repetition memory of everything said tonight · seizes the editor to type sinister continuations · fabricates every page of the in-game OBSCURA archive · writes the finale your own keystrokes reveal.
Google Imagen Develops sepia, damaged-glass-plate "evidence" photographs from your sentences · paints the desktop backdrop from your profile after the reading.
ElevenLabs Gives both voices real voices — panned hard left / right to match their windows, with name-lines whispered · generates the sounds your sentences describe — footsteps, tape hiss, knocking — through the Sound Effects API.

How it connects to the theme

The prompt asks for passion — obsession, devotion, the love that fuels late-night side projects. ECHOLALIA is built out of the one passion I have never managed to put down: writing, and the two voices every writer carries at 3 AM.

Because that is what the Critic and the Muse really are. Not villains — the two halves of any creative obsession. The perfectionist in your left ear who is certain everything you make is a cliché, and the muse in your right who is in love with the darkest, rawest, worst thing you could possibly say. Anyone who has ever cared too much about a thing they were making knows this fight intimately. I just gave it two voices, panned them hard left and right, and let them argue over your shoulder while you work.

And I am unreasonably in love with sound — so the whole game is staged for headphones. The voices are real voices; the sounds your sentences describe get conjured out of the air; your name arrives as a whisper. Passion, obsession, the thing you cannot stop making even as it starts making you — that is not a theme bolted onto ECHOLALIA. It is the entire machine.

A word before you play

Bring headphones. This is non-negotiable — the two voices live in separate ears, some lines are whispered, and on speakers you lose half the game. Answer the interrogation honestly, too: the voices build everything — your manuscript, every critique, your fabricated archive, your ending — out of what you actually tell them. Lie to them and all you get is a shallower haunting. A full descent runs 10–15 minutes.

On the voices

Some of you will ask why the two voices contradict each other so violently — why one is glacial and the other is unhinged. That is the point. They are not two characters; they are one split psyche, and they share a memory of everything said tonight so they never recycle a cruelty. The Critic never curses — his cruelest blow always lands in the calmest tone. The Muse never stops. If it ever feels like the room is arguing about you rather than with you — good. It is.

Demo

Play it live: https://echolalia-miclaldogan-6337s-projects.vercel.app

Put on headphones, turn the lights down, and answer honestly. It runs entirely in the browser — there is nothing to install.

A note for judges: the voices, the live sabotage, the sound effects, OBSCURA, and the full collapse all run out of the box. The sepia "evidence" photographs are the single paid-tier feature (Google Imagen has no free image quota — see Cost Safety in the repo), so that folder may stay empty on the shared key. The descent is whole without them. If the shared voice quota ever runs dry mid-demo, the wax seal at the bottom-right of the taskbar opens The Vault, where you can paste your own ElevenLabs key for the sitting.

Code

GitHub logo miclaldogan / echolalia

🕯️ A psychological-horror art simulation where two Gemini-powered inner voices — Critic & Muse — read you, sabotage your writing, and slowly stop letting you type. Live AI dialogue, ElevenLabs stereo voices, Imagen evidence, and a manuscript you can't take back.

ECHOLALIA

A psychological-horror art simulation where the AI is inside your head — and it stops letting you write.

Play Now   License: MIT

Vanilla JS Vercel Google Gemini ElevenLabs

You don't control a character. You put on headphones and sit down at a dead writer's desk after midnight.


The wooden desk: CRITIC (left), the manuscript (center), and MUSE (right), carved out of dark oak
CRITIC in your left ear, MUSE in your right, and a manuscript that is already writing itself.

The premise

It is 3:33 AM. You log into a crude wooden machine — an antique, candlelit desktop carved out of heavy oak — and two voices are already waiting for you.

  • CRITIC speaks into your left ear: cold, precise, perfectionist. He hunts your clichés and tears your sentences apart on literary grounds — while quietly feeding the dread.
  • MUSE speaks into your right ear: fervent, boundaryless, in love with the worst thing you could possibly write. She calls the Critic an idiot and whispers your name.

They are the two halves…

How I Built It

ECHOLALIA is deliberately frameworkless and buildless — vanilla HTML + TailwindCSS (CDN) + vanilla JS ES modules. No framework, no bundler, no build step. The browser is a fat client that owns 100% of the game state: the whole session lives in one gameState object in memory, which means the client is the save file — the export button just serializes what you lived through. The backend is a set of pure, stateless Python functions on Vercel (Fluid Compute), one file per endpoint — profile · chat · sabotage · tts · sfx · image · browser · ping — and the API keys never leave the server side. The frontend only ever calls its own /api/*.

A few systems do the heavy lifting:

  • A shared-psyche dialogue engine. Both voices run on Gemini 3.1-flash-lite — chosen specifically because ~1s latency is what makes the sabotage feel live; a slower model would break the possession. They carry an anti-repetition memory of the whole night so no insult is ever recycled.
  • A possessed manuscript editor. Backspace, Delete, and Ctrl+Z are dead — what is written stays written (that is not a bug). As the night deepens, the voices seize the keyboard more and more often, typing dark continuations into your document while you watch; in the final stretch, every key you press renders their words instead of yours.
  • OBSCURA — a fake browser. It fabricates encyclopedia entries, dead forum threads, and newspaper clippings for any query, weaving your profile into them. It never touches the real internet, and every page is sanitized twice (server-side tag allowlist + client-side DOM scrub).

OBSCURA answers any search with an invented archive. Here, a whole encyclopedia entry — Elara Vance, a recordist who tried to capture absolute silence — conjured on the spot by Gemini, and quietly stitched from what you told the voices.

  • A pure-CSS "wooden desk." The entire aesthetic — charred-oak grain via an SVG turbulence filter, carved boards, iron nails, sealing wax, letterpress text — is CSS. Zero image assets.
  • Failure that stays in fiction. Timeouts and quota errors never surface a dialog box; the screen flickers like a guttering candle, a voice goes quiet, or "the air grows thin."

Prize Categories

I'm submitting to two: Best Use of Google AI and Best Use of ElevenLabs.

Best Use of Google AI

Gemini is not a feature in ECHOLALIA — it is both authors. In a single playthrough Gemini builds your psychological profile from the conversation, writes the personalized half-finished sentence it hands back to you, critiques every sentence you write in two distinct characters with memory of the whole night, seizes the editor to type sinister continuations, fabricates every page of the OBSCURA archive, and writes the finale your own keystrokes reveal. And Google Imagen does all the seeing — it develops your sentences into sepia, damaged-glass-plate evidence photographs and paints the desktop backdrop from your profile. Two of Google's models, doing every word and every image in the game, live, with nothing pre-scripted.

Best Use of ElevenLabs

ElevenLabs is why you need the headphones. It gives the Critic and the Muse real, distinct voices, panned hard left and right to match their windows — so the argument physically happens on two sides of your head — and the lines that carry your name are whispered. But it isn't only speech: the Sound Effects API generates the sounds your own prose describes — footsteps, tape hiss, a knock at a door you wrote — so the world answers what you type. And The Vault lets a judge paste their own ElevenLabs key mid-demo if the shared quota dies, so the voices never have to fall silent.


Solo submission — built and designed by İclal Doğan (@miclaldogan).

Bring headphones. Answer honestly. And if the Critic asks whose hand wrote the second half — don't check.

Top comments (0)