Baoyu Design
DejavuMoe/Smoji
Create polished design artifacts as self-contained HTML: UI mockups, interactive prototypes, wireframes, landing pages, dashboards, app screens, mobile apps, slide decks (a.k.a.
3D Morph PPT - extends morph-ppt with GLB model insertion, cinematographic camera, model-content layout, and enriched visual design system.
$ npx skills add FerroxLabs/wayland --skill morph-ppt-3d -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install FerroxLabs/wayland morph-ppt-3d --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/FerroxLabs/wayland.git skills-src && mkdir -p .claude/skills && cp -r skills-src/src/process/resources/skills/morph-ppt-3d .claude/skills/morph-ppt-3d && 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 "morph-ppt-3d" agent skill from https://github.com/FerroxLabs/wayland/tree/main/src/process/resources/skills/morph-ppt-3d into .claude/skills/morph-ppt-3d/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "morph-ppt-3d", 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/FerroxLabs/wayland/tree/main/src/process/resources/skills/morph-ppt-3dType 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 FerroxLabs/wayland --skill morph-ppt-3d -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install FerroxLabs/wayland morph-ppt-3d --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/FerroxLabs/wayland.git skills-src && mkdir -p .agents/skills && cp -r skills-src/src/process/resources/skills/morph-ppt-3d .agents/skills/morph-ppt-3d && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "morph-ppt-3d" agent skill from https://github.com/FerroxLabs/wayland/tree/main/src/process/resources/skills/morph-ppt-3d into .agents/skills/morph-ppt-3d/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "morph-ppt-3d", 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 FerroxLabs/wayland --skill morph-ppt-3d -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install FerroxLabs/wayland morph-ppt-3d --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/FerroxLabs/wayland.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/src/process/resources/skills/morph-ppt-3d .cursor/skills/morph-ppt-3d && 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 "morph-ppt-3d" agent skill from https://github.com/FerroxLabs/wayland/tree/main/src/process/resources/skills/morph-ppt-3d into .cursor/skills/morph-ppt-3d/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "morph-ppt-3d", 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/FerroxLabs/wayland.git --path src/process/resources/skills/morph-ppt-3d--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 FerroxLabs/wayland --skill morph-ppt-3d -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install FerroxLabs/wayland morph-ppt-3d --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/FerroxLabs/wayland.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/src/process/resources/skills/morph-ppt-3d .gemini/skills/morph-ppt-3d && 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 "morph-ppt-3d" agent skill from https://github.com/FerroxLabs/wayland/tree/main/src/process/resources/skills/morph-ppt-3d into .gemini/skills/morph-ppt-3d/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "morph-ppt-3d", 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 FerroxLabs/wayland morph-ppt-3dInstalls 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 FerroxLabs/wayland --skill morph-ppt-3d -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/FerroxLabs/wayland.git skills-src && mkdir -p .github/skills && cp -r skills-src/src/process/resources/skills/morph-ppt-3d .github/skills/morph-ppt-3d && 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 "morph-ppt-3d" agent skill from https://github.com/FerroxLabs/wayland/tree/main/src/process/resources/skills/morph-ppt-3d into .github/skills/morph-ppt-3d/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "morph-ppt-3d", 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 FerroxLabs/wayland --skill morph-ppt-3d -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install FerroxLabs/wayland morph-ppt-3d --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/FerroxLabs/wayland.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/src/process/resources/skills/morph-ppt-3d .opencode/skills/morph-ppt-3d && 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 "morph-ppt-3d" agent skill from https://github.com/FerroxLabs/wayland/tree/main/src/process/resources/skills/morph-ppt-3d into .opencode/skills/morph-ppt-3d/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "morph-ppt-3d", 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.
morph-ppt-3d3D Morph PPT - extends morph-ppt with GLB model insertion, cinematographic camera, model-content layout, and enriched visual design system.
Morph Ppt 3D is an agent skill from FerroxLabs/wayland. 3D Morph PPT - extends morph-ppt with GLB model insertion, cinematographic camera, model-content layout, and enriched visual design system.
Its SKILL.md is about 6.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files.
It sits in Frontend & Design, covering PowerPoint presentations and UI design. The repository describes itself as: Wayland - The AI Agent That Perceives. Reasons. Acts. Evolves. The licence is AGPL-3.0.
10 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 4c030c7. 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:
curlpython3From the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
sketchfab.compoly.pizzaraw.githubusercontent.comapi.sketchfab.comAlso links to:
free3d.comturbosquid.comFrom 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.
Morph Ppt 3D loads about 6.4k tokens when it runs. Until then it costs about 38 tokens; SKILL.md has 2,486 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 FerroxLabs/wayland at commit 4c030c7, republished under its AGPL-3.0 licence (© FerroxLabs). 2,486 words, ~6,394 tokens.
.claude/skills/morph-ppt-3d/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.This skill extends morph-ppt. All morph-ppt rules (naming, ghosting, design, verification) apply in full.
This file covers 3D-specific additions and an enriched design system combining morph-ppt aesthetics with concrete color palettes, font pairings, and layout quality guardrails.
Wayland Desktop supplies a checksum-pinned native officecli runtime. Do not install, update, download, or replace it from this skill. Native authoring requires the exact verified 1.0.136 version. If officecli --version or the required officecli --help surface fails, stop and use Wayland's reinstall/update recovery path; never bootstrap mutable code or silently switch to hosted-credit generation.
.pptx with a .glb 3D model and Morph transitions..glb is supported. If user provides .fbx / .obj / .blend / .usdz / .gltf, ask them to convert to .glb first (e.g. via Blender export)..glb, .pptx, build script) must be in the same working directory.When the user gives a topic but no .glb file, proactively help them find a matching model instead of just listing websites.
Based on the user's topic, suggest what kind of 3D model would work:
| Topic type | Model suggestion | Example |
|---|---|---|
| Product/brand | The actual product or a similar one | "coffee brand" → coffee cup, coffee machine, bean |
| Animal/character | The animal or mascot | "fox mascot" → fox 3D model |
| Architecture/space | Building, room, or structure | "new office" → office building, interior |
| Vehicle/transport | The vehicle itself | "EV launch" → car, motorcycle, bicycle |
| Food/cooking | The dish or ingredient | "Japanese food" → sushi platter, ramen bowl |
| Tech/gadget | The device | "phone launch" → phone, tablet, laptop |
| Nature/science | The subject | "solar system" → planet, sun, earth |
| Abstract concept | A symbolic object | "teamwork" → puzzle pieces, gears, bridge |
Tell the user: "Your topic is [X]. I suggest using a 3D model of [description]. Here are some free sources to find one:"
Proactively search for models on behalf of the user. Don't just list websites - actually find candidates.
Search strategy (try in order):
Web search for free GLB models matching the topic:
Search: "[topic keyword] 3d model glb free download"
Example: "fox 3d model glb free download"Sketchfab API (no auth needed for search):
curl -s "https://api.sketchfab.com/v3/search?type=models&q=[keyword]&downloadable=true&archives_flavours=glb" \
| python3 -c "
import json, sys
data = json.load(sys.stdin)
for m in data.get('results', [])[:5]:
print(f\"Name: {m['name']}\")
print(f\"URL: https://sketchfab.com/3d-models/{m['slug']}-{m['uid']}\")
print(f\"Likes: {m.get('likeCount', 0)}, License: {m.get('license', {}).get('label', 'unknown')}\")
print()
"Poly Pizza (direct GLB download, all free):
# Search results page - parse for download links
curl -s "https://poly.pizza/api/search/[keyword]" 2>/dev/nullKhronos glTF-Sample-Assets (guaranteed to work, always available):
# Direct download - no auth, no API, always works
curl -L -o model.glb "https://raw.githubusercontent.com/KhronosGroup/glTF-Sample-Assets/main/Models/[ModelName]/glTF-Binary/[ModelName].glb"Available models: Duck, Fox, Avocado, BrainStem, CesiumMan, DamagedHelmet, FlightHelmet, Lantern, Suzanne, WaterBottle, etc.
Show the user 2-3 model options with:
Example response:
Based on your topic "fox mascot", here are some models I found:
1. Fox (Khronos sample)
Direct download, guaranteed compatible
Why: clean fox model, good for mascot/character decks
2. Low Poly Fox (Poly Pizza)
URL: https://poly.pizza/m/xxx
License: CC0 (completely free)
Why: low-poly style, good fit for clean minimal design
3. Cartoon Fox (Sketchfab)
URL: https://sketchfab.com/3d-models/fox-xxx
License: CC BY 4.0 (free, commercial use ok)
Why: expressive face, high detail
Which one do you want? I'll download it and start building.Wait for user confirmation before downloading. Do not download without asking.
After user confirms, download directly:
# For Sketchfab (if user has the download URL)
curl -L -o model.glb "[download_url]"
# For Khronos samples (always works)
curl -L -o model.glb "https://raw.githubusercontent.com/KhronosGroup/glTF-Sample-Assets/main/Models/Fox/glTF-Binary/Fox.glb"After download, verify:
.glbIf Sketchfab requires login to download, tell the user:
"This model requires a Sketchfab login to download. You can grab the .glb file from the page and share it with me. Or I can use a Khronos sample model for a demo version first?"
Don't just grab a random model. First guide the user to clarify their PPT topic:
Sure! I'll handle the model - but let me confirm the topic direction first so the model matches the content:
- Tech/Product - headphones, phone, robot...
- Animal/Character - cute pet, cartoon character...
- Architecture/Space - building, interior, city...
- Food/Lifestyle - dishes, everyday objects...
- Other - just tell me your idea
Pick a direction, or just give me a topic keyword.
After user confirms a direction, THEN search and recommend models.
Give specific website links with step-by-step guidance:
Recommended 3D model websites:
- Sketchfab (largest 3D model platform)
- Link: https://sketchfab.com/search?q=[keyword]&type=models&downloadable=true
- Filter steps: search keyword → check "Downloadable" → format "glTF" → sort by "Likes"
- When downloading, select glTF (.glb) format
- Note: some models require free registration to download
- Poly Pizza (all free low-poly)
- Link: https://poly.pizza/
- All CC0 licensed - click Download to get .glb directly
- Best for: minimalist or cartoon-style presentations
- Sketchfab popular categories
- Animals: https://sketchfab.com/search?q=animal&type=models&downloadable=true
- Food: https://sketchfab.com/search?q=food&type=models&downloadable=true
- Tech: https://sketchfab.com/search?q=gadget&type=models&downloadable=true
- Architecture: https://sketchfab.com/search?q=architecture&type=models&downloadable=true
- Free3D (general free model site)
- Link: https://free3d.com/3d-models/glb
- Note: check the license type before use
- TurboSquid Free (pro model site free section)
After downloading, share the .glb file with me. If the download is a .gltf folder, use Blender to convert it to .glb.
Remind about token cost before searching:
I can search for you, but web searches use extra tokens. Would you prefer:
A. I search - I use the Sketchfab API and recommend 2-3 options (uses a few tokens) B. Self-service - I give you search links and filter steps, you pick and share with me (no extra tokens)
A or B?
If user chooses A, proceed with Step 2 (agent-driven search). If user chooses B, proceed with Step 6 (self-service guidance).
Always remind before confirming download: "Please check the model license before downloading. CC0 / CC BY = free to use; CC BY-NC = non-commercial only."
morph-ppt provides the base design rules. This section adds concrete palettes, font pairings, and layout quality rules from PPT Creator to give the AI more variety and stronger guardrails.
Choose a palette that matches the topic mood - don't default to generic blue.
| Palette | Primary | Secondary | Accent | Body Text | Muted/Caption |
|---|---|---|---|---|---|
| Coral Energy | F96167 (coral) | F9E795 (gold) | 2F3C7E (navy) | 333333 | 8B7E6A |
| Midnight Executive | 1E2761 (navy) | CADCFC (ice blue) | FFFFFF | 333333 | 8899BB |
| Forest & Moss | 2C5F2D (forest) | 97BC62 (moss) | F5F5F5 (cream) | 2D2D2D | 6B8E6B |
| Charcoal Minimal | 36454F (charcoal) | F2F2F2 (off-white) | 212121 | 333333 | 7A8A94 |
| Warm Terracotta | B85042 (terracotta) | E7E8D1 (sand) | A7BEAE (sage) | 3D2B2B | 8C7B75 |
| Berry & Cream | 6D2E46 (berry) | A26769 (dusty rose) | ECE2D0 (cream) | 3D2233 | 8C6B7A |
| Ocean Gradient | 065A82 (deep blue) | 1C7293 (teal) | 21295C | 2B3A4E | 6B8FAA |
| Teal Trust | 028090 (teal) | 00A896 (seafoam) | 02C39A (mint) | 2D3B3B | 5E8C8C |
| Sage Calm | 84B59F (sage) | 69A297 (eucalyptus) | 50808E | 2D3D35 | 7A9488 |
| Cherry Bold | 990011 (cherry) | FCF6F5 (off-white) | 2F3C7E (navy) | 333333 | 8B6B6B |
Rules:
FFFFFF for copy, Muted for captions../../styles/INDEX.md - 50+ visual styles organized by mood (dark, light, warm, vivid, bw). Read style.md for design philosophy, build.sh for implementation reference. Learn the approach, do not copy coordinates verbatim| Header Font | Body Font | Best For |
|---|---|---|
| Georgia | Calibri | Formal business, finance |
| Arial Black | Arial | Bold marketing, product launches |
| Calibri | Calibri Light | Clean corporate, minimal |
| Cambria | Calibri | Traditional professional |
| Trebuchet MS | Calibri | Friendly tech, startups |
| Impact | Arial | Bold headlines, keynotes |
| Palatino | Garamond | Elegant editorial, luxury |
| Consolas | Calibri | Developer tools, technical |
H4 - Body text minimum 16pt: All body text, card content, and bullet points must be >= 16pt. "Content doesn't fit" is not an excuse - reduce text, split slides, or reduce card count instead. Exceptions: chart axis labels (<=12pt), short sublabels (<=14pt, max 5 words), footnotes.
H6 - Dark background contrast:
When slide background brightness < 30% (e.g. 1E2761, 36454F, 000000), ALL body text, card content, chart labels, and icon fills MUST use white (FFFFFF) or near-white (brightness > 80%). Never use mid-gray or muted colors as body text on dark backgrounds.
H7 - Speaker notes required: Every content slide (not title/closing) MUST have speaker notes. Use:
officecli add deck.pptx '/slide[N]' --type notes --prop text="..."Every 3 content slides, at least 1 must contain a non-text visual element:
| Visual type | Implementation |
|---|---|
| Icon in colored circle | ellipse shape + centered text/number overlay |
| Colored block | preset=roundRect with fill |
| Large stat number | size=64, bold=true with small label below |
| Chart | --type chart (column/pie/line) |
| Gradient background | background=COLOR1-COLOR2-180 |
| Shape composition | circles + connectors for diagrams |
Text-only slides are only allowed for: quotes, code examples, pure tables.
morph_clone_slide copies the model as frozen XML. The cloned model cannot Morph.
Each slide must call add --type 3dmodel independently with the same name prop.
⚠️ CRITICAL: If you clone a slide that already has a 3D model, the old model XML is copied too. This creates TWO model3d elements with the same name on the new slide. PowerPoint cannot handle this conflict and will delete the model content during repair.
If you must clone a slide for scene actors, immediately remove the cloned model before adding a new one:
# After cloning slide 1 to slide 2:
officecli remove deck.pptx '/slide[2]/model3d[1]' # remove the frozen clone
officecli add deck.pptx '/slide[2]' --type 3dmodel ... # add fresh modelRecommended approach: Do NOT clone slides with 3D models at all. Create all slides empty first, then add models fresh on each.
# Slide 1
officecli add deck.pptx '/slide[1]' --type 3dmodel \
--prop path=model.glb --prop 'name=!!model-hero' \
--prop x=16cm --prop y=1cm --prop width=16cm --prop height=16cm \
--prop roty=0
# Slide 2
officecli add deck.pptx '/slide[2]' --type 3dmodel \
--prop path=model.glb --prop 'name=!!model-hero' \
--prop x=0.5cm --prop y=1cm --prop width=18cm --prop height=17cm \
--prop roty=50| Property | What it does | Notes |
|---|---|---|
x, y | Position on slide | Standard slide coordinates |
width, height | Frame size | Model renders inside this frame |
name | Shape name | Must be identical across slides for Morph |
roty | Y-axis rotation (degrees) | Primary storytelling axis |
rotx | X-axis tilt (degrees) | Range -25 to +40. See Camera Language section |
rotz | Z-axis roll (degrees) | Rarely needed |
meterPerModelUnit - auto-computed from GLB bounding boxpreTrans - auto-computed for model centeringcamera depth/position - auto-computed to fit the modelraw-set on any 3D transform parameterThe model must feel like the protagonist of the presentation, not a sidebar decoration. Text supports the model; the model does not decorate the text.
Adjacent slides must have a model area ratio >= 1.5x or <= 0.67x.
Compute area as width × height. If slide N model is 16×15=240 cm², slide N+1 must be >= 360 or <= 160.
Never use similar sizes on consecutive slides. This is the single most important rule for visual energy.
| Size tier | Width | Height | Area (approx) | When to use |
|---|---|---|---|---|
| XL (bleed) | 28-36cm | 22-28cm | 600-1000 | Close-up, model extends beyond slide edges |
| L (hero) | 18-24cm | 15-19cm | 270-456 | Title, closing, dramatic moments |
| M (split) | 13-17cm | 12-16cm | 156-272 | Standard content pages with text |
| S (accent) | 5-10cm | 5-10cm | 25-100 | Data-heavy pages, model as icon |
A - Model right, content left (content pages) Content at x=1-14cm. Model at x=15-20cm, width 14-18cm.
B - Model left, content right (alternate with A) Model at x=0-2cm, width 14-18cm. Content at x=18-32cm.
C - Model centered, text overlay (title/closing) Model centered large (18-24cm). Text at slide top or bottom.
D - Model small corner, content dominant (data pages) Model 5-10cm in any corner. Content fills the rest.
E - Model as backdrop (impact/quote pages) Model XL (28-36cm), centered, partially cropped by slide edges. Text overlaid directly on top of model area with high-contrast color. The model becomes the "canvas" - text lives inside the model's space.
# Pattern E: model fills slide as backdrop
officecli add deck.pptx '/slide[N]' --type 3dmodel \
--prop path=model.glb --prop 'name=!!model-hero' \
--prop x=-2cm --prop y=-2cm --prop width=38cm --prop height=24cm \
--prop roty=45 --prop rotx=10
# Text overlaid on model
officecli add deck.pptx '/slide[N]' --type shape \
--prop 'name=#sN-quote' --prop text="Key insight here" \
--prop x=3cm --prop y=7cm --prop width=28cm --prop height=5cm \
--prop size=44 --prop bold=true --prop color=FFFFFF --prop fill=noneF - Model bleed edge (transition/teaser pages) Model partially off-screen (negative x or y, or x+width > 33.87cm). Only part of the model visible - implies more beyond the frame.
# Pattern F: model bleeds off right edge
officecli add deck.pptx '/slide[N]' --type 3dmodel \
--prop path=model.glb --prop 'name=!!model-hero' \
--prop x=20cm --prop y=-1cm --prop width=24cm --prop height=22cm \
--prop roty=70Never repeat the same pattern on consecutive slides. Example:
Slide 1: C (centered hero, L)
Slide 2: E (backdrop close-up, XL) ← 1.5x+ area jump
Slide 3: A (model right, M) ← pull back
Slide 4: F (bleed edge, L) ← push in
Slide 5: D (small corner, S) ← dramatic pull back
Slide 6: B (model left, M) ← grow
Slide 7: C (centered closing, L) ← push inText boxes must never overlap each other or the model frame.
Rules:
y must account for the title's actual height, not the planned height. Safe formula: body_y = title_y + title_height + 0.5cm3-4cm, body 6-8cm, bullets 8-10cm.x=15cm, text x + width must be <= 14cm.y=0.5-2cm) or bottom (y=14-17cm), NOT in the vertical middle where the model lives (y=3-13cm).officecli get deck.pptx '/slide[N]' --depth 1
# Check: no two shapes share overlapping x/y/width/height rangesNot every model looks good when cropped. Bleed (Pattern E/F) works best for:
Bleed does NOT work for:
For character/animal models (like fox, duck, avocado): keep the full model visible on all slides. Use size changes (L→M→S) for rhythm instead of bleed cropping. Use rotx for angle variety instead.
Three tools work together: roty (orbit), rotx (tilt), width/height (zoom).
| Shot | Size | rotx | When |
|---|---|---|---|
| Establishing | L (18-24cm) | 0-5 | Title, intro, closing |
| Three-quarter beauty | L (16-20cm) | 5-10 | Hero, first impression |
| Close-up | XL (28-36cm), cropped | 0-10 | Feature highlight, detail |
| Bird's eye | M (13-17cm) | 25-40 | Structure, overview |
| Low angle | L (16-20cm) | -15 to -25 | Power, drama |
| Side profile | M (13-16cm) | 0 | Form factor, silhouette |
| Over-the-shoulder | S (5-10cm) | 10-15 | Data-heavy, model as accent |
Match the shot to what the slide talks about:
roty=0, XL croppedroty=90, Mroty=30, rotx=35, Mroty=20, rotx=-20, Lroty=60, S in corner| Slide | Shot | roty | rotx | Size | Pattern |
|---|---|---|---|---|---|
| 1 | Three-quarter beauty | 30 | 8 | L 20×17 | C |
| 2 | Close-up | 0 | 5 | XL 30×24 | E |
| 3 | Side profile | 80 | 0 | M 15×14 | A |
| 4 | Bird's eye | 120 | 35 | M 14×13 | B |
| 5 | Low angle | 170 | -20 | L 20×18 | F |
| 6 | Over-the-shoulder | 220 | 10 | S 8×7 | D |
| 7 | Establishing | 320 | 5 | L 20×17 | C |
In brief.md, add a Model Choreography Table:
| Slide | Pattern | Size Tier | Model x,y,w,h | roty | rotx |
|---|---|---|---|---|---|
| 1 | C | L | 7,0.5,20,17 | 30 | 8 |
| 2 | E | XL | -2,-2,38,24 | 0 | 5 |
| ... | ... | ... | ... | ... | ... |
Verify the area ratio rule (>= 1.5x between adjacent rows) before proceeding to build.
Since models cannot be cloned, the build script differs from standard morph-ppt:
!!scene-*) on slide 1, then clone slides for morph continuitymodel_positions = [
{"slide": 1, "x": "7cm", "y": "0.5cm", "w": "20cm", "h": "17cm", "roty": 30},
{"slide": 2, "x": "-2cm", "y": "-2cm", "w": "38cm", "h": "24cm", "roty": 0},
{"slide": 3, "x": "16cm", "y": "1cm", "w": "15cm", "h": "14cm", "roty": 80},
# ...
]
for pos in model_positions:
run("officecli", "add", OUTPUT, f"/slide[{pos['slide']}]", "--type", "3dmodel",
"--prop", f"path={MODEL}", "--prop", "name=!!model-hero",
"--prop", f"x={pos['x']}", "--prop", f"y={pos['y']}",
"--prop", f"width={pos['w']}", "--prop", f"height={pos['h']}",
"--prop", f"roty={pos['roty']}")After standard morph verification, additionally check:
model3d elementname propAll files must be in the same working directory.
Deliverables (exactly 4 files, no more):
.glb model file (the 3D model used in the deck).pptxbrief.mdDo NOT create additional files such as outline.md, quality-report.md, test-report.md, etc. All planning goes in brief.md, all verification output goes to stdout. Extra files confuse users.
Do not scatter model files across unrelated paths.
© FerroxLabs, AGPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file in src/process/resources/skills/morph-ppt-3d of FerroxLabs/wayland.
Open the folder on GitHubat commit 4c030c7
We found 4 copies of this SKILL.md (exact, near-identical or edited) in other folders, from 4 other GitHub owners. This page covers the copy in FerroxLabs/wayland, which our catalogue first saw on October 7, 2026.
Morph Ppt 3D 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 |
|---|---|---|---|---|---|---|
| Morph Ppt 3D this skillFerroxLabs/wayland | 608 | 4 repos | ~6.4k | Automated safety check: Pass | AGPL-3.0 | |
| Baoyu DesignDejavuMoe/Smoji | 114 | 1 repos | ~2.7k | Automated safety check: Pass | MIT | |
| Design Style Skillhaojing8312/WorkClaw | 141 | 1 repos | ~1.1k | Automated safety check: Pass | Apache-2.0 | |
| Design Pickepoko77-ai/design-diversity | 192 | — | ~3.7k | Automated safety check: Pass | Custom licence | |
| Visual Stylecalesthio/OpenMontage | 65k | — | ~1.5k | Automated safety check: Pass | AGPL-3.0 | |
| Expert DesignReJeCtAll/ExpertTeam-Codex | 113 | — | ~441 | Automated safety check: Pass | MIT |
DejavuMoe/Smoji
Create polished design artifacts as self-contained HTML: UI mockups, interactive prototypes, wireframes, landing pages, dashboards, app screens, mobile apps, slide decks (a.k.a.
haojing8312/WorkClaw
Select a consistent visual design system for PPT slides using radius/spacing style recipes.
epoko77-ai/design-diversity
Claude로 PPT·발표자료나 웹사이트를 만들 때, AI 기본 미감(보라 그라디언트·둥근 카드·천편일률)으로 수렴하지 않도록 80가지 검증된 디자인 스타일 팩 중 하나를 골라 그 명세대로 생성하게 하는 스킬.
calesthio/OpenMontage
Create, extract, and apply portable visual design systems via visual-style.md files.
ReJeCtAll/ExpertTeam-Codex
设计原型专家团入口。用于 Codex CLI 的 $expert-design 调用. An agent skill from ReJeCtAll/ExpertTeam-Codex.
daymade/claude-code-skills
Produces the reader-facing HTML artifact — report, dashboard, architecture view, data browser, or review workbench — evidence-backed, browser-verified.
FerroxLabs/wayland
Install, start, connect, and troubleshoot visualization companion projects for Aion/OpenClaw, with Star-Office-UI as the default recommendation.
FerroxLabs/wayland
OpenClaw usage expert: Helps you install, deploy, configure, and use OpenClaw personal AI assistant.
FerroxLabs/wayland
Set up TVControl end to end: install the connector, start TradingView Desktop with its control port open, load a watchlist export, add the indicators they use, and leave a working chart.
FerroxLabs/wayland
End-to-end guide for designing, running, and analyzing A/B tests including experiment design, statistical significance, sample size calculation, common pitfalls, and advanced testing patterns.
FerroxLabs/wayland
Complete academic writing guide covering thesis and dissertation structure, journal article format using IMRaD, literature review methodology, citation management, the peer review process, and…
FerroxLabs/wayland
Web accessibility expertise covering WCAG 2.2 conformance, audit methodology, ARIA patterns, keyboard navigation, screen reader testing, focus management, form accessibility, and automated vs manual…
Categories
3D Morph PPT - extends morph-ppt with GLB model insertion, cinematographic camera, model-content layout, and enriched visual design system. Morph Ppt 3D is an agent skill from FerroxLabs/wayland. 3D Morph PPT - extends morph-ppt with GLB model insertion, cinematographic camera, model-content layout, and enriched visual design system.
Morph Ppt 3D fits situations like: tasks that involve PowerPoint presentations; tasks that involve UI design.
Run `npx skills add FerroxLabs/wayland --skill morph-ppt-3d -a claude-code`. Or copy the skill folder (src/process/resources/skills/morph-ppt-3d in FerroxLabs/wayland) into .claude/skills/morph-ppt-3d in your project. Claude Code loads it when a task matches its description.
Run `npx skills add FerroxLabs/wayland --skill morph-ppt-3d -a codex`. Or copy the skill folder (src/process/resources/skills/morph-ppt-3d in FerroxLabs/wayland) into .agents/skills/morph-ppt-3d 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 FerroxLabs/wayland --skill morph-ppt-3d -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/morph-ppt-3d, .gemini/skills/morph-ppt-3d, .github/skills/morph-ppt-3d and .opencode/skills/morph-ppt-3d in your project.
Going by SKILL.md and its folder, Morph Ppt 3D needs the command-line tools its instructions call (curl and python3). Our summary lists: Python 3.
SKILL.md names 6 domains. In commands or code: sketchfab.com, poly.pizza, raw.githubusercontent.com and api.sketchfab.com; the agent is likely to contact these when it follows the instructions. As links in the text: free3d.com and turbosquid.com. 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.
Morph Ppt 3D is published under the AGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 6.4k tokens (SKILL.md is roughly 26k 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 Morph Ppt 3D: Baoyu Design (DejavuMoe/Smoji, 114 stars), Design Style Skill (haojing8312/WorkClaw, 141 stars), Design Pick (epoko77-ai/design-diversity, 192 stars) and Visual Style (calesthio/OpenMontage, 65k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
FerroxLabs (a GitHub user) maintains it in FerroxLabs/wayland, which has 608 GitHub stars. The repository holds 22 skills in this directory. The repository was last updated on October 6, 2026.
Source: FerroxLabs/wayland on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.