return to table of content

Empathy for the user having sex with your software

qdot76367
33 replies
17h37m

Oh hey it's been a while.

Hi, I'm qdot, founder of buttplug.io and author of Butts Are Difficult, the ethics page in the buttplug.io docs.

I also wrote the rest of the buttplug.io docs but this is the part that I'm proudest of, both because I was really happy how it turned out and also because unlike the parts of the docs involving the API, this one doesn't go out of date as quickly.

Ask me anything!

giancarlostoro
18 replies
17h22m

I have heard that your project has one of the fastest bluetooth libraries in the industry, its so good DOD devs have tried to have the namespaces renamed or something to that effect.

qdot76367
13 replies
17h14m

Yeah I wrote and manage our Bluetooth le library! It’s been one of the bigger regrets of my life, but it had to happen and at least it works and I don’t have to touch it much now. :)

Here’s how that came together: https://nonpolynomial.com/2023/10/30/how-to-beg-borrow-steal...

kragen
8 replies
14h32m

i'd think it would be fine to touch it if you wash it with soap and water first and maybe a few swipes with an antibacterial wipe?

qdot76367
7 replies
14h30m

Bluetooth is bad at a spiritual level

01HNNWZ0MV43FF
4 replies
4h11m

I was telling my gf this yesterday as my car refused to pair with her phone (she had to unpaid it so that it wouldn't try to connect when we were driving both our cars nearby) which I guess is a necessary step of connecting (I am not sure I've ever successfully connected two Bluetooth things without pairing them) before the traffic light turned green and the car locked up the Bluetooth UI, so that the driver couldn't operate it, which meant that both the driver and the passenger spent loads of extra time fucking with it until giving up and playing the song directly from her phone's internal speaker

I have never ever seen Bluetooth work as intended

byteknight
3 replies
2h45m

You are either speaking hyperbolicly or lying. Bluetooth is very stable these days.

wantoncl
0 replies
1h58m

You are either speaking hyperbolicly or lying. Bluetooth is very stable these days.

Bluetooth as a network protocol, that might be stable. Bluetooth interactivity is not stable or even usable in many cases.

It's not just in cars and other non-computer interfaces, good luck trying to pair a non-Apple device with an Apple device. If you say "it works on my computer", congrats, you're the only one. And also speaking hyperbolically.

snozolli
0 replies
1h19m

The Bluetooth experience varies wildly. The Bluetooth stack is pretty enormous and complicated these days, so there's a lot of space for software and hardware vendors to screw things up.

Apple-to-Apple seems to be dead reliable from everything I've heard. Samsung-to-Samsung seems almost as good. Apple or Android to random, Chinese car stereo might be a connectivity nightmare. Connecting to an OEM stereo with whatever implementation was poorly specified by the car company might also be a nightmare.

nox101
0 replies
2h26m

You must live in some alternate reality. Bluetooth is hardly stable for me.

kragen
0 replies
14h20m

your kink is ok

johnnyanmac
0 replies
42m

Sadly, the most prevailing standards are rarely the best ones. But we're stuck with it until corporations decide to throw money at the successor.

arrowsmith
1 replies
10h41m

What do you regret?

qdot76367
0 replies
10h36m

I don’t really have a ton of interest in maintaining a ble library, it’s just required for my main library. Theres a lot of weirdness around Bluetooth implementations between platforms and now I’m on the hook to either support them or tell users nope. I’d rather be doing neither and just be the user or someone else’s nice cross platform Bluetooth rust library. (Luckily we do have some fantastic contributors)

sampullman
0 replies
11h41m

That's funny, I had to write a dual mode host library for an embedded project a while back, and feel exactly the same way.

dr_kiszonka
0 replies
1h12m

I have no interest in BPs but your post is very informative, and your writing is insightful and funny. I wish I wrote that well!

Are you aware of any uses of your software in other domains, e.g., health?

thih9
3 replies
16h38m

its so good DOD devs have tried to have the namespaces renamed or something to that effect.

Hilarious and impressive; I’d love to hear more, do you have more details, context or source?

qdot76367
2 replies
15h39m

Source was me, from some friends that were trying to use the library and the name was causing issues with contracts. Btleplug was named the way it is because I am horrible, and the name alone has caused it to have to be wrapped or just not used at least a few times.

Which hey, less support for me.

JohannesH
0 replies
7h40m

Hilarious! That's a fantastic name and an and an awesome side effect.

01HNNWZ0MV43FF
0 replies
4h15m

This vindicates my latest project where I named the components after anime characters

Otherwise I couldn't keep track of them, see..

bozey07
3 replies
10h35m

If I'm REALLY turned on, how long does it take for me to go from "I wanna use this" to "I am using this"?

I'm glad this is a concern. I maintain software to the effect of buttplug.io and a particular inspiration to start the project was how difficult alternatives were to get going with. I don't want to install anything, or register anywhere, I just want to get my rocks off!

And thank you for buttplug.io. It's super easy to integrate!

I realise this isn't much of a question, sorry :)

tonyarkles
1 replies
4h16m

I'm laughing so hard because the guidelines in that section track very closely with things that I'm constantly reminding people about with unmanned aviation software. You just need to s/turned on/in an emergency/.

qdot76367
0 replies
1h14m

I used to work in self-driving cars waaaay back when (2008-2011, the early days of the current era) and I did pick up some of these ideas from there. :)

qdot76367
0 replies
1h15m

Wow, that's awesome! Super curious what project it is you run. (If you don't want to link it to your HN account, feel free to poke me directly, my contact info is in my HN account bio :) )

fnordlord
2 replies
15h53m

Cool to see someone quoting Cex 20+ years later. I listened to his stuff a ton back in the day and actually revisited only just a few months ago. Holds up just fine.

qdot76367
1 replies
14h41m

Now realizing it's been... 23 years since I saw Cex open for Kid606 and I'm gonna go crumble to dust now.

YeGoblynQueenne
0 replies
7h24m

I suspect you folks are not talking about this Cex:

https://uk.webuy.com/

Which isn't a "he" as far as I can tell. There's a shop near were I live. I always pronounced them "sex" and everyone always told me that's not how it's pronounced, but never told me how else it's pronounced.

egypturnash
2 replies
17h34m

Which toy did you enjoy the process of testing and supporting the most? And the least?

qdot76367
1 replies
17h22m

Best: Funny enough, it's for a (set of) device(s) that constantly causes me issues, the OSR-2/SR-6/SSR-1.

Here's a background video I did on the hardware: https://www.youtube.com/watch?v=MFcrNk33_io

It's DIY, 3d-printed hardware that's incredibly extensible, and has a decently designed abstract communication protocol that I've ended up pointing other DIY creators at. Keeping up with everything the hardware can do while also trying to make it work with our generalized commands is a challenge, but it's a good challenge, because we don't see a ton of innovation from the large commercial manufacturers.

Least enjoy: We support over 500 devices now, so this is just a whole classes of devices at this point heh. There's a lot of hardware we support that's just not very good to begin with, and users can't tell whether it's our library or the hardware hardware that sucks. Then there's the hardware that makes very... odd decisions about how to do things. For instance, there was a brand known as MuSE or Lovespouse that's been popular for the past couple of years. Instead of creating a bluetooth connection to the device, the device acts as a host and listens for advertisements w/ specialized data in order to set vibrator power. Not only is this easily hackable (there was a bunch of articles about someone doing exactly that with a flipper zero last year), it's damn near impossible for us to implement cross platform support for, as advertisement creation in BLE is wildly different across platforms, and doesn't even exist on iOS (the company themselves only shipped on android, where buttplug works on win/mac/linux/android/iOS). On top of that, the Lovespouse devices were extremely cheap ($10-30US sometimes), so we had users buying them then asking if we supported them, and all we could say was "nope".

HeyLaughingBoy
0 replies
9m

I used to work in the Group Fitness (gym electronics) space and this is exactly how some BLE heart rate monitors get around the problems with otherwise requiring the host to connect to 20+ devices to capture their data. Put heart rate into the Manufacturer-Specific region of the advertising packet and boom, no one needs a connection.

Problem is that it's non-standard, so every device packages the data a different way.

aorloff
1 replies
12h51m

How many BPD do you estimate your software is supporting nowadays ?

qdot76367
0 replies
11h33m

1000s at least. We don’t have any detailed metrics because the data privacy issues there are… a lot, but going by download numbers and knowledge of platforms and some of the larger applications, it’s a decent number.

errantspark
0 replies
20m

I tried to use buttplug years ago but I found it to be difficult to work with and introduce too much latency into play. My partner and I have replaced it with 37 lines of javascript that give us more realtime control of our toys (albeit only Lovense, by just spamming .writeValueWithoutResponse()).

I'm curious what your background is that you approached the problem in the way that you did? I appreciate that you're covering all the edge cases for a lot of different toys, but it also really feels like you use 1000 lines of code where 10 will do.

adityaathalye
0 replies
12h50m

I love your ethics statement. TBH, this mindset ought to be the bottom line for any serious software (non-demoscene / non-fun-and-games type). Without pervasive empathy for the user, it's kind of hard to do the right thing in the first place. Especially within the strange organisms that are organisations.

ossobuco
16 replies
9h1m

These hopes have to be tempered by the issues of the general sterility of software, though. GitHub, StackOverflow, Glitch, and other community sites were not really made with NSFW content in mind.

Yes and I hope it stays that way. Teenagers or even children may use those platforms and I think we're oversexualizing everything too much already.

Maybe that's an opportunity for a new developer platform focused on NSFW uses.

cynicalsecurity
7 replies
7h45m

I think we undersexualise everything and our morals look as if they came straight from the Middle Ages.

berkes
2 replies
2h43m

In Europe this is often attributed to American cultural imperialism.

TV, at least in The Netherlands, has become a lot more prudish, Music censored, etc.

I've worked (in the internet branches of) Dutch National media organizations, for magazines and publishers. All lament, that "back in the days, a pair of its, or a penis flopping through a scene was normal." All due to American influence. It's certainly not imposed top down.

A dutch beach club owner told me it used to be rather normal for women to be topless on the beach, up to the early 2000s. And that nowadays it's almost unheard of.

samatman
1 replies
1h37m

I don't know how else to say this, but American institutions, and Americans, are profoundly uninterested in what nudity taboos you may or may not have over there. American tourists might care, if they're looking to see some tits on a beach.

Have you at least considered the possibility that Europe has its own prudes?

creer
0 replies
18m

They may be uninterested and unaware and yet very powerful in propagating their own hangups all over the place. For example through movie and TV production. For example through movie, TV and video distribution. For example through legal models and specific texts. For example through organizations active in the hangup propagation business (so, they are certainly not ALL uninterested). For example through credit card networks and banking. And it goes on and on.

Some countries like the UK seem to be ahead of the pack in the hangup department but they also don't have the global footprint / influence that the US have.

ossobuco
1 replies
5h19m

I used to share your opinion, but I had to do with the adult content world for work related stuff and it was the filthiest thing I've ever had to deal with in my life. Sex work is an ugly thing, built upon the exploitation of both workers and customers. Nothing freeing or emancipating about that.

Yes we shouldn't treat sex as a taboo and children should be educated to avoid STDs, unwanted pregnancies, etc. No, we shouldn't expose children to the filth of the adult content world.

bagful
0 replies
4h2m

Could our marginalization of healthy human sexuality relative to other normal, if risky, activities be contributing to said “filthiness”?

StefanBatory
0 replies
4h33m

Just visit anime forum or subreddit to see it's not a case.

People are way too openly horny.

averageRoyalty
5 replies
8h23m

Children should not be using the internet unsupervised, that's irresponsible parenting. And teenagers are aware of sex.

omeid2
3 replies
8h2m

How do you suppose a kid should be "supervised" while browsing on Github for example?

Saline9515
2 replies
7h35m

I'm pretty conservative but i f I found my teenage son browsing the buttplug.io library on github I wouldn't be very upset. It's funny and midly erotic with no visual cues, something that is not a problem for teens.

pcthrowaway
1 replies
5h18m

Yeah I think the line for concern is when they start getting their PRs merged

tuetuopay
0 replies
24m

At least they worry about what runs in their butt, which is responsible!

mcmcmc
0 replies
6h9m

GitHub’s TOS also requires account users to be 13 or older, so it’s definitely not intended as a site for children.

viraptor
0 replies
6h7m

we're oversexualizing everything too much already.

We're really not. Most platforms are way too strict with NSFW things, especially the recent LLMs which won't even write spicy fan fiction. There's no point in NSFW which is completely out of context and unnecessary, but a genuine buttplug controller? What's wrong with that?

elric
0 replies
3h55m

By and large, we all get horny, and we all like to get our rocks off. A good thing too, or the species would have died out ages ago.

It's sad that even in 2024 it is taboo to talk about it in the eyes of some, or apparently to even publish tangentially related source code to GitHub. I very much doubt that any curious teenager is going to get turned on from reading the buttplug.io source code. And if they do: props to them.

On the one hand, we seem to sexualize the weirdest things (beauty pageants for kids, anyone?) without anyone seeming to care. But on the other hand, we're weirdly prude & defensive about perfectly natural processes (sex, masturbation, sexual curiosity & experimentation) to the point that we have to censor them on the internet. I still can't grok that.

jelder
10 replies
18h1m

This guy takes butt plugs more seriously than ClowdStrike does CI/CD.

balls187
8 replies
17h35m

You’ve never shipped a bug?

firecall
1 replies
17h30m

Not one that's bluescreened millions of Butts around the world! ;-)

pcthrowaway
0 replies
5h16m

It's not a bug when an update to buttplug.io destroys backends around the world, it's a feature.

zappb
0 replies
13h56m

Not one that literally fucks my users up the ass!

yjftsjthsd-h
0 replies
17h21m

On Friday, directly to 100% of prod, explicitly bypassing staged rollout? Not that I recall...

surfingdino
0 replies
55m

Not up somebody's butt.

saagarjha
0 replies
17h33m

That’s what testing is for.

riiii
0 replies
9h13m

It's has to be the understatement of the century to call what CrowdStrike did "shipping a bug."

arrowsmith
0 replies
10h38m

Describing the Crowdstrike incident as "shipping a bug" is a bit like saying that Gavrilo Princip "started a fight".

01HNNWZ0MV43FF
0 replies
4h5m

Sounds like he takes a lot of them, too

thelastparadise
5 replies
16h56m

The hard thing about this is that it's not all software. Just look up what can go wrong with "the handy."

The thing is a pinch hazard and a user could get their scrotum sucked into the slit of the machine, or get pinched as it vigorously slides back down.

Just look up the reports of what can go wrong --it's not pretty. ("do not press it on your scrotum" is the frequent community refrain.)

AFAIK, most of these devices do not have pressure sensors and feedback mechanisms. They're output only.

No amount of software develpper empathy will help as when things go wrong it will happily slice your genitals off and keep chugging away.

qdot76367
4 replies
16h47m

Yup, you are completely correct on the sensor side. I try to be fairly choosy in what we support, but yeah some strokers and machines definitely do not have the safety features I’d like.

Many years ago, there was another device that relied on a lubrication pump, but the pump never worked very well (building a pump for unspecified body safe lubricants is difficult on several levels).

The term “degloving” got used in relation to the hardware a couple of times.

stavros
2 replies
15h59m

What are degs, and why does it love them?

ben_w
1 replies
8h52m

In this context… well.

I'm going to Rot13 this so I don't make people faint.

Vg'f jurer gur fxva vf gbgnyyl erzbirq. V haqrefgnaq guvf vf gur svefg fgrc va n erny znyr-gb-srznyr traqre punatr bcrengvba, bayl va guvf pnfr vg jbhyq or n fhecevfr naq jvgubhg nanrfgurgvp

stavros
0 replies
8h4m

I know, it was a joke :( I thought it was fairly good.

squigz
0 replies
15h32m

Well this comment will ensure I never use toys like that. :P

riiii
5 replies
9h12m

How do they test this stuff? Acceptance/integration testing?

ramon156
2 replies
7h6m

Theyre taking a different spin on integration testing

kvmet
1 replies
6h9m

It really helps to test these kinds of products internally.

bavell
0 replies
1h7m

Especially with all the tightly-coupled components.

czarit
0 replies
2h30m

They prioritize penetration testing, I would imagine.

codelikeawolf
0 replies
5h58m

Probably end-to-end testing

fooker
5 replies
18h0m

"Having a CoC in place guides moderation of situations where interests may conflict.

As for which CoC to use (if looking for a prewritten one), you can check out ours as an example."

Haha, not sure if intentional.

Kye
2 replies
17h49m

I would be surprised if he wasn't giggling the whole time he wrote this.

qdot76367
1 replies
17h33m

I will just say this:

:3

stavros
0 replies
16h1m

OGC

jahabrewer
0 replies
4h13m

Please let this be from a GT ~grad~ escapee

advael
0 replies
17h56m

I'm at least moderately sure it is

hooverd
4 replies
17h54m

Is something like the Nogasm/Edge o Matic using this technology for evil? ;) Food for thought.

qdot76367
2 replies
17h31m

Hah I've worked with the creators of both of those platforms.

Funny enough, using those sensors to relay information to things like events on avatars in VR virtual worlds has had some interesting results!

rachofsunshine
1 replies
17h17m

I'm sure you've seen substantial growth from working on hard problems, identifying key tentpoles, finding an opening, and moving fast to ensure user satisfaction via quick syncs and fluid processes.

In all seriousness, good on you. It's nice to see tech being used for unambiguous let-humans-have-more-fun purposes. (I look forward to eating my words in five years when you pivot to enterprise SaaS for growth purposes and Cisco is offering you as an employee benefit.)

apantel
0 replies
16h36m

Well, at least the users will be getting fucked.

Ancapistani
0 replies
17h44m

From their homepage:

Used by manufacturers like Maus-Tec for the Edge-o-Matic Orgasm Denial System
l0rn
2 replies
2h42m

From reading the docs I see a pretty generic device fleet management framework. What makes this software specific to sex toys besides the intention of the authors and the name? Couldn't you just as well manage - i dunno - a fleet of corporate e-scooters with it?

l0rn
1 replies
2h35m

Thinking this thought further made me giggle. Imagine devs deciding it's the best option for managing some enterprise device, onboarding would be so funny. "Yeah and now you need to enter the address of our buttplug server [..]"

qdot76367
0 replies
1h9m

You're absolutely correct! I mention this elsewhere in the documentation even. Buttplug really is just a userland HID manager at its core. The only specialized part is the context of commands we send to devices.

The original plan (and it may still happen, who knows) was to figure out a way to chop off that top message layer and create a generalized system for doing exactly what you've said. That was going to be called 'deviceplug', and it's why btleplug is under the 'deviceplug' org on github (https://github.com/deviceplug/btleplug). I've just never gotten around to it because I'm not quite ready for the additional support burden yet.

All that said, Buttplug is also a haptics experimentation project aimed at finding out what it's like to create a way to communicate about a very specific type of touch via technology and programming. There are specific goals within the project related to that, but the amount of tech required to actually pull that off means I end up with what basically amounts of a fleet management framework. :)

fitsumbelay
1 replies
17h55m

would love to know more about the author's time as artist-in-residence at Autodesk. Blog looks promising.

arj
1 replies
3h47m

Serious question. Do you put buttplug.io on your CV? :)

qdot76367
0 replies
1h8m

Depends on where I'm sending the CV! It's always on there in some form, but I can recontextualize the library as a "haptic device management system" if necessary. I've also just basically repeated the design of the system verbatim in architecture focused interviews before.

01HNNWZ0MV43FF
0 replies
4h3m

How misleading that human+computer is called centaur chess and yet the plugs are much smaller than the equivalent of a horse

zelias
0 replies
15h46m

top tier saturday night HN post

theoa
0 replies
14h43m

One of the best posts of the year!

Tech, caring and humor in butt one in and out

And there's even an acceptable self-plug!

stevebmark
0 replies
15h53m

“Don’t be horny on main (branch)”

sargun
0 replies
3h34m

I’ve loved the Buttplug project. I was hitting an issue with their Bluetooth library controlling a we-vibe, and someone offered to drive over from the other side of the bay to help debug it. Bluetooth sniffer, and all.

pornlover
0 replies
2h38m

This is actually a think that Oculus / Meta feels like they didn't consider and still don't, even tho by their own statics it's the number one use for VR

Some of this I'm sure is my particular usage but still...

Examples: When the controller batteries are low I get a warning in the middle of my session and it sticks around way too long. If a battery dies in a controller the message is undismissible. The software I use works fine with one controller but instead I have to stop what I'm doing, remove the headset, find a battery, install it, put the headset back on, resume the software, and often reset the view because anytime you take the headset off it resets it's orientation.

There are also times where it just says "Fatal Error" and exits when the battery dies.

Another issue is I have 2d software I use in VR because having a giant screen is nice. But, Oculus insists on playing some annoying hum sound in the home screen with the built in desktop viewer. Note: I'm not using the 3D environments as my home screen because that ads more time to get stated. So, in any case, I have to launch something to get rid of the sound. I usually pick a video viewer app because it's very small and then pop up the desktop over it without selecting a video. But, Oculus is apparently unaware of this use case because they break this in some new way every few releases.

The latest is, if you bring up the desktop in the middle of an app, after about 5 seconds it automatically takes you back to the VR app. It's almost like they forgot the feature exists. Other issues in this area are it went from a fairly rock solid feature to one out of 3 times entering into some bug loop where it flips between paused mode (desktop) and VR app mode. Being able to get out of this loop bug has about a 1 in 4 chance. Fixing it removing the headset and restarting the Oculus software on the PC. Then starting whatever apps you were in.

Note that I'm using a Rift-S. I tried using a Quest 3 with Link which tries to give you the same experience but the Link was way way too flaky, crashing 1 of 3 times, when I pulled up the desktop.

Another feature that broke, which I used frequently, was pulling up the desktop and pinning it so it stays visible while a VR app is running. It was a great way to goon.

And, all of this is using porn software which makes it hard to make bug report that will be taken seriously.

kortex
0 replies
17h49m

I was expecting lulz but this was actually very well written and gets into a lot of the softer aspects of human-computer interaction.

Also the double entendre of "plug" in technology contexts, subtly brilliant.

hank808
0 replies
3h58m

I only read half of this, BUTT it CRACKED me up.