/model-maker
Generate a 3D model (GLB mesh) from a text description or a reference photo via Tripo. Textured or bare geometry, polygon budget, PBR materials. Output is a real file for Blender / Unity / Unreal / AR, not a render. Use when: 'make a 3D model', 'text to 3D', 'turn this photo
$ npx -y skills add Mikefluff/skills --skill model-maker --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/model-maker
Context preview
The summary Claude sees to decide when to auto-load this skill.
Generate a 3D model (GLB mesh) from a text description or a reference photo via Tripo. Textured or bare geometry, polygon budget, PBR materials. Output is a real file for Blender / Unity / Unreal / AR, not a render. Use when: 'make a 3D model', 'text to 3D', 'turn this photo
SKILL.md
model-maker.SKILL.mdname: model-maker
description: "Generate a 3D model (GLB mesh) from a text description or a reference photo via Tripo. Textured or bare geometry, polygon budget, PBR materials. Output is a real file for Blender / Unity / Unreal / AR, not a render. Use when: 'make a 3D model', 'text to 3D', 'turn this photo into a mesh', '3D asset for a game', 'сделай 3D-модель', 'меш из фотки', '3D-ассет'."
license: MIT
allowed-tools:
- Read
- Write
- Edit
- Bash
- Grep
- Glob
<objective> Text or a single reference photo → one 3D mesh file, saved locally. Wraps the runner's `model` modality (Tripo v3) the same way `upscaler` wraps Replicate.
This skill does NOT:
- Render a 3D-*looking* image — that is `image-prompt` with a 3D style. This
produces geometry you can open in Blender, drop into Unity, or view in AR.
- Rig, animate, or retopologise. What comes back is a static mesh.
- Guarantee a printable model. Watertightness is not checked; see
[references/limits.md](references/limits.md) before sending anything to a printer.
- Produce a scene. One prompt is one object.
</objective>
ROLE
Turn a description into a mesh: write the prompt in the grammar 3D generators actually read, pick the tier, call the runner, report where the file landed and what it cost.
PIPELINE
1. **Establish the subject.** One object, named concretely. "A low-poly red fox, sitting, tail curled" is a subject. "Something foxlike for a game" is not, and the mesh will show it.
2. **Write the prompt.** 3D prompting is not image prompting — no camera, no lighting, no lens. Describe form, silhouette, material and scale. Full grammar in [references/prompt-grammar.md](references/prompt-grammar.md).
3. **Pick the tier.** Textured is the default and roughly doubles the cost of bare geometry. Untextured is the right pick when the mesh is going to be re-materialised in the target engine anyway.
4. **Estimate + confirm.** `--cost-only` first when the user has not seen a price for this skill before. Every generation is over the $0.10 confirmation threshold, so the runner will ask unless `--yes` is passed.
5. **Execute.**
python3 -m common.runners.cli.model3d \
--model tripo-v3 \
--prompt "<the written prompt>" \
--yesFrom a photo, add `--image-url ./ref.jpg`. The prompt then becomes a hint rather than the whole specification.
6. **Report.** Print the saved path, the format, and the credits the vendor actually consumed — the runner puts that in the manifest. Say what the file is for: GLB opens in Blender, Unity, Unreal, Godot, and previews natively on iOS and Android.
FLAGS
- `--prompt "<text>"` — the subject description
- `--image-url <path|url>` — reference photo; switches to image-to-3D
- `--no-texture` — bare geometry, cheaper
- `--pbr` — physically-based materials rather than baked colour
- `--face-limit N` — polygon budget, when the target engine has one
- `--model-version <string>` — override the pinned vendor model
- `--cost-only` / `--yes` / `--check` / `--output <dir>`
CONSTRAINTS
- **Needs `TRIPO_API_KEY`.** There is no prompt-only fallback worth having here:
a 3D prompt with no mesh is not a deliverable the way an image prompt pasted into Midjourney is. Without the key, say so and stop.
- **The download link expires in five minutes.** The provider downloads inside
the same call that sees the task succeed, so this is handled — but it is why a failed save cannot be retried without regenerating, and regenerating bills again.
- **One object per call.** Multi-object scenes come back fused and unusable.
Generate separately and assemble in the target tool.
- **Do not promise print-readiness.** See
[references/limits.md](references/limits.md).
REFERENCES (load on demand)
| File | When to load | |---|---| | [references/prompt-grammar.md](references/prompt-grammar.md) | Step 2 — what a 3D prompt says that an image prompt does not | | [references/limits.md](references/limits.md) | Before promising anything about printing, rigging, or topology |
EXAMPLES
See [examples/before-after.md](examples/before-after.md) — three calibration runs: a game prop from text, a product mesh from a photo, and an untextured base for re-materialising.
Read more
name: model-maker description: "Generate a 3D model (GLB mesh) from a text description or a reference photo via Tripo. Textured or bare geometry, polygon budget, PBR materials. Output is a real file for Blender / Unity / Unreal / AR, not a render. Use when: 'make a 3D model', 'text to 3D', 'turn this photo into a mesh', '3D asset for a game', 'сделай 3D-модель', 'меш из фотки', '3D-ассет'." license: MIT allowed-tools: - Read - Write - Edit - Bash - Grep - Glob
<objective> Text or a single reference photo → one 3D mesh file, saved locally. Wraps the runner's `model` modality (Tripo v3) the same way `upscaler` wraps Replicate.
This skill does NOT:
- Render a 3D-*looking* image — that is `image-prompt` with a 3D style. This
produces geometry you can open in Blender, drop into Unity, or view in AR.
- Rig, animate, or retopologise. What comes back is a static mesh.
- Guarantee a printable model. Watertightness is not checked; see
[references/limits.md](references/limits.md) before sending anything to a printer.
- Produce a scene. One prompt is one object.
</objective>
ROLE
Turn a description into a mesh: write the prompt in the grammar 3D generators actually read, pick the tier, call the runner, report where the file landed and what it cost.
PIPELINE
1. **Establish the subject.** One object, named concretely. "A low-poly red fox, sitting, tail curled" is a subject. "Something foxlike for a game" is not, and the mesh will show it.
2. **Write the prompt.** 3D prompting is not image prompting — no camera, no lighting, no lens. Describe form, silhouette, material and scale. Full grammar in [references/prompt-grammar.md](references/prompt-grammar.md).
3. **Pick the tier.** Textured is the default and roughly doubles the cost of bare geometry. Untextured is the right pick when the mesh is going to be re-materialised in the target engine anyway.
4. **Estimate + confirm.** `--cost-only` first when the user has not seen a price for this skill before. Every generation is over the $0.10 confirmation threshold, so the runner will ask unless `--yes` is passed.
5. **Execute.**
python3 -m common.runners.cli.model3d \
--model tripo-v3 \
--prompt "<the written prompt>" \
--yesFrom a photo, add `--image-url ./ref.jpg`. The prompt then becomes a hint rather than the whole specification.
6. **Report.** Print the saved path, the format, and the credits the vendor actually consumed — the runner puts that in the manifest. Say what the file is for: GLB opens in Blender, Unity, Unreal, Godot, and previews natively on iOS and Android.
FLAGS
- `--prompt "<text>"` — the subject description
- `--image-url <path|url>` — reference photo; switches to image-to-3D
- `--no-texture` — bare geometry, cheaper
- `--pbr` — physically-based materials rather than baked colour
- `--face-limit N` — polygon budget, when the target engine has one
- `--model-version <string>` — override the pinned vendor model
- `--cost-only` / `--yes` / `--check` / `--output <dir>`
CONSTRAINTS
- **Needs `TRIPO_API_KEY`.** There is no prompt-only fallback worth having here:
a 3D prompt with no mesh is not a deliverable the way an image prompt pasted into Midjourney is. Without the key, say so and stop.
- **The download link expires in five minutes.** The provider downloads inside
the same call that sees the task succeed, so this is handled — but it is why a failed save cannot be retried without regenerating, and regenerating bills again.
- **One object per call.** Multi-object scenes come back fused and unusable.
Generate separately and assemble in the target tool.
- **Do not promise print-readiness.** See
[references/limits.md](references/limits.md).
REFERENCES (load on demand)
| File | When to load | |---|---| | [references/prompt-grammar.md](references/prompt-grammar.md) | Step 2 — what a 3D prompt says that an image prompt does not | | [references/limits.md](references/limits.md) | Before promising anything about printing, rigging, or topology |
EXAMPLES
See [examples/before-after.md](examples/before-after.md) — three calibration runs: a game prop from text, a product mesh from a photo, and an untextured base for re-materialising.
44 skills for Claude Code that make content — and refuse to let it read like a machine made it. Prose editing that strips the tells. Prompt engineering for 40+ image, video and music models, with optional one-command execution against the real APIs.
Repo: Mikefluff/skills
Other skills on mikefluff-skills.
- /audio-mix-maker
Mix music/audio onto an existing video via ffmpeg. Modes: replace, overlay, duck (sidechain compressor lowers music under speech). Volume + fade controls. Pure ffmpeg, no API. Use when: 'mix this music onto the video', 'add background music to video', 'duck the music under
Open skill - /avatar-maker
Turn a user photo into N profile-pic / headshot / avatar variants in a consistent style. Identity-preserve focused, defaults to nano-banana-pro. Multi-aspect (square, square-tight, cover 4:5, story 9:16). Use when: 'make me an avatar', 'profile picture from this photo',
Open skill - /banner-maker
Banner-ad / display-creative generator with standard-size presets: Google Display (leaderboard, medium rectangle, mobile, skyscraper), LinkedIn, OG image, Twitter card, Facebook ad, header. Text-heavy ad aesthetic, ideogram-3-quality default. Use when: 'banner ad', 'display ad',
Open skill - /bg-remover
Background removal utility — image in, transparent PNG out. Wraps Replicate-hosted models (851-labs/background-remover default; alternatives via --replicate-model). Use when: 'remove the background', 'cut out the subject', 'transparent PNG', 'убери фон', 'вырежи фон с фотки'.
Open skill - /canon-check
Read-only story-bible auditor for fiction series with a documented canon. Cross-references character / artifact / location mentions in chapters against the bible and flags drift. Produces a drift report — never edits files. Use before opening or committing a chapter, or when
Open skill - /carousel-builder
Turn a topic or research brief into an N-slide Instagram / LinkedIn / TikTok carousel with consistent visual style and ready-to-post captions. Modes: --topic / --research; --slides 3-12; --platform; --aspect; --text-mode. Use when: 'make a carousel about X', 'turn this research
Open skill

