Image to Three.js Model
img2threejs/img2threejs
Rebuilds the object in a reference image as a procedural, animation-ready Three.js model written entirely in code, using staged sculpting with quality checks.
Roda o Gauntlet Loop do CS BRASIL / CORO SOLTO — o ciclo crítico-adversarial → builders em paralelo → captura medida → verificação A/B → caçador de regressões que melhora gráficos, mapas, armas, UI…
$ npx skills add corosolto/client --skill gauntlet-fps -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install corosolto/client gauntlet-fps --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/corosolto/client.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/gauntlet-fps .claude/skills/gauntlet-fps && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "gauntlet-fps" agent skill from https://github.com/corosolto/client/tree/main/.claude/skills/gauntlet-fps into .claude/skills/gauntlet-fps/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gauntlet-fps", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/corosolto/client/tree/main/.claude/skills/gauntlet-fpsType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add corosolto/client --skill gauntlet-fps -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install corosolto/client gauntlet-fps --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/corosolto/client.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/gauntlet-fps .agents/skills/gauntlet-fps && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "gauntlet-fps" agent skill from https://github.com/corosolto/client/tree/main/.claude/skills/gauntlet-fps into .agents/skills/gauntlet-fps/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gauntlet-fps", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add corosolto/client --skill gauntlet-fps -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install corosolto/client gauntlet-fps --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/corosolto/client.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/gauntlet-fps .cursor/skills/gauntlet-fps && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "gauntlet-fps" agent skill from https://github.com/corosolto/client/tree/main/.claude/skills/gauntlet-fps into .cursor/skills/gauntlet-fps/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gauntlet-fps", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/corosolto/client.git --path .claude/skills/gauntlet-fps--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add corosolto/client --skill gauntlet-fps -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install corosolto/client gauntlet-fps --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/corosolto/client.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/gauntlet-fps .gemini/skills/gauntlet-fps && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "gauntlet-fps" agent skill from https://github.com/corosolto/client/tree/main/.claude/skills/gauntlet-fps into .gemini/skills/gauntlet-fps/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gauntlet-fps", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install corosolto/client gauntlet-fpsInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add corosolto/client --skill gauntlet-fps -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/corosolto/client.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/gauntlet-fps .github/skills/gauntlet-fps && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "gauntlet-fps" agent skill from https://github.com/corosolto/client/tree/main/.claude/skills/gauntlet-fps into .github/skills/gauntlet-fps/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gauntlet-fps", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add corosolto/client --skill gauntlet-fps -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install corosolto/client gauntlet-fps --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/corosolto/client.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/gauntlet-fps .opencode/skills/gauntlet-fps && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "gauntlet-fps" agent skill from https://github.com/corosolto/client/tree/main/.claude/skills/gauntlet-fps into .opencode/skills/gauntlet-fps/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gauntlet-fps", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
gauntlet-fpsRoda o Gauntlet Loop do CS BRASIL / CORO SOLTO — o ciclo crítico-adversarial → builders em paralelo → captura medida → verificação A/B → caçador de regressões que melhora gráficos, mapas, armas, UI…
Gauntlet Fps is an agent skill from corosolto/client. Roda o Gauntlet Loop do CS BRASIL / CORO SOLTO — o ciclo crítico-adversarial → builders em paralelo → captura medida → verificação A/B → caçador de regressões que melhora gráficos, mapas, armas, UI e jogabilidade do jogo FPS em Three.js. Use SEMPRE que o pedido for melhorar, avaliar, revisar ou "deixar melhor" qualquer parte do jogo — gráficos, fidelidade de mapa, feel das armas, menu, HUD, bots, movimento — mesmo que o usuário não diga "gauntlet". Use também quando ele reportar que algo ficou feio, estranho…
Its SKILL.md is about 2.6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files, including reference files (for example `references/metricas.md` and `references/prompts.md`).
It sits in Game Development, covering 3D graphics and WebGL. It works with Three.js. The repository describes itself as: FPS satírico de navegador: 5 facções brasileiras caricatas, 44 personagens, 5 mapas e 26 armas — rounds e Capture the Flag contra bots, direto na aba, sem instalar nada. Three.js… The licence is AGPL-3.0.
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 6277618. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
npmnodegitFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use npm and git, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Gauntlet Fps loads about 2.6k tokens when it runs, and up to ~5.1k if it reads all its reference files. Until then it costs about 190 tokens; SKILL.md has 1,448 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from corosolto/client at commit 6277618, republished under its AGPL-3.0 licence (© corosolto). 1,448 words, ~2,585 tokens.
.claude/skills/gauntlet-fps/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.Um agente sozinho produz um resultado decente e para. Ele para porque ele mesmo é quem julga, e ele conhece toda a razão por trás de cada decisão que tomou — o que o torna excelente em explicar por que o próprio trabalho é aceitável.
O Gauntlet resolve isso com três regras que valem mais que qualquer instrução de estilo:
O que faz a diferença aqui não é o número de agentes — é que cada afirmação carregue um número e um arquivo:linha. Uma crítica que diz "melhore a iluminação" é ruído. Uma que diz "22,7% dos pixels de game-praca_poderes-169-a.png estão em L* < 3 e a causa é bloom.js:18 power=1.25" é trabalho.
Leia, nesta ordem:
STATUS.md (em ../progress) — o estado atual, em ≤100 linhas. (Substituiu o topo do HANDOFF-KIMI.md, que virou HANDOFF-KIMI.md (fora da árvore pública) e agora é só histórico — leia de lá quando precisar da causa raiz de uma decisão antiga.)tools/eval/BAR-CONSISTENCIA.md — a régua vigente, com precedência sobre a BAR.md: 25 critérios de consistência e flow. Melhoria visual que quebra o jogo é regressão.
2b. tools/eval/BAR.md — a régua de fidelidade. Look técnico do CS2/Valorant, o que é alcançável em Three.js r160, como os lugares brasileiros retratados realmente são, e o checklist de 25 critérios A1–D4 mensuráveis num frame.tools/eval/ARCH.md — índice do game.js por linha, os levers de cada frente, e a tabela de conflito (quem pode editar qual arquivo/range). É gerado: rode npm run arch antes de ler, ou você lê o índice de ontem.KNOWN-BUGS.md (em ../progress) — os defeitos abertos, com arquivo:linha, causa raiz e passo de reprodução. É onde mora o placar real do quality gate, colado de execução de verdade.docs/docs/stack.md — com o que o jogo é feito (Three.js/WebGL sem build, Astro/Vercel, Supabase) e como o asset é gerado (mint.gg, Tripo3D, Meshy, OpenRouter). Os números dessa página são gerados por npm run docs.git status — o dono revisa antes de commitar. Não commite sem autorização explícita.Verifique antes de planejar, porque isso muda tudo:
nproc # quantos builders dá pra rodar em paralelo
ls /opt/pw-browsers # chromium do playwright (headless, software rendering)
npm root -g # onde mora o playwrightSe o repositório estiver na máquina do usuário via bridge e o browser só existir no container, espelhe a árvore para o container e trabalhe lá. Rendering por software (SwiftShader) roda o jogo a ~0,3 FPS — uma captura in-game leva de 4 a 6 minutos por mapa/aspecto. Planeje em torno disso; não trate lentidão como bug.
Servidor de teste (sem depender do astro dev):
node tools/eval/serve.mjs 8123CHROME_BIN=/opt/pw-browsers/chromium-*/chrome-linux/chrome \
node tools/eval/gl-shots.mjs /root/shots/base allCaptura todos os mapas registrados × 2 aspectos (16:9 e 3:2 — o dono joga em 3:2) × 4 ângulos, mais as telas de menu. Sem baseline não existe A/B, e sem A/B o loop vira opinião.
Rode em paralelo, cada um com contexto limpo: gráficos, mapas/fidelidade, armas (visual e feel, notas separadas), UI (menu e HUD, notas separadas), jogabilidade.
O que faz um crítico ser útil:
arquivo:linha, e a correção com números.Deixe os críticos escreverem scripts Python (PIL está instalado) para medir L*, saturação, contraste e % de blocos chapados. Medir é barato e transforma a crítica em algo que a próxima rodada pode conferir.
Use a tabela de conflito do ARCH.md — que é GERADA (npm run arch), justamente porque um índice por linha escrito à mão desatualiza no primeiro commit. Este parágrafo é a prova viva: ele afirmava "o game.js tem 3.234 linhas" e continuou afirmando isso enquanto o arquivo dobrava de tamanho, porque nenhuma régua olhava para ele. Por isso nenhum número de tamanho de arquivo é escrito aqui — rode npm run arch antes de particionar e leia o número de lá. O mesmo vale para a documentação: npm run docs gera, npm run docs:check reprova (está no check:fast).
O game.js é grande e todas as frentes precisam dele — por isso a regra:
Em
game.js, use somente a ferramenta Edit. Nunca Write. Outros agentes estão editando outras regiões do mesmo arquivo ao mesmo tempo.
Partição que funciona: gráficos-core (bloom.js, textures.js, renderer) · um agente por map_*.js · armas (weapons.js, vmattach.js, springs.js, fparms.js + ranges de arma no game.js) · UI (style.css, index.astro, HUD) · jogabilidade (bots, movimento, rounds).
Regras que cada builder precisa receber:
?ao=0, ?fxaa=0, ?water=0…) e degradação segura em quality === 'low'.node --check em cada arquivo editado antes de retornar.Um único agente roda browser. Duas sessões headless pesadas em paralelo derrubam o boot e produzem "countdown travado" que parece bug e é carga. Chrome zumbi de runs falhas come 200% de CPU — mate por pkill -f chrome antes de capturar.
Esse agente também mede e reporta, por mapa: tempo até live, renderer.info (calls, triangles, textures, programs, geometries) e usedJSHeapSize após 30s. O projeto já teve crash de OOM — heap acima de ~350MB é alarme, e contagem de texturas subindo rápido é o precursor.
Dois críticos novos, contexto limpo:
base × r1 × r2 frame a frame, roda o checklist A1–D4 de novo, e diz quais critérios saíram de FAIL para PASS.Truque que funciona muito bem: para isolar o viewmodel da arma sem máscara manual, pegue os pixels invariantes entre os 4 ângulos do mesmo mapa/aspecto — o cenário muda, a arma não. Dá para medir borda esquerda, borda direita e área de tela do viewmodel com precisão de subpixel.
Diga ao caçador, explicitamente: se não houver regressão, diga isso — não invente.
Leia os vereditos, monte a rodada seguinte com as regressões em primeiro lugar (regressão não pode dormir), e rode de novo. Pare quando você quiser parar.
Detector de loop: se duas rodadas seguidas não moveram nenhum critério de FAIL para PASS, o loop está girando — mude de frente, troque o crítico (contexto limpo de verdade, não o mesmo com outro nome), ou pare e reporte o platô medido. Rodada que não move número é custo, não progresso.
Gere uma página HTML com os pares antes/depois embutidos como data URL (redimensione para ~760px, JPEG q62 — 34 pares cabem em ~2MB) e entregue ao usuário a cada rodada. Ele acompanha do celular sem interromper o loop.
| Armadilha | O que acontece |
|---|---|
| Validar framing de arma só em 16:9 | O dono joga em 3:2. Já custou uma rodada inteira. |
| Girar a arma para "expor identidade" | Causa raiz do "mira num lugar, a arma aponta pro outro". Direção validada pelo dono: funcional > identidade por ângulo. Yaw ≤ 0,09. |
| Orientação de arma no olho | Sempre medição objetiva (weapontest.html, weapon-capture.mjs). O cano pode correr em qualquer eixo do model space; o medidor por slab em Z pega os dedos. |
| Preload de todas as viewmodels | Foi o crash "Aw Snap" (OOM). Hoje é lazy-load. Não desfaça. |
| Calibrar exposição pelo frame mais escuro | Uma rodada calibrou assim e inverteu a ordem entre mapas: o Piscinão, mapa de praia, virou o mais escuro. Calibre pela média dos 8 frames. |
Mexer em .js sem bumpar o ?v= | O import map do index.astro serve módulo velho do cache. Já custou dias de "correção que não chegava". |
// em CSS | Não é comentário. O parser engole o bloco seguinte. Já matou um @keyframes inteiro. |
| Duas capturas headless em paralelo | Derruba o boot e falsifica a medição. |
references/prompts.md — esqueletos dos prompts de crítico, builder, captura e caçador de regressões, prontos para adaptar.references/metricas.md — como medir L*, saturação, contraste WCAG, blocos chapados e a máscara do viewmodel.tools/eval/BAR.md e tools/eval/ARCH.md no repo — a régua e o mapa de conflito.© corosolto, AGPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 2 other files (references) in .claude/skills/gauntlet-fps of corosolto/client.
Open the folder on GitHubat commit 6277618
Gauntlet Fps next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Gauntlet Fps this skillcorosolto/client | 257 | — | ~2.6k | Automated safety check: Pass | AGPL-3.0 | |
| Image to Three.js Modelimg2threejs/img2threejs | 18k | 1 repos | ~8.2k | Automated safety check: Pass | Apache-2.0 | |
| Web CloneJane-xiaoer/claude-skill-web-clone | 1k | 1 repos | ~2.7k | Automated safety check: Pass | MIT | |
| Threejs Game Directormajidmanzarpour/threejs-game-skills | 2.5k | — | ~2.2k | Automated safety check: Pass | MIT | |
| Threejs Gameplay Systemsvalkor-ai/loom | 1.2k | 1 repos | ~1.4k | Automated safety check: Pass | Apache-2.0 | |
| Threejs World Generationcalesthio/OpenMontage | 66k | — | ~2k | Automated safety check: Pass | AGPL-3.0 |
img2threejs/img2threejs
Rebuilds the object in a reference image as a procedural, animation-ready Three.js model written entirely in code, using staged sculpting with quality checks.
Jane-xiaoer/claude-skill-web-clone
网站复刻 / 克隆方法论。USE WHEN 用户说 复刻网站、克隆网站、clone website、抄个站、仿站、 照着这个站做一个、reproduce site、还原某个网页效果、把这个站搬下来改成我的、 复刻某个交互/WebGL/Canvas/Three.js 效果。提供「先拿真源码 → 判路径 → 逆向拆解 → 搭工程 → 替换内容」的可移植决策树,覆盖静态站 /…
majidmanzarpour/threejs-game-skills
Entrypoint for building, upgrading, and finishing Three.js browser games.
valkor-ai/loom
Build and iterate playable Three.js game systems: starter scaffold, architecture, design briefs, core loops, level and encounter design, entities, input, camera, collision and physics, scoring…
calesthio/OpenMontage
Build deterministic, editable, free-viewpoint Three.js worlds from text or structured briefs.
viettranx/3dviz-pro-max
Guides building an expressive 3D scene in Three.js or Blender by reasoning through intent, object construction and scientific grounding before using a catalog of recipes and kits.
corosolto/client
Build and iterate playable Three.js game systems. An agent skill from corosolto/client.
corosolto/client
Load glTF/GLB models in three.js with GLTFLoader and play their skinned animations with AnimationMixer, including DRACO/Meshopt-compressed meshes and KTX2 textures.
corosolto/client
Generate, texture, rig, animate, stylize, convert, and download 3D assets for Three.js games using the Tripo API.
corosolto/client
Light and shade a three.js scene: choose materials (MeshStandardMaterial PBR vs unlit MeshBasicMaterial), add ambient/hemisphere/directional/point/spot lights, turn on shadow maps, and use an…
corosolto/client
Stand up a three.js scene: import maps and the three/addons path, the Scene/PerspectiveCamera/WebGLRenderer trio, the setAnimationLoop render loop, responsive resize, and OrbitControls.
corosolto/client
Primary entrypoint for complete Three.js browser game creation and premium iteration.
Works with
Categories
Roda o Gauntlet Loop do CS BRASIL / CORO SOLTO — o ciclo crítico-adversarial → builders em paralelo → captura medida → verificação A/B → caçador de regressões que melhora gráficos, mapas, armas, UI…. Gauntlet Fps is an agent skill from corosolto/client.js.
Gauntlet Fps fits situations like: tasks that involve 3D graphics and WebGL.
Run `npx skills add corosolto/client --skill gauntlet-fps -a claude-code`. Or copy the skill folder (.claude/skills/gauntlet-fps in corosolto/client) into .claude/skills/gauntlet-fps in your project. Claude Code loads it when a task matches its description.
Run `npx skills add corosolto/client --skill gauntlet-fps -a codex`. Or copy the skill folder (.claude/skills/gauntlet-fps in corosolto/client) into .agents/skills/gauntlet-fps in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add corosolto/client --skill gauntlet-fps -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/gauntlet-fps, .gemini/skills/gauntlet-fps, .github/skills/gauntlet-fps and .opencode/skills/gauntlet-fps in your project.
Going by SKILL.md and its folder, Gauntlet Fps needs the command-line tools its instructions call (npm, node and git). Our summary lists: Python 3.
SKILL.md contains no URLs. Its commands use npm and git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Gauntlet Fps is published under the AGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.6k tokens (SKILL.md is roughly 10k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 2.5k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Gauntlet Fps: Image to Three.js Model (img2threejs/img2threejs, 18k stars), Web Clone (Jane-xiaoer/claude-skill-web-clone, 1k stars), Threejs Game Director (majidmanzarpour/threejs-game-skills, 2.5k stars) and Threejs Gameplay Systems (valkor-ai/loom, 1.2k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
corosolto (a GitHub organization) maintains it in corosolto/client, which has 257 GitHub stars. The repository holds 21 skills in this directory. The repository was last updated on October 9, 2026.
Source: corosolto/client on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.