Vice Motherboard Article on the Buttplug Project

The Buttplug project got a feature in Vice Motherboard! It's a great overview of the goals of the project.

We also recently finished and released the first version of buttplug-csharp, our Windows 10 client, and we're now hard at work on tutorials for our browser based Buttplug server for Mac, Linux, Android and ChromeOS! We'll be posting more information about this later this week.

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.