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.

BOOST
From plugin
ninehills-skills
27910 skills8 agents
Install
$ npx -y skills add ninehills/skills --skill morph-ppt-3d --agent claude-code

How 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.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
Ships withninehills-skills

A curated collection of agent skills for Claude Code and compatible agent platforms.

Get the whole plugin

Other skills on ninehills-skills.