# Stop motion capture studio

- Human page: https://happytails.ai/en/media-tools/stop-motion-capture-studio/
- Markdown: https://happytails.ai/en/media-tools/stop-motion-capture-studio.md
- Structured JSON: https://happytails.ai/agents/en/media-tools/stop-motion-capture-studio/index.json
- Visibility: public

## Tool capabilities

| Property | Value |
| --- | --- |
| Tool ID | `stop-motion-capture-studio` |
| Category | media-tools |
| Implementation | Registered implementation. Registration alone is not a production-quality guarantee. |
| Browser execution | Use the visible action or interactive controls. |
| Browser processing | Browser; see tool notes for network behavior. |
| HTTP API | Not callable through HTTP. |
| Browser-agent interface | run_current_tool |

### Implementation notes

Runs locally in your browser. Start the camera when you choose, or import 1 to 600 PNG, JPEG or WebP frames up to 20 MiB in total. Review frames before exporting; MP4 uses the browser video engine.

### Inputs and settings

No free-text input is required. Use the file inputs and/or settings below.

Accepted browser files: `.png,.jpg,.jpeg,.webp,image/png,image/jpeg,image/webp`. Multiple files are supported.

Browser file-input limit: 20971520 bytes in total. HTTP limits can differ.

| Setting | Meaning | Control type | Default | Constraints |
| --- | --- | --- | --- | --- |
| `sequence` | Frame order and holds (for example 1-10, 11x3, 12) | text | "" |  |
| `fps` | Frames per second | select | "12" | Allowed: 6, 8, 10, 12, 12.5, 15, 24, 25, 30 |
| `hold` | Frames each image is held by default | number | "1" | min=1 max=24 step=1 |
| `loops` | Loop count (0 loops forever) | number | "0" | min=0 max=100 step=1 |
| `format` | Animation format | select | "apng" | Allowed: apng, mp4 |

### Browser-agent workflow

1. Open the human page in a browser that supports WebMCP.
2. Discover the interface exposed by that page; use its actual schema.
3. Select files on the page first when the tool requires files.
4. Call `run_current_tool` with valid input and settings.
5. Inspect the returned result or error and the displayed output. Retrieve files from the displayed download links.

Calls do not automatically copy or download results. Browser permissions still apply. Interface availability alone is not proof of successful execution.

### Planning specification

From 1 to 600 PNG, JPEG or WebP images, each up to 20 MiB and 256 MiB in total, at most 7,200 output frames, output up to 1920 x 1080 pixels and a 20 MiB animation. Everything runs on your device and nothing is uploaded. Downloads: animated PNG or MP4, JSON report, timeline CSV and a ZIP of the frames with the timeline.

This describes intended requirements. Use the implementation notes, interface schema and observed output to determine current support.

### Complete machine-readable capability record

```json
{
  "id": "stop-motion-capture-studio",
  "category": "media-tools",
  "built": true,
  "requirements": "From 1 to 600 PNG, JPEG or WebP images, each up to 20 MiB and 256 MiB in total, at most 7,200 output frames, output up to 1920 x 1080 pixels and a 20 MiB animation. Everything runs on your device and nothing is uploaded. Downloads: animated PNG or MP4, JSON report, timeline CSV and a ZIP of the frames with the timeline.",
  "implementation": {
    "fields": [
      {
        "key": "sequence",
        "label": "Frame order and holds (for example 1-10, 11x3, 12)",
        "value": "",
        "type": "text"
      },
      {
        "key": "fps",
        "label": "Frames per second",
        "value": "12",
        "type": "select",
        "values": [
          "6",
          "8",
          "10",
          "12",
          "12.5",
          "15",
          "24",
          "25",
          "30"
        ]
      },
      {
        "key": "hold",
        "label": "Frames each image is held by default",
        "value": "1",
        "type": "number",
        "min": 1,
        "max": 24,
        "step": 1
      },
      {
        "key": "loops",
        "label": "Loop count (0 loops forever)",
        "value": "0",
        "type": "number",
        "min": 0,
        "max": 100,
        "step": 1
      },
      {
        "key": "format",
        "label": "Animation format",
        "value": "apng",
        "type": "select",
        "values": [
          "apng",
          "mp4"
        ]
      }
    ],
    "registrationFamily": "video-render-plan-reference",
    "presentation": "metrics",
    "files": true,
    "multiple": true,
    "input": false,
    "accept": ".png,.jpg,.jpeg,.webp,image/png,image/jpeg,image/webp",
    "maxFileBytes": 20971520,
    "inputErrorCode": "VIDEO_RENDER_PLAN_REFERENCE_TOO_LONG",
    "note": "Runs locally in your browser. Start the camera when you choose, or import 1 to 600 PNG, JPEG or WebP frames up to 20 MiB in total. Review frames before exporting; MP4 uses the browser video engine.",
    "experience": {
      "automatic": false,
      "single": false,
      "inputMaxLength": 1000000,
      "inputMode": "text",
      "label": "Frames",
      "placeholder": "Choose your stop-motion frames",
      "help": "Select every frame at once; file names set the numbering. Up to 1,000,000 characters. Review the settings before running.",
      "action": null
    },
    "mode": "explicit",
    "interactive": false
  },
  "execution": "Browser interface",
  "api": null,
  "browser_agent": {
    "supported": true,
    "name": "run_current_tool",
    "discovery": "WebMCP on the human page in a supporting browser",
    "verification": "See audit/API-AUDIT.md; availability is not verification"
  }
}
```

## Page guide

Assemble still frames into a stop-motion animation, with your own frame order and how long each frame is held, then download it with every frame in a ZIP.

### How to use Stop motion capture studio

1. Choose the frames you shot (PNG, JPEG or WebP).
2. Set the frame rate, the default hold and, if needed, a frame order such as 1-10, 11x3, 12.
3. Run the assembly and check the timeline in the report.
4. Download the animated PNG (or MP4), the timeline CSV and the frame ZIP.

How can we improve this tool?

Report a problem or share an idea.

Please leave out private information. Your message and the tool name go to our team via PostHog.

## Useful next steps

- [GIF maker](https://happytails.ai/en/image-tools/gif-maker/) ([Markdown](https://happytails.ai/en/image-tools/gif-maker.md))

- [Extract GIF frames](https://happytails.ai/en/image-tools/extract-gif-frames/) ([Markdown](https://happytails.ai/en/image-tools/extract-gif-frames.md))

- [APNG to GIF](https://happytails.ai/en/image-tools/apng-to-gif/) ([Markdown](https://happytails.ai/en/image-tools/apng-to-gif.md))

## Frame order and holds

Frames are numbered by file name, with numbers sorted by value. The order list accepts single frames (5), ranges (1-10), reversed ranges (10-1) and holds (11x3 shows frame 11 for three frame periods). Repeating the same frame in a row adds up its holds. An empty list plays every frame once with the default hold.

### Timing

Each image is stored once in the animated PNG with a delay of hold divided by the frame rate, kept as an exact fraction where APNG allows it. The loop count sets how often players repeat the animation; 0 repeats forever. MP4 output repeats held frames at the chosen constant frame rate.

### Camera and local frame review

Camera access is requested only when you choose Start camera. The last added frame is overlaid on the live preview; adjust its opacity to align the next capture. Captures join the same local frame list as imported images. Frame review follows the filename order, holds and frame rate in your settings. Stop camera, Clear or leaving the page releases the camera. If permission is denied or a camera is unavailable, you can still import frames. Camera availability depends on your browser, device and permissions.
