On Script Interpolation / Curved Strokes

My good idea is to add a ramp attribute to the action of Funscript, in addition to the at and pos attributes. Ramp can be a complex animation function such as cos, sin and so on, but this requires MFP and similar software to work together, and also requires the script writer to be very familiar with various animation functions

1 Like

Pop in to say that it’s been one year and I’ve found my way to approach this subject. In short, only add intermediate points when needing to represent a noticeable speed change. Also, prioritize compatibility.

There is a problem with Makima interpolation, where two equally high points can cause overshoot. In addition, the animation curve is complex, use tangent is elegant. Increasing two attribute values will increase the file capacity slightly, but it is definitely less than manual interpolation

I’ve been working on a custom OFS build that has full spline support.
Can be tracked on feature/funscript2 branch.
Builds can be checked here: Workflow runs · Yoooi0/OFS · GitHub
To edit tangents/weights you have to select one point and enable View -> Action editor

It allows you to do stuff like this:
https://imgur.com/2J2VdhT

There have also been talks about having full spline moves in OSR/SR firmware. If they get added they should allow for really smooth motion without having to interpolate the script at 333hz.
But it remains to be seen if this is a feasible to use, and what helpers need to be added to OFS for faster scripting.

1 Like

Did not read all posts but I think interpolation seldomly happens on both sides of the curve. Motion is mostly stopped abruptly, by direction change or bumping into something. I think that does not have to be interpolated as the change is very fast. On the other hand there are intermittent delaying motion like twist or just big mass movement and then delayed acceleration. Delayed acceleration has to be interpolated.
Was just making a script and I had to add interpolation but could not add it always. Sometimes the direction change was sudden, like foreseen and by choice (not interpolated), sometimes passive delayed acceleration (interpolated).

A tool I would use is post-interpolation of marked points only.