Skip to content
VenB304Public

About

If for some reason you want to use the kinect to play Just Dance 2017

Resources

Stars

2 stars

Watchers

0 watching

Forks

Latest commit

 

History

6 Commits

Folders and files

Repository files navigation

🕺 JD-Kinect

JD-Kinect is a lightweight, open-source bridge that turns your Xbox Kinect v1 (Xbox 360) sensor into a full-body tracking virtual controller for Just Dance.

By leveraging the official Kinect for Windows SDK v1.8, JD-Kinect captures true 3D skeletal motion data and streams it directly to the game. This provides a completely hands-free, immersive dancing experience without the need to hold a smartphone or joycon!


✨ Features

  • Hands-Free Dancing: Ditch the phone. Your body is the controller.
  • True 3D Tracking: Utilizes the Kinect's depth sensor for real metric tracking, providing superior Z-axis accuracy compared to standard webcam solutions.
  • Visual Overlay: Includes an OpenCV-based real-time preview of your camera feed with a skeletal tracking overlay and a dynamic distance meter to help you find the optimal tracking range.
  • Low Latency: Optimized to stream accelerometer data to the game with minimal latency via WebSockets.

🛠️ Prerequisites

Hardware

  • Kinect for Xbox 360 (Model 1414) OR Kinect for Windows (Model 1473)
  • Kinect Power Adapter (Required; the sensor will not work on USB power alone)
  • A PC running Windows 10 or 11 (x64)

Software

  • Just Dance 2017 (PC) or other compatible versions that support the "Play with Smartphone" feature
  • Python 3.10+

🚀 Installation & Setup

1. Install Kinect Drivers

Before touching Python, you must install the official Microsoft drivers in this exact order to prevent conflicts:

  1. Download and install the Kinect for Windows SDK v1.8.
  2. Download and install the Kinect for Windows Runtime v1.8.
  3. Plug in your Kinect (Power first, then USB) and verify it appears in your Windows Device Manager without any errors.

(Optional but recommended: Run the "Skeletal Viewer" sample provided with the SDK to confirm your Kinect is successfully tracking your skeleton before proceeding).

2. Setup the Python Environment

Clone this repository and open a terminal in the project directory. Install the required dependencies:

pip install -r requirements.txt

(Alternatively, you can manually run pip install websockets opencv-python numpy future)

Note on pykinect: This project bundles a heavily patched version of the pykinect library directly within the source code because the official pip version is fundamentally broken on modern Python 3. Our bundled version requires the future package (which is included in requirements.txt) to function correctly.

3. Let's Dance!

  1. Open Just Dance and navigate to the "Play with your smartphone" screen.
  2. Run the controller script:
    python main.py
  3. A window will pop up showing your camera feed. Stand roughly 1.5 to 2.5 meters away from the sensor. Use the built-in distance meter on the screen to find the "Optimal" spot.
  4. Once you see the orange skeleton overlay on your body, the app is successfully tracking you and streaming data to the game.

⚙️ Configuration & Tuning

If you feel the game is not scoring your moves correctly, you can adjust the tracking sensitivity by modifying constants inside main.py:

  • ACCEL_SCALE: (Default: 5.5) Increase this if your big moves are scoring poorly.
  • POSITION_JUMP_THRESHOLD: (Default: 0.5) Guards against tracking glitches by discarding frames where the skeleton teleports implausibly far.
  • KINECT_Z_CENTER: (Default: 1.5) The expected depth in meters where you stand.
  • KINECT_X_RANGE / KINECT_Y_RANGE: (Default: 0.6) The bounds for your arm's lateral/vertical range.

❓ FAQ & Troubleshooting

  • I can't navigate the game menus / change dancers! You will still need to connect a smartphone or use standard controls to navigate the game menus before a song.
  • The camera window says "Skeleton undetected". Make sure you are standing within the Kinect's sweet spot (1.5m - 2.5m) and that your full upper body is visible to the sensor.
  • Is multiplayer supported? Currently, the script only tracks the first skeleton it finds. Multiplayer is possible but requires modifications to the code.

📝 TODO

  • Improve scoring (currently mostly caps at 5 stars)
  • Add basic controls (Up, Down, Left, Right, Enter) for lobby navigation, coach selection
  • Add multiplayer support (tracking and scoring multiple skeletons simultaneously)

🤝 Contributing

Contributions, issues, and feature requests are welcome! Feel free to check the issues page or submit a pull request if you want to improve tracking accuracy, add multiplayer, or enhance the quaternion math.

🌟 Credits

  • Based on original concepts from the JDWebcam project by Comera.
  • Uses a heavily patched version of the open-source PyKinect library (Copyright © Microsoft Corporation).

About

If for some reason you want to use the kinect to play Just Dance 2017

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages