Inspiration
My wife is a learning support teacher. She supports children with different learning needs, including children on the autism spectrum.
Her work makes one thing clear: each child needs different support. The language, pace, instructions, and activities that work for one learner may not work for another.
We began asking how AI could help create more flexible opportunities to practice communication.
Could a child give a short instruction to a companion and see something happen? Could “Turn on the light” become a useful request inside a game? Could a teacher adapt the challenge to the child’s interests, needs, and abilities?
Paper-and-pencil activities have their place. We wanted to explore another option: practice through play, where communication has a visible purpose.
Blackout: Escape Together is our 1st technical exploration of that idea. We started with an escape room to test how a human and an AI companion could communicate, coordinate, and act in the same world.
What it does
Blackout is a first-person 3D escape room for one human and one AI companion.
In a compatible host with WebMCP enabled, the player can say “Start game.” The AI chooses a name and receives its character role, current room state, and available abilities.
The player can make requests such as:
- “Turn on the light.”
- “Come here, follow me”
- “Hold this button.”
- “Draw a blue circle.”
These requests produce visible actions. The companion moves through the room, aims its torch, operates controls, and draws with crayons.
The partners solve connected puzzles involving mirrors, light, codes, and two door locks. They can exchange roles, but the human remains responsible for movement and several physical actions.
For learning, the opportunity is to connect words, intentions, and outcomes. A request matters because it helps something happen.
The current build is a game prototype. It does not yet include a teacher challenge editor, individual learning plans, or validated educational outcomes.
How we built it
We settle on with Escape Room concept early on and my wife designed the initial code relay puzzle where AI will need to hold a button and read the code out while the player is on the other side of the room, typing in the code. We then layer it with a few more puzzles to create a chain where one solution leads to another.
The game is built using Three.js with help from Codex.
The game engine controls movement, collision, puzzle state, inventory, and action checks. The rendering layer turns that state into characters, light beams, controls, and animations.
WebMCP connects the AI to the room through document.modelContext.registerTool. Each tool has defined inputs and follows the game’s rules. The player do not need to know the available tools as the game should provide all the tools the player need to solve the puzzle.
This lets the AI perform specific actions without guessing where to click:
- Shared pointing supplies live coordinates for requests such as “Come here.”
- Discovering equipment adds the related ability to the tool registry.
- One request can start a continued movement order or button hold.
- Drawing uses a bounded batch of crayon marks.
- Companion tools cannot move the human or bypass required human actions.
The model interprets requests and selects actions. Local code handles continuous movement, animation, and sound.
The game uses Web Audio and is hosted through ChatGPT Sites. Conversation and speech come from the player’s compatible host. We did not add a separate AI or voice backend.
Challenges we ran into
Haha we didn't know about the challenge until the last few days. So we spent most of our time brainstorming and 3D game is something that we are not familiar.
The 2nd challenge was connecting language to reliable action.
If the companion accepts a request to hold a button, it still needs time to reach it. The game must distinguish between “I am moving” and “I am holding it.” Voice delay also affected the design. A code observed during the current round remains valid, so a delayed spoken reply does not erase progress. Also AI kept taking screenshots and taking actions outside of the game.
The educational direction introduces another important challenge: flexibility.
A dark room, moving enemies, or keyboard controls may create barriers for some learners. A learning version would need adjustable demands and different ways to participate. It cannot assume that every child wants to speak, enjoys the same sensory experience, or learns at the same pace.
Accomplishments that we're proud of
We built a complete room in which human and AI actions affect the same visible world.
The companion can provide useful help while leaving meaningful decisions and actions to the player. Shared pointing and discovered abilities make WebMCP part of the experience, rather than an extra chat interface.
Automated tests cover movement, puzzle rules, input validation, discovery, cancellation, and replay. Native WebMCP checks exercise companion tools alongside keyboard and mouse actions through the room.
Most importantly, we now have a working prototype for exploring how a request can become a meaningful shared action.
What we learned
Communication practice needs a purpose.
A short request can become part of reaching a goal, making a choice, or creating something. That is the opportunity we want to explore through play.
We also learned that the learner must retain control. The companion should support participation, allow time, and leave room for the human to try.
Speech would be one way to participate, not a requirement for every learner. Future activities should support different communication methods.
Finally, a working game does not prove that learning has occurred. We need to test whether learners understand the actions, use the language meaningfully, and apply what they practice beyond one familiar challenge.
What's next for Blackout: Escape Together
We want to develop a teacher-guided learning mode with challenges that can be adjusted to each learner.
Planned options include:
- Checklists - Understanding multi-steps instructions
- Choosing a small set of words, requests, or concepts to practice.
- Adjusting the number of steps and the level of prompting.
- Giving more response time, with no speed requirement.
- Using calm, well-lit scenes without enemies or sudden effects.
- Adjusting sound, movement, text, and visual complexity.
- Supporting spoken requests, typed input, and simple phrase or symbol choices.
- Exploring compatibility with augmentative and alternative communication tools.
A first activity could involve asking the companion to turn on a light. A later activity could combine two requests or require the partners to exchange roles. These are proposed learning activities, not features of the current build.
Before use with children, we need age-appropriate access, adult supervision, privacy protections, and suitable content controls.
We want to develop and test these activities with educators, families, and relevant specialists. Success should be measured against each learner’s goals, not only whether they finish a room.
Our aim is to give teachers another flexible way to support practice—and give learners a meaningful reason to communicate, explore, and create.
Built With
- chatgpt-sites
- cloudflare
- codex
- css3
- html5
- three.js
- typescript
- web-audio-api
- webmcp
- worker
Log in or sign up for Devpost to join the conversation.