Web Funscript Player - Enjoy Funscript Videos on iOS, Android, Web

All good :slight_smile:

Iā€™m mainly using vibrating toys and added support for stroke to vibration transformation and some other features (including min/max power/length) in the fork I created.
Let me know what you think about those features, If you like it let me know and I will do a PR or you can take the parts you like.

1 Like

Glad when I found this web app but when I tried to get this working on an iPhone 11 with IOS 15.5 (for a Lovense vibrating toy) it stops when the device is connected in WebBLE. Error message below, any ideas on the cause or more important, the cure? The toy stays connected based on the LED status but is not responsive to the script.

Error: panicked at 'called `Option::unwrap()` on a `None` value', src\wasm\webbluetooth_device.rs:164:57

Stack:

H@https://funscript-player.vercel.app/4.6e56f3ff888db624d6b1.js:1:12297
__wbg_new_59cb74e423758ede@https://funscript-player.vercel.app/runtime.60ba72988fdaa731a7c6.js:1:1285
wasm-stub@[wasm code]
<?>.wasm-function[1466]@[wasm code]
<?>.wasm-function[3697]@[wasm code]
<?>.wasm-function[2190]@[wasm code]
<?>.wasm-function[2582]@[wasm code]
<?>.wasm-function[3200]@[wasm code]
<?>.wasm-function[3120]@[wasm code]
<?>.wasm-function[3202]@[wasm code]
<?>.wasm-function[3070]@[wasm code]
<?>.wasm-function[93]@[wasm code]
<?>.wasm-function[2045]@[wasm code]
<?>.wasm-function[1878]@[wasm code]
<?>.wasm-function[3311]@[wasm code]
wasm-stub@[native code]
A@https://funscript-player.vercel.app/4.6e56f3ff888db624d6b1.js:1:11460
o@https://funscript-player.vercel.app/4.6e56f3ff888db624d6b1.js:1:11226
onInvoke@https://funscript-player.vercel.app/main.1c817478489b21b8797a.js:1:256743
run@https://funscript-player.vercel.app/polyfills.80c5044f417aa64174dc.js:1:4349
@https://funscript-player.vercel.app/polyfills.80c5044f417aa64174dc.js:1:19142
onInvokeTask@https://funscript-player.vercel.app/main.1c817478489b21b8797a.js:1:256563
runTask@https://funscript-player.vercel.app/polyfills.80c5044f417aa64174dc.js:1:4968
v@https://funscript-player.vercel.app/polyfills.80c5044f417aa64174dc.js:1:11550
promiseReactionJob@[native code]
1 Like

And youā€™ve tried this multiple times? It fails every time?

Nice stuff, Iā€™ll look into your fork down the track. Great to see community involvement, I love it! :slight_smile:

Yes, with restarts between, before and and after loading scripts, all kinds of manual troubleshooting to try to isolate the cause.

Damn. Do you have a non-iOS device to try this on? Say a computer or the likes? If so, do try that, would rule out your iPhone. Unfortunately, it is difficult to troubleshoot this. If you are a developer, best bet would be to clone the project, update the buttplug library from 1.0.10 to 1.0.17. Thereā€™s also one thing youā€™ll need to do to get it to work but I will tell you if you are interested in going down this path, developer experience preferred. I would deploy with the upgrades the library but it fails to compile, been tied up for a while, I did mention it in discord but as of yet no update on this. The later versions support a wider array of devices, among other things.

Tried on PC Win11. Toy (Gush) is discovered and connected but do not react on script so it seems to be a toy issue. Have some other Lovense toys, will test with those as well to see if the issue is there. Other apps on PC do find the toy and interact correct, shibbydex haptic files as an example of other web based apps.

Computer geek but not developer, loooong time since I last wrote code in C so donā€™t think that I should go down in that rabbit hole unless I have to ā€¦ :nerd_face:

Some more tests.

Edge 2 on PC work OK, connect and vibrate. Gush connect but donā€™t vibrate.

Edge 2 on iPhone connect but donā€™t vibrate. WebBLE do only give a single word ā€œERRORā€ messages but no further text. Gush connects with the error message in above post and donā€™t vibrate.

LED status in all cases show that the toys are connected and they can not connect to other applications either before released from the Web Funscript Player.

All toys and scripts work as expected via Intiface Desktop and ScriptPlayer.

So, seems that I need to wait until new versions are released that have better support for Lovense toys. Let me know if I can help testing if needed.

2 Likes

Updating the values on seek explains why that can sometimes fix or improve playback. Iā€™ve found it helpful to routinely seek back to the start a few seconds after each video starts, it seems to work better that way than if I just leave it running.

On the timing, usually script actions will aim to be timed to the nearest frame, with frames being at 16.7ms intervals in a 60 fps video and 33ms intervals in a 30 fps video. If the app is checking and playing moves as soon as it comes within 50ms of the timing of them, that goes some way to explain why the timing sometimes seems to work reasonably (the points were probably near some multiple of 50ms apart to start with) and why it sometimes feels a bit randomly off. Doesnā€™t explain why if left to itā€™s own devices it has a more like 250 or even 500 plus delay to it, but seeking at least once after the start does seem to fix that.

Have you considered changing the timing interval to 33 or maybe 17 ms increments for now to see if that improves the accuracy? It wouldnā€™t be the same as a system that just runs everything at the scripted time, but it might close the gaps a bit with the timings system as is.

I like this. Iā€™ll add an number input box that can be adjusted and automatically takes effect. The value will be this ā€˜pollingā€™ variable in question, currently set to check every 50ms. Itā€™ll be persisted in local storage so you donā€™t lose it when refreshing the page.

1 Like

Found an issue filed which looks related to what you were facing; WebBluetooth writes panic on failure Ā· Issue #50 Ā· buttplugio/buttplug-rs-ffi Ā· GitHub

any plans for webVR support?

1 Like

I havenā€™t had much time towards this site in recent times. When I do spend time on this, Iā€™m open to exploring a webVR player, albeit there are a couple of other things that I also wanted to do.

2 Likes

My lovense toys work on Android, however the vibration is inverted. Adding an option to invert the script for vibration would make this perfect.

1 Like

Hi there. Joyfunscripter (Raser1ā€™s fun scripter 0.13.1) has an option to ā€˜Ć­nvertā€™ points. Maybe that will work for you.

1 Like

Sorry for the late reply, will try to get this done this weekend.

Okay, Iā€™m working on a new release that should hopefully be released sometime soon.

Hereā€™s what to expect;

  • Reduced the current checking of funscript events from 50ms to 15ms (@Novice).
  • Introduce Handy SDK for users with The Handy. This should be the preferred choice for users with The Handy as sending the funscript directly to the device reduces latency, a currently known issue with the not perfect current algorithm the site uses.
  • Introduce vibrate invert feature for vibration devices (@Testinout4u)
  • Upgrade Buttplug SDK from 1.0.10 to 1.0.17 (@tm6).
2 Likes

Hey chaps, sorry for the silence recently. Itā€™s still on my mind to improve this site but Iā€™m working on a couple other things at the moment, this hasnā€™t gotten priority in recent times. I hope I can get around and push improvements in the near future.

All the best,

2 Likes

Thanks so much for everything youā€™re doing @amango134 !!

I had noticed that delay too @Novice , in addition to the occasional lost unsynced points of action (which sounded like @amango134 's upcoming update would help mitigate with the interval shortening), there does seem to be an overall significant delay sometimes, what would cause that/how would that be fixable?

Hey everyone, Iā€™m doing other things these days. I havenā€™t worked on this project in a while, just want to state in writing that the site will no longer be worked on. The GitHub can be forked and worked on. Itā€™s currently hosted on Vercel for free so will be left as-is for the near future most probably.

I do recommend the Handy users to checkout the HandyVerse app on their devices, itā€™s an interesting development that may replace the need for this site. Hope more actively developed projects from others can fulfil the requirements yā€™all have.

Thanks again everyone, was nice chatting with yā€™all and working on this project! Am planning on anonymising this account in the coming days so will no longer be able to reply when that happens.

Cheers everyone,
Stay safe.