Skip to content

Repository files navigation

👁️ The Room That Breathes

A generative and procedural audiovisual experience designed to evoke the nostalgia of retro horror and "liminal spaces." A lucid dream simulator where everything —sound, texture, and geometry— is born entirely from code.

Live Demo


🖼️ Preview

Project Preview


✨ Features (Zero-Asset Policy)

  • 🧠 Raymarching Engine — Infinite geometry and organic deformations calculated through SDFs (Signed Distance Functions).
  • 🎮 Authentic PS1 Aesthetic — Retro hardware simulation: Vertex Wobble (jitter), Affine Texture Warping, and fixed internal resolution.
  • 🫁 Biological Breathing — Asymmetric breathing cycle (inhale/exhale) that affects geometry, fog, and light intensity.
  • 🕸️ Latent Veins — Procedural vein textures that swell and pulse rhythmically beneath the walls.
  • 💭 The Dreamer Engine — Combinatorial generator of cryptic phrases with thousands of possible variations.
  • 🔊 Procedural Audio — Synthesis of human breathing, atmospheric industrial drones, and heavy footsteps synchronized with camera movement.

🛠️ Tech Stack

Category Technology
Environment Vite + TypeScript
Visuals WebGL (Fragment Shaders / Raymarching)
Audio Web Audio API (Subtractive Synthesis)
Post-processing Bayer Dithering 4x4 + CRT Distortion
Deployment GitHub Pages

🚀 Running Locally

Requirements

  • Node.js >= 18
  • npm >= 9

Installation

# 1. Clone the repo
git clone https://github.com/IvAzuara/The-Room-That-Breathes.git
cd "The Room That Breathes"

# 2. Install dependencies
npm install

# 3. Start the development server
npm run dev

Open http://localhost:5173 in your browser.


📂 Project Structure

The-Room-That-Breathes/
├── src/
│   ├── main.ts            # Main Engine: WebGL, Audio Engine, and Dreamer Logic
│   ├── style.css          # UI, glitch animations, and CSS post-processing
│   └── assets/            # Static placeholders (not used in core rendering)
├── index.html             # Canvas and interface overlays
├── shader_content.txt     # Backup of GLSL Raymarching code
├── tsconfig.json          # TypeScript configuration
└── package.json           # Dependencies and scripts

📜 License

This project is a personal technical exploration of procedural synthesis. Feel free to explore the code and use it as a basis for your own digital nightmares. 🖤


Made with 🫁 and WebGL — ivazuara.github.io/The-Room-That-Breathes

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages