Metafetish Dev Log - Week of 2017/07/03

And then every 2 weeks just became every 5 weeks. Oops.

Metafetish Org

Buttplug Protocol Spec

The Buttplug Protocol Spec Repo now contains the reference documentation for the Buttplug protocol, as well as our JSON schema. This will be the central source of truth for Buttplug client/server implementations.

Not much new to announce here other than that it exists. We're trying to minimize the amount of changes we make here before v0.1, but once that's done, expect to see lots of action here as we start adding new message types for more devices.

Buttplug CSharp

For Buttplug C#, we're down to polishing off the rough edges on the v0.1 release. The server seems to be working ok, and we've had a decent amount of testing going into the Kiiroo emulator, slightly less with websockets since that requires building all of our own apps. We've got quite a bit of documentation and website work to do, but are hoping we can get some basics up and a realease out, so we can start getting feedback for v0.2.

Buttplug JS/Typescript

The Buttplug JS/Typescript library for accessing the server is up on npm now, at Expect breaking changes a bunch, since we're still pre-v0.1 of a reference server release.

This package will also be expanding into a WebBluetooth based server for platforms that support WebBluetooth (currently MacOS/Linux/Android/ChromeOS). We'll have an extra add-on package for using Noble in node, and the combination of that plus this repo will give us both cross-platform clients and servers in node for those that are interested in that as a platform.


SyncyDink is our web-based movie player, based on video.js and vue. We're building reusable components for connecting to buttplug servers and doing tasks like scanning for and listing devices.

The movie player portion can currently load a movie, and load haptics files via our new haptic-movie-file-reader library. This isn't on npm quite yet but should be in a day or two, will make another post when that's done.

We'd like to have syncydink working well enough to ship along with v0.1, but don't want it to block our release, so we'll see where things are.

Other Projects

Been a bit quiet lately elsewhere. If you've got an open source sex project you're working on, please let me know via twitter or the email address at the bottom of the page!

Buttpluggin' With qDot Episode 2: Buttplug Software Alpha Demo

There's a new episode of Buttpluggin' With qDot up! This time around, I show off a quick demo of the work I've been doing on the Buttplug software implementation. Controlling 6 toys at once using movie sync!

New Metafetish Discourse Forums

New forums are up at!

Metafetish has been a fairly quiet place socially for a long time. I shut down the phpBB instance we started with in 2007, then shut down disqus blog comments after they turned into, well, your average blog comments sections.

We've got the slack instance now, which is working great, but I figured it'd be good to have a less real-time-chat way to talk to people, especially with the impending first release of Buttplug, all of our various estim reverse engineering efforts, etc. With that in mind, I've set up discourse forums at Stop by and say hi!

Metafetish Dev Log - Week of 2017/05/29

Ok maybe it's just better to do these every 2 weeks.

Metafetish Org

Not that it really matters, as my life now consists of nothing but...


The good news is, the C# side of things (repo at seems to be fairly solid. We've had our first successful test using the C# code and a fleshlight launch on a machine not owned by me! After that, spent a good bit of time working on getting crash logging set up. My .NET experience is rusty at best and even with ReSharper I am probably missing a lot of places I should be catching exceptions and what not. If you're a .NET developer interested in sex toys and would like to help out with reviews, architecture, etc, please get in touch (see how below)!

I've now moved on to working on the web applications side of buttplug. This will consists of a Node.js/web library written in Typescript (Repo at, package name is reserved on npm but package hasn't been uploaded yet as I'm still figuring out typescript distribution), and a Vue.js based movie player application (Repo at I'm trying to put the Vue.js components together in a reusable way so that other applications can be built quickly using them. If someone else is interested in building React components (due to my history with frontend work, I just "get" vue.js more than I do React), please feel free to get in touch and we can coordinate (see how below).

Here's what I see as the path to making a v0.0.1 release:

  • Finish up enough vue.js components to build a webapp that allows for "random control" of the Fleshlight Launch on Windows 10, which is one of the biggest requests so far.
  • Document how to install the application, and how to access the random control application.
  • Test everything throughly for a bit, then do a release.

Things I'd like to finish soon after that:

  • Get movie synchronization playback working with Syncydink via a Vue.js/Video.js based application.
  • Document the full Buttplug protocol and architecture in Gitbook.
  • Document code. :|
  • Build pure WebBluetooth Buttplug server implementation for supporting Mac/Linux bluetooth toys.

To get in touch with me/help out on this stuff:

  • My DMs are open on twitter (@qdot), or you can message me on Fetlife.
  • I'm always on the Metafetish Slack. Hit me up on one of the other places I've listed here for an invite, or join the IRC channel at #metafetish on Freenode IRC.
  • I'm trying to keep up on the r/fleshlight subreddit and RealTouchScripts forums.
  • Check out the issues (or file more!) on the aforementioned github repos. Right now I just assign everything to myself 'cause that's how my todo lists work. This doesn't mean that I'm working on everything, and I'd be happy to mentor on some bugs. Do note that you will be walking into an undocumented codebase built by a one person army over the course of a month, so be prepared for randomness, jank, and random jank.

I've been getting contact from people who are so excited about this project that they want to learn how to program in order to help out. This is absolutely awesome! The big thing standing in the way of me helping on that right now is that I don't really have time to work on my dayjob, work on the application, and mentor at that level (not to mention, the whole "no documentation" thing makes this a really thorny project at the moment, especially with my penchant for mixing language paradigms.). Once we get our first release out the door, I am planning on building some code tutorials on how to control toys via Buttplug. This should be a good way to start interacting with the application via code and ramping up to be able to help out on the applications themselves.

If you'd like to prepare for those tutorials happening, I recommend you start reading up on javascript. That'll allow you to hit the ground running. As for which tutorials to hit up, I'm working on building a list of those now, and will make a follow up post about it.

Other Projects

Hah. Hahaha. Haaaaaaaa.


Outside Projects

Things have been pretty quiet otherwise, as I suspect the other developers working on this stuff are also heads down. At this rate, we'll probably see a big release of a whole bunch of apps all at once.

Metafetish Dev Log - Week of 2017/05/15

Whoops, missed a week. But now we're back!

Metafetish Org

The last two weeks around the Metafetish Org have been all...


Hahahah remember when I said 4 weeks ago that I'd just "Throw something together over the weekend?" Hahahaha that was so funny god I'm an idiot. You'd think after a couple of decades of coding I'd be better at time estimates but nope.

My life continues to be one unending development sprint toward the ideal sex toy control software, for some values of ideal matching the architecture that exists only in my head. The good news is that the C#/.Net implementation of Buttplug is now much closer to release. I have the Fleshlight Launch, Lovense Toys, and gamepad vibration working. I'm mostly working in the GUI now, versus futzing with the libraries. Not only that, as of yesterday I got Windows 7 support working! Note that this is only for XInput, as bluetooth APIs for Win7 are still an open question. Even so, if you're still on Win 7 you'll at least be able to rub up against your gamepad!

If you're interested in up to the moment updates, I recommend watching the github project. I'm using the issue tracker there as my to do list, though I haven't been doing a very good job of updating milestones.

Other Projects

No, really, that's it. All of my poor video equipment is collecting dust.

Outside Projects

Other projects continue to move along! GoLaunch and LaunchControl continue to gain new features, and the Swift language version of the Fleshlight Launch control code has been seeing activity too!

Short update this week, but lots of stuff on the brink of being released!