💡 Inspiration

I wanted to create something that feels nostalgic, interactive, and genuinely unsettling — a browser-based horror experience that doesn't rely on jump scares but builds tension through glitches, audio, and terminal interactions.
The idea of a haunted terminal from a failed 90s experiment came to life from blending tech folklore, analog horror, and my love for minimal, atmospheric storytelling.


💻 What it does

Project Chimera is an interactive horror terminal you run inside your browser.
You explore a decaying, haunted system using familiar commands like ls, cat, help, and run. The deeper you go, the stranger it gets — audio distorts, the interface glitches, and the system begins to "wake up."

It's a cursed command-line experience where code and horror collide.


🛠️ How I built it

  • Frontend: HTML, CSS (with heavy CRT/glitch styling), and vanilla JavaScript
  • Audio: Web Audio API for ambient sound, distortion effects, and timing with user input
  • Interaction Design: Simulated command parsing and file system behavior with hidden responses
  • Deployment: Hosted via GitHub Pages for easy access

Everything was built from scratch — no frameworks, no libraries, just raw web tech.


🧩 Challenges I ran into

  • A significant challenge was ensuring audio played reliably. Modern browsers often suspend AudioContext until explicit user interaction. Implementing a robust resume mechanism was key.

  • Initially, running index.html directly from the file system (file://) caused fetch requests for audio to fail due to security policies. Understanding and implementing a local HTTP server was essential.

  • Coordinating CSS glitches, text output, and Web Audio API events to create a cohesive and impactful horror experience required careful timing and setTimeout management.

  • Iterating on CSS animations and JavaScript triggers to make the visual and auditory glitches feel organic and genuinely unsettling.


🏆 Accomplishments that I'm proud of

  • Built an immersive horror experience using only HTML, CSS, and vanilla JS
  • Successfully created tension without using any frameworks or back-end
  • The retro terminal aesthetic, interactive audio, and timed glitch effects came together exactly how I envisioned
  • People testing it actually got creeped out — mission accomplished 👻

📚 What I learned

  • How to bend vanilla JS to simulate a realistic, stateful CLI experience
  • Advanced use of the Web Audio API for atmospheric control
  • How to enhance storytelling purely through UI and terminal interactions
  • Importance of subtle audio + visual timing in creating a horror experience
  • That less can be more — a simple interface can deliver a powerful story when done right

🔮 What's next for Project Chimera

  • Add branching narratives based on user commands
  • Include corrupted images or video files to increase immersion
  • Make it more reactive — detecting repeat visits or evolving over time
  • Introduce a "fake OS crash" or recursive system reboot mechanic
  • Potentially turn this into a full-blown ARG (Alternate Reality Game) with hidden web pages, lore, and puzzles

Built With

Share this project:

Updates