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.
Re-capture or resize VRCQuestTools documentation screenshots (Website/static/img/.png), produced by the Tools/VRCQuestTools/Debug/Screenshots menu, after a Unity Inspector/EditorWindow field…
$ npx skills add kurotu/VRCQuestTools --skill docs-screenshots -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install kurotu/VRCQuestTools docs-screenshots --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/kurotu/VRCQuestTools.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/docs-screenshots .claude/skills/docs-screenshots && 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 "docs-screenshots" agent skill from https://github.com/kurotu/VRCQuestTools/tree/master/.claude/skills/docs-screenshots into .claude/skills/docs-screenshots/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "docs-screenshots", 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/kurotu/VRCQuestTools/tree/master/.claude/skills/docs-screenshotsType 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 kurotu/VRCQuestTools --skill docs-screenshots -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install kurotu/VRCQuestTools docs-screenshots --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/kurotu/VRCQuestTools.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/docs-screenshots .agents/skills/docs-screenshots && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "docs-screenshots" agent skill from https://github.com/kurotu/VRCQuestTools/tree/master/.claude/skills/docs-screenshots into .agents/skills/docs-screenshots/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "docs-screenshots", 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 kurotu/VRCQuestTools --skill docs-screenshots -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install kurotu/VRCQuestTools docs-screenshots --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/kurotu/VRCQuestTools.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/docs-screenshots .cursor/skills/docs-screenshots && 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 "docs-screenshots" agent skill from https://github.com/kurotu/VRCQuestTools/tree/master/.claude/skills/docs-screenshots into .cursor/skills/docs-screenshots/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "docs-screenshots", 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/kurotu/VRCQuestTools.git --path .claude/skills/docs-screenshots--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 kurotu/VRCQuestTools --skill docs-screenshots -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install kurotu/VRCQuestTools docs-screenshots --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/kurotu/VRCQuestTools.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/docs-screenshots .gemini/skills/docs-screenshots && 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 "docs-screenshots" agent skill from https://github.com/kurotu/VRCQuestTools/tree/master/.claude/skills/docs-screenshots into .gemini/skills/docs-screenshots/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "docs-screenshots", 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 kurotu/VRCQuestTools docs-screenshotsInstalls 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 kurotu/VRCQuestTools --skill docs-screenshots -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/kurotu/VRCQuestTools.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/docs-screenshots .github/skills/docs-screenshots && 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 "docs-screenshots" agent skill from https://github.com/kurotu/VRCQuestTools/tree/master/.claude/skills/docs-screenshots into .github/skills/docs-screenshots/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "docs-screenshots", 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 kurotu/VRCQuestTools --skill docs-screenshots -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install kurotu/VRCQuestTools docs-screenshots --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/kurotu/VRCQuestTools.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/docs-screenshots .opencode/skills/docs-screenshots && 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 "docs-screenshots" agent skill from https://github.com/kurotu/VRCQuestTools/tree/master/.claude/skills/docs-screenshots into .opencode/skills/docs-screenshots/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "docs-screenshots", 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.
docs-screenshotsRe-capture or resize VRCQuestTools documentation screenshots (Website/static/img/.png), produced by the Tools/VRCQuestTools/Debug/Screenshots menu, after a Unity Inspector/EditorWindow field…
Docs Screenshots is an agent skill from kurotu/VRCQuestTools. Re-capture or resize VRCQuestTools documentation screenshots (Website/static/img/.png), produced by the Tools/VRCQuestTools/Debug/Screenshots menu, after a Unity Inspector/EditorWindow field, default value, or layout changes, or when adding a brand-new capture target. Use whenever a component gains/loses/renames a field, a default value changes, an Inspector grows or shrinks, an existing screenshot now shows clipped content, a scrollbar, or excess blank space, or a new component/window needs a doc screenshot.
Its SKILL.md is about 2.9k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Game Development. The repository describes itself as: Unity editor extension to support uploading VRChat avatars for Oculus Quest. The licence is MIT.
10 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit c68d147. 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:
gitpnpmFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git and pnpm, 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.
Docs Screenshots loads about 2.9k tokens when it runs. Until then it costs about 133 tokens; SKILL.md has 1,354 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 kurotu/VRCQuestTools at commit c68d147, republished under its MIT licence (© kurotu). 1,354 words, ~2,892 tokens.
.claude/skills/docs-screenshots/SKILL.md (or your agent's skills folder).Maintains the screenshots embedded in Website/docs/ (en) and
Website/i18n/ja/docusaurus-plugin-content-docs/current/ (ja), captured by the
debug tool at Assets/VRCQuestTools-DebugUtil/Editor/Screenshots/ and exposed
under the Unity menu Tools/VRCQuestTools/Debug/Screenshots/....
DisplayLanguage.English for the
duration, regardless of the developer's own language setting, and restores
it afterward.WindowPixelCapture.cs, via uLoopMCP's
InternalEditorUtilityBridge), not real OS screen pixels, so capture is
unaffected by Remote Desktop session state or windows overlapping on
screen.| File | Role |
|---|---|
ScreenshotMenu.cs | One [MenuItem] per target, each delegating to a private Capture...(Action onDone) method that holds the target's file name, size, and populate/configure lambda in one place. Capture All enqueues those same methods directly (never duplicates their parameters), so there is exactly one place to edit per target. |
ScreenshotSettings.cs | Fixed Vector2 size per capture target, plus the shared CaptureOrigin and output directory. |
SampleContentFactory.cs | Procedural, in-memory-only sample data helpers (CreateSampleMaterial, CreateSampleTexture, CreateSampleSkinnedMeshRenderer, CreateAdditionalMaterialConvertSettings). Reuse these before writing a new one. |
AvatarFixtures.cs | Instantiates the SimpleCubeAvatar test fixture prefab as a temporary avatar (InstantiateSimpleCubeAvatar), plus a variant with sample PhysBone/PhysBoneCollider/ContactReceiver children (InstantiateSimpleCubeAvatarWithDynamics). |
ComponentScreenshotCapture.cs / WindowScreenshotCapture.cs | The actual capture plumbing (open, wait a couple of frames, grab pixels, save PNG, clean up). Rarely need touching. |
CaptureEnvironmentScope.cs / AvatarConverterSettingsFoldoutScope.cs | IDisposable save-force-restore scopes: the former forces English + suppresses the update banner globally, the latter forces one Inspector's persisted foldout state open. Follow this pattern if a new target has similar persisted UI state to manage. |
Identify the affected target(s). Find the target's file name, its
populate/configure lambda in ScreenshotMenu.cs, and its size constant
in ScreenshotSettings.cs.
Update sample data if a field needs it. Add or adjust the
populate/configure lambda so the new/changed field shows plausible,
non-empty data. Two hard rules:
ComponentScreenshotCapture.Capture's populate callback already only
fires on that path; keep it that way).SampleContentFactory helper. If you need a new kind
of sample object, follow the existing convention: build it
procedurally (no new binary assets in the repo), mark temporary
GameObjects HideFlags.HideInHierarchy | HideFlags.DontSave, and have
the caller destroy everything it created in the capture's onDone
callback.Handle collapsed/foldout fields. If the field lives behind a collapsed foldout, it won't show up in the screenshot just because you populated it — check which of these three patterns the target's Editor class uses, and handle it before capture:
SerializedProperty.isExpanded (default array/list drawn via
EditorGUILayout.PropertyField): force it open with
new SerializedObject(component).FindProperty("fieldName").isExpanded = true;
then ApplyModifiedProperties() (see CaptureMaterialSwap in
ScreenshotMenu.cs for a working example).ScriptableSingleton): check its default value first — if it already
defaults to true, nothing to do.ScriptableSingleton-backed persisted state (survives across the
whole Editor session — this is more common than it looks: e.g. both
AvatarConverterSettingsEditorState and MaterialConversionSettingsEditor's
private nested EditorState are ScriptableSingletons, even though the
latter's foldOutAdditionalMaterialSettings happens to default true).
This is the developer's own real, currently-open-or-closed Inspector
state — never just flip it and leave it. Add a dedicated
save/force/restore IDisposable scope modeled on
AvatarConverterSettingsFoldoutScope.cs, and dispose it in the
capture's onDone so the developer's own UI state is restored
afterward. (If the field you need already defaults true and you're
not forcing anything else on that Editor, you can skip adding a scope —
but if the developer ever collapses it during their own work, the next
capture will silently show it collapsed until someone notices.)Compile. Use the uloop-compile skill (force recompile). Expect 0
errors. A couple of pre-existing warnings unrelated to this code are
normal — don't chase those, but do make sure no new warnings appear.
Capture just the changed target(s) first. Find the exact menu path in
the [MenuItem(Root + "...")] attribute for that target in
ScreenshotMenu.cs — component targets live under a Components/
submenu (e.g. "Components/Material Swap"), windows are directly under
the root; note the menu label doesn't always match the output PNG file
name (e.g. "Setup Avatar for Mobile Window" writes convert-avatar.png
— check the method body for the actual file name). Trigger it via
uloop-execute-dynamic-code:
using UnityEditor;
EditorApplication.ExecuteMenuItem("Tools/VRCQuestTools/Debug/Screenshots/<menu path from ScreenshotMenu.cs>");Then use uloop-get-logs to confirm a "Saved screenshot: ..." log with
no warnings or errors.
Visually inspect the resulting PNG(s). Check for: clipped
content/scrollbars (increase the size in ScreenshotSettings.cs),
noticeably excess blank space (decrease it), sample data still showing
None/empty/0-count (revisit the populate lambda), and any leaked
internal temp-object name (rename the temp GameObject in the populate
lambda before it's used in an ObjectField — see how
MenuCapturePlatformComponentRemover's lambda renames its temp
GameObject to "Hair" before the field is shown).
Delegate this inspection step to a low-cost subagent (e.g. the
Agent tool with model: "haiku") rather than reading every PNG
directly in the main conversation — visually checking a batch of
screenshots consumes a large number of image tokens and doesn't need a
top-tier model. Have the subagent report back a pass/fail plus a short
description of any problem per image; only pull an image into the main
context yourself if you need to make a judgment call the subagent
flagged as ambiguous.
Iterate steps 2–6 until every affected screenshot looks right.
Run a full regression pass. Trigger Tools/VRCQuestTools/Debug/Screenshots/Capture All
once everything looks right individually. Unaffected screenshots are
byte-for-byte deterministic across runs — if git status/git diff
shows a PNG changing that you didn't intend to touch, something else
regressed; investigate before proceeding.
Verify the docs site still builds: cd Website && pnpm run build
(both en and ja locales must succeed with no broken links).
Stage only the intended files and commit. Exclude Packages/*.json,
ProjectSettings/*, and any unrelated scratch files/directories that
may be sitting in the working tree — these are Unity/VPM-managed and
should only be committed when a change explicitly intends to touch
them.
PlatformComponentRemoverEditor auto-rebuilds its list every draw.
Its OnInspectorGUIInternal calls TargetComponent.UpdateComponentSettings()
unconditionally on every repaint, which resyncs componentSettings: it
drops any entry whose component reference is no longer present on the
GameObject, and appends a fresh removeOnPC = false, removeOnAndroid = false entry for any sibling component not yet tracked — but an entry
whose component is still present is kept as-is, flags and all, so
edits to an already-tracked entry are not lost across redraws. The
practical implication for this tool: pre-seed componentSettings with
your desired flags before the first draw, right after adding the
sibling component (see MenuCapturePlatformComponentRemover). If you
only add the sibling and let the first draw run before setting flags,
UpdateComponentSettings() will already have created a fresh
default-false entry for it, which is just extra work to find and edit
afterward.Vector2 size constant in ScreenshotSettings.cs.[MenuItem] + a private Capture... method in ScreenshotMenu.cs,
following the pattern of an existing target of the same kind (component
vs. window).Capture All queue in ScreenshotMenu.cs.Website/docs/...) and Japanese
(Website/i18n/ja/docusaurus-plugin-content-docs/current/...) pages
before embedding the image.© kurotu, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .claude/skills/docs-screenshots of kurotu/VRCQuestTools.
Open the folder on GitHubat commit c68d147
Docs Screenshots 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 |
|---|---|---|---|---|---|---|
| Docs Screenshots this skillkurotu/VRCQuestTools | 373 | — | ~2.9k | Automated safety check: Pass | MIT | |
| 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 | 2 repos | ~2.7k | Automated safety check: Pass | MIT | |
| Threejs Game Directormajidmanzarpour/threejs-game-skills | 2.4k | — | ~2.2k | Automated safety check: Pass | MIT | |
| Game Asset Generatorhtdt/godogen | 7.1k | — | ~2.8k | Automated safety check: Pass | MIT | |
| Threejs Gameplay Systemsvalkor-ai/loom | 1.2k | 1 repos | ~1.4k | Automated safety check: Pass | Apache-2.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.
htdt/godogen
Generates game art from text prompts: PNG images, GLB 3D models, rigged characters, animations and sprites, with background removal.
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…
CyberAgentGameEntertainment/NovaShader
Execute C with Unity APIs when existing uloop tools cannot inspect or edit enough.
kurotu/VRCQuestTools
Replay recorded PlayMode keyboard and mouse input. An agent skill from kurotu/VRCQuestTools.
kurotu/VRCQuestTools
Capture Unity Editor windows or Game View rendering as PNG. An agent skill from kurotu/VRCQuestTools.
kurotu/VRCQuestTools
Execute C with Unity APIs when existing uloop tools cannot inspect or edit enough.
kurotu/VRCQuestTools
Find or inspect Unity GameObjects, especially objects the user currently selected in the Hierarchy.
kurotu/VRCQuestTools
Record PlayMode keyboard and mouse input to JSON. An agent skill from kurotu/VRCQuestTools.
kurotu/VRCQuestTools
Get the Unity scene hierarchy as a structured tree. An agent skill from kurotu/VRCQuestTools.
Categories
Re-capture or resize VRCQuestTools documentation screenshots (Website/static/img/.png), produced by the Tools/VRCQuestTools/Debug/Screenshots menu, after a Unity Inspector/EditorWindow field…. Docs Screenshots is an agent skill from kurotu/VRCQuestTools.png), produced by the Tools/VRCQuestTools/Debug/Screenshots menu, after a Unity Inspector/EditorWindow field, default value, or layout changes, or when adding a brand-new capture target.
Docs Screenshots fits situations like: A component gains/loses/renames a field; A default value changes; an Inspector grows; an existing screenshot now shows clipped content.
Run `npx skills add kurotu/VRCQuestTools --skill docs-screenshots -a claude-code`. Or copy the skill folder (.claude/skills/docs-screenshots in kurotu/VRCQuestTools) into .claude/skills/docs-screenshots in your project. Claude Code loads it when a task matches its description.
Run `npx skills add kurotu/VRCQuestTools --skill docs-screenshots -a codex`. Or copy the skill folder (.claude/skills/docs-screenshots in kurotu/VRCQuestTools) into .agents/skills/docs-screenshots 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 kurotu/VRCQuestTools --skill docs-screenshots -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/docs-screenshots, .gemini/skills/docs-screenshots, .github/skills/docs-screenshots and .opencode/skills/docs-screenshots in your project.
Going by SKILL.md and its folder, Docs Screenshots needs the command-line tools its instructions call (git and pnpm).
SKILL.md contains no URLs. Its commands use 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.
Docs Screenshots is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.9k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Docs Screenshots: 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.4k stars) and Game Asset Generator (htdt/godogen, 7.1k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
kurotu (a GitHub user) maintains it in kurotu/VRCQuestTools, which has 373 GitHub stars. The repository holds 25 skills in this directory. The repository was last updated on September 30, 2026.
Source: kurotu/VRCQuestTools on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.