[HN Gopher] Buttplug (Sex Toy Control Library) Hits v1 Milestone ___________________________________________________________________ Buttplug (Sex Toy Control Library) Hits v1 Milestone Author : qdot76367 Score : 177 points Date : 2020-12-28 18:01 UTC (4 hours ago) (HTM) web link (nonpolynomial.com) (TXT) w3m dump (nonpolynomial.com) | ww520 wrote: | Is manual fallback the only option in the case of a unrecoverable | exception? | qdot76367 wrote: | Turns out that rust's "panic" has a completely different | context when applied to this context. :| | ExcavateGrandMa wrote: | terrible hacking :D | miohtama wrote: | We never got desktop Linux, but 2021 will be the year of open | source kinkware. | qdot76367 wrote: | Buttplug Project lead here! AMA. | joelbluminator wrote: | What motivated you to do this? Is there some financial gain to | be had? How is adoption? | [deleted] | lordnacho wrote: | What's the security model? Are there multiuser devices? | qdot76367 wrote: | This is a really difficult to answer question because of the | place in the stack this library inhabits. Buttplug _only_ | cares about accessing hardware, so while it may sound like a | cop-out, our security model is "whatever the hardware gives | us". Multi-user control systems would be built on top of the | library, and that's where a good bit of the security work | would happen. | | That said, there are some security/privacy features built | into the architecture to reduce metadata dissemination, I'll | be outlining those in the developer guide at some point. | codefined wrote: | Do you feel the progress of the project is hindered / | benefitted / not effected by any stigmatism in western society? | Do you ever find it hard to talk to friends / family / | colleagues / strangers about this project? | qdot76367 wrote: | Oh, definitely hindered, but it's kind of a network effect | deal. Sex education isn't a high priority, so most people | barely know sex, much less sex + tech, which is very much its | own thing. That makes building technology like this extra | fraught, because of the amount of thinking I have to do up | front in order to try and guide things in as safe-ish a | direction as possible. | | As for talking to people about the project, I've been a | public face for the field of sex tech since like 2005, so by | this point I'm pretty used to it. It's on my resume, I have | academic publications and book chapters on the subject, I've | spoken about it at all sorts of conferences around the world, | so I've kinda settled into being "The Buttplug Guy". | | It took a ton of hard work and image building to get here | though, so it's a cliff I don't really recommend anyone else | try to climb without realizing how much work it is. | giantrobot wrote: | There's _way_ worse stuff than being "The Buttplug Guy"! | [0] | | [0] https://m.youtube.com/watch?v=A85ipUgy5B4 | zamalek wrote: | What you are doing is important work, not because of butt | plugs, but because it is helping normalize talking about | sex, and "niche sex," in the tech community (also YouPorn | engineering!). Having engineers in the west be open about | sex is far better than having nobody open about it. | | Openness about sex really is one way to improve the health | of the societal zeitgeist. | qdot76367 wrote: | Thanks! This is why I say the project is as much social | as it is technical. The technical topics are definitely | important, but the project as a whole invites scrutiny | not just from developers, security engineers, etc, but | also from those interested in or critical of how consent | and control work in technical means, what it means to be | intimate over remote mediums, etc... | | As an example, one of the things I was working on right | before COVID-19 hit was a book chapter on digital | proxemics, i.e. how we map and relate personal space in | digital realms. This project and how it's been utilized | to augment online intimacy was a big part of that, and I | turned in the book chapter to the publisher the week | COVID-19 lockdowns started to hit in the US (still no pub | date tho :( ), so it's been a lot of seeing how those | ideas play out in large scale since. | errantspark wrote: | I very much appreciate STPIHKAL helping me get started | exploring this stuff. I'll admit that the library itself was a | bit intimidating. I ended up not using it and just wrapping the | protocol for the particular toys that were of interest to me in | about 40 lines of JS in order to implement chrome's | experimental `writeValueWithoutResponse`. I'm pleased to report | has a dramatic effect on latency. I wish I could contribute | back but the code is just over-my-head complicated. | qdot76367 wrote: | This is something I'm trying to figure out how to better | communicate about the project, and there will be another blog | post on this soon. Buttplug is both a floor cleaner AND a | dessert topping, and that can really be detrimental to the | initial developer experience. | | There's a dichotomy in this project that's difficult to | resolve: | | - Community wants sex toy access because there isn't much | else out there that does this. | | - I wanna learn new stuff and also have a weird "LET'S PUT | DOOM ON IT" mentality of having the library support | everywhere. | | So we end up with support for lots of toys, but it's on top | of a complicated, violently async rust library that is in | some cases compiled to WASM, which is a whole stack of | technologies not a lot of people are familiar with. | | To torture another metaphor, I've ended up building the | hulking game engine for sex toys, when a lot of people would | be fine with some Atari 2600 games that vibrate. Lots of | people are going to have 1 toy they want to control with 1 | simple interface, where my interest lies in "how does someone | release a game on Steam that seamlessly supports whatever the | user shows up with". | | The updated developer guide (https://buttplug-developer- | guide.docs.buttplug.io) is my first crack at trying to cater | to all audiences, but it's got a long way to go, and the only | way to test documentation is to hopefully wait for feedback | from people who read it. | | But that's why try to I keep both the protocol and reverse | engineering documentation up to date. I don't _want_ people | to have to go and reimplement things, but if it has to | happen, I want to make it as easy on them as possible. | mkr-hn wrote: | Any plans to do a panel on sex toy development at post-covid | furry cons? | qdot76367 wrote: | God, it's been a while, hasn't it? | | We'll see if I get any invites. Seems like a very BLFC kinda | panel. | j1elo wrote: | Would you say that collecting all protocol specs from each | individual device is where most of the work lays behind this | library? | | Otherwise, could you tell us about where is/was the 80% effort | to build what the library does, and what would be the next 20% | / last mile to consider it "done"? | qdot76367 wrote: | Protocol specs are actually pretty easy. The protocols aren't | that complicated, and there's some pretty simple ways to | figure them out. It's usually an hour or two per new device, | at most. | | Everything that v1 rust does right now, our C#/JS versions | did before, so the technical work there was mostly fitting it | from gc'd runtime'd languages into Rust. I'm much better at | Rust now though! | | The majority of the work technically AND design-wise (for me | at least) is the haptics abstraction. Our protocol is built | on a system of "verbs" at the moment, i.e. "vibrate", | "rotate", "stroke" (though we call it linear because it only | goes one direction at a time), etc... I'm writing a larger | blog post on this, but to summarize, it's REALLY hard to | build a language around this that's general. For instance, | the Lovense Max (a onahole style toy) has an air bladder that | inflates/deflates. It's about the only thing that has that. | So do I just make a new verb called "inflate"? Do I try to | match it to other toys with constriction like systems and | call it "constrict"? Does it even matter? | | But, that's an ongoing problem. In terms of "done", I think | the next _big_ milestone will be mobile app support. We work | on mobile web browsers in a couple of different ways, but | Buttplug still needs app support, both native and for things | like cordova /react native/etc... The biggest issue there at | the moment lies in our bluetooth library (btleplug, | https://github.com/deviceplug/btleplug), because getting the | FFI via JNI to android is going to suck (even though I can | crib off Servo's WebBluetooth impl, which worked on Android). | raldi wrote: | What are some of your dream ideas for how this one day might be | used? | qdot76367 wrote: | Seeing the uptake in VRChat has been pretty awesome. For the | record, I grew up on MU*s, built the first Second Life sex | toy interface in 2005, which ended up with me working at | Linden, so I have a special place in my heart for virtual | worlds. | | Otherwise, I am always really interested in ways people build | for themselves that they're willing to share with others. So | the answer to this question tends to be "my dream ideas are | the stuff I can't possibly dream of" :) | caeril wrote: | Glad to see HN really interested in the technologies that will | truly advance humanity to the stars, rather than those that | encourage distraction by our limbic systems. | | I'm sure that climate change and other existential risks will | wait until after we're done with our sex toys to wipe us out. | | edit: Brilliant response, "Hacker News". Maybe if you cum enough, | we'll be able to grow enough cereal crops to feed 8 billion | people in 102 degree weather, after potash is a thing of the | past. | codefined wrote: | You might want to read up on 'Fallacy of Relative Privation' to | see why this point of view is likely to not be helpful. A good | starting point is this[0]. | | [0] https://academy4sc.org/topic/fallacy-of-relative- | privation-a... | davidkuhta wrote: | You think 'The Fallacy of Relative Privation' is bad? What | about the 'tu quoque' fallacy. Wouldn't you consider that a | bigger problem? | caeril wrote: | Thanks for the rare thoughtful reply, but the fallacy is, | itself, a fallacy. IQ/g-factor/ability to reason about | systems is unevenly distributed - and, critically, a zero-sum | game. For every +2 SD IQ engineer devoted to making humans | orgasm, there is one fewer +2 SD IQ engineer devoted to other | pursuits, N% of which would have been positive for humanity's | progress. | | Unfortunately, you can't really get around this without | heroic efforts to shift the bell curve to the right. | | edit: Looks like I'm wrong again! Looking forward to HN | pointing me to the magic fairy dust that miraculously | conjures up raw intellectual talent from the ether. | michaelt wrote: | Aw man, you are going to be so mad when you find out the % | of software developer effort that goes into adtech and | entertainment. | | Because I guarantee you, for every developer working on a | sex toy there a thousand working on selling lootboxes to 12 | year olds, and ten thousand working on showing adverts to | people who'd rather not see them. | aprescott wrote: | I have no real opinion on the project in question but | devotion is not a fungible, generically applicable resource | you decide to apply to one issue or another. Run a test for | whatever "IQ/g-factor/ability" handwave you're referencing | on someone that loves their work and someone that doesn't. | caeril wrote: | I think the research is pretty clear on the matter that | "passion" is largely derivative of competence and the | values of the environment. A society that chooses to | elevate meaningful accomplishment and value training | people to pursue it is likely to be markedly different | than the instant gratification culture we are currently | swimming in. | | edit: Whoops, factually wrong again, apparently! Perhaps | this den of rationality that purports to follow the | science and research will cite literature contrary to the | overwhelming evidence that human interest derives from | competence and acquired values. Maybe it's actually from | unicorn farts and kitten snuggles? | not_knuth wrote: | I can not help but detect a condescending tone in your | comments (if such is not the case, my apologies - Poe's | Law and all) and find it interesting that you have not | provided sources to the "research" which your claims are | based on. | | I think it would benefit everybody if you could share a | couple of links to some "research". | scpedicini wrote: | No thanks, I'd rather make out with my Monroe bot. | qdot76367 wrote: | We'll hopefully have Monroe bot hardware support in an | upcoming version of the library. | henearkr wrote: | Happy humans are less likely to wage war. | | So, lowering frustration and helping raising levels of | serotonin and endorphins, even by using tech, is | intrinsically good for the world. | | Also, it seems that an active sex life (be it with tech or | not) is not dangerous for health. | | The only reserve could be the tech pollution of badly | discarded toys etc, but that has solutions. | | PS: Also -- bodily happiness can improve creativity, thus | actually indirectly helping advances in other scientific | domains. | morlockabove wrote: | Are sex toys alone actually fulfilling to most people? | Given the number of people on thw internet complaining | about misery from sexual loneliness, it clearly isn't | enough. | | Sex toys, porn, and enculturing cowardice stave off the | war, I guess. You just get Elliot Roger instead. | henearkr wrote: | The connectedness of the new generation of toys, combined | with worlds such as VRChat, are contributing to make the | loneliness of "not skin-to-skin sex" a thing of the past. | | Also you start to see (unmanned) virtual characters | sophisticated enough to trigger emotions of love, and in | some case commitment. It is clearly still extreme and a | bit too early, but in the near future I can see people | becoming really in fond of their virtual AI character | partner. | | We agree that not only immediate endorphins levels, but | also mid and long term serotonin levels, are important | for happiness, and I think that this connected tech is | helping in the right way. | morlockabove wrote: | Sounds like hell. Nothing personal, but I really hope | your enterprise fails miserably. | henearkr wrote: | It's what some people need. | | People who don't need it just won't use it. | | It's not a "smoker / passive smoker" effect, they will | not disturb other people. | morlockabove wrote: | Some people need heroin. I'm against the war on drugs, | but I still despise dealers. | henearkr wrote: | But in the case of heroin there are huge side-effects on | health of the user and on the security of the surrounding | people. | qdot76367 wrote: | VRChat via a few different plugins (that I should really | link from my awesome-buttplug repo) makes up a BIG chunk | of my users. | | Which kinda makes me sad because VRC is an absolute | nightmare to work with. Can we please all move to NeosVR? | :3 | asxd wrote: | I think the reason you're getting downvoted is pretty much | that you're trying to impose your ideals on others. Some | people likely benefit from this library. Some people | benefit from the latest video game. If we were all working | on curing cancer, the sad truth is that there wouldn't be | very many fun things in life. | dazzawazza wrote: | Having a life worth living is something a lot of people | forget to do. | morlockabove wrote: | If we all worked on things as important as curing cancer, | we could build god and live happily forever. Whichever | generation manages this will 'win'. (Or they build a | paperclipper and ruin the lightcone.) | qdot76367 wrote: | But I don't want to cure cancer. | | I want to turn people into dinosaurs. | | (https://imgur.com/YKaqaTH) | zxcvbn4038 wrote: | Hashtag #Scalies? | StavrosK wrote: | > When working on Buttplug applications, something that should be | at the forefront of your design thinking is: | | > Someone is going to fuck this. | | I love this project. | djsumdog wrote: | I was curious and tried working with this an a device about a | year ago and the whole thing felt like a mess. There are browser | components, electron cancer, web-to-bluetooth pieces. I think I | could get my device to register/pair but couldn't get anything | past that. | | I was looking through the docs and the only useful thing seemed | to be the low-level code if I wanted o make my own applications | on top of it. | | The reverse engineering work is important, but the tooling/UI | needed work. I actually want to contribute to this to help, but | it's a bit far down on the backlog of life. | devwastaken wrote: | What's wrong with web to bluetooth or web browser components? | Electron is pretty standard for user facing cross platform UI. | This is a sort of application that has the right to use more | resources - because if you're 'vibin' I don't imagine you're | really needing that other 150MB to run minecraft modpacks. | Perhaps if you're in VR and only have 8GB of ram. | | You have to hone your expectations for free projects. Native or | native-like UI toolkits are expensive on time. Time is the | biggest problem with making free software for people. Now if | this were a commercial product - yes I agree with the | criticism. There's no reason at that point that they couldn't | do GTK3, QT, flutter, etc. | thatguymike wrote: | Depends on the minecraft modpack ( deg [?]? deg) | qdot76367 wrote: | Yup, the way I'm trying to do things definitely may not be | right for everyone, and that's fine! That's why the reverse | engineering work is documented | (https://stpihkal.docs.buttplug.io, but also check the github | repo because I am years behind on updates based on issues now), | so if people want to pick up protocols and try their own thing, | they absolutely can. I want to learn from other people | approaches to this too. | | In fact, that's exactly what xtoys has done: | | https://xtoys.app | | They're just using the reversed protocols my project | documented, while building outside of my admittedly complicated | library interface. It's been a great project to watch grow, | because while I'm kinda hyperfocused on platform and hardware | support, they're going breadth-first with user focused features | on a WebRTC platform. | skocznymroczny wrote: | How's the security of this? Do you do penetration tests? | 1vuio0pswjnm7 wrote: | It's only a toy library. | __MatrixMan__ wrote: | Related: https://internetofdon.gs/ | | (It's as sfw as a sex toy hacking site can be) | snuxoll wrote: | Groan, take an upvote. | | In all seriousness, many of the devices in this space are | woefully insecure - this is just a library to control them | using whatever native protocols they expose. | dhsysusbsjsi wrote: | This is something I could get behind | IgorPartola wrote: | Always a good idea to check it out for any back door access | issues.at least we haven't gotten to hot code loading being | a problem yet. | | I suspect that engineering of any kind has more perverse or | pervertible terms than any sex toy industry. | qdot76367 wrote: | Not saying that I take constant advantage of that on | twitter, but... | | https://twitter.com/buttplugio/status/1341958265475723264 | paul7986 wrote: | yet not something you can get on top of or ? | loceng wrote: | This is what she/he said. | | Edit to add: a thread of sequential puns and then.. | keyle wrote: | Off topic, I love that the good jokes still get upvoted on HN | and it's not a bro-aehaeh-land like Reddit is. | | I wonder what the difference is, maybe just a more mature | audience? Nerdier jokes? | wut42 wrote: | I played a bit last year building my own sex toy controller, | using a lightweight RPi Zero, an Erlang server, and a | nanoKONTROL2 controller. It was quite fun and I hope to find some | time soon to resume working on it :-) Bluetooth isn't a fun | protocol to deal with, tho. | qdot76367 wrote: | Oh that's awesome! Sounds like a real cool setup. :D | | We _do_ have our CLI server compiling for RPi0W if you 're | interested, though I need to update that soon. This is well | into the "no so documented" part of the project tho, so it's | not super easy to use yet. | | https://github.com/intiface/intiface-cli-rs | wut42 wrote: | I decided to go custom because I love writing code, but | thanks a lot for buttplug and its documentation: it's how I | managed to get my code to work with Lovense's products. I'll | surely try to give a shot at using Buttplug one of theses | days :). | | To elaborate on the setup, it could manage four or five toys | at the same time; all controlled by the nanoKontrol. I could | even record custom loops and patterns for each "track" to | have more fun. | asfarley wrote: | This reminds me of a story an industrial designer told me: he | worked on a dildo with a scripting system, so the ladies could | set the number of milliseconds for each waveform profile on the | haptic motor. The product was not a success. | qdot76367 wrote: | Yup! Interfaces have been a problem in the industry going back | decades. See me getting excited about a similar product that | catastrophically failed back in 2006 (when I was a young, far | less experienced engineer :D ): | | https://www.metafetish.com/2006/02/17/je-joue-part-2-my-god-... | | Presenting something like this library directly to the user | will end up in product death. What I'm building is a tool for | developers to refine that end product interface specifically so | the user (who is usually horny and does not care about | technological details) can have something they can work while | in that state. | | But it's gonna take a while to get there. | xellisx wrote: | I looked into doing something like in the early 2000s, bit | found that my idea would take more power I was comfortable to | be able to provide in such spaces. | [deleted] | amelius wrote: | Will there be support for iOS? | qdot76367 wrote: | Working on it! | | Technically I _think_ btleplug might already work for iOS (I | haven 't tested this but I've heard the corebluetooth calls | stay the same?), and I've gotten the library to compile for | iPhone, but I still need to build Swift FFI bindings. | | The web version currently "works" via the WebBLE browser that's | a available in the app store, which is just the webview | polyfilled for WebBluetooth: | https://apps.apple.com/us/app/webble/id1193531073 | | But I wouldn't call that a great experience. | | The hope is to support both android and iOS for apps soon | though! | cromwellian wrote: | Brings a whole new meaning to the term "plug-and-play". Sorry, | couldn't resist. | thunderbong wrote: | A sixteen year quest! Amazing! | noman-land wrote: | Speaking of sex toy security, this reminds me of one of my | favorite recent posts here: | | Blowjob Injection Attack - | https://news.ycombinator.com/item?id=24702282 | stevespang wrote: | Hahahahahah. | qdot76367 wrote: | Sarah Jamie Lewis's work on privacy has been massively | influential on the work I'm trying to do. I also highly | recommend checking out her Oniondildonics post about metadata | obfuscation in anonymous teledildonics interactions: | | https://mascherari.press/oniondildonics/ | | She's now running the Open Privacy project, which is doing | great work on general anonymized communication: | | https://openprivacy.ca | zxcvbn4038 wrote: | Reminds me of an episode of MST3K where they played a '50s beer | documentary that went in depth into all the science and | engineering behind keeping the beer cold between the brewery and | the store. Then one of the robots pops up and says - "Meanwhile, | the Soviets were developing Sputnik." | DoofusOfDeath wrote: | Are you thinking of "As You Like It"? If so it's also available | from rifftrax.com. | dj_mc_merlin wrote: | > 2013 - First Python implementation, known as "Fuck Everything". | | Amazing. Nice to see people dedicated to the fine arts of | buttplug manipulation. | | Just FYI: | | > August 2017 - Kyle incorperates Nonpolynomial | qdot76367 wrote: | Someday I will learn to spell incorporates. | | But yes I do run a startup on this software! Mostly for | consulting for larger product manufacturers, though there may | be some services work happening in the future. I've been poking | at some ideas around containerizing teledildonics services, but | there's a whole host of social and legal issues around the idea | that will take a while to iron out. | dj_mc_merlin wrote: | If you have the time, mind detailing some of the legal | issues? | qdot76367 wrote: | The biggest one for me is information storage and | transmission. People want repeatable interfaces, which | means it'd be nice if they have an account, but how much | information should I hold about that user in relation to | their usage of a teledildonics service? My work exists in a | very odd gray area that's not quite porn, so under | SESTA/FOSTA and the upcoming SISEA, I'd have to figure out | what I am/am not liable for. | | Being a single developer project that's open source but | also a company and yet I already have multiple lawyers, I | really can't afford to be a test case for that. | dang wrote: | If curious see also | | https://news.ycombinator.com/item?id=23094477 | [deleted] ___________________________________________________________________ (page generated 2020-12-28 23:00 UTC)