Could I use this while turned on?
July 22, 2024 11:10 AM   Subscribe

When working on Buttplug applications, something that should be at the forefront of your design thinking is: Someone is going to fuck this. The context of this usage should influence all levels of design, from UI/UX to low level code decisions. Assuming the user will approach a piece of software that involves Buttplug in the same way they would, say, a word processor, will end up in a fuckable word processor. If that's what you were aiming for, great, but otherwise this will just end up in a frustrated user and something that looked like a cat walked across the keyboard. from Butts Are Difficult (in The Buttplug.io Developer Guide) [Probably NSFW]
posted by chavenet (51 comments total) 21 users marked this as a favorite


 
The plugs. Are we talking AC or DC?
posted by dances_with_sneetches at 11:14 AM on July 22 [2 favorites]


Typically DC, when the device used is powered (via rechargable battery these days), but it can vary widely outside of the baseline consumer markets.
posted by Callisto Prime at 11:18 AM on July 22 [2 favorites]


Have you tried turning it off and then on again?
posted by phooky at 11:25 AM on July 22 [5 favorites]


Of course it's written in Rust.
posted by ocschwar at 11:28 AM on July 22 [2 favorites]


I’d rather go with an AC synchronous hysteresis motor. Constant torque while it gets up to speed, then constant speed with no high frequency flutter. And no one can put a price on the retro factor.
posted by Dr. Curare at 11:32 AM on July 22 [1 favorite]


qDot is on my Patreon llist, both for being willing to giggle at sex tech, and for taking it seriously. And some of the stuff being done to augment VR spaces is, even without the giggle factor, pretty awesome. Like six-axis haptics syncrhonized to your VR world kind of awesome.

And I also think it's telling that more thought is being put into this than what happens when, say, your "anti-virus" software update goes down on you (sorry).
posted by straw at 11:40 AM on July 22 [7 favorites]


Perhaps a small 2 cycle engine, recycled from a chain saw, would provide all the power needed without a long extension cord. Perfect for your weekend camping trips.

But if you can find a high pressure boiler, steam power may be the technology called for.
posted by Marky at 11:47 AM on July 22 [1 favorite]


If you're at work or on a work laptop, you can find the repo on Github without the risqué DNS entry to land you in trouble.

I do industrial controllers for a living, and adoption of new advances in programming languages has been slow. Dangerously slow, because this is a context where "rewrite it in Rust" can literally save lives.

So the idea that proper security and safety for devices in my space will be first established with devices such as these is just delightful. I look forward in a few years to it being the standard in my industry that "if you won't put it in your butt, don't put it on my network."
posted by ocschwar at 11:48 AM on July 22 [14 favorites]


There's a lot of interesting reverse engineering from the Buttplug folks, but if you want to get your hands wet (lol), it's easy to get lost in the bowels (lol) of the Buttplug documentation. A minimal example or tutorial would make it a lot easier to get started.

Basically, you run Intiface Central on whatever computer has the Bluetooth/USB connections to the thing with motors. Then, you query connected devices to get the kind of motor, which tells you supported messages. Then you send the appropriate messages over a websocket, Intiface translates the messages out to device specific protocols, and everything is hunky dory. Both the messages you send and what Intiface responds with are in that section of the docs.

It's a fun project. You can get smarter with dynamic device added/removed, etc. but it's not as intimidating as you'd think to get started. Just make sure to start small and go bigger gradually (lol).
posted by Anonymous Function at 11:57 AM on July 22 [3 favorites]


This software, it vibrates?
posted by davey_darling at 12:29 PM on July 22 [5 favorites]


25 years earlier and we’d be having a serious discussion around plug n play drivers

Now it’s just a fun discussion about actual plug n play

Oh how far we have come

(as it were)
posted by armoir from antproof case at 12:34 PM on July 22 [4 favorites]


Toy software, when it loses a Bluetooth connection, should NOT default to "max". That is the last thing it should default to. Feedback from a .. uh, friend.
posted by Klipspringer at 12:49 PM on July 22 [12 favorites]


When working on Buttplug applications, something that should be at the forefront of your design thinking is: Someone is going to fuck this.

Judging by the sort of reports which routinely show up from emergency rooms, that should probably be at the forefront of every engineer's design thinking.

Somebody somewhere once had the opportunity to give light bulbs flared bases and then chose not to, despite the foreseeable tragic consequences.
posted by jackbishop at 2:05 PM on July 22 [2 favorites]


Probably?
posted by Abehammerb Lincoln at 2:12 PM on July 22 [1 favorite]


"Is it likely that a small child could choke on this" is a reasonable thing for an engineer to consider. Small children don't have the experience or coordination to safely navigate the world.

"Could an adult lose this up their butthole" -- look, buddy, you are on your fucking own.
posted by phooky at 2:18 PM on July 22 [6 favorites]


Judging by the sort of reports which routinely show up from emergency rooms, that should probably be at the forefront of every engineer's design thinking.

Without a base, without a trace.
posted by The Bellman at 2:41 PM on July 22 [1 favorite]


Ok, well, time to dust off the ol' MeFi account I guess. Holy shit this account is old enough to drink.

Anyways, hi. I wrote the article, and buttplug.io is my project.

Happy to answer any questions anyone has.
posted by qDot at 2:53 PM on July 22 [65 favorites]


Have you done any MQTT or MOdbus in this context?
posted by ocschwar at 2:56 PM on July 22 [1 favorite]


Thank god! I suspect this is relevant to my interests but the thread is so full of jokes I am addled. Is this a framework of some sort for open source programming of sex/sensory toys?
posted by Iteki at 2:58 PM on July 22 [1 favorite]


Like is this a real thing, the tone is so light infant work out if it's a very tone-sure parody or a genuine thing. If so please explain the thing somewhat and I will be better able to follow the site :D
posted by Iteki at 3:00 PM on July 22 [1 favorite]


Have you done any MQTT or MOdbus in this context?

We get a lot of requests for MQTT but in general its made for much slower updates than we expect (it's expecting like, 3-5hz max, while we have devices that can go at 300hz, and I'm currently prototyping closing control loops at 1khz through the software as a shitpost).

For MODBus, there's a few machines that use clearpath or other Distressingly Real Types Of Motors where we end up having to talk MODBus. They're a mess tho.

Is this a framework of some sort for open source programming of sex/sensory toys?

Yup that's exactly what it is. Base project is at https://buttplug.io, community created apps/games/etc are at https://awesome.buttplug.io. Github orgs are at https://github.com/buttplugio with our apps org at https://github.com/intiface
posted by qDot at 3:02 PM on July 22 [8 favorites]


So, regarding "someone is going to fuck this," I'm in a space where "someone whose judgement and attention is compromised is going to log in and operate this" is an important thing to consider. (Not drunk operation, but operation while under high stress, for example).

There may be some overlap. And again this is another reason to bask in delight as your project leads to advances in the state of the art of UX in such contexts. Have there been any collaborations with people from other spaces?
posted by ocschwar at 3:06 PM on July 22 [1 favorite]


Oh, and I'm typing this on my work Mac, which allows me to go to your Github pages but not buttplug.io. And oh, do I look forward to putting in a devops ticket for whitelisting your DNS space..
posted by ocschwar at 3:09 PM on July 22 [3 favorites]


"[...] you will never see a raw Buttplug Message."

Unless you turn off rate limiting.

(Seriously I really appreciate the self control it takes to write documentation like this without descending into madness or inscrutable innuendo.)
posted by phooky at 3:10 PM on July 22 [1 favorite]


(and yes, I'm going to assume somebody out these is trying to support CANbus and will get up getting pwned by their cybertruck)
posted by phooky at 3:12 PM on July 22 [3 favorites]


Have there been any collaborations with people from other spaces?

Getting there, and it's certainly a goal! Thanks to the popularity of this particular article (this got posted on HN over the weekend and, as is weirdly usual when bp.io ends up on HN, got really positive responses?), I'm gonna be trying to write more on lessons learned with the software so far, design strategies, etc...

> Seriously I really appreciate the self control it takes to write documentation like this without descending into madness or inscrutable innuendo.

I try to keep a balance of useful information and shitposting at all levels of the project. Too serious and it comes out creepy, too shitposty and no one believes it's a serious project. It's quite the line to tread.
posted by qDot at 3:16 PM on July 22 [12 favorites]


Dangerously slow, because this is a context where "rewrite it in Rust" can literally save lives.

We've had Ada since '83, and if programmers cared about 'saving lives' through safer programming languages, they would have used it (or one of the many other 'safe'[1] languages that are decades older than Rust). Rust is just the new hotness. Rust fanboiism and the revisionist history around it are really annoying when it spills out of things like the Hacker News echo chamber into real life.

Sorry to be grumpy because other than that I think this is awesome.

[1] for variable values of 'safe'. Don't go there.
posted by kjs3 at 3:19 PM on July 22 [6 favorites]


I try to keep a balance of useful information and shitposting at all levels of the project.

Why is the project called Buttplug?

It seemed funny at the time when the project was starting, even though no thought was put into how it would sound when being mentioned in press articles, grant applications, etc...

Upon further consideration and with some history behind it, that has made it even funnier.


[I love this.]
posted by chavenet at 3:30 PM on July 22 [1 favorite]


This is a really great example of writing good, sensitive, informative and inclusive documentation - even before considering what it's actually for. It must be quite difficult to walk the line between innuendo, dry technical writing, and icky porny grossness.

I think it's really interesting that the focus seems to be genuinely on empowering users, in a way that even "traditional" or non-sexy projects should look to.
posted by prismatic7 at 3:46 PM on July 22 [1 favorite]


Aha! Found it: When I mentioned multi-axis articulated haptics in VR, pretty sure it was Buttpluggin' With qDot - Intro to the OSR-2 that blew my mind with how people were augmenting the sensory experiences of their VR interactions. Sure, there are the haptic gaming vests that will rattle you in various places in Counter-Strike or whatever it is the kids are shooting each other up in these days, and we all giggled when Bruce Bethke introduced the ProctoProd™ user interface in Headcrash, but that was my "whatever the various vendors of VR headsets are doing, it's not nearly as interesting as what the furries with 3d printers are doing" moment.
posted by straw at 4:21 PM on July 22 [3 favorites]


OK, I've actually gotten paid to write software (none of it involving butts (addendum: that I know of)) and after a 30-second study of buttplugs have come to the determination that:

There's not a lot of complex software you can write for a buttplug. It goes sideways in many directions and maybe up/down or in/out. But it's not like a buttplug has pitch, yaw and roll. There's no control surfaces. There's only so much action you can perform with it safely (by safely, I mean not outright killing the user - anything less is strictly a personal choice).

So, why the hell does in need a guide? IT HAS GODDAMN API'S! Client! Server! W.T.A.F?!

I cannot scream this from rooftop loudly enough: The buttplug is not a marvel of engineering.
Someone was waaaaay overthinking this.
posted by JustSayNoDawg at 4:36 PM on July 22 [1 favorite]


OK, I've actually gotten paid to write software (none of it involving butts (addendum: that I know of)) and after a 30-second study of buttplugs have come to the determination that

So while I appreciate that someone has, at some point, given you money to write software, there's a few things you might be missing here:

- First and foremost: Buttplug supports more than buttplugs. See comments above about naming, especially the parts where I both love a good shitpost and mikiri countering comments. :3

- Buttplug currently supports 523 devices from 50+ manufacturers. Full list is available on iostindex for those curious.

- These devices do various things. Some vibrate. Some rotate. Some move on multiple axes. Some do all of those. We both have to handle those requirements and expose them through our API in a generalized way, so that developers do not have to worry about exactly which device they are talking to.

- Almost none of the devices have any sort of feedback, closing control loops is basically impossible. We have to be very careful about what we expose and how we do it, as the firmware provided from manufacturers can range from not very good to extremely unsafe.

- Developers are not used to working with haptics. We do not have a good language for communicating touch in an affective sense. We barely have language at the raw actuation level. Therefore we have to create an API that takes into account not only the altered mental state of the user, but the design capabilities of an developer who may be designing for hardware they don't have, or even know exists. Not everyone has all 523 of those devices, after all.

- We support devices connected via usb (raw and HID), bluetooth, serial, and a multitude of network protocols. To connect to our system, we have support libraries in at least 8 different languages (and more being added all the time, since our message spec is open and basically just chucking json around), which may need to talk to our system over FFI, network, or other IPC means.

- We compile to windows, mac, linux, android, iOS, and WASM, with majority if not full device capabilities on all of those platforms.

But hey, if you've got a simpler design, the space is wide open for innovation.
posted by qDot at 4:58 PM on July 22 [29 favorites]


pretty sure it was Buttpluggin' With qDot - Intro to the OSR-2 that blew my mind with how people were augmenting the sensory experiences of their VR interactions

Ahahaha, the OSR-2, the cause of and solution to many of my problems.

I love this device far more than I hate it, don't get me wrong. It's pushing a ton of boundaries in design capabilities and the community is just fun as hell. That said, as the author of a system that tries to take capabilities of multiple devices and abstract them into a simple, generic API, it drives me nuts because it does *so* much and it's really hard to wedge into our system.

I'm so glad it exists though. It provided us with t-code, a really nice, extensible, open protocol for firmware communication, and people just keep making so much neat shit to bolt onto it.
posted by qDot at 5:02 PM on July 22 [5 favorites]


Metafilter: "if you won't put it in your butt, don't put it on my network."

In the future, we'll abandon blade & rack mouts, in favor of a steam punk aesthetic where servers resemble extremely complex vacume tubes.
posted by jeffburdges at 5:55 PM on July 22 [1 favorite]


Marky: research into steam-powered wenchs was abandoned well over a century ago, and for good reason.

The Bellman:
Without a base, without a trace.
Without a noise, without my pride
I reach out from the inside
posted by PresidentOfDinosaurs at 6:14 PM on July 22 [6 favorites]


Got to the second comment that "baseline" and I got stuck on pronouncing it like vaseline.
posted by jonbro at 7:11 PM on July 22 [3 favorites]


Assuming the user will approach a piece of software that involves Buttplug in the same way they would, say, a word processor, will end up in a fuckable word processor.

Great news for Clippy fetishists!
posted by PlusDistance at 7:52 PM on July 22 [1 favorite]


I'm going to assume somebody out these is trying to support CANbus and will get up getting pwned by their cybertruck

Now that's schadenfreude I can get behind! Er, so to speak.
posted by Greg_Ace at 8:10 PM on July 22 [1 favorite]


> this got posted on HN over the weekend and, as is weirdly usual when bp.io ends up on HN, got really positive responses?

I'll hazard a guess that it's sub men, knowing the dearth of (amateur) human dommes are hoping this tech immanentizes the domme-bot.

I'm studying ISO/TS 15066 (standard for safe cooperative robotics) and language safety for this reason.
posted by ASCII Costanza head at 8:10 PM on July 22 [1 favorite]


Can It Run Doom?

Spoiler: No. Or at least not yet.
posted by milnak at 8:14 PM on July 22 [1 favorite]


Spoiler: No. Or at least not yet.

ahem.
posted by qDot at 10:02 PM on July 22 [5 favorites]


But it's not like a buttplug has pitch, yaw and roll.

Not with that attitude.
posted by delfin at 10:59 AM on July 23 [6 favorites]


So, why the hell does in need a guide? IT HAS GODDAMN API'S! Client! Server! W.T.A.F?!

I cannot scream this from rooftop loudly enough: The buttplug is not a marvel of engineering.
Someone was waaaaay overthinking this.


Look. If you don't want an internet enabled intimate accessory to provide you with illegal stock tips encoded in Morse and delivered haptically and make you rich, just don't yuck on other people's yums.

(Seriously, could you imagine a prosecutor trying to explain such an allegation to a grand jury? I think I just found the perfect white collar crime.)
posted by ocschwar at 12:51 PM on July 23 [2 favorites]


an internet enabled intimate accessory to provide you with illegal stock tips

Talk about pulling numbers out of your ass
posted by Greg_Ace at 1:15 PM on July 23 [6 favorites]




I had totally forgotten about that story..
posted by ocschwar at 2:55 PM on July 23 [1 favorite]


I'd propose not one but two new anal computer chess leagues, which operate in the spirit of how NASCAR related to advances in automotive technology.

1st) Anything goes anal chess - All participants are strip searched, and issued plain medical scrubs, but not cavety searched, after which the chess tournament proceeds normally, butt no further questions asked regarding information transfer. In particular, participants could freely use radio communications from anal devices.

2nd) Constricted anal chess - As above, but radio emissions are detected and forbidden, or simply jammed. In this, participants could freely use computer assistants, butt all computing machenery must fit within the anus. Also, participants chairs are equipped with a standard USB wireless charger.
posted by jeffburdges at 3:24 PM on July 23 [5 favorites]


I gotta say, the comments in this post are the best of the web. And welcome back qDot.
posted by bluesky43 at 6:28 PM on July 23 [3 favorites]


Constricted anal chess - As above, but radio emissions are detected and forbidden, or simply jammed

Aren't they already jammed?
posted by flabdablet at 12:15 AM on July 24 [2 favorites]


Jeez, one time I didn't validate my code and the tester ended up with a bug up his ass!
posted by under_petticoat_rule at 7:18 AM on July 24 [4 favorites]


In the future, your AI integrated buttplug could notify the surveillance capitalists whenever its being used, and request a custom AI generated song.

We'd have people losing their jobs over missusing their toilet breaks though probably, after their data gets sold by someone like Sam Altman & Peter Theil.
posted by jeffburdges at 3:52 AM on July 25


« Older Ice Ice Baby   |   Voter Fraud at the Hugos Newer »


You are not currently logged in. Log in or create a new account to post comments.