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.
Write a CAD file out of an object a PartCAD package declares - STEP, BREP, STL, 3MF, OBJ, IGES, glTF, three.js, URDF for 3D, SVG or DXF for a sketch, or a file type the package implements itself -…
$ npx skills add partcad/partcad --skill export -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install partcad/partcad export --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/partcad/partcad.git skills-src && mkdir -p .claude/skills && cp -r skills-src/ai-agents/common/skills/export .claude/skills/export && 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 "export" agent skill from https://github.com/partcad/partcad/tree/devel/ai-agents/common/skills/export into .claude/skills/export/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "export", 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/partcad/partcad/tree/devel/ai-agents/common/skills/exportType 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 partcad/partcad --skill export -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install partcad/partcad export --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/partcad/partcad.git skills-src && mkdir -p .agents/skills && cp -r skills-src/ai-agents/common/skills/export .agents/skills/export && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "export" agent skill from https://github.com/partcad/partcad/tree/devel/ai-agents/common/skills/export into .agents/skills/export/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "export", 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 partcad/partcad --skill export -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install partcad/partcad export --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/partcad/partcad.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/ai-agents/common/skills/export .cursor/skills/export && 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 "export" agent skill from https://github.com/partcad/partcad/tree/devel/ai-agents/common/skills/export into .cursor/skills/export/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "export", 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/partcad/partcad.git --path ai-agents/common/skills/export--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 partcad/partcad --skill export -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install partcad/partcad export --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/partcad/partcad.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/ai-agents/common/skills/export .gemini/skills/export && 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 "export" agent skill from https://github.com/partcad/partcad/tree/devel/ai-agents/common/skills/export into .gemini/skills/export/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "export", 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 partcad/partcad exportInstalls 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 partcad/partcad --skill export -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/partcad/partcad.git skills-src && mkdir -p .github/skills && cp -r skills-src/ai-agents/common/skills/export .github/skills/export && 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 "export" agent skill from https://github.com/partcad/partcad/tree/devel/ai-agents/common/skills/export into .github/skills/export/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "export", 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 partcad/partcad --skill export -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install partcad/partcad export --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/partcad/partcad.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/ai-agents/common/skills/export .opencode/skills/export && 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 "export" agent skill from https://github.com/partcad/partcad/tree/devel/ai-agents/common/skills/export into .opencode/skills/export/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "export", 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.
exportWrite a CAD file out of an object a PartCAD package declares - STEP, BREP, STL, 3MF, OBJ, IGES, glTF, three.js, URDF for 3D, SVG or DXF for a sketch, or a file type the package implements itself -…
Export is an agent skill from partcad/partcad. Write a CAD file out of an object a PartCAD package declares - STEP, BREP, STL, 3MF, OBJ, IGES, glTF, three.js, URDF for 3D, SVG or DXF for a sketch, or a file type the package implements itself - using pc export, which changes nothing in partcad.yaml. Use for /pc:export or when the user asks to export, save out, dump, hand off, or produce a CAD file of a part, sketch, assembly or whole package - for a printer, a supplier, a simulator, or another CAD tool. For a bare file with no package use /pc:convert; for a 2D…
Its SKILL.md is about 1.7k 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, covering 3D graphics and WebGL. It works with Three.js. The repository describes itself as: Package manager for things. Start designing modular hardware! PartCAD is the standard for documenting manufacturable physical products (a.k.a. Digital Thread or TDP). It comes… The licence is Apache-2.0.
5 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 2b1223f. 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:
pythonFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
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.
Export loads about 1.7k tokens when it runs. Until then it costs about 138 tokens; SKILL.md has 988 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 partcad/partcad at commit 2b1223f, republished under its Apache-2.0 licence (© partcad). 988 words, ~1,730 tokens.
.claude/skills/export/SKILL.md (or your agent's skills folder).Write geometry out of a package, leaving the package exactly as it was.
$ARGUMENTS says what to export and to what.
pc export is the close sibling of pc convert, and the difference is the whole
reason to know both:
| writes a file | changes partcad.yaml | formats | |
|---|---|---|---|
pc export | yes | no | more — urdf, plus any a package implements itself |
pc convert | yes | yes — the object becomes the new format | a fixed list per kind |
So this is what to use whenever someone wants a file out of a package — to
print, to quote, to import somewhere else — which is nearly always what "export
it as STEP" means. /pc:convert is for the rarer case where the object itself
should stop being what it is.
Do this before running anything. It is the same first step in /pc:convert and
/pc:render.
partcad.yaml, so look in
the current directory and above. pc --no-ansi list lists what the package
holds; if there is no package it says so.pc --no-ansi list parts / list sketches / list assemblies.
pc --no-ansi info <name> succeeds only for an object that resolves.bracket.step as STL" inside a package usually means the part built from it.
Read partcad.yaml and look for an object whose path: is that file — and
note that a file-backed object without a path: is <name> plus the type's
extension, so a part bracket of type step is bracket.step whether or not
the path is written down.If 2 or 3 matched, it is an object: use pc export (§3).
If there is no package, or the file is not one an object is built from, there
is nothing to export from. A bare file is converted, not exported: hand it to
pc adhoc convert — that is /pc:convert §4, and it is the ad-hoc equivalent of
this skill, since it too writes a file and changes no package.
Resolve a command as /pc:init does (pc, then partcad, then
python -m partcad_cli.click.command). If none is found, stop and run
/pc:setup executable first.
Pass --no-ansi on every run so the output is plain text. It is a global flag
and goes before the subcommand, and it routes the logs to stderr — so
capture both streams when reading them: pc --no-ansi export ... 2>&1.
mkdir -p ./out # -O expects the directory to exist
pc --no-ansi export -t stl -O ./out bracket # a part
pc --no-ansi export -t step -O ./out -a gearbox # an assembly (-a)
pc --no-ansi export -t dxf -O ./out -s outline # a sketch (-s)
pc --no-ansi export -t stl -O ./out -P //pub/std bolt # an object in another packageFormats: step, brep, stl, 3mf, threejs, obj, gltf, iges, urdf,
svg, dxf, plus any file type a package implements itself. -t urdf writes a
.urdf plus the directory of mesh files it references — it is the one that
produces more than one file.
svg and dxf are the flat pair, and are what a sketch exports to: a sketch
is already 2D, so this is its geometry and not a picture of it. A part or an
assembly accepts them as well, but what comes back is a projection — if that is
what is wanted, /pc:render is the command that says so, and the viewing-angle
options exist only there.
Useful options:
-O <dir> — where the files go. The directory must exist; add -p to create
the structure a configured output path needs.... suffix on
the package (-P //...) walks the imported packages too, and ...:<name>
exports every object of that name from here down. Say what that will produce
before running it on a package that imports the public index.-e <package> — read another package's export: options and implementations,
which is how one package's exporter is applied to another's objects.Each file is named after the object, so exporting several objects into one
directory is safe — unlike several views of one object, which is /pc:render.
If the format the user asked for is not in the list, check whether the package
implements it: read the export: and render: sections of partcad.yaml. A
package can declare a file type of its own, and it is then nameable with -t
like any other.
--filter keeps only some of the links of an assembly or a scene, so one
sub-assembly can be exported without a declaration for it. It takes a JSON or
YAML file naming the links, or the same written out on the command line:
pc --no-ansi export -a -t step -O ./out --filter ./head.yaml logo
pc --no-ansi export -a -t step -O ./out --filter '[bone1, bone2]' logoA link the filter names is kept and a link it does not name is dropped; a link
named with nothing under it keeps everything under it, and a link named with
children under it keeps those children only. The names are the ones the Assembly
YAML file uses, which are the names a connect: uses — read the .assy file to
find them. Everything kept stays where the whole assembly put it.
The object has to be named, with -a or -S for its kind: a part has no links,
and neither has a whole package. The file written is the one an unfiltered export
would have written, under the object's own name, so send two filters of one object
to directories of their own with -O.
Nothing is written into the package. A filter: on an export: file type in
partcad.yaml asks for the same thing permanently, per file type, which is what
the user wants when the subset should be exported every time; and
pc filter FILTER SRC DST makes the subset an object of the package, which is
what they want when it should have a name.
Name the files that were written, with their paths — all of them for -t urdf
or a whole-package export, or a count plus the directory when there are many.
State that partcad.yaml is unchanged, since that is the property that makes
this command the right one. If PartCAD printed an error, surface it verbatim.
© partcad, Apache-2.0. 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 ai-agents/common/skills/export of partcad/partcad.
Open the folder on GitHubat commit 2b1223f
Export 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 |
|---|---|---|---|---|---|---|
| Export this skillpartcad/partcad | 503 | — | ~1.7k | Automated safety check: Pass | Apache-2.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.4k | — | ~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 | 65k | — | ~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.
partcad/partcad
Enrich an existing PartCAD part with connection interfaces and ports (mating metadata) so it can be mated to other parts automatically.
partcad/partcad
Convert a CAD file or a PartCAD object to another geometry format - STEP, BREP, STL, 3MF, OBJ, IGES, glTF, three.js, SVG, DXF, URDF, ASSY - with pc convert for an object a package declares (which…
partcad/partcad
Write a narratable, accessibility-oriented text description of an existing PartCAD part, assembly, or sketch from its measured bounding box and volume, from renders taken at several viewing angles…
partcad/partcad
Generate a PartCAD part from a natural-language description (and optional reference images/requirements) by authoring a CAD script and validating it with the PartCAD CLI.
partcad/partcad
Generate a PartCAD 2D sketch from a natural-language description by authoring the sketch (build123d / cadquery / dxf / svg / basic) and validating it with the PartCAD CLI.
partcad/partcad
Initialize a PartCAD package in the current directory by running the installed PartCAD CLI (pc init / partcad init).
Works with
Categories
Write a CAD file out of an object a PartCAD package declares - STEP, BREP, STL, 3MF, OBJ, IGES, glTF, three.js, URDF for 3D, SVG or DXF for a sketch, or a file type the package implements itself -…. Export is an agent skill from partcad/partcad.yaml.
Export fits situations like: the user asks to export; produce a CAD file of a part; whole package - for a printer; another CAD tool.
Run `npx skills add partcad/partcad --skill export -a claude-code`. Or copy the skill folder (ai-agents/common/skills/export in partcad/partcad) into .claude/skills/export in your project. Claude Code loads it when a task matches its description.
Run `npx skills add partcad/partcad --skill export -a codex`. Or copy the skill folder (ai-agents/common/skills/export in partcad/partcad) into .agents/skills/export 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 partcad/partcad --skill export -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/export, .gemini/skills/export, .github/skills/export and .opencode/skills/export in your project.
Going by SKILL.md and its folder, Export needs the command-line tools its instructions call (python). Our summary lists: Python 3.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. 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.
Export is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.7k tokens (SKILL.md is roughly 6.9k 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 Export: 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 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.
partcad (a GitHub organization) maintains it in partcad/partcad, which has 503 GitHub stars. The repository holds 12 skills in this directory. The repository was last updated on October 7, 2026.
Source: partcad/partcad on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.