Mint Three.js Skills
Mint's agent skill suite for browser-based Three.js work. It combines and
adapts open source Three.js game, application, and graphics-agent workflows,
generalized for 3D apps while retaining deep game workflows.
Choose A Route
- Fresh request whose primary deliverable is one generated model, an animated
model, a coherent model asset pack, one material, a material pack, or one
explicitly requested Mint world: read
references/asset-viewer.md, then use
the app director. The asset is the product; the viewer is its inspection and
download shell.
- General 3D app, viewer, configurator, simulation, walkthrough, editor, or
interactive experience: read
skills/threejs-app-director/SKILL.md.
- Game or game-like request with objectives, challenge, scoring, failure,
progression, or game feel: read
skills/threejs-game-director/SKILL.md.
- Mixed experience: start with the app director, then add only the relevant game
specialists.
Both routes share visual systems, interaction, debugging, QA, and
references/mint-mcp-assets.md. Before the first Mint MCP write for a codebase,
read references/mint-project-workspaces.md to resolve one Mint Project for the
work. Projects that use Mint assets also use the durable registry in
references/asset-pipeline.md.
Existing app or game context wins over asset delivery. Generate and integrate a
requested asset into that project instead of scaffolding a separate viewer.
Invariants
- Existing project architecture wins. For greenfield work, default to
TypeScript, Vite, and Three.js modules.
- Vanilla Three.js is the default; support React Three Fiber or another
Three.js-based stack when the project or user chooses it.
- Mint MCP is the only generated-asset production pipeline. Keep MCP calls out
of browser runtime code.
- Distinguish the local code project (the folder or repository being edited)
from its Mint Project (the remote workspace that owns Mint chats and assets).
Resolve or create the Mint Project once, persist it in
mint-assets.json, and
reuse it for every independent generation started for that codebase.
- For every project that imports Mint files or remote world configuration,
maintain a project-root
mint-assets.json through
scripts/sync-mint-assets.mjs. Reuse stable logical keys and preserve the
existing project's asset-root conventions.
- For every Three.js path that loads Mint-generated GLBs, read
references/gltf-runtime-compatibility.md and use a Draco-capable shared
loader. Mint-optimized GLBs are not compatible with a bare GLTFLoader.
- Prefer discrete generated models and compose them in Three.js. Generate a
Mint world only when the user explicitly chooses a generated environment;
then read
references/mint-world-splats.md.
- Use procedural or user-provided assets when they are the right design choice
or Mint MCP lacks the required capability. Never create a competing
procedural version of a subject that Mint generated successfully.
- Before verification, read
references/verification-policy.md. Run its
automatic minimum, ask before extended desktop/browser QA, and require a
separate secondary approval for mobile QA. Its approval boundary overrides
broader specialist completion gates.
- Do not force game concepts such as objectives, pressure, rewards, or failure
onto general 3D apps.
User-Owned UI
- Treat the delivered app as the user's product, not as a demo of the
asset-generation pipeline.
- Keep provider names, branding, badges, generation links, asset IDs, and
provenance out of runtime UI unless the user explicitly asks for them.
- Mention generation provenance and handoff links only in the final response or
developer documentation.
- Default to the minimum UI required for the experience: loading and error
status, essential controls, and explicitly requested actions.
- Do not add headers, title bars, navigation, marketing copy, attribution, or
decorative application chrome unless requested.
- For the canonical asset viewer, keep the canvas dominant with a compact
centered details dialog opened from an info button plus bottom-centered
inspection controls. Do not reserve permanent sidebar space. For other simple
viewers and walkthroughs, use a compact bottom-centered control group. Place
loading, ready, or error status directly above it using the same compact
visual language.
When the user asks for a reusable prompt, use
references/request-templates.md.
1---2name: mint-threejs-skills3description: Build, revise, debug, and verify browser-based Three.js apps, games, asset viewers, model and asset-pack deliveries, material and material-pack deliveries, animated-model viewers, and explicitly requested Gaussian-splat worlds with Mint MCP as the production asset pipeline.4---56# Mint Three.js Skills78Mint's agent skill suite for browser-based Three.js work. It combines and9adapts open source Three.js game, application, and graphics-agent workflows,10generalized for 3D apps while retaining deep game workflows.1112## Choose A Route1314- Fresh request whose primary deliverable is one generated model, an animated15 model, a coherent model asset pack, one material, a material pack, or one16 explicitly requested Mint world: read `references/asset-viewer.md`, then use17 the app director. The asset is the product; the viewer is its inspection and18 download shell.19- General 3D app, viewer, configurator, simulation, walkthrough, editor, or20 interactive experience: read `skills/threejs-app-director/SKILL.md`.21- Game or game-like request with objectives, challenge, scoring, failure,22 progression, or game feel: read `skills/threejs-game-director/SKILL.md`.23- Mixed experience: start with the app director, then add only the relevant game24 specialists.2526Both routes share visual systems, interaction, debugging, QA, and27`references/mint-mcp-assets.md`. Before the first Mint MCP write for a codebase,28read `references/mint-project-workspaces.md` to resolve one Mint Project for the29work. Projects that use Mint assets also use the durable registry in30`references/asset-pipeline.md`.3132Existing app or game context wins over asset delivery. Generate and integrate a33requested asset into that project instead of scaffolding a separate viewer.3435## Invariants3637- Existing project architecture wins. For greenfield work, default to38 TypeScript, Vite, and Three.js modules.39- Vanilla Three.js is the default; support React Three Fiber or another40 Three.js-based stack when the project or user chooses it.41- Mint MCP is the only generated-asset production pipeline. Keep MCP calls out42 of browser runtime code.43- Distinguish the local code project (the folder or repository being edited)44 from its Mint Project (the remote workspace that owns Mint chats and assets).45 Resolve or create the Mint Project once, persist it in `mint-assets.json`, and46 reuse it for every independent generation started for that codebase.47- For every project that imports Mint files or remote world configuration,48 maintain a project-root `mint-assets.json` through49 `scripts/sync-mint-assets.mjs`. Reuse stable logical keys and preserve the50 existing project's asset-root conventions.51- For every Three.js path that loads Mint-generated GLBs, read52 `references/gltf-runtime-compatibility.md` and use a Draco-capable shared53 loader. Mint-optimized GLBs are not compatible with a bare `GLTFLoader`.54- Prefer discrete generated models and compose them in Three.js. Generate a55 Mint world only when the user explicitly chooses a generated environment;56 then read `references/mint-world-splats.md`.57- Use procedural or user-provided assets when they are the right design choice58 or Mint MCP lacks the required capability. Never create a competing59 procedural version of a subject that Mint generated successfully.60- Before verification, read `references/verification-policy.md`. Run its61 automatic minimum, ask before extended desktop/browser QA, and require a62 separate secondary approval for mobile QA. Its approval boundary overrides63 broader specialist completion gates.64- Do not force game concepts such as objectives, pressure, rewards, or failure65 onto general 3D apps.6667## User-Owned UI6869- Treat the delivered app as the user's product, not as a demo of the70 asset-generation pipeline.71- Keep provider names, branding, badges, generation links, asset IDs, and72 provenance out of runtime UI unless the user explicitly asks for them.73- Mention generation provenance and handoff links only in the final response or74 developer documentation.75- Default to the minimum UI required for the experience: loading and error76 status, essential controls, and explicitly requested actions.77- Do not add headers, title bars, navigation, marketing copy, attribution, or78 decorative application chrome unless requested.79- For the canonical asset viewer, keep the canvas dominant with a compact80 centered details dialog opened from an info button plus bottom-centered81 inspection controls. Do not reserve permanent sidebar space. For other simple82 viewers and walkthroughs, use a compact bottom-centered control group. Place83 loading, ready, or error status directly above it using the same compact84 visual language.8586When the user asks for a reusable prompt, use87`references/request-templates.md`.