---
name: product-360
description: Product 360 / turntable videos - several angle shots of a product (from change_camera_angle, a photoshoot or cut-outs) orbit past each other in a smooth loop, or one transparent cut-out spins like a 3D card, on a studio backdrop with a floor shadow and reflection; MP4 loop plus an optional GIF and a contact sheet. Use when the user wants a 360 product view, a turntable, a spinning product, an e-commerce rotation clip, or an orbit / spin of a product for an ad or store page.
compatibility: Needs the Kenerate MCP server for cut-outs and angle views, and Python 3.9+ with Pillow and ffmpeg.
metadata:
  author: kenerate
  version: "1.1"
  kenerate-tools: "remove_background change_camera_angle generate_image generate_video generate_3d estimate_cost wait_for_generation"
---

# Product 360 (turntable)

Kenerate makes the angles and cut-outs; `scripts/turntable.py` builds the loop locally. Rules:
[references/KENERATE.md](references/KENERATE.md); models: [references/MODELS.md](references/MODELS.md).

## Choose the route (tell the user the trade-off)
1. **Views (best for real products):** `remove_background(image_url=<product photo>, mode="cutout")`, then
   `change_camera_angle(image_url=<cut-out>, ...)` for 3/4, side, back (4 views a call; `tool_guide("change_camera_angle")`
   for the angle options). 4-8 views give a convincing orbit. Run `estimate_cost` for the calls.
2. **Spin (free after the cut-out):** one cut-out (and optionally a back view) as a flat card spin. Good for labels,
   packaging fronts, flat products.
3. **AI video orbit (most realistic, priced per second):** `generate_video(image_url=<hero frame>, prompt="slow 360
   orbit around the product on a turntable, studio light, the product stays exactly the same", model="kenerate/seedance-2.0", audio=false, duration=5)`
   after `estimate_cost`. This skill isn't needed then (or use it for the GIF).
4. A real 3-D model: `generate_3d` (paid plan) - not rendered by this skill.

## Render
```
python <skill-dir>/scripts/turntable.py --views "<front>" "<34>" "<side>" "<back>" --seconds 6 --loops 2 --aspect 1:1 --gif
python <skill-dir>/scripts/turntable.py --spin "<cut-out>" [--back "<back view>"] --bg "radial:#FAFAFA,#D9DCE1" --aspect 4:5
```
- Views go in rotation order. Transparent PNGs look best (the script warns about opaque ones).
- `--bg` takes `radial:#a,#b` (studio sweep, default), `#hex`, `gradient:#a,#b` or a backdrop image.
- `--size`, `--reflection 0`, `--shadow 0` tune the stage. Show `*_preview.jpg` (eight steps of the turn).

## Progress and output
Steps: fetch → render frames (percent) → preview (+ GIF). Output: MP4 loop (silent), optional 480 px GIF.

## If something fails
Views of different sizes / crops jump: crop them the same way (or use `image-editing` with `pad=`). Flat-looking spin:
use the views route.

## Limits
Spin mode is a 2-D card flip, not true 3-D. No sound is added.
