Just Another OFS Fork - WebP and AV1 Preview Generation + 3D Simulator

Hey All,

I’ve been seeing a few posts again on generating thumbnail previews and it’s motivated me to share my OFS fork I’ve recently finalized.

To Preface, this is vibe-coded. I don’t have the experience in C or C++. I tend to keep my Cs SHARP. The changes to the fork are relatively small so all of the root functionality of the app are untouched. I’ve simply expanded some sections of the app.


It’s still just OFS

Don’t have high expectations! This is just OFS with a few +1s. It’s still the same interface and scripting workflow. Nothing fancy has been added to the functionality.


So it’s just OFS?

Well… yes, it’s OFS with my personal workflow integrated to help create previews and multi-axis scripts. It’s based on Dimava’s Fork not the original.


Sooo what is different about it?

  • 3D Device Simulator is back in the editor.
    No more having to overlay a third-party application on your screen. You can disable or enable it on the fly inside of OFS! It has quite a few options to configure it as well.
  • Ability to export both quality script previews and previews alike. It supports AV1 with Audio and .WebPs with scalable resolutions. Again, no need for 3rd party software to make this possible.

Why did you bother doing this?

Well because someone pointed out how inefficient my previous process was. I won’t name names but they drove me to this point so I guess I should thank them.

I hated using the external 3D simulator because I tend to tab in and out while scripting (short attention span ftw) and it would continue to overlay on everything. I would have to move it off screen, reposition it back on screen etc… It became annoying so I thought.. why not just put it back into OFS. IT belongs there anyway.

In my script collection and in every post, I would manually edit each and every preview in Adobe Premiere and After Effects. Takes a lot of time to just prep a post.

My original workflow was:

  1. Input video into Premiere, cut various clips 2-3 normal previews, 1 thumbnail.
  2. Export to Adobe Media Encoder as h.264
  3. Re-encode to .WebPs via Ffmpeg
  4. Record OFS with 3d Simulator on screen.
  5. Upload to After Effects, crop screen
  6. Reimport to Premiere, cut it.
  7. Export to Adobe Media Encoder as h.264
  8. Re-encode to AV1 via Ffmpeg

Pretty bad huh, it produced quality but it is pretty innefficient.

Now its:

  1. Create chapters for previews
  2. Export as preview for each.
  3. Done.

Why not GIFs? (They are a thing of the past)

gif
Because GIFs suck.

No seriously just look at this:

Feature GIF Animated WebP
Color depth 256 colors 24-bit color (16.7 million colors)
Transparency 1-bit (on/off only) 8-bit alpha (smooth transparency)
Compression Lossless (LZW), inefficient Lossy or lossless, highly efficient
File size Large Typically 25–80% smaller
Animation Yes Yes
Partial frame updates Limited Efficient frame compression
Audio No No
Browser support Universal Supported by all major modern browsers
Created 1987 2010

There are only a few disadvantages of .WebPs and it all stems in the lack of support from older applications and editing software otherwise they absolutely crush GIFs.


3D Simulator

I’ve designed the 3D simulator to be a replica of the FunscriptSimulator3D model. There is a bit of variance in the community in terms of certain details but this new inhouse simulator has configuration enabling you to edit it to your liking.

Example:

I won’t bore you with the details, especially if you aren’t a multi-axis scripter. So I’ll hide it just below:

Configuration Options

All Settings:

Presets based on device:

Tongue:

Center fin:

Gizmo:

Stroke line:

Height value:

Scrolling affects zoom:


Animated Previews + Script Previews

I’ve implemented a new option in the View tab called: Animated Preview Export

This allows you to put in timestamps to use for the preview or optionally (but better) you can right click on a chapter and export preview (this auto fills the timestamps for you).

From here you can edit your export settings:

Then proceed to export it! It’s that easy. That’s all there really is to it.

I won’t bore you with all the details but if your interested check the guidelines and recommendations.

Here are some examples of what it can do:
.WebPs
example 2d

preview with 3d

AV1
Single Axis with 2D Simulator

Multi-axis with 3D Simulator

Guidelines + Recommendations

Here are the guidelines I follow for generating previews for my posts:

.WebPs

Regular Previews
Resolution: 640x360
FPS: 20-30 fps
Range: 8 - 15 seconds (12 seconds is my go-to)

Thumbnail Previews
Resolution: 160x90
FPS: 20-30 fps
Range: 20 - 30 seconds

AV1s
Script Previews
Resolution: Native (Lowest I’d go is 1280x720)
FPS: 20-30 fps
Range: 10 - 20 seconds

Compilation Previews

You can have OFS generate slices to compile together to create a compilation of your script!


Other Additonal Features

New Shortcuts

Ctrl + 1, 2, 3, 4, 5, 6, 7, 8, 9 sets action 5, 15, 25, 35, 45, 55, 65, 75, 85, 95

I’ve become a big believer in the power of 5s so these were necessary for my scripting but others might find them useful.

Custom Color Schemes + Presets

You can change the editors stroke lines to custom colors or you can swap between the 2 existing presets, Original OFS and Eroscripts (Fork). You can find these in Options => Preferences



Requirements

If you get an error for AV1 encoding as seen below follow these steps:

  1. Close OFS
  2. Navigate to %APPDATA%\OFS\OFS3_data\
  3. Delete ffmpeg.exe
  4. Open OFS
  5. Click Yes on the download prompted by OFS. (This goes out to the link above to download the full version of ffmpeg)
  6. Done!

Alternatively you can download from gyan.dev (get the full version) and extract it there, replacing the original ffmpeg.exe.


If you’re interested in checking it out you can find it here: Releases · SaekoM/OFS · GitHub

15 Likes

Thanks @SaekoM! I will need to check that out. It sounds very helpful.

I feel your pain :weary_face:. Well thanks for adding this.

1 Like


I kneel to SaekoM Supremacy

3 Likes

a cartoon character with a crown on his head

hope this helps. How’s that script index going? :eyes: :eyes: :eyes:

1 Like


It’s going… slow and steady… :blobcat_melttears::blobcat_melttears::blobcat_melttears::blobcat_melttears::blobcat_melttears:

1 Like

The real question is if it can be compiled for Linux… Have not had luck with that, so been sitting on a stash of vids I am wanting to script but can’t really do that the way I know how with OFS…

@VladTheImplier what scripting tool do you use since you are on linux

OFS

1 Like

Huh… Never used nix. I’ll look into it. Any specific fork I need to use?

basically any fork will be good enough. Eroscripts has a fork maintained by @Dimava

This is the fork I use:

2 Likes

I don’t know how I missed this post until now. Downloaded it right away!
Is there any way to change the line color, by any chance?
The colors below 100 and around 500–600 seem to have changed to completely different colors, which feels a bit uncomfortable/inconvenient to use.


before


after

1 Like

Currently there isn’t a way to do it in the app however, I could add this feature soon though.

Since this was based on Dimava’s fork, the colors you’re seeing now are the same colors as the site generated heat maps.

2 Likes

I checked Dimava’s GitHub and saw that the colors were changed in v4.
I really hope it gets updated soon!

I don’t know anything about computers, so I genuinely think programmers are so amazing.
Thank you so much for making this!

2 Likes


Sorry to bother you again, but I can export in webm, but AV1 export still isn’t working…I’ve updated FFmpeg to the latest full build and restarted OFS, but exporting to AV1 still fails.Could you please help me out with this?

+My bad, it turns out there was another FFmpeg file inside the OFS folder! Replacing that one fixed the issue. I’ll leave this comment here just in case anyone else runs into the same problem.

1 Like

:eyes:

2 Likes

Thank You Thank You Thank You Thank You
you are the GOAT!!!

3 Likes

This is soooo gooood!!!

(WickedR34) Made 2B Fucked - HMV 60FPS

Crisp 60fps 9 second and still less than 8mb…
So clean and shows every detail that I want to show!

Thank you so much for sharing this wizardry :sob:

2 Likes

If you upstream this we can merge it with our OFS.

5 Likes

Glad you like it, the powers of .webps are amazing!

One thing I’d like to point out that I haven’t mentioned, the preview generator only uses the active script in the timeline. Meaning you just have to make sure you click inside the script timeline you want to showcase before generating. If you click off of it during the rendering process it will switch.

Example of me clicking around while its rendering:
test

It was setup this way in case you had multiple variations of scripts you wanted to showcase but may cause unintended results if you didn’t know.

Generally I wouldn’t recommend continuing to work while its generating as the performance can drop.

2 Likes

Is it still being maintained? Once I get some time I could do it.