Thank you for accelerating "soon". This is wonderful.
4,465 karma · joined April 19, 2011
Arctic Fox, Teledildonticist, Cube
kyle at nonpolynomial dot com
Founder/CEO, http://www.nonpolynomial.com Project Lead, http://buttplug.io
http://www.github.com/qdot
Personal Social Media: x: http://www.x.com/qdot masto: https://buttplug.engineer/@qdot bsky: http://bsky.app/profile/buttplug.engineer
Project Social Media: x: http://www.x.com/buttplugio masto: https://buttplug.zone/@buttplugio bsky: http://bsky.app/profile/buttplug.io
[ my public key: https://keybase.io/qdot; my proof: https://keybase.io/qdot/sigs/_okfbrkwvHkwkfCtYBGwY6DPWBQiBbJ3igUbNufA-lM ]
Thank you for accelerating "soon". This is wonderful.
I'm qDot, creator and project lead of https://buttplug.io!
We're already well off the front page but feel free to AMA. :)
Glad that the article does take the whole subject to task but I’m just kinda ready to move on to something more useful. It’s a continued media engagement over things that were vacuous to begin with.
(Granted I work in the industry so this is also a case of massive overexposure heh.)
There’s interesting stuff happening in sex tech, but sex with robots sure ain’t it.
https://www.fiercebiotech.com/medtech/adhd-game-developer-ak...
Most of my users seem to agree that yes, it is more reward than just playing the game.
> Keep doing you, Buttplug; just remember, the internet is forever, and so is that awkward curiosity about your profile!
This isn’t a roast, it’s just correct
My name pops up.
Hell yeah. A++++ completely accurate would use again.
Also fantastic github account names.
Would love to discuss these use cases more though, feel free to contact me via one of the methods in my HN bio!
It's a fully web based (though closed source) toy control application that supports about as many devices as I do, plus a bunch of others that I don't, and has Blockly scripting and WebRTC for remote sessions.
It's neat as hell.
There's a god damned heart rate profile standard in the bluetooth spec AND YET I'm not sure I ever actually worked on a device that used it. :|
Ok. Let's break this down.
The library currently handles support for 523 different devices from at least 40-50 manufacturers. (https://iostindex.com/?filter0Availability=Available,DIY&fil...).
These devices can connect over bluetooth le, usb (both raw and HID), serial, or one of several network protocols. We support windows, mac, linux, android, iOS, and WASM/web, each having their own HW APIs (or in the case of the mac/iOS crossover, specializations within the API). On several of these platforms there are also massive variations in bluetooth radios, which can cause a huge array of issues.
Each device may have variable actuators, or may also have sensors to take input. They may also require their own keepalives or other specializations specific to their protocol or brand to manage connections.
We then have to generalize commands to make life easier on developers. They send us those generalized commands, from whatever language they like since we abstract into an IPC system and provide a language-agnostic protocol spec, from whatever interconnect they want to use because our connector system is also violently flexible, and we have to convert them into the correct protocol and ship that over the correct bus.
So, since you're curious about why your solution for one device from one brand running through a web browser differs from my library, there you go. It's just a matter of different goals.
Now, if you can do all that in 10 lines, fantastic, I look forward to your library as competition in the future. :3
While I'm glad you've found a solution that works for your case, I can't tell you why you were seeing latency in our library that wasn't also in the browser. I'm well aware of the JS-to-IPC-to-hardware chain in the browser (I'm the ex-device interfaces lead on firefox, worked with some of the chrome engineers on the development of the hardware focused WebAPIs too) and it's even more complicated than ours.
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. :)