Three.js Game Skills
majidmanzarpour/threejs-game-skills · MIT · 66 entries
Nine agent skills for building three.js browser games. With them come a Vite starter, a shader and material cookbook, game-feel code, a headless canvas inspector, and helper scripts for three paid asset services.
- Get it
npx skills add majidmanzarpour/threejs-game-skills --skill '*' -a claude-code -g -yFor Codex, use -a codex.
- Needs
Nothing to read the skills. To run what they build: Node and npm, Python 3 for the helper scripts, and Chromium through Playwright for the inspector and tests. Optional and paid: Tripo, Gemini and ElevenLabs keys for the three generator skills.
- Sends off your machine
Nothing by itself. Three helper scripts call paid services when an agent runs them with a key: prompts and local images go to Tripo and to Google's Gemini, and prompts, text and audio files go to ElevenLabs. The director skill tells the agent to use those services by default for "premium" requests when the keys are set.
- We watched it run
Every recipe in the shader and material cookbook compiled and drew on the first run: nine materials on nine balls, a rim glow, swaying grass, a dissolve, a sky dome, bloom.

Driven by one number instead of the clock, the cookbook scene gave the same picture every time. So its shaders can be rendered frame by frame. 120 frames took 99 seconds with software rendering.
The starter built in 0.2 seconds and drew a small arena game that answered the keys. As shipped it is not frame-exact: its loop reads the browser's clock.

- Not tried here
The three generator scripts and everything that needs a paid key, the canvas inspector, the tests and the game-feel code were read, not run. Nothing was tried inside Remotion.
- License
MIT
Nothing third-party is bundled. What the three paid services return falls under those services' terms.
Everything in it
Showing 12 of 66Show everything
Tools
- bot-playtest.template.tsA Playwright bot that holds keys on a script and measures whether the game really plays: frames advanced, distance moved, score gained, and…
- check_evidence.pyChecks that the screenshots and reports a finished game claims really exist on disk, belong to the current run, are not blank and recorded…
- create_threejs_game.pyCopies the starter into a folder you name and rewrites the project name in package.json and the lockfile. It only copies files; it installs…
- generate_image.pyA small script that sends a prompt, and optionally an image to edit, to Google's Gemini image API and saves a PNG at 1K, 2K or 4K.
- inspect-threejs-canvas.mjsOpens a running page in headless Chromium, checks the canvas is not blank, and measures the picture: color entropy, share of the dominant…
- install.shCopies the nine skill folders into an agent's skills folder in your home directory (Claude Code, Codex, or a shared agents folder) and…
- probe_asset_credentials.shPrints whether three API keys are set (TRIPO_API_KEY, GEMINI_API_KEY, ELEVENLABS_API_KEY) as SET or MISSING, never the values. To see keys…
- Test hooks and diagnostics contractTwo objects a page puts on window so a script can take a repeatable picture of it: diagnostics (frame count, renderer draw calls and…
- threejs_3d_asset.pyA 73 KB command-line client for the Tripo API using only Python's standard library: text, image, status, download, postprocess…
- threejs_audio_asset.pyA command-line client for the ElevenLabs API using only Python's standard library: sfx (with --loop), music (a prompt or a composition plan…
- visual-regression.template.tsA Playwright screenshot-baseline template that seeds, sets a named state, freezes, hides debug UI and then compares against a stored…
- visual.spec.tsA Playwright smoke test (one test, run on a desktop and a phone profile): the canvas is big enough and its pixels vary, so a blank or…