Heya, this is actual me not Claude. Just wanted to say up front a MASSIVE thank you to AutoBlow for creating amazing devices, and then on top of that making an awesome API. Seriously as a DevOps engineer by day who spend most of my time automating against garbage APIs, y’all killed it.
Below is a set of tools/plugins I made for Stash and the VacuGlide2 itself. All of it was vibe coded, you cant judge me harsher than I judge myself so let loose. That said, I would have done none of this had I to do it by hand, because I am lazy and I figure if I added .1deg to ocean temps at least others can get use out of it!
So enjoy, let me know if theres any problems/issues. This isnt a GH I check often as I wanted to keep it completely separate from my personal one.
Also to AutoBlow: If anything I did stepped out of line or violated any ToS I can remove it immediately.
Enjoy!
I’ve been building a set of tools around the VacuGlide 2 and Autoblow’s device API, and they’re now all public on GitHub: github.com/driftsyncone (all four repos are listed there, each with screenshots and setup steps in its README). Everything is free, open source and non-commercial (CC BY-NC-SA 4.0, except the PMV Generator fork, which stays MIT like its upstream). These are unofficial community projects, not made or supported by Autoblow.
Full disclosure: all of this was vibe coded. I didn’t write the code myself; I described what I wanted, tested it on my own setup and made the decisions, and an AI coding assistant (Claude) wrote it. The commits on GitHub credit it as co-author. I’m saying that up front so you can judge the code accordingly, and so nobody’s surprised. Bug reports are very welcome.
Quick overview (repo names as they appear on my GitHub page):
| Repo | What it is | Status |
|---|---|---|
vacuglide-panel |
Standalone 5" touchscreen remote (ESP32-S3) | Used daily; new Autopilot not yet tried on a device |
stash-plugins |
VacuGlide Sync, Beat Script, Beat Bar, Stroke Graph for Stash | Used daily |
stash-pmv-plugins |
PMV Generator with a VacuGlide output | Running in my setup |
vacuglide-bridge |
Lets Intiface/Buttplug games drive the VacuGlide | Experimental, untested on hardware |
1. VacuGlide Panel: a standalone touchscreen remote (vacuglide-panel)
Firmware for a Guition JC8048W550 (ESP32-S3, 5" 800×480 touch display) that turns it into a dedicated VacuGlide remote. It talks straight to Autoblow’s device API with your device token: no phone, PC or home-automation hub needed once it’s set up.
- Remote: speed slider, Start/Pause, hold-to-open Stroke − / Stroke +, vacuum maintenance Off/Low/Medium/High.
- Autopilot (edging): an on-device generator with Intensity, Edge, Vacuum and Finish Me. Each session is 8 waves that climb to a peak, hold it, then drop and rest, with the peaks getting higher as it goes.
- Scripts: the device’s 30 local-script slots, and you can name them (long-press a slot).
- Settings on the device: Wi-Fi with a network scan, device token, screen timeout.
- Clear connection status: Wi-Fi signal, plain-language reasons when something is down, and a red warning if the connection drops while the device is moving.
- STOP on every screen, screen sleep while idle, and firmware updates over Wi-Fi.
2. Stash plugins (stash-plugins)
Four plugins for Stash. Install them by adding this plugin source in Settings → Plugins → Available Plugins → Add Source:
https://driftsyncone.github.io/stash-plugins/main/index.yml
- VacuGlide Sync: plays a scene’s funscript on the VacuGlide in sync with the video, from any browser, including phones (it goes through Autoblow’s cloud API, so no app or Bluetooth needed). Automatic latency compensation, intensity and speed-limit shaping, suction buttons and a “keep suction” mode, and the device’s own buttons control the video.
- Beat Script: paste a link (or pick a scene) and it makes a beat-synced funscript, either from an on-screen beat bar (cock hero / fap hero style) or from the music. It saves FULL / HALF / Music variants side by side.
- Beat Bar: draws a fap-hero style beat bar over PMVs that don’t have one, with six themes.
- Stroke Graph: a moving stroke line over the player, coloured by speed, so you can see what’s coming.
All four work in classic Stash and in the Stash UI interface.
3. PMV Generator: VacuGlide mode (stash-pmv-plugins)
A fork of anonym88312’s excellent PMV Generator that adds Play on: The Handy / VacuGlide / Both. The generated show’s funscript is uploaded to the VacuGlide as a sync script and follows the show’s clock, with defaults suited to the VacuGlide. It uses the device token from VacuGlide Sync, and can draw the Beat Bar over the show.
4. vacuglide-bridge (experimental)
A small program that pretends to be Intiface Central, so games that speak the Buttplug protocol can drive a VacuGlide. It was inspired by Cock Hero, and I know the Cock Hero developers are already adding native VacuGlide support (planned for January). I just didn’t want to wait, so this is a stopgap until then. It hasn’t been tested on a real VacuGlide yet; reports are welcome. Start with a speed cap (-max 40).
What I measured about how the VacuGlide plays scripts
This might help other script makers and developers. I uploaded test funscripts through the sync-script API and read back the device’s target speed:
- Speed comes from stroke velocity only: speed % ≈ funscript units per second ÷ 6, reaching 100 % at about 600 units/s.
- Depth matters: the same timing at half depth gives half the speed. So shortening strokes (for example with a speed cap) makes the device slower, not just gentler.
- No smoothing: alternating 230 / 270 ms moves flip the speed 72 ↔ 62 % on every move.
- Full 0–100 strokes work best: typical hand-made scripts already sit around 60–75 %; beat-bar FULL scripts reach 100 % in fast sections (above ~180 BPM), which is the device’s real maximum.
Questions for the Autoblow team
- Autopilot patterns: for the panel I wrote my own Autopilot generator rather than reuse the patterns from your web app, because I didn’t want to step on your toes. Would you be OK with community projects using the same patterns (credited to you)? If so, I’d add them as an option next to mine.
- Disconnect safety (suggestion): as far as I can tell, if the controlling app loses its connection, the device keeps its last speed. An optional “stop if no command for N seconds” setting in the API would make remote controllers safer.
Thanks for making a device with an open API; it made all of this possible. Feedback, bug reports and pull requests are very welcome on GitHub.