what is funscript

How Interactive Toy Sync Works: A Technical Introduction to Funscript

Contents

With the growth of VR video and interactive toys, you may have seen the word “Funscript” more and more often.

  • How does the device actually stay in sync with the video?
  • What’s the real difference between single-axis and multi-axis motion?

This article explains the mechanics of synchronization from a neutral, technical point of view so that even first-time users can understand what is happening under the hood.

1. What Is Funscript?

At its core, Funscript is a simple text format that describes motion over time.

Each action in a Funscript consists of:

  • at – time from the start of the video (in milliseconds)
  • pos – relative position of the device (0–100)

A minimal example:

{
  "version": "1.0",
  "inverted": false,
  "range": 90,
  "actions": [
    { "pos": 0,   "at": 100 },
    { "pos": 100, "at": 500 }
  ]
}

Here:

  • pos is the relative position of the moving part (0–100 %)
  • at is the elapsed time since the video started (ms)

As long as the video timeline and the Funscript timeline are aligned, the device can move in perfect sync with the on-screen action.

2. The Three Pillars of Sync: Player, Script, Device

Any synchronized playback always needs these three components:

① Playback player

The player manages video playback and script timing, then sends commands to the device:

  • runs on PC, smartphone, or VR headset
  • keeps track of the current video time
  • reads positions from one or more Funscript files and outputs them to the device

② Funscript (motion data)

This is the actual motion data:

  • A Funscript file usually describes one axis of motion
  • Multi-axis motion is typically represented by multiple Funscript files—for example:
    • Stroke.funscript
    • Pitch.funscript
    • Roll.funscript
    • Twist.funscript

③ Device

The interactive device physically executes the motion defined in the scripts:

  • from simple single-axis strokers
  • to advanced multi-axis robots with several degrees of freedom

Only when all three work together—player, Funscript, and device—do you get smooth, synchronized motion.

3. Single-Axis vs Multi-Axis Funscript (and How Devices Use Them)

Before talking about hardware differences, it’s useful to clarify how single-axis and multi-axis motion is represented at the script level.

Single-axis Funscript

  • Contains motion data for one axis only, usually up/down Stroke
  • This is the most common type of script on video sites
  • Many players and devices are built around this format

In this setup, the device simply interpolates pos values over time for a single actuator.

Multi-axis Funscript

Multi-axis motion takes the same idea and extends it across multiple files:

  • Stroke (up/down)
  • Pitch (tilt forward/back)
  • Roll (tilt left/right)
  • Surge (slide forward/back)
  • Sway (slide left/right)
  • Twist (rotation), etc.

Each axis has its own Funscript file, and the player keeps them synchronized on the same timeline.

This gives you:

  • more natural, “human-like” motion
  • richer three-dimensional patterns
  • but also higher complexity when creating and playing back scripts

How this maps to devices

Now the hardware side:

  • Single-axis devices
    • Implement one physical degree of freedom (Stroke only)
    • Can use only a single Funscript file
    • Easy to set up and widely supported
    • Examples: The Handy, Kiiroo Onyx+, Fleshlight Launch
  • Multi-axis devices
    • Implement several axes (Stroke + Pitch / Roll / Twist, etc.)
    • Can respond to multiple Funscript files at once
    • Provide more three-dimensional, lifelike motion
    • Fewer manufacturers, more advanced user base
    • Examples: FunOSR, SyncBot, MiraBot and other OSR-derived robots

Because high-quality multi-axis scripts are still rare, some modern apps use the phone’s gyroscope to add multi-axis assistance on top of a normal single-axis Funscript. This approach lets users enjoy more 3D motion even with the huge library of existing single-axis content.

4. Playback Environments: PC, VR, and Smartphone

How you use Funscript in practice depends heavily on your playback environment.
Here are the three major approaches.

① PC + dedicated player software

Pros

  • Supports both single-axis and multi-axis Funscripts
  • Advanced settings for:
    • delay / offset
    • scaling and limits
    • smoothing / filtering
    • custom axis mapping and game integration
  • Ideal for power users and multi-axis robots

Cons

  • Requires a PC
  • Initial setup can be complex for beginners

Representative software

  • MultiFunPlayer (MFP)
  • Funscript Player and similar desktop tools
  • MiraPlay Web – browser-based control and sync for OSR-style and MiraBot devices, without installing extra PC software

② Standalone VR headsets (e.g., Quest series)

Pros

  • Highest level of immersion
  • Wireless viewing and head tracking
  • Some apps can output motion data directly to supported devices

Cons

  • Requires a supported VR headset
  • For multi-axis devices, control often still goes through a PC bridge for best performance

Representative apps

  • HereSphere
  • DeoVR

③ Smartphone-only playback apps

A rapidly growing category is smartphone apps that:

  • play VR or regular videos
  • load Funscripts
  • connect directly to your device over Bluetooth (BLE)

Pros

  • No PC or dedicated VR headset required
  • Everything runs on a single smartphone
  • Easy to set up, beginner-friendly
  • Some manufacturers provide these apps for free

Cons

  • Feature set can vary widely between apps
  • For advanced use cases (e.g., complex game integration), PC software is still more flexible
  • Only a few apps currently support true multi-axis control

Representative apps

  • Handy Universe
  • Lovense Remote
  • MiraPlay AiO – designed for OSR-style multi-axis robots such as MiraBot; can play single-axis scripts and add multi-axis motion using the phone’s gyro

5. Creating Your Own Funscripts

If you want to go beyond consuming existing scripts, you can create your own.
There are two main approaches: manual editing and motion capture.

Manual editing with OpenFunscripter (OFS)

The most widely used editor today is OpenFunscripter (OFS).

Main features:

  • Manual keyframe editing on a timeline
  • Smooth motion shaping using Bézier curves
  • Support for multi-axis tracks
  • Immediate export and test playback

However, crafting high-quality multi-axis scripts by hand is very time-consuming. Turning a full video into a polished multi-axis script purely through manual editing is rarely practical.

Motion capture and automated recording

To reduce the workload, some creators turn to motion capture:

  • Using 3D tools like Blender to animate a model and export multi-axis data
  • Or using dedicated tools that record controller movement in real time

An example of the latter is the Multi-Funscript Recorder for T-Joy:

  • Connects a T-Joy style controller
  • Records your hand movement live as multi-axis motion
  • Outputs multiple Funscript files (Stroke, Pitch, Roll, etc.) at once

This kind of tool is especially useful for OSR-style robots and devices like MiraBot, where several axes are available and real-time capture can produce more organic, human-like motion patterns.

These workflows can generate impressive multi-axis results, but they still require some technical understanding and experimentation.

6. Practical Tips for a Comfortable Experience

Regardless of your device or player, a few best practices will greatly improve comfort and safety:

  • Secure mounting
    Use a proper mount or stand so the device doesn’t move or tip over during use.
  • Avoid extreme speeds and strokes
    Aggressive settings can increase noise, wear, and discomfort. Start conservative and adjust gradually.
  • Align video and script precisely
    Use delay/offset settings in your player until the motion matches the visual timing.
  • Stabilize your connection
    Whether wired or wireless, a stable connection is essential for consistent sync.
  • Use smoothing when needed
    If a script feels jerky or noisy, enable smoothing or filtering options in your player to make motion more fluid — this is especially important for multi-axis robots.

For multi-axis devices in particular, the smoothness and coordination between axes has a huge impact on perceived quality.


Summary

  • Funscript is essentially a list of time (at) and position (pos) instructions.
    One axis usually corresponds to one file, and multi-axis motion uses multiple files in parallel.
  • Synchronization relies on three elements working together:
    player software, Funscript data, and the interactive device.
  • Single-axis content is abundant and easy for beginners,
    while multi-axis offers richer, three-dimensional motion but requires compatible hardware, tools, and scripts.
  • Common playback environments include:
    • PC players (e.g. MultiFunPlayer, Funscript Player, MiraPlay Web) for maximum flexibility
    • VR apps (HereSphere, SLR, DeoVR) for immersion
    • smartphone apps (Handy Universe, Lovense Remote, MiraPlay AiO) for convenience and wireless use
  • For creators, tools like OpenFunscripter and motion-capture solutions such as the Multi-Funscript Recorder for T-Joy make it possible to design custom motion profiles, from simple single-axis scripts to complex multi-axis patterns.

By understanding how Funscript, players, and devices work together, you can choose the right setup—whether that’s a simple single-axis toy or a full multi-axis robot such as MiraBot—and get the most out of synchronized interactive experiences.

Share this article on SNS
Shopping Cart