Metafetish

Freesex Network - Sex and Second Life, Version 1.0

Freesex Network: Sex and Second Life, Version 1.0

Thanks to Hunting Hare for being the enabler that got me playing SL in the first place. Bastard. :)

With help from Velox Severine, as well as most of #secondlife on EFNet, mostly unwittingly

Model for Pictures: Kae Languish (In-Game Name. Help the girl out, she's nice!)

Dedicated to Billy Trudeau, a man into "Pleasure". Don't you wish you would've let Emma take those pictures now? ;)

NOTE: I'm available for hire as a scripter in world. =D (Update 2013-05-25: Dear 2005 me: if only you knew the kind of trouble this would get you into later.)

Update 2013-05-25: Most of the code links in this article are dead. However, the original code is now archived on my github at https://github.com/qdot/np_boneyard

Disclaimer: You use this and fuck up and lose your SL account, it's your fault. I'm pretty sure there's chances for all sorts of nasty, unsecure stuff to happen with this code. It's proof of concept. So treat it as such.

Second Life Becomes First

I found out about Second Life while writing our last article on How to have sex with any video game ever made. Sure, I'd heard about it through every magazine and blog in existence, but for some reason I'd never really paid attention to it. After reading up on the game and the massive, massive, MASSIVE user-built sex system, I felt it was time to spend the $9 to actually buy the game. 2 weeks later, and I now have 3 accounts, and am already paying land tier fees.

Yup, I'm an addict.

Development in progress. Very dark progress.

So for all of you wondering what the hell Second Life actually is, imagine a gigantic set of computerized legos. Really, that's it. You can build ANYTHING out of a set of basic geometric shapes they give you, texture those shapes, and script them using a language called Linden Scripting Language. If you can think of it, it's most likely possible in Second Life (though some moderate to severe amount of pain may be involved in making that dream come true).

Oh yeah, and Optimus Prime goes to Strip Clubs in this world.

Unlike legos, Second Life can pay. Pay real dollars. There's a full currency market available for US dollars at Gaming Open Market, where, as of 7/28/05, 1000$L (Linden Dollars) will get you about $3.84US. There's also the IGE, which will let you move credits between around 10 online games.

Some people make their living playing this game.

Me? Shit, as usual, I'm releasing everything for free. 'cause I's a dumbass.

However, if you'd like to donate to the "qDot makes the awesomest shit ever" fund, I'm "qDot Bunnyhug" in the game.

Note: I'm totally putting the cart before the horse with this project. I have tutorials planned for how DI Force Feedback works, how to mod sex toys to work with the SeXBox, and how to make a cable to hook your SeXBox to your computer. However, I'm incredibly excited about this project, so it's going first. Enjoy the non-linearity.

2. Overview of the project

Basically, this project will allow you to control a Constant Force effect on any DirectInput capable Force Feedback controller. You can use a computer joystick, or you can easily mod an xbox controller to work with your machine. We did the latter of the two, since we've already established why XBox controllers fucking r00lz0rz.

Now please note, with the method of control we use, you can control most anything in the outside world through Second Life. For example, one of our cleaner "Demo" projects involved turning a lamp on and off in the game that relayed to an X10 controller to turn a lamp on and off in our house in real life. There's a million different things that can be done with this approach. So why are we "lowballing" it with sex? Simple. Most people don't have X10 controllers. LOTS of people have joysticks. Since we're still working on input overrides to the game (NOTE TO LINDENS: THIS IS NOT A HACK. Since the game is controllable thru Synergy, we can use this method to hook up new control mechanisms to the world. Please do not delete our accounts. Thank you. :) ), you're rather stuck with what you can do in terms of actuation at the moment. We chose vibration for this project. The X10 project will be up soon on Nonpolynomial Labs.

This project is realized through a combination of a LSL Script in an in-world object, and a C# client application. Yes, I said C#. Do you have a fucking problem with that?

3. Not Crossplatform?!?!?! HEATHEN!

Ok, so yeah, you have probably have a problem with that. Second Life will currently run on the Windows and OS X platforms, and there's a Linux version lined up. So why are we stuck with Windows for this project (which currently doesn't have a clever name right now)?

Well, there's a few reasons. First off, the only xbox controller driver that's fully open source at the moment is redCl0ud's, and that's windows. The Mac driver costs $15, and doesn't have rumble support yet (even though forcefeedback.ext should make that pretty easy). I have no problems writing drivers myself, but my mac is at work, and this isn't the most work friendly of projects.

Secondly, I've been looking for a reason to learn C# for a while, and this seemed to be like a good occasion to do it. This project took me 3 days from never seeing C# or LSL in my life to getting the basic implementation done, so needless to say, I'm happy with the language.

This does not mean I will be staying with this setup forever. I'll be going over the plans for version 2 in the end of this article, but if you're still frothing and want confirmation that I'm not staying with the current implementation, just scroll down and read it now. Bitch.

4. An Idea of How You Have Sex in Second Life

Thanks to Velox Severine and Kae Languish for most of this info.

First, some terminology. In Second Life, your character can be put into "poses". Basically, this is an animation created in Poser or some other movement/animation program. You create the animation, loop it, and upload it to Second Life. These poses can be attached to what are known as Pose Balls. By having your character touch a pose ball (basically, clicking on it), you character will being using the animation that was contained in the pose ball. This is how sex is played out visually in Second Life. You touch one pose ball, your partner touches the other, and all of the sudden one is banging the other. Don't you wish it was that easy in real life?

Specialized sex furniture in Second Life. Picture taken at Strokerz Toyz Eros, Eros (189, 185)

Now, you've got to remember, when I said you could do anything in Second Life, I meant ANYTHING. This game has some of the weirdest BDSM equipment I've ever seen, much of which really wouldn't work in real life. Putting a stompy industrial boy in all of it is just hours of stupid, giggly fun.

My fantasy of being stabbed in the crotch while strapped to the Wheel of Fortune, fulfilled. Picture taken at Strokerz Toyz Eros, Eros (189, 185)

Animations will run you somewhere between 200L$ and 500L$ ($.50-2US), sometimes upwards of 1000L$ (~$4US) depending on how drawn out they are. As with all aspects of the world, your body is scriptable. That's right, you can program your nuts. They can do a happy little nut dance. There's also erections and pumping and all that, but I'm totally fixated on the happy little nut dance idea now. There goes another 2 weeks of my life.

Animations can be speed controlled by writing a script that binds animations to buttons, and hitting those buttons to change what animation is displaying. This is how sex progresses.

Can't find anyone to get intimate with in world? Then buy an escort! The SL world is chock motherfucking full of whores! Whores everywhere! A vertiable smorgasbord of WHORES! A half-hour will run you 500-750L$ (~$2-3US), but hey, no diseases!

So really, that's it. You click, they click, then it's pretty much text cyber sex from then on. You've got a million toys to play with, pieces of furniture to do it on, etc etc etc, but it's still text.

At least, until now.

Using the Second Life Sexbox Relay

Unlike all of my other tutorials, I'm going to be nice and describe how to use this first, and THEN I'll go into the technical implemenation details.

God, I could REALLY use some candy right about now. If only I could reach... the... machine...

Here's what you'll need:

  • Our Second Life XML-RPC Client
  • Source Code - You'll need the .lsl file out of here at minimu, but the C# stuff is in there too.
  • Any DirectX Compatible Controller with Force Feedback
  • If you want to use an XBox/Sexbox, pick up the redcl0ud drivers. Nice and open sourcey!* A Windows System with DX9 and the .NET Framework (Not a word, fuckers, not a WORD)
  • A Second Life Account. A basic account will run you $9 (once. Period.) for a lifetime account. Owning land costs more, but that's not required to play the game

That's should do it.

Now first, you'll need to load up the client. Just double click on it. Easy, eh?

The GUI. Forbidding. Aloof. Terrifying. The GUI with the biggest tits in the world. GONG

The "Force Feedback Only" Box will be stuck on. I'm just using that for debugging purposes, so ignore it. :)

Select the joystick you would like to use by selecting it in the list. This should make the UUID box and Timer Start Button appear.

Log into SL. You'll need to be able to tab back and forth between the game and your client, so if you've got a crappy machine, prepare for hell.

I currently don't have a cool object built for this, so it's up to you to take the LSL script and bind it to an object. If you are not aware of how to do this, talk to your greeter, a mentor, or live help. This product will become more user friendly as time goes on, but right now, I'm more worried about the damn thing being finished.

Now then, once you've bound the script to an object, rez it. It should give you back a UUID. This ID is unique to the object, and will change any time you Rez the object. You will need to cut this, and paste it into the UUID box in the client. Once you've done that, hit the "Start XML Query Timer" button, and the client will start communicating with your in-game object.

To control the object in world, you'll need to chat on channel specified when you opened it. This means if it says "Chat in channel 98", you'll need to start all chat lines with "/98".

To command the box, simply type "/ ff ". Speed is a number between 0-100, which represents the percentage of vibration the controller will relay. If you use -1, the client timer will stop.

Please note that you WILL see lag between you commands and the speed updates. Due to spam avoidance, LSL only allows you to make XML-RPC calls once every 3 seconds. Yes, it sucks, but it's the best I can do for right now.

So, really, that's it. You can now have sex through Second Life. Spiffy, no?

To the best part of the tutorial... THE GORY DETAILS!

6. Implementation: First Life Interface

How I spend my Thursday nights, with Friday off

The reason this program was so damn easy is that we used XML-RPC.NET to program it. It pretty much threw together everything we needed to talk to SL in a format that took all of 8 seconds to learn.

To talk to Second Life, you need a Channel ID, which is a GUID/UUID/Whatever you like to call 128bit numbers these days. This uniquely refers to the object in world that you want to talk to. This is thrown out by the object in world when it is created, so the users passes it to the application, and there you have it.

After the GUID is put in, the user starts the timer, which triggers off a thread a 3.1 seconds. The XML-RPC command blocks until it gets a responce, and we want our GUI nice and snappy, therefore we thread. Sloppily. You can only query once every 3 seconds, due to the fact that once you get a packet in the game, the reply sends the reply and blocks for 3 seconds, again, to avoid spamming. This is why our timer is set to 3.1 seconds.

Next, we need to pass the packet to Second Life. An obviously easier method would be to have Second Life throw out a value to you every time the user changes the settings, but that's not possible. The game developers have XML-RPC outbound communications currently turned off to avoid malicious users spamming through the game. So, we're forced to query inward.

The packet structure looks like this:

<?xml version="1.0"?>
<methodCall>
    <methodName>llRemoteData</methodName>
    <params>
        <param>
            <value>
                <struct>
                    <member>
                        <name>Channel</name>
                        <value><string>4a250e12-c02e-94fb-6d2f-13529cbaad63</string></value>
                    </member>
                    <member>
                        <name>IntValue</name>
                        <value><int>0</int></value>
                    </member>
                    <member>
                        <name>StringValue</name>
                        <value><string>test</string></value>
                    </member>
                </struct>
            </value>
        </param>
    </params>
</methodCall>

However, this packet is magically constructed by XML-RPC.NET, so we really don't give a shit as long as it works.

The method name we call is llRemoteData, and we pass the ChannelID, and a string and integer if we want. As of version 1, there's really nothing we need to send to the game, so we just load "" and 0 into those values. All we're interested in is getting the reply back with the value the object is currently holding.

Once we get a query back, we unpack it, and check out what it's given us. If the channel GUID is wrong, the program gives back an "Invalid Channel", and everything halts. Otherwise, the string returns "Request Received" and the integer returns the integer that the player has set power to through talking to the object. We take this integer, and edit our force feedback effect. Force feedback effects can have many horribly complicated features such as envelopes, fades, so on and so forth, but right now we're just interested in a full on constant force. Constant force magnitude range is between -10000 <= x <= 10000, so we just take the percentage given by the user * 10000 (which means no backward motor rotation), shove that through the effect, download it to the controller, and voila! shakey happy fun time!

Implementation: Second Life Interface

The LSL code is a hell of a lot simpler than the C# code, which means it's just mind bogglingly easy. However, I'll present a little setup for those not familiar with LSL.

LSL is a state based language (i.e. you change states, and events are driven to handlers in the state your in) that looks a lot like C, but sucks more. Really, I can't bitch too much though, with as much as you can do with it in the world, it's pretty god damn impressive.

Anyways, we start with default->state_entry. Imagine that as your constructor. This opens up our RPC channel, and gives us back the GUID, which we then relay to the user through the chat window. We move to the "go" state then.

In "go", there's three events we can handle: creation, listening, and packet receive.

Creation is kinda fucked. There's no destructors for objects, so when you remove them from the world, they stay in the state they left the world in. Therefore, if you need to do something like re-establish an RPC channel (RPC channels are garbage collected on object removal), you have to tell the program to specifically skip back to the initial object state.

Listening is how we change settings in the object. Users interact with the object through chat, and we then pick up the chat and do some basic string parsing on it to make sure it's a valid command. IF it's a valid command (first or second token being "ff"), we change our global that handles power levels to whatever the user wanted.

Packet Creation happens after we receive a request from the client. Assuming the packet has the information we want in it (which it most likely will, hard to screw that up since we aren't taking any input), we case up the power value and ship it off, then sit there for 3 fucking seconds in a god damn spin wait. God, that hurts.

Anyways, that's really it for the LSL script.

8. Upcoming Improvements

  • Actually making a shape for this thing
  • Multi-user reflection and communication (for group chats with multiple bricks)
  • Multi-brick timer staggering to decrease wait (basically switching between 3 bricks at 1 second intervals, to stride the spin waits).
  • Animation binding, so you can bind animation timing scripts to the object
  • Effects file playing, so you can preprogram effects and call them by name
  • Overhauling the system to C++ and Qt, since that's what I know in terms of Cross Platformness
  • Turn the client into a plugin system, so that it can dynamically talk to any library anyone writes (so that the same client will work for this, for X10, and for any other project anyone might have)

Timeframe on this is sometime between who knows when and I have no clue. If anyone else improves on the scripts, please update me, I'm passing around this code for a reason, and I'll be happy to post about anyone's experiences or improvements. That's what Second Life is all about, right? :)

Vixen Creations Invents New Type of Synthetik Skin

Vixen Creations Invents New Type of Synthetik Skin

Looks like there's a new competitor to Cyberskin out on the market, and from the gossip on the street (yes, the street where everyone talks about dildos), it's supposed to be extra.... fleshy? Vixen Creations is releasing a new line of toys using a material they've discovered called VixSkin, claiming to be the closest thing to real skin that can't say no without legal consequences. The fact that they've named their first toy after everyone's favorite typesetting software is just icing on the cake.

via Fleshbot

LifeStone control in Second Life: Working from the Inside Out

LifeStone control in Second Life: Working from the Inside Out

First off, let it be known that I have drank the perverbial Kool-Aid that is Second Life. Please send all of your L$ to "qDot Bunnyhug" (or at least IM me and say hi. It's lonely!)

Anyways, thanks to the instant rabid addiction interesting concept of the game, I've spent more of the last 24 hours than I really want to admit reading up on all of the blogs, wikis, forums, and anything else I could get my hands on about the game.

To give an incredibly poor explanation, Second Life is like IRC with graphics. There's no real goal or game to it, you can simply fly around and talk to people. You can also buy land, buy objects, build houses, start businesses, and make money (both in game, and real, since in game dollars can be translated into real cash). The game has a state-based scripting language known as LSL that allows you to add behaviors to any object you like, including XML-RPC requests.

Through XML-RPC calls, you can retrieve info about things happening in the game, and do whatever you like with that info on the outside world. You can also send information into the game in order to create and alter events.

Thanks to the inguinuity of the user base, The Lifestone (mentioned in the previous post) is now being harnessed as an alternative control method for in-game events. A client running outside of the SL process will pick up biofeedback information from the Lifestone and relay it into the game to cause events, such as changing the luminesence of the character based on pulse rate. There is an SL forum post by the client authors about the proposed uses for the client, but you'll need a SL account to actually read it.

Now, this isn't a full XML-RPC implementation. It's inbound ONLY. You can't create outbound requests due to the game authors not wanting to cause security/flooding issues for outside sites. This has been a topic of much debate. Also, you can only check for information once every 3 seconds (due to a 3 second relay in the RPC response function), so there's not gonna be a lot of high resolution, real-time control happening, either inward or outward. However, it's still a damn neat toy to play with, esp. with an entry fee of $9.

If you're wondering if you're thinking what we're thinking about using this, be assured that you are, and we're doing our damnest to learning the scripting system ASAP. :)

The Journey to Wild Divine: Control through Biofeedback

The Journey to Wild Divine: Control through Biofeedback

The Journey to Wild Divine is a game played without joysticks. Instead, it is sold with a biofeedback device called the LifeStone that tracks Skin Conductance Level and Heart Rate Variance in order to open new paths in the game. That's right, it's a game about kickin' back and relaxing. That's it. If you can't chill, you lose.

There's an extension pack available that will also chart your progress and hand you back graphs of how you're doing in terms of relaxation training, and where you could stand to improve.

Well, some people meditate and do yoga to relax, others do, well, you know what they do if you're reading this page. The idea of using this as an online dominance/submission controller could be pretty interesting. Adding the feedback levels to a conferencing program would allow for teasing and pleasure denial on a whole new level... "Hey, calm down, I'm going off cam until your pulse drops...."

Proving that we can make (and will) make anything dirty...

On Using Video Games as Avatar Systems for Cybersex

Intro

"And when they banned the word Fuck
I did not speak up
Because I found **** to be sexier anyways"
-- qDot

Part of forming a free, online sex network is teach people to realize they can have sex over many different communications forms. Phone sex has been around for decades, but the payment model will rip your wallet out of your pocket faster than you can unzip your pants. What you're paying for there is the fact that you know there's going to be someone on the other end of the line that's moaning and groaning for your simulated pleasure.

These days, we have the internet, and a billion different ways to talk to each other. Long distance charges are becoming a thing of the past, so we could easily spend all of our unlimited nights and weekends whacking it with a sore ear. However, with the increases in technology, why should we be stuck with just audio?

The obvious answer to this question is webcams. For a commerical replacement to phone sex, it's the correct one, too. However, not everyone wants or needs to pay for web cam sex. Some people want to engage each other online, but the thought of naked, compromising pictures of themselves being broadcast across insecure means boots them right back to the phone. This is where video games come in.

Video games provide a middle ground between strict communications systems such as text chat/phone conversations and full video systems, without producing the possibility of having a picture of your legs spread on the front page of fark the next day. Having sex through an avatar allows extra sense simulation in a prebuilt environment, even though it possibly wasn't meant for it (a term known as "emergent sex"). Hell, most places wern't meant for sex, but that's never stopped us!

Silly pervert, games are for kids and non-perverts!

Well, games WERE for kids. The demographics of games have been shifting drastically since the advent of the Playstation. PC games were always more of a "grown up" affair, due to the entry level needed to be able to start and play a game. Consoles allow you to just pop a game in and go, though, which means the people you meet online are of indescriminate age. You never know who is going to be on the other side of that really sexy Pink Master Chief in a Blood Gulch one-on-one match, so it's best to get on the internet, talk to people, plan ahead of time, and THEN meet up online. Game matchup systems are built to match people in terms of skill and latency timings, not which color of toenail polish they like to apply to their mistresses feet. Trying to randomly walk into a room of anything other than an MMO and flat out ASK for sex will usually get you kicked, and possibly your account nixxed.

Speaking of account nixxing, having sex in online games that require membership in general is a risk. Quoting from the Xbox Live terms of service, for example:

_ Your use of the Service is subject to the Code of Conduct. You also agree not to do any of the following while being connected to the Service:

...Publish, distribute, or disseminate any inappropriate, profane, defamatory, infringing, obscene, indecent, or unlawful topic, name, material, file or information. _

Having sex on a console gaming service violates this one in many, many different ways, and will most likely get your account yanked if you start going at it in a 32 player team match. This is another argument for setting up a time/place BEFORE you start playing. If you meet in a private area with only you and whoever else wants to be involved, there's a much smaller chance of the perverbial online "mom" walking in on all of you.

You can, and will, be tracked also. For console games, you don't own the servers, the hosting company does. They retain all rights to record whatever you do. This shouldn't make you overly paranoid unless you're breaking federal laws, but it's something to think about.

While we're at it, don't even think about charging real money for the service of in-game sex either. EVERY online game EULA contains something along the lines of (This time taken from the Unreal Tournament EULA):

You may not offer the Software on a pay-per-play basis or otherwise commercially exploit the Software or use the Software for any commercial purpose except as described in this agreement.

So, no setting up a video game sex "call center" in your local LAN cafe, 'cause you'll get everyone sued to hell and back. Besides, we totally already thought of the idea, we call dibs as soon as civilization crumbles and the lawless rule the streets.

Having your sex and eating it too

Back to the fun part: The sex having.

We'll be spending the rest of the article going over how to choose a game as an avatar system, but first we'll cover the general specifics of good in-game sex.

Controller Types

We've all heard the one-handed typing jokes for years. It's now time to seriously discuss the merits of it. Bet you'd never thought you'd see that, eh? Remember, we're looking for basic abililties to move and communicate, as this is using the game environment as an avatar area, not a game. Headshot fetishists can write their own damn article.

Here's a few different controller types we'll cover

We're not going to tell you which one you should use, it's all a matter of personal perference, and what platform you're playing on. Sometimes you may not have a choice.

Game Research

Stepping into a new game with very little experience in how it works isn't going to be sexy for anyone. All parties involved should know the basic controls when they connect, 'cause no one wants a n00bfest to interrupt the foreplay.

Beyond that, it's good to know about the intricacies of a game. What will trigger force feedback events, and in what way? Where is the strip club level, and how can you get there? You can interweave game events with whatever's going on over the voice chat to create a more immersive environment.

Let's take some examples from Halo, which can probably be used in any FPS

Ideas like this can make your experience much more entertaining.

Now, onto talking about where to play.

A place and time for everything

Depending on your platform of choice, you've got a few different options.

If you're on a PC, you've got a ton of different choices for gaming, but your best bet is going to be Massively Multiplayer Online Role Playing Games, or MMORPGs for short, or MMOs for really short. MMOs like World of Warcraft are already teaming with sex, and don't even get me started on The Sims Online. There's some crazy, crazy people on there.

Second Life: Scriptable Sex, and much, much more. Photo via [The Convocational

Second Life](http://theconvocational.blogspot.com/) is by far the most extensible of online avatar communities, with a user customizable object system that already has sex built in.

Sociolotron: All the eroticism of a isometric RPG, wrapped in a hot MFC interface.

There are some MMOs that make sex part of the game, such as Underworld and Sociolotron. However, the quality of the games is questionable at best. If you're looking at a game that you're going to have a pay a monthly fee for anyways, you might as well choose a major server with decent gameplay to go along with the sex, or else just use a virtual community like Second Life, versus something that barely works but has a few sex animations built in.

We don't usually condemn fetishes here, but please note that Puzzle Pirates sex is WRONG.

Most PC based FPSs support force feedback controllers, which means you can use them as stated above. Add to this the fact that you can run your own private servers as well as easily create modifications for the games, and you've got yourself a good time without nearly as many worries as trying to play on a console system.

All online PC games have text chat, with audio chat (LEEEEEROOOOOYYYY JENKINS!) built into some. This means you can use either voice or keyboard to interact with other people, just in case your significant other is stuck on the losing end of a dial-up modem connection.

Console gaming requires a little more creativity than PC gaming, due to the difference in audience and lack of textual communication. You don't see quite as many MMO's on consoles at the moment, so you'll probably be dealing in a game that's going to take some creativity to make work for your situation (unless you really, REALLY like car crashes or basketball or something).

For most modern consoles, you're more or less guaranteed force feedback in the controller. Most online games feature voice chat, and headsets are common these days, so unlike PCs, when you hop online with someone else, you can assume they've got the same equipment you do.

All it takes is a little imagination... (Or possibly a lot)

As for games, the FPS stuff mentioned earlier still holds, but you'll be looking at a different class of games on consoles. Less mass personal interaction, more teams and small groups of people playing together. This will most likely require you to get very creative in order to have a sexually charged experience, but hey, that's your job, not mine. Remember, you've got total control of the voice channel, so see what you can do to spice up that otherwise dull game of NCAA Football.

Go Forth and Make Controllers Sticky

So is anyone actually gonna use this? Will someone have sex through Splinter Cell? I honestly have no idea. Most of the stuff I listed in this article is rather silly, but the point is to let people know about using video games as avatar systems instead of just games. Games have turned from limited side scrollers into gigantic environments with all sorts of usage unforseen by the original developers, and nothing is stopping anyone from taking advantage of that. Even without the modding capabilities of a PC game, you can still have a good time. People have already turned games into movie production software, house planners, and other tools, so there's no reason not to put your mind in the gutter, turn on your night vision, and have hot top secret spy mansex in the middle of an Eastern European Military Installation.

I can't believe I just said that.