Last Tuesday, an amazing thing happened. A thing that will forever change how we deal with each other and the world around us. Something we thought only governments could do, that's now in the hands of everyone.

Things. Happening.

Last Tuesday, RealTouch released version 2.0 of their Platform Agent Software, along with a firmware update for the hardware. Usually sex toy software updates aren't really cause for mass celebration, but this is a big deal.

RealTouch

Why? Because there's no longer security on the system. The RealTouch is now an open sex toy development system on any operating system you can access the hardware from. With the release of my librealtouch software, that's pretty much all of them.

RealTouch

Now, for those of you that don't remember, the RealTouch is a sex toy (mainly for men, but after our last post, I'm sure there are enterprising women out there that might find some use for it) that synchronizes with movies you play on your computer. This means that if someone/something is moving back and forth in the movie, the belts on the toy will move in the same direction/speed. There's also a heater and lube injection mechanism, making it one of the more advanced toys on the market.

Before this latest release, it cost a good bit of cash to buy the video streams for your toy, and they could only be streamed off the web, so you were stuck being connected to the net, or not having much fun with the RealTouch hardware. That's now no longer the case.

This move brings up a lot of questions. Why open source now? How open source is it? How will they continue to make money? What does this mean for developers? I'll try to cover most of these, as the company behind RealTouch was kind enough to fill me in on the details.

RealTouch Before Last Tuesday

First off, an analysis of where we were with RealTouch before last Tuesday. In order to use the RealTouch hardware at all, a user was required to be connected to the internet. The RealTouch software would contact the manufacturer's website on each use, making sure the user had an account that was paid up.

RealTouch Video

The RealTouch hardware cost about $0.99-$1.99US per minute to use, and could only be used with video streamed from RealTouch's movies page. About 1.5 years after the RealTouch hardware came out, the manufacturer released a Content Development Kit that allowed others to encode videos for the RealTouch hardware, but this never really took off due to the fact that the usage was still handled by the RealTouch company, so just because a developer made new content didn't mean they could easily distribute it to users.

RealTouch Security

Skip this section if you're not interested in nerdery. But then, why are you even reading this blog?

The specifics of the security protocol backing this were actually fairly simple, though surprisingly effective. On starting up the RealTouch "Platform Agent" software, the agent would query the toy for its unique serial number, and one 16-bit pseudo-random value. These would be sent to the website, which would send back a key generated off of these 3 values. This key had to be sent to the USB control box for the RealTouch before it would do anything. The USB protocol was not actually encrypted, and once the key was sent to the box, it would operate normally

There were a couple of ways someone could've cracked this. The firmware could've been dumped from the chip, though the chip is epoxy-dotted on the board so stripping down to the cap would've been prohibitive. Not only that, it would've been much easier to simply reverse engineer the pinout of the RealTouch connector and build a new controller box. There's only 2 motors, a servo, a pump, and a heating element in the device itself, so this most likely could've been done with an Arduino and a motor shield. There were a few places online that listed pinouts, but as far as I'm aware, no one ever manufactured boxes.

Anyways, none of that is really needed now.

RealTouch Opens Up - Why?

Obviously this business model meant that they'd at least make some cash. If anyone ever wanted to use their toy, they'd have to pay up for it. Of course, if the company ever went bust, there'd be hell to pay since no one would ever be able to use the hardware they'd purchased.

Also, the RealTouch company was apparently finding out that developers weren't all that interested in a platform they could make content for but not control. That works for places big enough to have popular app stores like Apple, but for a small sex toy manufacturer, it doesn't scale at all.

RealTouch Interactive

The new business strategy appears to be centered around the new RealTouch Interactive Toy, which we wrote about here earlier this year. The RealTouch Interactive is a sensor enabled (capacative touch sensor) dildo that allows models to interact in real time with Real Touch hardware users.

The interactive toy will only be distributed to models, and all content must be hosted and streamed through the main RealTouch content distribution website. Therefore, they still own the revenue stream generated by the toy. That makes static content a little less interesting to try to keep hold of. Not to mention, they're hopefully at a point now where the $329 for the toy is turning a profit.

Back on the RealTouch user hardware side of things...

By removing the online security for the RealTouch hardware, the company can get into the DVD business without having to worry about the player being connected to the net. They also hope new developers will pop up and add features to the toy, like access to the Second Life Virtual World.

RealTouch Protocol Overview and librealtouch

While there's no longer security on the system, RealTouch doesn't have much of an interest in providing low level, direct USB interaction with the toy. Unlike the Microsoft Kinect situation, which required drivers written for all platforms to start the project, the company behind RealTouch have already done enough work to make sure there's not much of a need to create new low level software.

The genius is that RealTouch Platform Agent is just a small network server that listens on a port on localhost. It takes ASCII commands and turns them into control messages for the toy. Therefore, any program that can talk to a network port can now control the RealTouch hardware. There's not really any reason for them to put the QA time into releasing for non-mainstream platforms, or the developer support into low level USB access.

So, why am I doing this? Because it's what I do. Not to mention, I highly doubt we'll ever see RealTouch software for Linux, Free/Net/OpenBSD, Haiku, or any other non-mainstream OS. Implementing the low level protocol means we can bring the toy up on whatever platform we might need. RealTouch doesn't really care either way that it's being done, as it only helps their revenue model.

I've spent the past week playing with the new firmware, and figuring out the protocol. The CDK commands map almost exactly to the low level USB protocol, so anything the low level access can do, the CDK can do. This includes:

  • Heater Control
  • Lube Control
  • Period Movement of Top Belt/Bottom Belt/Opening with envelopes/magnitude
  • Vector Movement of Top Belt/Bottom Belt/Opening with envelopes/magnitude

For more information on the CDK, check out the CDK Documentation

The protocol itself is laid out in a proof of concept format in python at https://github.com/qdot/librealtouch/blob/master/python/realtouch.py

I'm working on a cross-platform HIDAPI based version of the direct USB access library, as well as the usual PureData/MaxMSP/Processing bindings to the network layer for artists. I figure librealtouch will most likely just stay C for low level access, and most other language bindings (because god knows Ruby people would love to wrap their language around their genitals) will just be network access, which keeps things easily cross platform.

Where We Go From Here

So, now the $329US price tag for the RealTouch hardware gets you an open development platform as well as a sex toy. That's neat. It'll be interesting to see if anyone takes advantage of this. One of the best resources for development is the RealTouch Forums, where multiple people are already developing their own encoding software.

I'll be writing future articles on how movies can be encoded for the RealTouch and other synchronization toys, both manually and algorithmically.

I'll also probably be doing some pretty stupid shit with the RealTouch. So stay tuned!