Claude
Skills
Sign in
Back

morph-ppt-3d

Included with Lifetime
$97 forever

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

Design

What this skill does


# 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):

   ```bash
   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):

   ```bash
   # 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):
   ```bash
   # 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:

```bash
# 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 model for a demo version first?"

### Step 5: When user says "anything" / "you decide" / "just make a demo"

**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:
>
> 1. Tech/Product — headphones, phone, robot...
> 2. Animal/Character — cute pet, cartoon character...
> 3. Architecture/Space — building, interior, city...
> 4. Food/Lifestyle — dishes, everyday objects...
> 5. 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.

### Step 6: When user wants to find models themselves

Give specific website links with step-by-step guidance:

> **Recommended 3D model websites:**
>
> 1. **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
> 2. **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
> 3. **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
> 4. **Free3D** (general free model site)
>    - Link: https://free3d.com/3d-models/glb
>    - Note: check the license type before use
> 5. **TurboSquid Free** (pro model site free section)
>    - Link: https://www.turbosquid.com/Search/3D-Models/free/glb
>
> After downloading, share the .glb file with me. If the download is a .gltf folder, use Blender to convert it to .glb.

### Step 7: When user gives keywords and asks agent to search
Files: 1
Size: 25.1 KB
Complexity: 28/100
Category: Design

Related in Design