/morph-ppt-3d
3D Morph PPT — extends morph-ppt with GLB model insertion, cinematographic camera, model-content layout, and enriched visual design system.
$ npx -y skills add iOfficeAI/OfficeCLI --skill morph-ppt-3d --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/morph-ppt-3d
Context preview
The summary Claude sees to decide when to auto-load this skill.
3D Morph PPT — extends morph-ppt with GLB model insertion, cinematographic camera, model-content layout, and enriched visual design system.
SKILL.md
morph-ppt-3d.SKILL.mdname: morph-ppt-3d
description: 3D Morph PPT — extends morph-ppt with GLB model insertion, cinematographic camera, model-content layout, and enriched visual design system.
Morph PPT — 3D Extension
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.
---
Setup
If `officecli` is missing:
- **macOS / Linux**: `curl -fsSL https://d.officecli.ai/install.sh | bash`
- **Windows (PowerShell)**: `irm https://d.officecli.ai/install.ps1 | iex`
Verify with `officecli --version` (open a new terminal if PATH hasn't picked up). If install fails, download a binary from https://github.com/iOfficeAI/OfficeCLI/releases.
Use when
- User wants a `.pptx` with a `.glb` 3D model and Morph transitions.
---
3D Model Compatibility Gate (before generation)
1. Only `.glb` is supported. If user provides `.fbx` / `.obj` / `.blend` / `.usdz` / `.gltf`, ask them to convert to `.glb` first (e.g. via Blender export). 2. If user has no model, follow the **Model Discovery Flow** below. 3. All files (`.glb`, `.pptx`, build script) must be in the same working directory.
---
Model Discovery Flow (when user has no model)
When the user gives a topic but no `.glb` file, **proactively help them find a matching model** instead of just listing websites.
Step 1: Understand the topic and suggest model direction
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:"
Step 2: Search for models (agent-driven)
**Proactively search for models on behalf of the user.** Don't just list websites — actually find candidates.
**Search strategy (try in order):**
1. **Web search** for free GLB models matching the topic:
Search: "[topic keyword] 3d model glb free download"
Example: "fox 3d model glb free download"
2. **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()
"3. **Poly Pizza** (direct GLB download, all free):
# Search results page — parse for download links
curl -s "https://poly.pizza/api/search/[keyword]" 2>/dev/null
4. **Khronos 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.
Step 3: Present candidates to user for confirmation
Show the user 2-3 model options with:
- Model name and source
- Preview link (Sketchfab URL or description)
- License info
- Why this model fits their topic
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.
Step 4: Download the confirmed model
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:
- File exists and is not empty
- File extension is `.glb`
- File size is under 50MB
If 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
Read more
name: morph-ppt-3d description: 3D Morph PPT — extends morph-ppt with GLB model insertion, cinematographic camera, model-content layout, and enriched visual design system.
Morph PPT — 3D Extension
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.
---
Setup
If `officecli` is missing:
- **macOS / Linux**: `curl -fsSL https://d.officecli.ai/install.sh | bash`
- **Windows (PowerShell)**: `irm https://d.officecli.ai/install.ps1 | iex`
Verify with `officecli --version` (open a new terminal if PATH hasn't picked up). If install fails, download a binary from https://github.com/iOfficeAI/OfficeCLI/releases.
Use when
- User wants a `.pptx` with a `.glb` 3D model and Morph transitions.
---
3D Model Compatibility Gate (before generation)
1. Only `.glb` is supported. If user provides `.fbx` / `.obj` / `.blend` / `.usdz` / `.gltf`, ask them to convert to `.glb` first (e.g. via Blender export). 2. If user has no model, follow the **Model Discovery Flow** below. 3. All files (`.glb`, `.pptx`, build script) must be in the same working directory.
---
Model Discovery Flow (when user has no model)
When the user gives a topic but no `.glb` file, **proactively help them find a matching model** instead of just listing websites.
Step 1: Understand the topic and suggest model direction
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:"
Step 2: Search for models (agent-driven)
**Proactively search for models on behalf of the user.** Don't just list websites — actually find candidates.
**Search strategy (try in order):**
1. **Web search** for free GLB models matching the topic:
Search: "[topic keyword] 3d model glb free download" Example: "fox 3d model glb free download"
2. **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()
"3. **Poly Pizza** (direct GLB download, all free):
# Search results page — parse for download links curl -s "https://poly.pizza/api/search/[keyword]" 2>/dev/null
4. **Khronos 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.
Step 3: Present candidates to user for confirmation
Show the user 2-3 model options with:
- Model name and source
- Preview link (Sketchfab URL or description)
- License info
- Why this model fits their topic
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.
Step 4: Download the confirmed model
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:
- File exists and is not empty
- File extension is `.glb`
- File size is under 50MB
If 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
OfficeCLI is the world's first and the best Office suite designed for AI agents. Give any AI agent full control over Word, Excel, and PowerPoint — in one line of code. Open-source. Single binary. No Office installation. No dependencies. Works everywhere.
Repo: iOfficeAI/OfficeCLI
Other skills on officecli.
- /morph-ppt
Use this skill when the user wants a .pptx with smooth cross-slide animation — PowerPoint Morph transitions, Keynote-style continuous motion, shapes that grow / move / rotate as the slide advances. Trigger on: 'morph', 'morph transition', 'smooth transition', 'continuous
Open skill - /officecli-academic-paper
Use this skill to build academic-style .docx output: journal / conference / thesis chapters carrying formal citation style (APA, Chicago, IEEE, MLA), numbered equations, figure & table cross-references, footnotes/endnotes, bibliography, or multi-column journal layout. Trigger
Open skill - /officecli-data-dashboard
Use this skill to build a multi-element Excel dashboard — Dashboard sheet on open, multiple formula-driven KPI cards, multiple charts, sparklines, and conditional formatting — from CSV or tabular input. Trigger on: 'dashboard', 'KPI dashboard', 'analytics dashboard', 'executive
Open skill - /officecli-docx
Use this skill any time a .docx file is involved -- as input, output, or both. This includes: creating Word documents, reports, letters, memos, or proposals; reading, parsing, or extracting text from any .docx file; editing, modifying, or updating existing documents; working
Open skill - /officecli-financial-model
Use this skill when the user wants to build a financial model — 3-statement model, DCF valuation, LBO, SaaS unit economics, sensitivity / scenario analysis, debt schedule, or fundraising projections — in Excel. Trigger on: 'financial model', '3-statement model', 'P&L + BS + CF',
Open skill - /officecli-pitch-deck
Use this skill when the user is building a fundraising / investor pitch deck — seed, Series A / B / C, convertible note, SAFE round, strategic raise. Trigger on: 'pitch deck', 'investor deck', 'Series A deck', 'Series B deck', 'Series C deck', 'fundraising deck', 'seed pitch',
Open skill

