A real-time Augmented Reality web app powered by MediaPipe Hand Tracking โ no app install needed, runs straight in the browser.
- Raise both hands to open a live AR portal between them
- Spread your hands apart to resize the portal
- Pinch left hand to cycle through 4 worlds:
- ๐ Space Galaxy โ spiral nebula with orbiting stars
- ๐ Deep Ocean โ bubbles, fish, and wave caustics
- ๐ป Matrix Rain โ falling glyph streams on cyber grid
- ๐ฎ Nebula Drift โ golden cosmic particle mandala
- Hold a tight fist for 2 seconds to capture a ghost snapshot of yourself
- Up to 5 layered ghost snapshots stack on screen
- Open palm and hold 3 seconds to clear all ghosts
- Point your index finger to draw in AR space
- Pinch to cycle through 4 brush types:
- โก Lightning โ electric jitter strokes
- ๐ฅ Fire โ flame particles with glow
- โจ Neon โ rainbow colour-shifting lines
- ๐จ Smoke โ soft diffuse trails
- Tap index + middle finger together to wipe the canvas
- Adjust Brush Size and Intensity from the panel
๐ https://realityframes.vercel.app/
| Layer | Technology |
|---|---|
| Hand Tracking | MediaPipe Hands v0.4 |
| Rendering | HTML5 Canvas 2D API |
| Camera | WebRTC getUserMedia |
| Audio | Web Audio API |
| Fonts | Google Fonts โ Orbitron, Share Tech Mono |
| Hosting | Vercel |
realityframes/
โโโ index.html # App shell, UI layout, boot overlay
โโโ app.js # Core engine โ modes, gestures, rendering
โโโ styles.css # Cyberpunk UI design system
โโโ vercel.json # Security headers & deployment config
โโโ .gitignore # Git ignore rules
โโโ README.md # You are here
- Node.js (LTS version)
- A modern browser (Chrome / Edge recommended for best MediaPipe support)
- A webcam
- HTTPS or localhost โ camera access requires a secure context
# Clone the repo
git clone https://github.com/your-username/realityframes.git
cd realityframes
# Serve locally (no build step needed โ pure HTML/JS/CSS)
npx serve .Then open http://localhost:3000 in your browser.
โ ๏ธ Do not openindex.htmldirectly viafile://โ the browser will block camera access. Always use a local server.
- Push this repo to GitHub
- Go to vercel.com โ Add New Project
- Import your GitHub repository
- Leave all settings as default (no build command needed)
- Click Deploy โ
Every git push to main will auto-deploy.
npm install -g vercel
vercel login
vercel # first deploy
vercel --prod # subsequent deploysThis project ships with a hardened vercel.json security config:
- Content-Security-Policy โ strict allowlist for scripts, styles, fonts, media
- Strict-Transport-Security โ HSTS with 2-year max-age and preload
- X-Frame-Options โ DENY (clickjacking protection)
- X-Content-Type-Options โ nosniff
- Cross-Origin-Opener-Policy โ same-origin isolation
- Cross-Origin-Embedder-Policy โ require-corp
- Permissions-Policy โ only
camera=(self)allowed; mic, geolocation, payment all blocked
| Browser | Support |
|---|---|
| Chrome 90+ | โ Full |
| Edge 90+ | โ Full |
| Firefox | |
| Safari | |
| Mobile Chrome | โ Works (use rear/front camera) |
MIT License โ free to use, modify, and distribute.
ยฉ 2026 Ayyappan M. All rights reserved.