Positively Nerd Street

How to Play Real-Money Online Poker with the XBox Kinect

Created By: Sean Lind Posted in: Positively Nerd Street, Poker Gadgets and Technology
2011 Apr 26
main image

If you’re a true PNS reader you’ll know that we’ve rigged online poker to be played using voice-control and Rock Band guitars and drums. Since then Microsoft released the XBOX Kinect and the second we saw it, we knew it would make the greatest poker controller ever.

While the Kinect truly is an impressive piece of technology, the games made for it are childish at best. Luckily many hackers around the world have spent the time to create drivers and applications allowing you to use the Kinect hardware to interface with a windows PC.

From there it was just a short jump to all-out gesture-controlled online poker!

This article gives you all the information you need to set this homebrew poker controller up for yourself, but first take a look at the video demonstration of how it all works:

Just like the drum kit controller we’re mapping movement into a keyboard keystroke, and mapping that keystroke to a poker action using macros. The first step is getting the Kinect hardware installed and functioning on your system.

Installing the Kinect on Windows

Getting the Kinect hardware to work involves three programs and one set of drivers. Everything you’re about to read for this section is taken directly from the guys who made the software over at the University of Southern California. If you want more information on this part of the project you can find it on their webpage here: http://projects.ict.usc.edu/mxr/faast/.

The first program to install is OpenNI:

  1. Go to the download page: http://www.openni.org/downloadfiles/openni-binaries/20-latest-unstable
  2. Scroll down until you see OpenNI Unstable Build for Windows x86 (32-bit) v1.1.0.41 Redist Edition. Click on the download button, and install the program.

After OpenNI you need PrimeSense NITE:

  1. Go to the download page: http://www.openni.org/downloadfiles/openni-compliant-middleware-binaries/33-latest-unstable
  2. Scroll down until you see PrimeSense NITE Unstable Build for Windows x86 (32-bit) v1.3.1.5 Redist Edition. Click on the download button and run the installer.
  3. When prompted use the license key: 0KOIk2JeIBYClPWVnMoRKn5cdY4=

Download the Kinect drivers:

  1. Go to the download page here: https://github.com/avin2/SensorKinect/blob/28738dc12c7d653f45cec1ceba4ad1d30c5df2ce/Bin/SensorKinect-Win-OpenSource32-5.0.1.msi
  2. Click on the Downloads button on the right side of the page.
  3. Choose Download.zip
  4. Unzip the file
  5. In the Bin directory run the file: SensorKinect-Win-OpenSource32-5.0.1.msi

Finally, download the actual FAAST 0.07 software:

  1. Click on this link and download the software: http://projects.ict.usc.edu/mxr/wp-content/uploads/2011/03/FAAST-0.07.zipUnzip the software

You’re just about ready to use your Kinect with your computer. You need to plug the Kinect power into the wall and the USB into your computer.

Windows should install your Kinect automatically. If it doesn’t choose to install the driver manually (choosing the location of the files) and browse to the drivers folder you just unzipped. You should find the drivers under platform\windows32\driver.

Once it’s installed successfully you can start up the FAAST.exe program. Configure the program with the following settings:


faast3

Firstly, do not change the depth camera resolution; doing so will prohibit the application of connecting to your Kinect. I’ve set the smoothing to 0.7, but this was mostly for controlling the mouse, which we’re not going to do.


faast4

Don’t change anything on this screen.


faast5

Here I’ve disabled the mouse control. Having this enabled allows you to control the mouse by moving your right hand. It’s pretty rad, but extremely choppy at times, I’ve disabled it for this demo.


faast7

This is where you map your motions to keystrokes. If you want to use my movements you can simply copy my list directly into this box and be on your way:

left_arm_forwards 23 key_press a

right_arm_out 15 key_press f

right_arm_up 12 key_hold r

right_foot_up 6 key_press h

left_arm_out 10 key_press c

If you’d like to create your own movements you’re setting up with the formula: [body part_direction] [how far it has to move] [action] [what key or button to press]

So for the first example, if I move my left arm forwards 23 inches it will press key a. I use this for my “all-in” movement.

Here’s the full list of actions and events. Again this is taken directly from the FAAST software homepage.

Action List


Action Name Type Threshold
lean_left skeleton angular body lean left (degrees)
lean_right skeleton angular body lean right(degrees)
lean_forwards skeleton angualr body lean forwards (degrees)
lean_backwards skeleton angular body lean back (degrees)
turn_left skeleton angular amount of left body turn (degrees)
turn_right skeleton angular amount of right body turn(degrees)
left_arm_forwards skeleton forward distance from left hand to shoulder (inches)
left_arm_down skeleton downward distance from left hand to shoulder (inches)
left_arm_up skeleton upward distance from left hand to shoulder (inches)
left_arm_out skeleton sideways distance from left hand to shoulder (inches)
left_arm_across skeleton sideways distance from left hand across body to shoulder (inches)
right_arm_forwards skeleton forward distance from right hand to shoulder (inches)
right_arm_down skeleton downward distance from right hand to shoulder (inches)
right_arm_up skeleton upward distance from right hand to shoulder (inches)
right_arm_out skeleton sideways distance from right hand to shoulder (inches)
right_arm_across skeleton sideways distance from right hand across body to shoulder (inches)
left_foot_forwards skeleton forward distance from left hip to foot (inches)
left_foot_sideways skeleton sideways distance from left hip to foot (inches)
left_foot_backwards skeleton backwards distance from left hip to foot (inches)
left_foot_up skeleton height of left foot above other foot on ground (inches)
right_foot_forwards skeleton forward distance from right hip to foot (inches)
right_foot_sideways skeleton sideways distance from right hip to foot (inches)
right_foot_backwards skeleton backwards distance from right hip to foot (inches)
right_foot_up skeleton height of right foot above other foot on ground (inches)
jump skeleton height of both feet above ground (inches)
crouch skeleton crouch distance, calculated as current height subtracted from standing height (inches)
walk skeleton height of each step above ground when walking in place (inches)



push NITE velocity (inches/sec.)
swipe_up NITE velocity (inches/sec.)
swipe_down NITE velocity (inches/sec.)
swipe_left NITE velocity (inches/sec.)
swipe_right NITE velocity (inches/sec.)
circle NITE radius (inches)
wave NITE n/a (leave at 0)

Event List

Virtual Event Type Virtual Event Name
key_press key to press when the action is first detected (either a single character or a special key from the table below)
key_hold key to hold down while the action is performed (either a single character or a special key from the table below)
key_type a string of characters to type into the active window (no spaces allowed)
mouse_click mouse button to click when the action is first detected (left_button, right_button, or middle_button)
mouse_double_click mouse button to double click when the action is first detected (left_button, right_button, or middle_button)
mouse_hold mouse button to hold down while the action is performed (left_button, right_button, or middle_button)
faast input emulator control event (pause, resume, or stop)
 

Now that you have your Kinect working with your computer, you need to map the keys pressed by your actions to button clicks on your poker client.

Using Macros to Control your Poker Client

You can use any macro program you like which allows for mouse clicks. While TableNinja would be the best for this, it only works with Full Tilt and Poker Stars, which isn’t of much help to most of you. So you’re going to have to use a generic macro program you find online.

The software I’m using is EZ Macros. Unfortunately it’s not free, but you will get a free 30 day trial after downloading it. You can find the program here: http://www.americansys.com/download.htm (click on the HTTP Download link).

Start your macro program, load up your poker client and create a new macro for each button press, making sure those macros are activated by a hotkey, the same key you’ve set to use in the FAAST Kinect application.

In EZ Macros just choose “Add” and follow the instructions. You’re looking to “remember mouse and keyboard events”. Once you choose for the macro to launch on a hotkey, enter the key used with the connect movement. When you hit record it records everything you do, so quickly click on the appropriate poker button for the action, and end the recording by hitting the Pause/Break button on your keyboard.

Set the playback speed as fast as it will go and save the macro. Repeat for all other movements.

You’ll notice in the video my check action didn’t work, that’s because I forgot to create a macro which launches when the letter “h” is pressed. Don’t be like me and make sure you set up one macro per action.

You’ll also notice that the EZ Macro software records the entire mouse event, including moving the pointer. Many macro programs will only remember the absolute (or relative to the active window) location of the mouse when the event (click) occurs. That would be preferable as with EZ Macros you need to set the playback speed as fast as possible to reduce any lag from making the action, to the button being clicked on your poker client.

It’s very important to understand how your macro program works. With EZ Macros it remembers the movements in absolute terms. Meaning if you move the poker table window somewhere else on the screen, your macro will continue trying to click where the buttons used to be.

If your macro program is like mine (or you are using EZ Macros) make sure your poker window is always in the same place at the same size. The easiest way to do that is to set up the macros and play with the screen maximized, that way it can never move.

Fire it up

Once your macros are set up, activate the hotkeys.

Bring up the FAAST application and click Connect. Once it connects click on Start Emulation.

Open the poker client, open a poker table and get it positioned correctly for your macros.

Sit in, buy in, automatically post blinds and step back until you can see your body in the FAAST display window.

Calibrate your Body with the Kinect Image

The last step is calibrating your body with the colorful image of your body on the FAAST screen. You do this by standing still with your hands raised (head level) like you’re about to be arrested:


calibration

When you see the stickman lines attached to your body, you’re ready to go. Just be sure to do this before it’s your turn to act, or as soon as it’s calibrated it will make you raise (since your arms are raised in the air).

When it’s all set up properly your FAAST screen should look something like this:


faast8

And there you have it; you’re now set up to play online poker using your XBOX Kinect. If you have any questions, or run into any problems drop a comment below. I’ll try to check back often to lend a hand when needed. Enjoy

-Lind

Please fill the required fields correctly!

Error saving comment!

You need to wait 3 minutes before posting another comment.

Comment added. Thank you!

how easy would it be to switch between tables for multitabling? or possible at all?

chris 2012-12-10 21:19:25

This is a book.

IAnPan 2011-08-24 09:02:00

Lol thats pretty crazy.

spectrefax 2011-05-07 02:29:13

Obvious lesson here is don't wear baggy clothes when you map your body. Looks like Paul Giamatti in Sideways.

Rigtard 2011-04-30 02:29:53

Roy Jones,

You can. If you look at the FAAST software screenshots you'll see a drop-down box Skeleton Mode, with Full Body selected. You can change that to Upper Body and do this while seated the very same way.

Sean Lind 2011-04-28 22:11:38

Umm, can you do this sitting down?

Roy Jones jr jr 2011-04-27 21:08:38

FULL ON! It's starting to look like a triple awesome!

zyg0tic 2011-04-27 18:54:23

triple awesome!!!

joker2001 2011-04-27 15:29:34

double awesome

acesacesaces 2011-04-27 03:21:27

awesome.

thcdegree 2011-04-26 21:27:52

Bloggers