Inspiration

An ordinary object can carry more of a story than a spectacular setting. The Room Between turns three small things—a marble, a button and a train ticket—into a quiet puzzle adventure.

What it does

Players explore a moonlit study, redirect lamplight with a mirror, unlock a drawer and open a garden door. Entering three object names produces a personal introduction, object descriptions and ending. The puzzle engine, rather than the language model, owns prerequisites, inventory and solutions. This keeps the chapter solvable even when narrative text varies.

How it was built

The app uses JavaScript, an original SVG illustration, local progress storage and a service worker for cached replay. All AI inference goes through Firebase AI Logic. The adapter calls initializeDeviceModel on user interaction, requests structured JSON through generateContent, and reports the actual inferenceSource returned by the SDK. Matching output schemas are configured for local and cloud models. The app offers ONLY_ON_DEVICE and PREFER_ON_DEVICE modes; cloud fallback is a visitor choice.

Firebase App Check protects the AI request path. Actual generation was tested locally with a private development token that is not included in the repository or video. The token is revoked after testing. No room photographs or personal account records are collected; cloud generation receives only the entered object labels and the story prompt.

Validation and limitations

App Check token exchange, real cloud generation (SDK source in_cloud), and the complete three-puzzle chain succeeded. Tests also cover wrong codes, prerequisite gating, wrong direction sequences and save recovery.

The test browser did not expose on-device AI: ONLY_ON_DEVICE returned api-not-enabled. On-device execution is implemented through Firebase's SDK, but is not claimed as verified on this machine. The video demonstrates actual cloud fallback and gameplay, using edited screenshots of the working application.

The current prototype contains one chapter. A public production AI endpoint has not been provisioned. Reviewers can build and run the source using the step-by-step instructions in TESTING.md, with their own authorized Firebase project and App Check configuration. No production API credentials or reusable debug tokens are distributed.

What we learned

Hybrid inference needs honest availability reporting. A cached chapter remains playable, a failed generation preserves the previous chapter, and the UI distinguishes handcrafted content from actual AI output. Separating story generation from the puzzle graph also prevents model output from unlocking objects or changing the solution.

What's next

Test supported on-device hardware, provision production App Check, and add further authored puzzle graphs with more physically meaningful interactions between objects.

Development and attribution

Created during the hackathon period with AI coding assistance. The game, illustration, interface and Firebase adapter were developed for this entry. Dependencies and an MIT license are included in the public repository.

Built With

Share this project:

Updates

Submission history