Skip to content
Content
Skill

/morph-ppt-3d

3D Morph PPT — extends morph-ppt with GLB model insertion, cinematographic camera, model-content layout, and enriched visual design system.

From plugin
officecli
33k11 skills

Claude Code

$ npx -y skills add iOfficeAI/OfficeCLI --skill morph-ppt-3d --agent claude-code

SKILL.md

morph-ppt-3d.SKILL.md
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

Read more
@iofficeai
Ships withofficecli

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.

Stars on GitHub

Momentum

stars in total
32.9k
Star history of iOfficeAI/OfficeCLI on GitHub, a chart by star-history.com

Other skills on officecli.

morph-ppt

morph-ppt

Use this skill when the user wants a .pptx with smooth cross-slide animation — PowerPoint Morph transitions, Keynote-style…

@iofficeai@iofficeaiInstall Skill
officecli-docx

officecli-docx

Use this skill any time a .docx file is involved -- as input, output, or both. This includes: creating Word documents, reports,…

@iofficeai@iofficeaiInstall Skill
officecli-pitch-deck

officecli-pitch-deck

Use this skill when the user is building a fundraising / investor pitch deck — seed, Series A / B / C, convertible note, SAFE…

@iofficeai@iofficeaiInstall Skill

More skills from other plugins.

prompt-lookup

prompt-lookup

Activates when the user asks about AI prompts, needs prompt templates, wants to search for prompts, or mentions prompts.chat. Use…

@gh-f@gh-fInstall Skill
ppt-master

ppt-master

AI-driven presentation workflow for generating editable PPTX decks and slides, reconstructing page visuals, creating reusable…

@hugohe3@hugohe3Install Skill
manim-video

manim-video

Production pipeline for mathematical and technical animations using Manim Community Edition. Creates 3Blue1Brown-style explainer…

@browser-use@browser-useInstall Skill

Questions about morph-ppt-3d.

Which coding agents can use morph-ppt-3d?
morph-ppt-3d installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.