VR funscripts
A VR funscript is motion data synchronized to a VR video. FunGen generates and edits that motion on your computer; the headset player handles the immersive view. Correct projection, matching video timing and a working synchronization path all matter.
Updated 11 September 2026 · FunGen 2.6.3
Projection and stereo layout are different settings
Fisheye and equirectangular describe how a wide field of view is projected into an image. Side-by-side and top/bottom describe how left-eye and right-eye views are packed into the video frame. A clip can be both equirectangular and side-by-side.
| What you see | Check first |
|---|---|
| A circular or strongly curved view | The projection: fisheye versus equirectangular |
| Two images next to each other | Side-by-side stereo packing |
| Two images stacked vertically | Top/bottom stereo packing |
| A flat video incorrectly treated as immersive | 2D versus VR model and format selection |
FunGen detects supported layouts and unwarps VR for tracking. Inspect the result before generating the full video. If a filename or server's metadata is misleading, verify the format rather than assuming the first detected choice is right.
Create a script on the desktop first
- Open the VR video in FunGen and verify the detected layout.
- Select the VR model and run an included short AI preview on a representative section.
- Inspect the stroke timing on the timeline. With a valid Pro pass, generate the full video once the preview is useful.
- Review cuts, low-motion sections and transitions, then save the project and funscript.
For a whole-video VR Pro run, optional Extra axes can synthesize roll, pitch, twist, surge and sway. These are synthesized auxiliary movements, not pose measured from this video. Use the main stroke for a single-axis device or review and route extra tracks for supported multi-axis hardware.
The generation walkthrough explains scope, export and common AI issues. A headset is not needed for desktop generation.
Add the headset playback path
First confirm the script and device work in desktop playback. Then use FunGen's Streamer controls for the viewer or supported player bridge you intend to use. HereSphere and DeoVR have separate enable controls; their ports and the main streamer's settings must match the selected connection.
- Place the computer and headset on the same reachable local network.
- Enable the intended streamer or bridge and use the address and port shown by the app. Local discovery can help find it.
- Open the corresponding source in the headset player and choose the same video edit.
- Test play, pause and seeking with a short section. Confirm the device follows the player's actual position.
For a local workflow, allow the necessary app connection on your local network. A remote headset workflow is separate from ordinary local playback; do not expose the streamer's port publicly just to solve a local discovery problem.
Find the source of a playback problem
- The headset cannot find FunGen: check the streamer is running, the chosen bridge is enabled, the address and port are correct, and the network allows devices to reach one another.
- Video works but motion does not: check the script was loaded, device output is enabled and the player's synchronization connection is active.
- Motion has a constant delay: test the timing offset with a repeatable section.
- Delay changes after seeking or grows through playback: verify the video edit and synchronization path before applying a global offset.
- Video looks wrong: fix projection and stereo settings independently of the funscript. Motion data cannot repair a distorted image.
Keep the workflow easy to reproduce
Keep the video, main script and any companion axes together. Record the app version, headset player, bridge and device connection when a setup works. For server libraries, see Stash and XBVR integration.
Choose the guide for The Handy or OSR2 / SR6 for device-specific setup. Pro and the free evaluation limits are listed on Pricing.