skills/articulated-toys/SKILL.md
Generate print-in-place articulated toys for 3D printing. Creates STL files of segmented creatures (snakes, dragons, caterpillars, fish, robots) with hook-and-axle joints that move freely right off the print bed — no assembly required. Supports wings, legs, and branching body structures. Can also convert existing static 3D models (STL/OBJ/3MF) into articulated print-in-place toys.
npx skillsauth add tusosos/manus-knowledge-base articulated-toysInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Generate print-in-place articulated toys for 3D printing. Creates STL files of segmented creatures with hook-and-axle joints that move freely right off the print bed — no assembly required. Now supports wings (membrane and feathered), legs with ball-socket joints, advanced creature presets, and conversion of existing 3D models into articulated toys.
Use this skill when the user wants to:
sudo pip3 install numpy-stl numpy matplotlib trimesh scipy shapely networkx rtree manifold3d
python3 /home/ubuntu/skills/articulated-toys/scripts/generate_articulated.py \
--preset winged_dragon --output winged_dragon.stl
python3 /home/ubuntu/skills/articulated-toys/scripts/generate_articulated.py --list
Available presets:
| Preset | Description | Wings | Legs |
|--------|-------------|-------|------|
| snake | Classic segmented snake | - | - |
| dragon | Spiky dragon (no wings) | - | - |
| caterpillar | Round caterpillar | - | - |
| robot_worm | Blocky robot worm | - | - |
| fish | Scaled fish with fin tail | - | - |
| lizard | Long ridged lizard | - | - |
| centipede | Multi-segment centipede | - | - |
| winged_dragon | Dragon with membrane wings and 4 clawed legs | membrane | 4 |
| griffin | Eagle-headed with feathered wings and 4 legs | feathered | 4 |
| phoenix | Fire bird with large feathered wings | feathered | 2 |
| bat | Small creature with membrane wings | membrane | 2 |
| pegasus | Horse-like with feathered wings and hooves | feathered | 4 |
| winged_wolf | Wolf with feathered wings and paws | feathered | 4 |
python3 /home/ubuntu/skills/articulated-toys/scripts/generate_articulated.py \
--preset winged_dragon --segments 15 --body-diameter 20 --wing-span 50 --output big_dragon.stl
Create a JSON config file (see templates/custom_creature_config.json) and run:
python3 /home/ubuntu/skills/articulated-toys/scripts/generate_articulated.py \
--config /path/to/config.json --output custom_creature.stl
JSON config supports wings and legs sections:
{
"num_segments": 12,
"body_diameter": 18,
"head_type": "dragon",
"tail_type": "pointed",
"wings": {
"type": "membrane",
"span": 40,
"chord": 20,
"attach_segment": 2,
"num_ribs": 5,
"taper": 0.35,
"sweep_angle": 20
},
"legs": {
"count": 4,
"paw_type": "claws",
"length_factor": 1.2,
"front_segment": 3,
"rear_segment": 8
}
}
Convert any static 3D model (STL, OBJ, 3MF) into an articulated print-in-place toy:
python3 /home/ubuntu/skills/articulated-toys/scripts/articulate_model.py \
--input model.stl --output model_articulated.stl
With custom parameters:
python3 /home/ubuntu/skills/articulated-toys/scripts/articulate_model.py \
--input model.stl --segments 10 --joint-size 4 --clearance 0.5 --output model_articulated.stl
Analyze a model before converting:
python3 /home/ubuntu/skills/articulated-toys/scripts/articulate_model.py \
--input model.stl --analyze
python3 /home/ubuntu/skills/articulated-toys/scripts/preview_articulated.py \
--input model.stl --output preview.png
| Flag | Description | Example |
|------|-------------|---------|
| --input FILE | Input 3D model (STL/OBJ/3MF) | --input dragon.stl |
| --output FILE | Output articulated STL | --output dragon_flex.stl |
| --segments N | Number of segments (auto if not set) | --segments 8 |
| --axis x/y/z | Articulation axis (auto-detected) | --axis x |
| --joint-size N | Ball joint radius in mm (auto-scaled) | --joint-size 4 |
| --clearance N | Joint clearance in mm (default: 0.4) | --clearance 0.5 |
| --socket-thickness N | Socket wall thickness (default: 1.5) | --socket-thickness 2 |
| --method TYPE | Segmentation: uniform or waist | --method waist |
| --analyze | Only analyze model, don't convert | --analyze |
The waist method detects narrow cross-sections in the model and places joints at natural articulation points. The uniform method spaces joints evenly along the principal axis.
| Flag | Description | Example |
|------|-------------|---------|
| --segments N | Number of body segments | --segments 12 |
| --body-diameter N | Body diameter in mm | --body-diameter 20 |
| --body-length N | Segment length in mm | --body-length 12 |
| --clearance N | Joint clearance in mm | --clearance 0.5 |
| --taper N | Segment taper ratio (0.7-1.0) | --taper 0.85 |
| --head TYPE | Head type | --head dragon |
| --tail TYPE | Tail type | --tail fin |
| --decoration TYPE | Surface decoration | --decoration scales |
| --scale N | Scale entire model | --scale 1.5 |
| --wing-type TYPE | Wing type (membrane/feathered) | --wing-type feathered |
| --wing-span N | Wing span in mm | --wing-span 50 |
| --no-wings | Remove wings from preset | --no-wings |
| --no-legs | Remove legs from preset | --no-legs |
snake, dragon, caterpillar, robot, fish, wolf, eagle, none
pointed, round, fin, rattle, fan, none
membrane — Bat/dragon style with ribs and thin membrane surfacefeathered — Bird/angel style with overlapping feather shapesclaws (3-toed), hoof, paw (round with toes), webbed (aquatic)
spikes, ridges, plates, scales
--clearance 0.5 for complex geometryreferences/presets_reference.md for full parameter documentationtemplates/custom_creature_config.json for custom config templategenerate_articulated.py with appropriate preset/configpreview_articulated.py to generate PNG previewarticulate_model.py --analyze to inspect the modelarticulate_model.py with appropriate parameterspreview_articulated.py to generate PNG previewtools
Download video and audio from YouTube and other platforms with yt-dlp. Use when a user asks to download YouTube videos, extract audio from videos, download playlists, get subtitles, download specific formats or qualities, batch download, archive channels, extract metadata, embed thumbnails, download from social media platforms (Twitter, Instagram, TikTok), or build media ingestion pipelines. Covers format selection, audio extraction, playlists, subtitles, metadata, and automation.
development
Download YouTube videos with customizable quality and format options. Use this skill when the user asks to download, save, or grab YouTube videos. Supports various quality settings (best, 1080p, 720p, 480p, 360p), multiple formats (mp4, webm, mkv), and audio-only downloads as MP3.
development
Use this skill any time a spreadsheet file is the primary input or output. This means any task where the user wants to: open, read, edit, or fix an existing .xlsx, .xlsm, .csv, or .tsv file (e.g., adding columns, computing formulas, formatting, charting, cleaning messy data); create a new spreadsheet from scratch or from other data sources; or convert between tabular file formats. Trigger especially when the user references a spreadsheet file by name or path — even casually (like "the xlsx in my downloads") — and wants something done to it or produced from it. Also trigger for cleaning or restructuring messy tabular data files (malformed rows, misplaced headers, junk data) into proper spreadsheets. The deliverable must be a spreadsheet file. Do NOT trigger when the primary deliverable is a Word document, HTML report, standalone Python script, database pipeline, or Google Sheets API integration, even if tabular data is involved.
development
Use when you have a spec or requirements for a multi-step task, before touching code