Loop without snapping back

Pingpong plays a move forward, then back, so the loop doesn’t jump to the start.

Use this to:

  • Bounce an object without a second set of keys
  • Keep a loop feeling continuous
  • Flip facing on the return when something should lead the path

Enable Pingpong

  1. Select the layer and open the property you already animated.
  2. On that row, open the repeater menu and choose Pingpong.
  3. Drag the start and end handles to mark the part that should loop.
  4. Drag the tile-until handle to set how long the back-and-forth runs.

Keys outside that span stay on the timeline but don’t play while Pingpong is on. Set the menu back to none to turn it off. Your original keys stay.

Tip: Pingpong lives on the property row, not in the play controls. The timeline still plays 0–100% as usual.

Pingpong or Pingpong Travel

Pingpong reverses the move. If the layer is set to face along a path, it keeps that facing on the way back.

Pingpong Travel also reverses the move, and turns the layer around at the turnaround so it keeps facing the direction it’s going. Use this for arrows, vehicles, or anything that should lead the path.

Cycle and Offset are the other repeater modes. See repeaters.

Script console and WebMCP

The same steps run in Edit → Scripting and through WebMCP. Agents run a script with pureanim_run_script or window.pureanim.run().

WebMCP tools:

  • pureanim_get_state
  • pureanim_list_commands
  • pureanim_run_script
  • pureanim_set_time
api.setRepeaterMode({ layer, mode, prop });
api.setRepeaterSegment({ layer, start, end, tileUntil, prop });
api.setRepeaterTileUntil({ layer, tileUntil, prop });
api.clearRepeater({ layer, prop });
api.getRepeater({ layer, prop });

mode can be "none", "cycle", "pingpong", "pingpong-travel", or "offset". Omit prop to set the whole layer. Edit the original span, not the generated copies.

Full command reference: scripting.md. Agent loop: agents.md.