OFS-SE - OpenFunscripter Sashimi Edition (fork of OFS 3.2 with audio scripting, multi-axis, devices, 3D sim)

Hey everyone. OFS hasn’t had an update since 3.2, and I mostly script to music, so I picked it up and kept going. This is OFS-SE (Sashimi Edition). Everything you’re used to in OFS is still there, plus scripting to music, multi-axis tools, device playback and a 3D simulator.

Download

OFS-SE v1.0.2 for Windows (64-bit)
Unzip it wherever you like and run OFS-SE.exe. Newer versions will always be on the releases page. If you’re on Linux, you can build it from source; the steps are on GitHub.

Source and issues: GitHub - shadowsashimi/ofs-se: A tool to create funscripts · GitHub


What’s new

Scripting to music

Music is the main reason I started this fork. In the original OFS, the audio waveform kept shifting around whenever you panned or zoomed the timeline, so you couldn’t trust it to line up with the beat. That’s fixed, and the waveform now stays locked in place at any zoom level.

You can also open an audio file and script straight to it, no video needed.

  • Script to audio - mp3, m4a, aac, ogg, opus, flac, wav, wma and aiff all work, and the waveform shows up as soon as the file opens
  • Tempo detection - gets the BPM per chapter, splits a mix into tracks where the music changes, and finds the downbeat. If it gets a chapter wrong, you can double it, halve it or just type the tempo in
  • Tempo grid - follows whichever chapter you’re in, and points snap to it when you place them with the mouse
  • Beat fill - fills a chapter or a whole mix with strokes on the beat. Use a plain stroke, or save a passage you like as a pattern and stamp it at any tempo
  • Depth from loudness - scales your strokes by how loud the audio is, so the quiet verse stays shallow and the drop hits harder
  • Beat ticks and a bass waveform - shows where each hit lands, and you can filter it down to just the low end, where the beat usually is
  • Chapters - mark out the song by hand or let it find them, then rename them all based on where they fall and their tempo

Editing

  • Multi-lane timeline - every loaded script gets its own lane. Tick a lane to edit it alongside the active script, or hit the eye to hide it
  • Multi-axis generator - makes twist, roll and pitch from your stroke points, and shows you a preview before applying anything
  • Script check - finds the strokes a device can’t keep up with, slows them down, and exports a copy that stays within your limits
  • Right-click menu on the timeline with the edits that make sense for your selection
  • Better selections - drag a selection around as one piece, and extend, simplify and invert keep it selected afterwards
  • No video needed - start a script on a blank timeline of whatever length you want
  • Funscript 2.0 and 1.1 - reads and writes both
  • Fixed points getting silently lost while dragging, and Simplify carrying spacing over from one selection to the next

Devices

  • OSR2 and SR6 over serial, wifi or Bluetooth. All six axes run from their own scripts, and each axis gets its own travel limits, speed cap and auto-home
  • Intiface Central - plays your script on anything Intiface supports
  • Safety note on first connect - device playback hasn’t been tested on every device, firmware or connection yet, so the first time you hit Connect, you’ll get a short note on trying it safely before anything moves

:warning: Heads up if you connect a device: device playback is new and hasn’t been tested on every device, firmware or connection type, so the motion might not always be what you expect. Before using it on yourself, try it with nobody attached. Start with a low speed cap and narrow travel limits, and keep the power switch, or the Stop the devices button in the Devices panel, within reach. Use it at your own risk, and please let me know if anything moves the wrong way.

3D simulator

  • A 3D stroker that moves with every loaded axis at once (stroke, surge, sway, twist, roll and pitch), the same way a TCode machine would
  • Cutaway view, a camera you can turn, fit to video, and a toggle back to the old 2D bars
  • Axes are picked up from the file names, so name.roll.funscript is roll. Video names with extra dots in them, like Site.com - clip.mp4, work fine now. Thanks to @zeroscripts for reporting that one
Other changes

Interface

  • Sashimi theme - grey with pink highlights, and it’s the default now. The stock Dark and Light themes are still under Options → Preferences → Application
  • Heatmap colours now match the ones here on EroScripts
  • A new toolbar for the things you change most while scripting, playback controls on the time bar, and a Preferences window with a sidebar
  • Menus show each item’s shortcut and close with Escape. The keys window is now a proper table, and rebinding works again

Reliability

  • There’s a crash handler that writes out a stack trace, and a watchdog that dumps one if the app hangs. If it crashes on you, please attach that file when you report it

Feedback

This is the first public release, so I’m sure there’s stuff I’ve missed. Bug reports and feature requests are welcome here or on GitHub Issues.

Big thanks to the original OpenFunscripter author and contributors, since none of this would exist without their work. It’s GPLv3, same as OFS.

Thanks as well to @Yoooi for MultiFunPlayer. The TCode device output is ported from it (MIT licensed), including the command format, the send rate and the per-axis safety limits.

10 Likes

Thanks for sharing! Really liking that 3D simulator.
winnie-gu-hanfu

1 Like

Looks intriguing!
I’ve never felt like the flaws of OFS discouraged me from scripting based on beats, since it’s very simple work compared to scripting to action and you don’t need to spend a lot of time on it. Still, these changes sound very neat and I’ll try it out.

1 Like

FINALLY someone fixed the waveform!!! <3

Trying it out now but a couple things I noticed right off the bat:

switching to either light or dark theme doesn’t change all the colors of some of the new menus:

Makes light theme especially hard to see some buttons:

Also I don’t much like the bars at the top being there and couldn’t find a way to move/disable them. Mostly I just want it to look and function the same way as the original OFS where all the stuff at the top could be enabled/disabled and showed up in the side bar on the right. Any chance of reverting the ‘rounded’ look too? Also:

(this bothers me)

I was also looking for the ‘tempo detection’ feature but clicked around and couldn’t figure out where it is. I tried creating a chapter and using ‘auto tempo from chapters’ but it didn’t seem to do anything.

Another thing I just found:
In the previous OFS you could select a group of points and use Shift+arrow keys to move them all but in this version it just seems to delete all the selected points when I try to do this.

I also can’t figure out how to “drag a selection around as one piece, and extend, simplify and invert keep it selected afterwards” nevermind I figured it out, it’s shift+click. Love this feature!

1 Like

Thanks for the feedback. All of it is fixed for the next release thanks to Claude :smile: :

  • Themes: the new controls now follow Light and Dark too, so Light is readable again.
  • Rounded corners: untick Options > Preferences > Application > Rounded corners for the square look, in any theme.
  • Top bars: the toolbar is now a normal panel. Right-click it to show its tab, then drag it anywhere, including the right sidebar. You can also hide it from the same menu or View > Toolbar. With it hidden, the Mode panel shows those choices again.
  • Tempo detection: pick the Tempo grid and the Mode panel now has a “Detect tempo and chapters” button. Auto tempo did nothing before because hand-made chapters start without a tempo. It now tells you that and offers to measure the chapter.
1 Like

Thank you so much for developing such a useful 3D simulator! I really appreciate your work on it. I was wondering if it might be possible to add an option to adjust the upper and lower limits of L0. It would be very helpful if I could limit the simulator’s travel range to the area shown in the image below. Thank you for considering this suggestion!

1 Like

If possible, I’d also love to see some new shortcuts added, such as:

Ctrl + 1–9 → sets Action to 5, 15, 25, 35, 45, 55, 65, 75, 85, 95, respectively.

Thank you very much for your work! :heart: I also noticed that the Chapters feature doesn’t seem to be working properly when I use it. Has anyone else experienced the same issue?

1 Like

Please disregard my question about the Chapters issue. I found out that it was simply because I hadn’t moved the component window up enough :joy:. Sorry for the confusion!

1 Like

I’ll look into this. Thanks for your feedback!

Edit: Please see simulator settings for stroke limit.


And also the requested shortcuts have been added.

Download here

1 Like

I have been enjoying using this recently. It’s a good improvement over the original. I just wish that bookmarks and chapters were visible under the video timeline like in the original, but other than that, it’s very good.

you can click the line right here to resize it and show the chapters

Is there a way to drag all loaded multi-axis script together? Everything I try only moves one lane even if all are checked :thinking:

Trying to shift a multi-axis script to match a video without a intro

Also oddly enough I am unable to move the simulator off the middle of the screen (3840 x 2160 screen resolution) or around in general