Thoughts

We built an evil therapist


By the time WORLDS London came round I had been to two hackathons in two weekends and lost both. I had learnt that nobody can see your architecture from the back of a room, and that four people is too many. I turned up to the third one in King's Cross on my own, with no team and no idea.

It was a one-day hackathon run by Multic, with Reactor, VEED, Cognition, Modal, Runware and Night Office behind it, and it was all about world models. A world model is not a game engine. You give it a prompt and a starting image, and it generates video in real time as you move, so the world is being made up as you walk through it.

The lobby

In the lobby I ran into Samuel, who I had last seen collecting third place at Encode the weekend before. We ended up talking for ages, and barely about the hackathon. AI and where it is all heading, what we were each building, startups we rated and a few we thought were overhyped, and a fair bit about life in general. It was a much longer conversation than you would expect with someone you had spoken to for about a minute the week before.

By the time everyone was called in, it was obvious we were building something together.

Rayhan and Samuel standing together in front of black slatted panels and a dark green wall

The venue did not look like anywhere I had built anything before. Dark green walls, ducts running across a black ceiling, plants taller than me, hanging rattan chairs, leather armchairs and a foosball table behind a glass wall. Multic had said it would feel more like a launch party than a conference, and it did.

I also put my first ever sticker on my MacBook, a small Cognition one. I have had the laptop since August 2025 and never put anything on it. It felt like the right day to start.

A lounge with dark green walls, large indoor plants, hanging rattan chairs, leather armchairs and a foosball table behind glass

Somebody else's idea of scary

We spent the morning talking about what is wrong with games right now. Gaming was one of the themes, so that is where we kept ending up, and eventually we landed on horror. Every horror game is somebody else's idea of what is scary. A haunted house does nothing for someone who is terrified of deep water. And most people cannot tell you what really scares them until someone asks the right questions.

So we built a psychologist. An evil one. We called it Exposure, as in exposure therapy.

A psychologist in a dark blazer sitting in a warm, lamp-lit consulting room, looking at the camera

She sits in a warm consulting room and asks you four questions. The first one is: when you were a child, what was the thing in the dark you were most certain was there? You type your answers, and an OpenAI model turns them into a profile of what scares you, which becomes the world you are about to walk into. She tells you to go through the door, and while it builds behind a black screen she says, "Go on. I'll be watching."

You get about a minute inside it, walking and looking around. Halfway through, it gets worse. Then you are back in the same consulting room, exactly as you left it, and she says, "Now we both know what's in there with you."

You cannot jump-scare a video

The weirdest thing about building on a world model is that nothing in the world actually exists. There is no map, no collision and no monster with a position. The figure following you is only there because the prompt says it is. Turn around and turn back, and the world has genuinely changed.

A foggy graveyard at night with bare trees and a dark figure standing on the path ahead

That kills the normal horror playbook. You cannot time a jump scare in a video that is making itself up as it goes. So the fear had to come from everything around it: the sound, the colour grade, and an escalation written into the prompt itself, with a low bass and a pulse building towards the cut.

Reactor's model streams into the browser over WebRTC, and the first image is generated with OpenAI and handed to the model to start from. The psychologist is VEED: every clip of her was rendered and lip-synced before the demo, so nothing about her is generated live. The rest is one Next.js page on Vercel.

Two people

I built the pipeline from the interview to the world and back, plus the parts that make it feel like a horror game: the sound, being chased and looking around. Samuel built the psychologist, making her clips in VEED and wiring her in, and got VEED and Reactor working together in time for the demo. We used Devin to move faster on both.

It was not smooth. Worlds took ages to generate, which is why she has a line to cover the wait. There were bugs, and there were limits on how much we could tell the model about the character, which made parts of it unreliable. She still makes you type instead of talking, and you still cannot fight back.

A kitchen island stacked with pizza boxes in a room with dark green cabinets and plants hanging from the ceiling

But there was nobody to wait for. When one of us had an idea, we tried it. When it did not work, we dropped it and tried the next one. After Encode, that alone felt like cheating.

Third time

We won the VEED track, for the best use of interactive avatars. The prize is a year of VEED Pro each and a visit to VEED's London office to try their live avatars before anyone else.

Looking back at the three weekends, I did not build more this time. At Daytona I built the most and none of it was visible. At Encode we had the right problem and too many people. At WORLDS there were two of us, and we made something a stranger could sit down and play.

Back to Thoughts