The Prism Room — Kiroween Kernel (v1.3.9)

Inspiration

Inspired by H. G. Welles' "The Red Room" and the Kiroween theme, we set out to build a tiny, testable room loop kernel for a larger interactive fiction project called The Prism Room. Instead of a full game, we focused on a single haunted door, a tight HUD, and a short, replayable loop that could be cloned into future rooms.

We also wanted to see how far we could get by leaning into Kiro's agentic IDE and spec-driven development: using specs, flows, and hooks to keep our scope disciplined, our code portable, and our Skeleton Crew build shippable within the timeframe.

What it does

This project is a reusable single-room kernel that runs entirely in the browser:

  • A minimal HUD shows Echo, Fear, Resolve, Curse %, a Roll timer, basic session stats, and a compact inventory.
  • A parser-style input loop powers fundamental interactions: LOOK, LISTEN, LIGHT PRISM, PULL MIRROR SHARD, FUSE, USE ECHO LENS, and a few small variations.
  • A sticky event banner surfaces key narrative beats (e.g., world pings, discoveries, completion messages) with the ability to replay the last event.
  • A Settings modal exposes Photosensitive Mode, hint toggles, audio ping mute, and a quick reset to replay the room.
  • A completion sequence shows a ROOM COMPLETED / LOOT ACQUIRED banner and awards echo-themed loot, hinting at a broader meta-progression for The Prism Room universe.

It’s deliberately small: one haunted door, one loop, and one screen that can be dropped into other projects or extended into more rooms.

How we built it

The kernel is implemented as a static front-end:

  • Tech stack: HTML, CSS, and vanilla JavaScript — no build step, no backend, no frameworks.
  • The parser normalizes input, matches verbs and simple noun phrases, and updates the HUD, sticky banner, and log.
  • The HUD state machine tracks timers, Fear/Resolve adjustments, Curse percentage, and inventory, ensuring each action has a clear, visible effect.
  • The Settings modal and accessibility features are wired with standard ARIA practices and focus management.

On the Kiro side, we used:

  • Specs to define the room loop requirements (verbs, win/lose conditions, HUD behavior, accessibility constraints).
  • Steering/docs to align with UI and accessibility conventions from the start instead of bolting them on at the end.
  • Hooks to automate checks and keep the static bundle (including the Kiroween build zip) in sync with the code.

Challenges we ran into

  • Accessibility vs. atmosphere. Balancing a spooky, high-contrast HUD with Photosensitive Mode, readable text, and predictable motion took iteration. We repeatedly tuned the banner timing, contrast, and animation to avoid overwhelming the player.
  • Settings UX and scope. Early on we had competing settings layouts; bringing everything back into a single, focused modal without breaking keyboard navigation or ARIA behavior was trickier than expected.
  • Tight kernel scope. It’s tempting to bolt on more verbs, more rooms, and more narrative. Sticking to a Skeleton Crew-appropriate kernel forced us to say "no" a lot and ship a small thing well rather than a big thing half-finished.
  • Cross-browser consistency. Making the HUD, timers, and sticky banner behave the same way across modern desktop browsers surfaced little layout and timing bugs that we had to iron out.

Accomplishments that we’re proud of

  • A polished, shippable kernel. We ended up with a small but complete room loop that feels like a finished micro-experience, not just a tech demo.
  • Accessibility baked in. Photosensitive Mode, keyboard-first interaction, ARIA live regions, and robust Settings controls made accessibility a first-class citizen.
  • A reusable structure. The loop, HUD, and parser are intentionally generic. You can change the text content and a few parameters and have an entirely new room without rewriting the core.
  • Template-friendly repo. The project is structured so it can act as a starter template for future Prism Room content or for other devs who want to fork and build their own rooms.

What we learned

  • Specs are guardrails, not paperwork. Writing specs for verbs, HUD behavior, and accessibility up front reduced last-minute ambiguity and made Kiro’s assistance more effective.
  • Tiny kernels are powerful. A small, deterministic kernel is easier to test, polish, and reason about than a sprawling prototype — especially in a time-boxed hackathon.
  • Accessibility pays dividends. Designing for Photosensitive Mode, keyboard navigation, and screen reader support early helped us catch layout and state issues that might have been missed otherwise.
  • Kiro fits the "vibe-first, scope-tight" workflow. Using Kiro for steering and hooks made it easier to stay inside our Skeleton Crew scope while still exploring different HUD and text treatments.

What’s next for The Prism Room — Kiroween Kernel (v1.3.9)

  • Expand beyond a single door. Turn this kernel into a multi-room progression, with different fear profiles, timers, and loot, all reusing the same HUD and parser foundation.
  • Add meta-systems. Introduce run history, light scoreboards, and persistent echo artifacts so players can track their "Echo trail" across rooms.
  • Experiment with optional flair. Revisit a gentle title splash, subtle ambient audio, and cosmetic CRT/vignette treatments — all gated behind Settings and Photosensitive Mode.
  • Improve hints and copy. Make hints more context-aware and responsive to player behavior, refining the room’s narrative rhythm without overwhelming the player.
  • Explore AI integration (post-hackathon). Carefully experiment with AI-assisted flavor text and variations while keeping the deterministic kernel intact for gameplay.

How to run

  • Clone or download the repository from GitHub: HooplaHoorah/prism-room-kiroween
  • Open index.html directly in any modern desktop browser — no build step or server required.
  • Press the space bar or click to send a ping toward the door and watch the HUD respond.
  • Use verbs like LOOK ROOM, LISTEN, LIGHT PRISM, PULL MIRROR SHARD, FUSE, and USE ECHO LENS to progress through the loop.
  • Open Settings to enable Photosensitive Mode, toggle hints, mute the audio ping, or reset the room for another run.

Accessibility notes

  • Photosensitive Mode: Reduces or disables potentially intense flashes or motion.
  • Keyboard accessibility: All core interactions work via keyboard; the Settings modal traps focus correctly and can be dismissed with Escape.
  • Live announcements: Important events are announced via ARIA live regions, and the sticky banner can be replayed using the "Last" control so players can re-read key moments.
  • Audio controls: Audio pings can be muted independently from the rest of the experience.

Category & judging criteria

  • Category: Skeleton Crew — a compact, reusable kernel starter for building interactive fiction and HUD-driven room experiences.
  • Potential value: The kernel can be cloned into new rooms and extended into a larger Prism Room experience (or other projects) without rewriting the core loop, making it a practical starter kit.
  • Implementation quality: We used Kiro specs, steering, and hooks to maintain a tight scope, strong accessibility, and a clean, static deployment path.
  • Quality & design: The minimalist HUD, sticky banner, Photosensitive Mode, and configurable hints/audio create an accessible, polished micro-experience that still leaves room for future expansion.

Built With

Share this project:

Updates