commit 6daade952e952ba2ef78c796e2dfd48e95009a53 Author: type-two Date: Thu Jul 16 20:30:50 2026 +1000 THREETRIS: POV matrix tetris — catch bricks, rotate mid-flight, fit the wall Single-file Three.js game, no build step. Bullet-time catch phase, 3D rotation vs 2D silhouette matching, digital rain, worker-driven loop so the sim survives hidden-tab throttling. Co-Authored-By: Claude Fable 5 diff --git a/.claude/launch.json b/.claude/launch.json new file mode 100644 index 0000000..7886be9 --- /dev/null +++ b/.claude/launch.json @@ -0,0 +1,11 @@ +{ + "version": "0.0.1", + "configurations": [ + { + "name": "threetris", + "runtimeExecutable": "python3", + "runtimeArgs": ["-m", "http.server", "8123"], + "port": 8123 + } + ] +} diff --git a/README.md b/README.md new file mode 100644 index 0000000..4b66791 --- /dev/null +++ b/README.md @@ -0,0 +1,16 @@ +# THREETRIS + +POV Matrix tetris. Bricks fly at your face in bullet time — dodge them or catch them, +then throw them back through the hole in the oncoming wall, rotating them mid-flight +so their silhouette fits exactly. Flat tetrominoes + full 3D rotation means pitching a +piece changes its silhouette (an I-piece end-on is a 1×1 hole). + +**Play:** open `index.html` over http (`python3 -m http.server`), any modern browser. +No build, no deps — single file, Three.js from CDN. + +- **Mouse** — move your head (dodge / reach) +- **Click** — catch an incoming brick when it's close, or throw the held brick +- **W/S · A/D · Q/E** — pitch / yaw / roll 90°, works while held and mid-flight +- Catch +25, fit +100, 3 lives. Speed ramps per fit. + +Cheats/debug in console: `_g` (state), `_auto()` (rotate held brick to fit), `_m(x,y)` (move head). diff --git a/index.html b/index.html new file mode 100644 index 0000000..d2552ec --- /dev/null +++ b/index.html @@ -0,0 +1,322 @@ + + + + +THREETRIS + + + + +
+
SCORE 0
+
+
+
MOUSE move  ·  CLICK catch / throw  ·  W/S pitch   A/D yaw   Q/E roll (mid-flight too)
+
+
+

SYSTEM FAILURE

CLICK TO RE-ENTER
+ + + + +