Installation and your first check
Requirements / Skill / Updates / FreeCAD / Blender / AI connection / Troubleshooting
Requirements depend on what you want to do
| Goal | What you need |
|---|---|
| Read documentation or view public 3D | A browser only; no skill installation required |
| Have the AI follow this workflow | An Agent Skills-capable GitHub Copilot app / CLI or other supported host, with folder access |
| Create real CAD, FCStd / STEP / STL | FreeCAD and its matching Python environment |
Make mesh-derived CG, video or .blend |
Blender on a supported OS/GPU |
| Convert or inspect MP4 | ffmpeg, only when required |
| Build a 3D website | Node.js or other tools only if the chosen toolchain requires them |
| Slice real print files | A slicer for your printer; Bambu Studio is an example for relevant machines |
This distribution is a workflow skill, not a complete model generator. It does not bundle or automatically install CAD, finished scenes, reference images, fonts or an MCP server. Review installations and permissions yourself.
The reference project's FreeCAD 1.1.3, Blender 5.1.1 and ffmpeg 8.1 are historical tool versions, not requirements or compatibility guarantees for every OS. Select packages for your OS, CPU and GPU from official sources. Blender support differs notably between Intel and Apple Silicon Macs.
1. Copy the skill
The layout follows GitHub's official Agent Skills guide
and CLI skill installation.
Skills contain instructions and code: read them before installing.
This skill does not grant blanket shell preapproval through allowed-tools.
Download: the skill-only ZIP
(SHA-256),
or Code → Download ZIP in the repository.
Extract first. In the full repository ZIP, the source folder is
.github/skills/lego-like-3d-print. To see hidden .github, use Command+Shift+.
in macOS Finder, Ctrl+H in many Linux file managers, or enable hidden items in
Windows File Explorer.
| Destination | Scope |
|---|---|
~/.copilot/skills/lego-like-3d-print |
Personal; on Windows, .copilot\skills\lego-like-3d-print under $HOME |
.github/skills/lego-like-3d-print in your own repository |
Project-specific |
Choose one location and copy the whole folder, including LICENSE, NOTICES,
references and scripts. Do not register separate Japanese/English SKILL.md
files or duplicate the same skill at both scopes. This distribution repository
already has its project skill installed in the correct location.
Non-overwriting copy on macOS / Linux
Run this example from the extracted repository root. For the skill-only ZIP,
change src to ./lego-like-3d-print. An existing destination stops the copy;
nothing is deleted or overwritten.
(
set -eu
src=".github/skills/lego-like-3d-print"
dest="$HOME/.copilot/skills/lego-like-3d-print"
test -f "$src/SKILL.md" || { echo "STOP: source SKILL.md not found" >&2; exit 1; }
if [ -e "$dest" ] || [ -L "$dest" ]; then
echo "STOP: destination exists; use the update procedure" >&2
exit 1
fi
mkdir -p "$(dirname "$dest")"
cp -R "$src" "$dest"
)
For a project install, set dest to that repository's .github/skills/lego-like-3d-print,
for example dest="../my-model/.github/skills/lego-like-3d-print".
Verify the target repository before running.
Non-overwriting copy in Windows PowerShell
Again, run from the extracted repository root. For the skill-only ZIP, change
$source to ./lego-like-3d-print.
$ErrorActionPreference = "Stop"
$source = ".github/skills/lego-like-3d-print"
$destination = Join-Path $HOME ".copilot/skills/lego-like-3d-print"
if (-not (Test-Path -LiteralPath "$source/SKILL.md")) {
throw "STOP: source SKILL.md not found"
}
if (Test-Path -LiteralPath $destination) {
throw "STOP: destination exists; use the update procedure"
}
New-Item -ItemType Directory -Force -Path (Split-Path $destination) | Out-Null
Copy-Item -LiteralPath $source -Destination $destination -Recurse
For project scope, change $destination to the location inside the target repo.
A file-manager copy is also fine; cancel any replacement prompt and follow the
update procedure instead.
Load it in Copilot
CLI: Start a new session, or type these inside an existing interactive CLI:
/skills reload
/skills info lego-like-3d-print
These are not OS shell commands. Check that /skills info reports the intended
location. Copilot app: Open a new session in the target project after copying,
then ask "Use lego-like-3d-print; first explain the baseline and available tools."
Type / to inspect the app's actual command picker; do not assume the CLI's
/skills reload is available there. See the
official app command reference.
2. Update without destroying an existing skill
Extract the new version into a separate staging folder. Review differences in
SKILL.md, references and scripts; manually integrate any personal changes into
the staged version. Preserve the old folder outside skill discovery locations
(for example ~/skill-backups/2026-09-23/), then use the guarded copy above once
the destination is absent. Choose a different backup name if it already exists.
Merely renaming the old folder inside .copilot/skills can expose two skills
with the same name. Reload in the CLI or start a new app session. No automatic
overwrite or rm -rf is needed.
3. Install FreeCAD
Use the official downloads and linked official releases. Start with a stable release, not a weekly/development build. Check the chosen release's requirements and checksums rather than relying on a permanently hardcoded "latest" version number.
| OS | Installation and launch |
|---|---|
| macOS Apple Silicon | Check the chip in About This Mac. Open the matching arm64 DMG, drag FreeCAD.app to Applications and launch from Finder |
| macOS Intel | Choose a supported Intel / x86_64 DMG and install the same way; not the Apple Silicon build |
| Windows | Check System type in Settings → System → About. Run an officially offered compatible installer, record its location and launch from Start. Do not assume a native ARM package exists if not offered |
| Linux | Check CPU with uname -m, download the matching official AppImage, allow execution in its file properties and launch it. Distribution packages may lag behind |
Linux example: replace FreeCAD-downloaded.AppImage with the actual filename.
chmod +x ./FreeCAD-downloaded.AppImage
./FreeCAD-downloaded.AppImage
Official instructions: macOS / Windows / Linux / AppImage. If the OS warns about unsafe or untrusted software, do not ask the AI to bypass the warning. Verify provenance/signing and make the decision yourself.
Confirm version and embedded Python
Launch FreeCAD and check About FreeCAD (the application menu on macOS, usually Help elsewhere). Show View → Panels → Python console and enter these lines one at a time. They do not change documents.
import FreeCAD as App
import sys
print("FreeCAD:", App.Version())
print("Python:", sys.version)
print("Application home:", App.getHomePath())
print("FreeCAD module:", App.__file__)
print("Executable:", sys.executable)
This is FreeCAD's Python, not necessarily your system python / python3 or
the site's venv. pip install FreeCAD is not a substitute for installing the app.
A safe small check
Review freecad_smoke.py, then run it from the FreeCAD Python console. Replace the path below with the actual downloaded/copied script (Windows paths can go in the raw string too).
from pathlib import Path
script = Path(r"REPLACE_WITH_FULL_PATH_TO/freecad_smoke.py")
exec(compile(script.read_text(encoding="utf-8"), str(script), "exec"), {"__name__": "__main__"})
Alternatively, create a macro with an unused name through Macro → Macros, paste
this small script and run it. Do not overwrite an existing macro.
Each run creates a test-only 8×8×3.2 mm box, saves FCStd / STEP / STL into a
new temporary folder and checks reopening. It does not save or close your existing
documents; it closes only its own test documents. Success prints
FREECAD_SMOKE_OK and the output location. This box has no studs or sockets;
it is not a fit coupon or print kit.
CLI or embedded interpreter access from the AI
Use the console output above to locate actual installed files and inspect their
--help. sys.executable may point to the GUI itself, not a standalone Python.
On macOS use Finder's Show Package Contents, or these read-only listings:
ls "/Applications/FreeCAD.app/Contents/MacOS"
ls "/Applications/FreeCAD.app/Contents/Resources/bin"
On Windows inspect bin under your recorded installation location. On Linux
use the AppImage's supported launch route or actual files discovered by
command -v FreeCADCmd freecadcmd freecad. Names and locations vary by package.
Even a matching interpreter can require the FreeCAD module search path.
For the macOS layout above, after confirming Resources/lib/FreeCAD.so exists:
PYTHONPATH="/Applications/FreeCAD.app/Contents/Resources/lib" \
"/Applications/FreeCAD.app/Contents/Resources/bin/python" \
".github/skills/lego-like-3d-print/scripts/freecad_smoke.py"
This example runs from the repository root; it is not a universal OS path. Do not mix Python versions, CPU architectures or ABIs, such as a macOS module with another Windows Python. Use the GUI console/macro if unsure. Prefer a separate process that does not operate on your existing GUI work.
4. Install Blender
Read the official download page, requirements and installation manual.
| OS | Choose and launch |
|---|---|
| macOS Apple Silicon | Matching Apple Silicon DMG; drag the app to Applications. Blender 5+ requires Apple Silicon and macOS 13+; check the selected version too |
| macOS Intel | Blender 4.5 LTS is the last release supporting Intel Macs. Choose the matching LTS package, not Blender 5+ |
| Windows | Match x64 / arm64 to your CPU. Use the official installer or ZIP; launch from Start or the extracted blender.exe |
| Linux | Extract the official archive for your CPU and run its blender. Check OS/GPU/driver requirements; distribution packages may differ in version/features |
Official OS instructions: macOS / Windows / Linux.
Cross-version compatibility: A reference scene saved in Blender 5.1.1 is not guaranteed to reproduce unchanged in 4.5 LTS. This skill bundles no finished scenes. Normally, build a scene from the real STL/meshes in your supported Blender version. Keep originals and test migrations on separate copies.
Check the splash screen / About Blender, or use --version on the actual
executable. Run the following in a separate background process so an existing
unsaved interactive scene is not erased.
These examples run from the extracted repository root. With the skill-only ZIP
or an installed copy, replace the argument after --python with the actual full
path to that copy's blender_smoke.py.
macOS, using the usual installation location:
"/Applications/Blender.app/Contents/MacOS/Blender" --version
"/Applications/Blender.app/Contents/MacOS/Blender" --background --factory-startup \
--python-exit-code 1 --python ".github/skills/lego-like-3d-print/scripts/blender_smoke.py"
Windows PowerShell: replace $blender with your actual installation path.
$blender = "C:\PATH_TO_BLENDER\blender.exe"
& $blender --version
& $blender --background --factory-startup --python-exit-code 1 `
--python ".github/skills/lego-like-3d-print/scripts/blender_smoke.py"
Linux: use the extracted location, or locate a PATH installation with command -v blender.
BLENDER="./PATH_TO_EXTRACTED_BLENDER/blender"
"$BLENDER" --version
"$BLENDER" --background --factory-startup --python-exit-code 1 \
--python ".github/skills/lego-like-3d-print/scripts/blender_smoke.py"
blender_smoke.py
creates a test-only box equivalent to 8×8×3.2 mm in a new scene, saves a .blend
in a new temporary folder and reopens it. It does not render. Look for
BLENDER_SMOKE_OK. It refuses a foreground instance before changing anything.
This is not a system-Python bpy installation procedure. See the
official CLI arguments.
5. What the AI needs to execute
The skill explains what to do and check; it does not extend permissions. The AI needs access to project files and a permitted shell or compatible CAD tool connection. With GUI-only access, you can review AI-generated code and run it yourself through the console/macro. With CLI access, identify real paths and versions and ask for only the smoke check first.
MCP is optional. Copying this skill does not install, configure or start a server. If you use one, separately review the connector's official setup, permissions, current schema and live scene state. Installing the skill alone does not make FreeCAD or Blender executable.
Troubleshooting, and what a check actually proves
| Symptom | Check next |
|---|---|
| Skill not found | Exact location, uppercase SKILL.md, nested folders, duplicate scopes, CLI reload / new app session |
No module named FreeCAD |
Matching environment rather than system Python, App.__file__ and module path; do not install random pip packages |
| AppImage will not launch | Execute permission, CPU, official FUSE requirements and distribution guidance; do not blindly switch to an unmaintained PPA |
| Blender will not launch | CPU/OS/GPU/drivers, Intel Mac's 4.5 LTS limit and executable path |
Older Blender cannot reproduce a .blend |
Preserve the original and rebuild from actual meshes in the supported version; do not assume newer features work in older releases |
| Smoke script fails partway | Read the error and versions; partial output is not success. Remove personal paths before sharing logs |
Reviewing official instructions is different from executing them on every OS/CPU/version. A box generation/reopen pass is not a render, complete-model manufacturing, slicing, fit/retention/tipping test or compatibility guarantee. Check your own environment, then follow the physical trial gates.