#203 by GitHub stars
htdt/godogen
Generate game assets, locally and free by default with godogen_assets: images and transparent PNGs (Qwen-Image), textured GLB models (TRELLIS.2), rigged humanoids with generated moves and lip-synced speech, sound effects and voice lines. Paid APIs cover what the local tools can't make — Gemini / xAI
History
Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.
View weekly changes
asset-gen/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
40542b6c8efb → 40542b6c8efb
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 40542b6c8efb
No earlier version was observed for comparison.
Verified commit 40542b6c8efbdc40112c2b004fbaa6d67141846d
git clone --filter=blob:none --no-checkout https://github.com/htdt/godogen.git .hotskills/htdt-godogen && git -C .hotskills/htdt-godogen checkout --detach 40542b6c8efbdc40112c2b004fbaa6d67141846d
# Copy each selected skill directory from .hotskills/htdt-godogen into .claude/skills/<skill-name>/git clone --filter=blob:none --no-checkout https://github.com/htdt/godogen.git .hotskills/htdt-godogen && git -C .hotskills/htdt-godogen checkout --detach 40542b6c8efbdc40112c2b004fbaa6d67141846d
# Copy each selected skill directory from .hotskills/htdt-godogen into .agents/skills/<skill-name>/Heat
4.6- Star growth, last 7 daysAhead of 74% of tracked repositories
- Star growth, last 24 hoursAhead of 2% of tracked repositories
- Rank movement, last 7 daysAhead of 58% of tracked repositories
- Commits, last 30 daysAhead of 54% of tracked repositories
- Accounts asking about it through MCP, last 7 daysNot available
- Hot votes this weekAhead of 0% of tracked repositories
Heat never changes the order by stars, and sponsorship never touches it. How heat works
Stars over time
Individual skills in this repository
- asset-gen
asset-gen
How it works
asset-gen
When your agent uses it
Generate game assets, locally and free by default with godogen_assets: images and transparent PNGs (Qwen-Image), textured GLB models (TRELLIS.2), rigged humanoids with generated moves and lip-synced speech, sound effects and voice lines. Paid APIs cover what the local tools can't make — Gemini / xAI Grok images, animated sprites from video, Tripo 3D, Gemini TTS voice acting, Lyria music. Use whenever a game needs generated art or audio.
What it loads into context
Frontmatter
179 tokensAlways available to the agent
SKILL.md
1,621 tokensWhen the skill is activated
Reference documents
8,297 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Blender
- Paid APIs
- Asset manifest (in README.md)
Scripts executed separately
tools/asset_gen.pytools/find_loop_frame.pytools/grid_slice.pytools/loop_audio.pytools/rembg_matting.py
Files
SKILL.mdcore5,961 bytesSKILL.mdcore5,961 bytesapi.mddoc13,670 bytesmotion.mddoc16,239 bytesrembg.mddoc2,705 bytestools/asset_gen.pyruns23,252 bytestools/find_loop_frame.pyruns4,442 bytestools/grid_slice.pyruns1,941 bytestools/loop_audio.pyruns4,079 bytestools/rembg_matting.pyruns12,107 bytestools/requirements.txtdoc99 bytes
Read SKILL.md
# Asset Generator
Assets come from [godogen_assets](https://github.com/htdt/godogen_assets): local generators on this machine's GPU, one command per task, free. Its checkout here is `${GODOGEN_ASSETS}`, and its docs are the reference; this page is the TL;DR plus what the game needs on top. Read `${GODOGEN_ASSETS}/README.md` once (conventions, a character start to finish, checking results), and a part's README up to `How it works` before first using its tool.
| Command | Makes | README in the checkout |
|---------|-------|------------------------|
| `qwen-image` | PNG from text; `rgba`: real transparency; `edit -i ref.png`: image-to-image | `image/` |
| `gen3d` | textured GLB from an image | `mesh/` |
| `mia-rig` | Mixamo-rigged humanoid from a GLB | `rig/` |
| `add-moves`, `gen-moves` | idle/walk/run/jump onto a rig; custom moves from text prompts | `motion/` |
| `grip-prop` | a prop made holdable; `add-moves --hold` puts it in a character's hand | `motion/` |
| `lipsync` | speaking mouth + lip-synced clip from a voice line | `lipsync/` |
| `stable-audio` | sound effects, seamless ambience loops | `sfx/` |
| `qwen-tts` | voice lines from a description, or cloned from a reference line | `voice/` |View the complete source on GitHubSkills included
- asset-gen
Repository facts
- License
- MIT
- Created
- Feb 6, 2026
- Last pushed
- Oct 16, 2026
- Forks
- 683
- Open issues
- 0
- Project activity
- Active
Rank over the last 12 weeks
Now #203 · best #170 · down 12 in 30 days
- #196 on Oct 25
- #197 on Oct 28
- #198 on Oct 29
- #199 on Oct 30
- #200 from Oct 31 to Nov 2
- #203 since Nov 3
69 earlier periods
- #189 on Aug 2
- #188 on Aug 7
- #187 from Aug 8 to Aug 9
- #193 from Aug 10 to Aug 11
- #190 on Aug 12
- #193 from Aug 13 to Aug 14
- #192 on Aug 15
- #193 on Aug 16
- #194 on Aug 17
- #196 on Aug 18
- #198 on Aug 19
- #196 on Aug 20
- #198 on Aug 21
- #195 on Aug 22
- #201 on Aug 23
- #198 on Aug 24
- #179 on Aug 25
- #177 on Aug 26
- #175 on Aug 27
- #174 on Aug 28
- #175 on Aug 29
- #173 on Aug 30
- #170 on Aug 31
- #175 on Sep 1
- #172 on Sep 2
- #177 on Sep 3
- #174 on Sep 4
- #176 on Sep 5
- #173 on Sep 6
- #175 from Sep 7 to Sep 8
- #176 from Sep 9 to Sep 10
- #175 on Sep 11
- #177 on Sep 12
- #176 on Sep 13
- #174 on Sep 14
- #175 on Sep 15
- #174 on Sep 16
- #176 on Sep 17
- #180 on Sep 18
- #179 on Sep 19
- #183 on Sep 20
- #182 on Sep 21
- #183 on Sep 22
- #184 from Sep 23 to Sep 26
- #186 on Sep 27
- #188 from Sep 28 to Sep 29
- #185 on Sep 30
- #187 on Oct 1
- #189 on Oct 2
- #186 on Oct 3
- #185 on Oct 4
- #188 on Oct 5
- #189 on Oct 6
- #191 on Oct 7
- #189 on Oct 8
- #191 on Oct 9
- #189 on Oct 10
- #190 on Oct 11
- #191 on Oct 12
- #193 on Oct 13
- #192 on Oct 14
- #191 on Oct 15
- #190 on Oct 16
- #192 on Oct 17
- #193 on Oct 18
- #192 on Oct 19
- #191 on Oct 20
- #193 from Oct 21 to Oct 23
- #194 on Oct 24
Before you install
Network or broad shellAutomated signals, not a guarantee
Checked Nov 2, 2026
Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.
Show 1 note
asset-gen/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed
- No broad tool permissions
- No dangerous shell commands
- 10 network referencesin 4 files: asset-gen/api.md:83 asset-gen/tools/asset_gen.py:237 asset-gen/SKILL.md:13 and 1 more
- 2 obfuscation signalsin 1 file: asset-gen/tools/asset_gen.py:352
- No instruction overrides
- 5 executable scriptsin 5 files: asset-gen/tools/asset_gen.py:1 asset-gen/tools/find_loop_frame.py:1 asset-gen/tools/grid_slice.py:1 and 2 more
- 6 references to secretsin 2 files: asset-gen/tools/asset_gen.py:97 asset-gen/api.md:5
- No requests to vote in Hot
Show all 23 signals by file
asset-gen/SKILL.md
- Network accessline 13
Assets come from [godogen_assets](https://github.com/htdt/godogen_assets): local generators on this machine's GPU, one command per task, free. Its checkout here is `${GODOGEN_ASSETS}`, and its docs are the reference; this page is the TL;DR
asset-gen/api.md
- Access to secretsline 5
[Credential-related source omitted] - Access to secretsline 35
[Credential-related source omitted] - Network accessline 83
For what `qwen-tts` can't do: one character voice acting every line differently, vocal bursts and barks, staged two-speaker dialogue, 130 languages with regional accents. Gemini 3.8 Flash TTS, ~0.25¢ per 10 s line; `--model gemini-3.8-flash - Network accessline 86
- **Who is speaking** — species, age, gender, timbre, accent — is the voice. Cast it once per character (below). - **How the whole line is delivered** goes in `--style`, kept short: `"whispered, nervous"`, `"shouting over battle"`. Most lin - Network accessline 88
- **What happens at a moment** goes inline as angle-bracket tags: `<laugh>`, `<sigh>`, `<gasp>`, `<groan>`, `<short pause>`, etc. ([full list](https://ai.google.dev/gemini-api/docs/speech-generation#vocal-bursts)). CAPS stresses a word. - Network accessline 114
- **Persistence.** The voice lives for a year in the key's Google project (200 max), and its id is the only handle on it: record the id in the asset manifest next to the character. `voice list --mine`, `voice delete ID`. - **Children.** Des - Network accessline 116
- **The user's own voice.** They create it in AI Studio's [Voice replication](https://aistudio.google.com/generate-speech), which needs their spoken consent, and give you the `voice_...` id. - Network accessline 134
Prompting: [Lyria prompt guide](https://ai.google.dev/gemini-api/docs/lyria-prompt-guide).
asset-gen/motion.md
- Network accessline 3
Humanoid moves come from godogen_assets: `gen-moves` generates a move set from a spec of text prompts (NVIDIA Kimodo through [kimodo-practical](https://github.com/htdt/kimodo-practical)), and `add-moves` puts it onto a `mia-rig` rig as ordi
asset-gen/tools/asset_gen.py
- Executable scriptline 1
#!/usr/bin/env python3 - Access to secretsline 97
[Credential-related source omitted] - Access to secretsline 99
[Credential-related source omitted] - Access to secretsline 184
[Credential-related source omitted] - Network accessline 237
print(" Downloading video...", file=sys.stderr) dl = requests.get(resp.url, timeout=120) - Network accessline 238
dl = requests.get(resp.url, timeout=120) - Possible obfuscationline 352
seconds = _save_wav(base64.b64decode(resp.output_audio.data), output) - Possible obfuscationline 378
seconds = _save_wav(base64.b64decode(created.sample_audio.data), output) - Access to secretsline 474
[Credential-related source omitted]
asset-gen/tools/find_loop_frame.py
- Executable scriptline 1
#!/usr/bin/env python3
asset-gen/tools/grid_slice.py
- Executable scriptline 1
#!/usr/bin/env python3
asset-gen/tools/loop_audio.py
- Executable scriptline 1
#!/usr/bin/env python3
asset-gen/tools/rembg_matting.py
- Executable scriptline 1
Executable file
How the signals fit together
Facts from a static read of the files at the pinned commit. They describe what the code does, not why.
Signal confidence: 23 facts
- Network access in prose of the SKILL.mdasset-gen/SKILL.md:13Low confidence
- Access to secrets in prose of documentation: a variable, placeholder or call, not a stored valueasset-gen/api.md:5Low confidence
- Access to secrets in prose of documentationasset-gen/api.md:35Low confidence
- Network access in prose of documentationasset-gen/api.md:83Low confidence
- Network access in prose of documentationasset-gen/api.md:86Low confidence
- Network access in prose of documentationasset-gen/api.md:88Low confidence
- Network access in prose of documentationasset-gen/api.md:114Low confidence
- Network access in prose of documentationasset-gen/api.md:116Low confidence
- Network access in prose of documentationasset-gen/api.md:134Low confidence
- Network access in prose of documentationasset-gen/motion.md:3Low confidence
- Executable script in code of a file that runsasset-gen/tools/asset_gen.py:1High confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueasset-gen/tools/asset_gen.py:97Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueasset-gen/tools/asset_gen.py:99Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueasset-gen/tools/asset_gen.py:184Low confidence
- Network access in code of a file that runsasset-gen/tools/asset_gen.py:237High confidence
- Network access in code of a file that runsasset-gen/tools/asset_gen.py:238High confidence
- Possible obfuscation in code of a file that runsasset-gen/tools/asset_gen.py:352High confidence
- Possible obfuscation in code of a file that runsasset-gen/tools/asset_gen.py:378High confidence
- Access to secrets in code of a file that runsasset-gen/tools/asset_gen.py:474High confidence
- Executable script in code of a file that runsasset-gen/tools/find_loop_frame.py:1High confidence
- Executable script in code of a file that runsasset-gen/tools/grid_slice.py:1High confidence
- Executable script in code of a file that runsasset-gen/tools/loop_audio.py:1High confidence
- Executable script in prose of a file that runsasset-gen/tools/rembg_matting.py:1Low confidence
Works with
| Agent | Status | Evidence | Install to |
|---|---|---|---|
| Claude Code | Native | Path CLAUDE.md | .claude/skills/<skill-name>/ |
| Codex | Native | Manifest AGENTS.md | .agents/skills/<skill-name>/ |
| Cursor | Compatible | Standard SKILL.md asset-gen/SKILL.md | .cursor/skills/<skill-name>/ |
| Gemini CLI | Compatible | Standard SKILL.md asset-gen/SKILL.md | .gemini/skills/<skill-name>/ |
| GitHub Copilot | Compatible | Standard SKILL.md asset-gen/SKILL.md | .github/skills/<skill-name>/ |
| OpenCode | Compatible | Standard SKILL.md asset-gen/SKILL.md | .opencode/skills/<skill-name>/ |
- Native The repository ships a manifest, folder or frontmatter field for this agent.
- Compatible A standard SKILL.md that this agent can read.
- Unknown No evidence either way.
Derived automatically from paths, manifests and frontmatter. Not tested on each agent.
Explore alternatives and comparisons
Add this badge to your README
It updates every night and links to this page.
[](https://hotskills.dev/skill/htdt-godogen/)