From f0ac2ccc059dd86422f50bf0150dbcb40ff87833 Mon Sep 17 00:00:00 2001 From: Mortdecai Date: Fri, 10 Apr 2026 01:07:50 -0400 Subject: [PATCH] chore: scaffold project files IDEA.md, SESSION.md, DECISIONS.md, CLAUDE.md, .gitignore. Next session: invoke writing-plans skill against design spec. Co-Authored-By: Claude Opus 4.6 (1M context) --- .gitignore | 9 +++++++++ CLAUDE.md | 25 +++++++++++++++++++++++++ DECISIONS.md | 27 +++++++++++++++++++++++++++ GITEA_API.md | 1 + IDEA.md | 17 +++++++++++++++++ SESSION.default.md | 1 + SESSION.md | 32 ++++++++++++++++++++++++++++++++ 7 files changed, 112 insertions(+) create mode 100644 .gitignore create mode 100644 CLAUDE.md create mode 100644 DECISIONS.md create mode 120000 GITEA_API.md create mode 100644 IDEA.md create mode 120000 SESSION.default.md create mode 100644 SESSION.md diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c5cf098 --- /dev/null +++ b/.gitignore @@ -0,0 +1,9 @@ +__pycache__/ +*.pyc +.pytest_cache/ +*.egg-info/ +venv/ +.env +assets/ +samples/ +.backup/ diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..f71786e --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,25 @@ +# AI Hell — Project Instructions + +## What This Is + +Passive horror webapp — AI-generated hellscape with infinite escalation. No avatar, no interaction. Server generates assets + controls escalation, frontend composites at 60fps via WebGL. XTTS voices cloned from random non-voice samples for emergent creepiness. + +## Stack + +- **Container:** LXC on pve197 (V100 32GB, ~6.5GB VRAM) +- **Backend:** Python 3.11+, FastAPI, uvicorn +- **Image gen:** SDXL Turbo (~5GB VRAM) +- **Voice gen:** XTTS v2 (~1.5GB VRAM) +- **Frontend:** Fullscreen WebGL shader compositor, Web Audio API +- **Reverse proxy:** Caddy at hell.sethpc.xyz + +## Key Files + +- `docs/superpowers/specs/2026-04-10-ai-hell-design.md` — full design spec (START HERE) +- `IDEA.md` — project brief +- `DECISIONS.md` — decision log +- `SESSION.md` — session memory + +## Next Step + +Run the `writing-plans` skill against the design spec to create an implementation plan, then execute. diff --git a/DECISIONS.md b/DECISIONS.md new file mode 100644 index 0000000..31e4115 --- /dev/null +++ b/DECISIONS.md @@ -0,0 +1,27 @@ +# DECISIONS.md — AI Hell Decision Log + +Project-specific decisions. For global/cross-cutting decisions, see `~/bin/DECISIONS.md`. + +Format: `YYYY-MM-DD: ` + +## Architecture + +2026-04-10: Hybrid architecture (server brain + client rendering) — server generates assets + controls escalation, frontend composites at 60fps via WebGL. Best of both: smooth visuals, server-controlled pacing, GPU gen hidden behind asset pool +2026-04-10: No avatar/3D model — pure environmental horror. Dropped Three.js 3D scene, GLB models, morph targets from claude-avatar +2026-04-10: WebGL 2D shader compositor, not Three.js 3D scene — no 3D environment needed, shader effects on AI images is cheaper and more dynamic +2026-04-10: Based on claude-avatar infra — reuse FastAPI skeleton, WebSocket, SDXL/XTTS loading, config pattern, systemd/Caddy patterns + +## Implementation + +2026-04-10: Logarithmic escalation curve (rate=0.05) with randomized delivery timing — predictable timing kills horror, stochastic expression prevents habituation +2026-04-10: Three-layer audio (ambient drone + whisper pool + direct address) — builds dread foundation, mid-layer unease, and genuine scare moments +2026-04-10: XTTS fed non-voice audio samples as cloning source — emergent creepiness from the model trying to "speak" as machinery, animals, static. The AI is creepy without being told to be +2026-04-10: Pre-generated asset pool with continuous background generation — bridges GPU latency gap (SDXL 1-2s per image), no dead air in the horror experience +2026-04-10: Liminal imagery (coherent <-> abstract) — things emerge from and dissolve back into chaos, more unsettling than purely recognizable or purely abstract + +## Deferred / Rejected + +2026-04-10: Deferred webcam integration — detect viewer's face, use it in horror. V2 feature +2026-04-10: Deferred viewer voice cloning — mic input -> XTTS clones them back at them. V2 feature +2026-04-10: Rejected interactive elements — passive viewing is scarier, you can't control it +2026-04-10: Rejected server-streamed frames — GPU-bound 1-2fps too slow, client-side compositing at 60fps is better diff --git a/GITEA_API.md b/GITEA_API.md new file mode 120000 index 0000000..de30a58 --- /dev/null +++ b/GITEA_API.md @@ -0,0 +1 @@ +../GITEA_API.md \ No newline at end of file diff --git a/IDEA.md b/IDEA.md new file mode 100644 index 0000000..c768bb5 --- /dev/null +++ b/IDEA.md @@ -0,0 +1,17 @@ +# IDEA.md — AI Hell + +## What is this? + +Passive horror webapp. You open it, it slowly destroys your comfort. AI-generated imagery shifts between abstract hellscape and recognizable-but-wrong forms. Audio: ambient dread soundscape with AI-voiced whispers cloned from random non-voice samples. Escalation is infinite — never peaks, always worse, with randomized timing. No avatar, no interaction, no UI. You just watch. + +## Problem it solves + +Proof of concept for AI-driven horror experience. Explores emergent creepiness from feeding XTTS non-voice samples, SDXL horror imagery, and WebGL shader distortion. Based on claude-avatar infrastructure. + +## Constraints / preferences + +- Runs on pve197 V100 32GB (~6.5GB VRAM: SDXL 5GB + XTTS 1.5GB) +- LXC container on pve197 (reuse CT 167 or new CT) +- Python + FastAPI, single process +- LAN accessible, reverse proxied via Caddy at hell.sethpc.xyz +- Hybrid architecture: server generates assets + controls escalation, frontend composites at 60fps via WebGL diff --git a/SESSION.default.md b/SESSION.default.md new file mode 120000 index 0000000..8053ea6 --- /dev/null +++ b/SESSION.default.md @@ -0,0 +1 @@ +../SESSION.default.md \ No newline at end of file diff --git a/SESSION.md b/SESSION.md new file mode 100644 index 0000000..8a2fef4 --- /dev/null +++ b/SESSION.md @@ -0,0 +1,32 @@ +# SESSION.md — AI Hell + +## Project Summary + +Passive horror webapp. AI-generated hellscape with infinite escalation, randomized timing, WebGL shader compositor, XTTS voices cloned from non-voice samples. Based on claude-avatar infra. + +## Context Files + +- `~/bin/CLAUDE.md` — global homelab instructions +- `./IDEA.md` — project brief +- `./DECISIONS.md` — decision log +- `./docs/superpowers/specs/2026-04-10-ai-hell-design.md` — design spec (START HERE) + +## Infrastructure + +- **Target container:** CT on pve197, V100 32GB GPU passthrough +- **Caddy:** hell.sethpc.xyz -> CT_IP:8400 +- **Repo:** git.sethpc.xyz/Seth/ai-hell + +## Session Notes + +### Design (2026-04-10) + +- Brainstormed from claude-avatar baseline +- Key decisions: no avatar (pure environmental horror), hybrid arch (server brain + client rendering), infinite asymptotic escalation with randomized timing, XTTS fed non-voice samples for emergent creepiness +- Stack: SDXL Turbo (images) + XTTS v2 (voices) + WebGL shaders (distortion) + Web Audio (3-layer mixer) +- Design spec written and approved + +## Next Steps + +- [ ] Write implementation plan (invoke writing-plans skill against design spec) +- [ ] Execute plan