XaiJu
@CJ_Clippy
@CJ_Clippy

patreon


hello again

I usually post a progress report on Patreon on the 15th of every month. If I'm late, that means something is wrong. I'm three days late this time because I'm a little burnt out, and my mental health hasn't been great.

Long story short, my parent's dog died and I've been sad about it.

I'm continuing work on Futureporn, but I am going to take a few days to re-center myself.

Before I do that, let's talk about the past 30 days and what I've been working on.

Build system improvements

The build system is what generates thumbnails, does video transcoding, creates torrents, runs Lovense overlay detection, etc. I spent the most time working on this, because there were a lot of show-stopping flaws that needed to be addressed.

I'm doing video processing on my desktop computer because the build system contain lots of CPU intensive tasks and it's the fastest method I can afford. Part of this process involves downloading VODs from storage and caching them on a local disk. Tasks get performed, then the resulting files (a.k.a. build artifacts) get uploaded back to storage. There are a lot of moving parts here-- unstable networks, processes that sometimes crash my computer, and exotic failure scenarios I hadn't thought about previously. Ultimately, I'm having to design everything to be fault tolerant, and it's a good challenge.

If every time a job had to restart when there was a failure, we'd be indefinitely stuck downloading the same VOD over and over.

Enter caching, and idempotent tasks.

When we start a build task, we cache the VOD on disk until we no longer need it. The jobs run against the VOD, produce build artifacts, and update the db. The concept of idempotency means that jobs only execute if action is necessary. If a job has already successfully completed, the job is skipped. This is especially important for tasks that take over an hour to complete, because it means we don't have to do repeat work if intermediate tasks fail halfway.

Vibrator integration progress

I've made progress on Futureporn vibrator integration. It's very buggy and I'll have to improve it some more before it's useful, but the way it works is there is a computer vision program that watches the VOD and creates funscript files based on the Lovense overlays that appear in frame.

The funscript files contain instructions for sex toy actuators, telling them when to activate and by how much intensity. I wrote a video.js player plugin which takes those instructions and sends commands to Intiface Central. Intiface is software that runs on your device and sends commands to connected sex toys.

There's one VOD with funscripts which you can try it out. Unfortunately, it's very buggy. Firstly, I made a mistake in choosing the video to create funscript for because that video doesn't contain any Lovense overlays. I think there's a bug in the funscript generation code because it determined that it should activate a vibrator all the time while the video is playing, even though there isn't any Lovense overlay.

We have some progress on the overall workflow, but there are some bugs that need squashing before it works as expected. I'll keep you updated on that progress.

Known issues

Since the v3 site overhaul, I've been made aware of several issues. In the next 30 days I'm going to work on fixing them.

Patron status sync

I read one report that a patron wasn't able to access their entitled perks after logging in. This is probably due to the changes I made in v3 which sync Patreon data in bulk on a 1 minute interval timer instead of right away at the time when a visitor logs in. I changed it this way to reduce network requests and thus improve server performance, but I think it might be an unreliable change. This is my highest priority bugfix. I will tweak the login flow until it's seamless.

Missing metadata

The v4 site is missing VOD titles, announcement descriptions, and tags that v2 had. The URL format has changed too, and visitors are having difficulty matching up VODs from the old site to VODs on the new site.

To fix this, I'm manually redirecting 404s to their new URLs, and restoring the stream titles, announcement URLs, and announcement titles from the old database.

I'm going to re-add the tags but they're a little more tricky to bring back. I'm planning on separating Vod and Stream record types. Streams are for tracking who streamed at what time and on what platform, while Vods are videos that fans and archivists record and attach to streams. The idea here is to allow for multiple vods to exist for a single stream, each recorded by different people. I still don't know which record type should hold the tags, and I'll have to think about this some more.

That's it for now

Thank you for your support. 2025 was kind of crazy. Let's make 2026 crazy good.

Comments

Stay strong you have nothing to prove to us take your time.

CoSI

I'd put tags under VODs, but label each vod with the number of tags it has.

Grei Glace


More Creators