Some records tell you what happened.
Others tell you what someone wanted the world to believe happened.
Never Clocked Out is an interactive narrative set inside the fictional Morrow Works Machine Shop No. 4 in 1989. It follows Raymond Mercer, a night-shift maintenance welder whose timecard has no clock-out entry.
Eight surviving records remain.
The player examines the archive, questions Ray through a local open-weight AI model, and decides what should remain on the record.
The story
On the night of October 17, 1989, Ray Mercer reports abnormal vibration and movement in Press No. 4.
The inspection is incomplete. The machine is scheduled to be operated by apprentice Eli Turner the following morning.
Ray stops production.
The official incident report describes an unauthorized stoppage and an employee who left before the end of his shift.
But the surviving records tell a more complicated story.
How it works
The experience is built around three narrative acts:
- The Timecard: Ray is evasive. The player begins by examining the records.
- The Machine: The player investigates the work order, notebook, shift schedule, and inspection checklist.
- The Final Shift: The incident report, unsent letter, and final note reveal Ray's reason for stopping the machine.
The player can choose to let the official record stand, set the record straight using evidence, or close Ray's shift.
The archive itself remains intact. The player can add a separate corrective note, but cannot rewrite the original incident report or change the surviving evidence.
Why Gemma?
Gemma is an integral part of the experience.
The project uses Gemma 3 4B locally through Ollama. Ray responds to questions in character, drawing on the surviving records and the narrative stage the player has reached.
The AI is not asked to invent a new story. The application enforces narrative progression and constrains what Ray can reveal. The records remain the source of truth.
This was an opportunity to explore how an open-weight model can support an interactive narrative without taking control of its canon.
Open innovation
Running Gemma locally means Ray's dialogue is generated on the developer's machine instead of relying on a hosted AI service.
This makes the experience less dependent on a remote API, keeps inference local, and lets the project experiment with model behavior and narrative constraints without tying the experience to a paid model endpoint.
The project explores a small but meaningful question:
What happens when you let an AI speak for a person, but not rewrite what happened to them?
Built with
- React
- TypeScript
- Express
- Ollama
- Gemma 3 4B
Watch the demo
Try the project
GitHub repository:
https://github.com/igbinedionelvis/never-clocked-out
The README includes instructions for running the project locally with Ollama and Gemma.
Prize category
Best Use of Gemma
Final thought
Ray's timecard has no clock-out entry.
The archive has preserved the paperwork.
The player gets to decide what to do with it.
Some shifts never end.
Demo
Source Code
https://github.com/igbinedionelvis/never-clocked-out
Top comments (0)