Playspec
Hardly anyone can write a full game spec before they've played anything, so this project is an attempt to simplify the game creation process.
Core trick
Session telemetry is chained into later Argon calls, and each rendered frame with its scene graph returns critiques that patch the level.
Description
Hardly anyone can write a full game spec before they've played anything, so this project is an attempt to simplify the game creation process. You sketch a level on a 2D canvas and play three 20-second 3D prototypes built from it. Gemini 4 Argon then works out what you want from how you played.
While you play, the app records how you move and that telemetry goes to gemini-4-argon at thinking_level: "high". The call is chained to the earlier canvas and prototype calls with previous_interaction_id, so Argon sees the whole session. It returns a spec (your player type plus tuned physics) and generates the full game as a single Three.js page.
Then the loop runs. Playspec renders the game, captures a WebGL frame, and sends Argon the frame, the scene graph, and your telemetry. Argon critiques the scene against the spec it inferred. The app patches the level, rebuilds the game, and runs it again. Each pass shows the frame Argon saw, its critique, and a diff of what changed.
You can export the finished level as a Unity scene file.
README excerpt
# ArgonCraft 3D A visual game studio with an original, playable 3D arcade fighter: **Iron Circuit**. Two procedural martial artists face off on a neon rooftop with punches, kicks, launchers, blocking, depth movement, and a CPU opponent. Inspired by Tekken-style arena combat; all characters and geometry are original.  ## Play locally ```sh npm ci npm run dev ``` Open **http://localhost:3000/?game=iron-circuit**, or select **Play Iron Circuit · 3D Fighter** in the main studio. Requires a browser with WebGL. No API key is needed for this fighting-game flow. ## End-to-end flow 1. **Arena blueprint** — preview the rooftop, fighter spawn positions, and match rules. 2. **Combat probe** — play a 20-second sparring round. Actual attacks, hits, blocks, and sidestep inputs are recorded. Neither fighter can be knocked out during the probe. 3. **Fighter profile** — local rules classify your inputs as pressure, counter, or movement-oriented play, and choose the CPU’s opening attack delay. With no inputs, the profile defaults to balanced. 4. **Full match** — fight a fresh CPU opponent for one 60-second round. Zero health ends the round; otherwise, remaining health decides the winner. Equal health is a draw. 5. **Result & rematch** — review clean hits, damage, and best hit chain; rematch or return to the blueprint. This is a local procedural prototype