{
  "title": "Ping-pong GIF",
  "human_url": "https://happytails.ai/en/image-tools/ping-pong-gif/",
  "agent_url": "https://happytails.ai/agents/en/image-tools/ping-pong-gif/",
  "language": "en",
  "markdown_url": "https://happytails.ai/en/image-tools/ping-pong-gif.md",
  "content": "Ping-pong GIF\nMake a GIF play forwards and then backwards for a back-and-forth animation.\nHow can we improve this tool?\nReport a problem or share an idea.\nPlease leave out private information. Your message and the tool name go to our team via PostHog.\nHow to use Ping-pong GIF\nChoose a GIF and run the tool. It keeps the original sequence, then adds the interior frames in reverse order. Preview the result before downloading.\nThe first and last frames are not duplicated at the turning points. Every frame keeps its display time. The original loop count is preserved; a GIF that played once will still play once.\nUseful next steps\nGIF maker\nReverse GIF\nChange GIF speed\nMake a back-and-forth GIF\nChoose a GIF and run the tool. It keeps the original sequence, then adds the interior frames in reverse order. Preview the result before downloading.\nNo extra pause at the turn\nThe first and last frames are not duplicated at the turning points. Every frame keeps its display time. The original loop count is preserved; a GIF that played once will still play once.\nLimits and privacy\nProcessing stays in your browser. Both the input and output must fit within 120 frames and 16 million decoded pixels. Input files may be up to 20 MiB and 1,920 pixels per side. Re-encoding can slightly change colors. Very short delays may play differently across browsers. Your original is unchanged.",
  "content_format": "text/plain",
  "visibility": "public",
  "links": [
    {
      "name": "GIF maker",
      "url": "https://happytails.ai/en/image-tools/gif-maker/"
    },
    {
      "name": "Reverse GIF",
      "url": "https://happytails.ai/en/image-tools/reverse-gif/"
    },
    {
      "name": "Change GIF speed",
      "url": "https://happytails.ai/en/image-tools/change-gif-speed/"
    }
  ],
  "tool": {
    "id": "ping-pong-gif",
    "category": "image-tools",
    "built": true,
    "requirements": "Processing stays in your browser. Both the input and output must fit within 120 frames and 16 million decoded pixels. Input files may be up to 20 MiB and 1,920 pixels per side. Re-encoding can slightly change colors. Very short delays may play differently across browsers. Your original is unchanged.",
    "implementation": {
      "fields": [],
      "files": true,
      "multiple": false,
      "input": false,
      "accept": ".gif,image/gif",
      "maxFileBytes": 20971520,
      "note": "Runs entirely in your browser. Up to 20 MiB, 120 frames and 16 million decoded pixels in total. GIF colors may change slightly when re-encoded; transparency is binary. Original timing and loop count are preserved except when you change speed. Very short delays may play differently across browsers. Adds the interior frames in reverse order without repeating the two turning-point frames.",
      "experience": {
        "automatic": false,
        "single": false,
        "inputMaxLength": 1000000,
        "inputMode": "text",
        "label": "Your text",
        "placeholder": "Type or paste your input…",
        "help": "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"
    }
  },
  "markdown": "# Ping-pong GIF\n\n- Human page: https://happytails.ai/en/image-tools/ping-pong-gif/\n- Markdown: https://happytails.ai/en/image-tools/ping-pong-gif.md\n- Structured JSON: https://happytails.ai/agents/en/image-tools/ping-pong-gif/index.json\n- Visibility: public\n\n## Tool capabilities\n\n| Property | Value |\n| --- | --- |\n| Tool ID | `ping-pong-gif` |\n| Category | image-tools |\n| Implementation | Registered implementation. Registration alone is not a production-quality guarantee. |\n| Browser execution | Use the visible action or interactive controls. |\n| Browser processing | Browser; see tool notes for network behavior. |\n| HTTP API | Not callable through HTTP. |\n| Browser-agent interface | run_current_tool |\n\n### Implementation notes\n\nRuns entirely in your browser. Up to 20 MiB, 120 frames and 16 million decoded pixels in total. GIF colors may change slightly when re-encoded; transparency is binary. Original timing and loop count are preserved except when you change speed. Very short delays may play differently across browsers. Adds the interior frames in reverse order without repeating the two turning-point frames.\n\n### Inputs and settings\n\nNo free-text input is required. Use the file inputs and/or settings below.\n\nAccepted browser files: `.gif,image/gif`. Choose one file.\n\nBrowser file-input limit: 20971520 bytes in total. HTTP limits can differ.\n\nNo additional settings are declared for this tool.\n\n### Browser-agent workflow\n\n1. Open the human page in a browser that supports WebMCP.\n2. Discover the interface exposed by that page; use its actual schema.\n3. Select files on the page first when the tool requires files.\n4. Call `run_current_tool` with valid input and settings.\n5. Inspect the returned result or error and the displayed output. Retrieve files from the displayed download links.\n\nCalls do not automatically copy or download results. Browser permissions still apply. Interface availability alone is not proof of successful execution.\n\n### Planning specification\n\nProcessing stays in your browser. Both the input and output must fit within 120 frames and 16 million decoded pixels. Input files may be up to 20 MiB and 1,920 pixels per side. Re-encoding can slightly change colors. Very short delays may play differently across browsers. Your original is unchanged.\n\nThis describes intended requirements. Use the implementation notes, interface schema and observed output to determine current support.\n\n### Complete machine-readable capability record\n\n```json\n{\n  \"id\": \"ping-pong-gif\",\n  \"category\": \"image-tools\",\n  \"built\": true,\n  \"requirements\": \"Processing stays in your browser. Both the input and output must fit within 120 frames and 16 million decoded pixels. Input files may be up to 20 MiB and 1,920 pixels per side. Re-encoding can slightly change colors. Very short delays may play differently across browsers. Your original is unchanged.\",\n  \"implementation\": {\n    \"fields\": [],\n    \"files\": true,\n    \"multiple\": false,\n    \"input\": false,\n    \"accept\": \".gif,image/gif\",\n    \"maxFileBytes\": 20971520,\n    \"note\": \"Runs entirely in your browser. Up to 20 MiB, 120 frames and 16 million decoded pixels in total. GIF colors may change slightly when re-encoded; transparency is binary. Original timing and loop count are preserved except when you change speed. Very short delays may play differently across browsers. Adds the interior frames in reverse order without repeating the two turning-point frames.\",\n    \"experience\": {\n      \"automatic\": false,\n      \"single\": false,\n      \"inputMaxLength\": 1000000,\n      \"inputMode\": \"text\",\n      \"label\": \"Your text\",\n      \"placeholder\": \"Type or paste your input…\",\n      \"help\": \"Up to 1,000,000 characters. Review the settings before running.\",\n      \"action\": null\n    },\n    \"mode\": \"explicit\",\n    \"interactive\": false\n  },\n  \"execution\": \"Browser interface\",\n  \"api\": null,\n  \"browser_agent\": {\n    \"supported\": true,\n    \"name\": \"run_current_tool\",\n    \"discovery\": \"WebMCP on the human page in a supporting browser\",\n    \"verification\": \"See audit/API-AUDIT.md; availability is not verification\"\n  }\n}\n```\n\n## Page guide\n\nMake a GIF play forwards and then backwards for a back-and-forth animation.\n\nHow can we improve this tool?\n\nReport a problem or share an idea.\n\nPlease leave out private information. Your message and the tool name go to our team via PostHog.\n\n### How to use Ping-pong GIF\n\n1. Choose a GIF and run the tool. It keeps the original sequence, then adds the interior frames in reverse order. Preview the result before downloading.\n2. The first and last frames are not duplicated at the turning points. Every frame keeps its display time. The original loop count is preserved; a GIF that played once will still play once.\n\n## Useful next steps\n\n- [GIF maker](https://happytails.ai/en/image-tools/gif-maker/) ([Markdown](https://happytails.ai/en/image-tools/gif-maker.md))\n\n- [Reverse GIF](https://happytails.ai/en/image-tools/reverse-gif/) ([Markdown](https://happytails.ai/en/image-tools/reverse-gif.md))\n\n- [Change GIF speed](https://happytails.ai/en/image-tools/change-gif-speed/) ([Markdown](https://happytails.ai/en/image-tools/change-gif-speed.md))\n\n## Make a back-and-forth GIF\n\nChoose a GIF and run the tool. It keeps the original sequence, then adds the interior frames in reverse order. Preview the result before downloading.\n\n### No extra pause at the turn\n\nThe first and last frames are not duplicated at the turning points. Every frame keeps its display time. The original loop count is preserved; a GIF that played once will still play once.\n\n### Limits and privacy\n\nProcessing stays in your browser. Both the input and output must fit within 120 frames and 16 million decoded pixels. Input files may be up to 20 MiB and 1,920 pixels per side. Re-encoding can slightly change colors. Very short delays may play differently across browsers. Your original is unchanged.\n"
}