UPDATE: I totally flaked and uploaded a version without code attribution (massive apology to everyone who (unknowingly) contributed and got left out for a few hours) or compile/use tutorials, and just realized it. I fixed a couple of tiny bugs, but a million huge stupid ones still exist. Anyways, new version is in the link below.

So Scott Beale was all like "New term: "twitterbaiting", trying to get people to come to where you are, often by name dropping" and yoz was all like "@laughingsquid - could be mistaken for Liz's term "twitterbating" (no i) which is similar but... stickier." and then I was all like "twitterbaiting. Hmm. eyes hardware in his backpack and realizes he /does/ have xcode on this machine..." and then Chip Poutine was all like "@qDOT: I'm not even going to say what the obvious name for that is..." and then Spin Martin was like "Hahahahahaha @ 'clitter'" and I was all like "TWITTERDILDONICS: I will hopefully have it done by the parties tonight."_

And 3 hours later, it's done. It's shitty, it's hacky, but it's vibrating in my lap RIGHT FUCKING NOW.

TO CONTROL THROUGHOUT THE EVENING FRIEND TWITTERDILDONICS ACCOUNT: "TD" (I will make posts on this twitter account when it is live)

Right now, it just pulls the last 15 messages from the friends list and runs through them using the follow algorithm:

  • Search for TranceVibrator and initialize if found, otherwise exit
  • Fetch friends status updates from twitter using CURL
  • Parse into NAME: STATUS pairs using XPath
  • For each character from a status

    • Take character and add 100
    • Set motor speed to value
    • Sleep for .1 seconds

While this was the shortest path to finish, it's actually very interesting, because word length, placement and choice of characters actually emerge into a sort of cadence (" " sets the motor to near zero).

Source Code Available Here


  • Trance Vibe
  • Twitter Account
  • libUSB
  • libCURL
  • libXML

My test platform is OS X 10.4.


  • Someone please fucking rewrite this in python. It'll be like, 4 lines then. I was just too lazy to try and get the swig shit working for libusb
  • Some sort of compressed control protocol for actually sending patterns
  • Queuing (Right now I just pull the whole list and replay it over and over. Should only play new messages. I might finish this one at a party tonight.)

I'll have this with me at all the parties I go to tonight (EFF, LifeHacker, ?!?), but it does require wireless + my laptop being on to run.