{"id":16974114,"url":"https://github.com/redphx/joydance","last_synced_at":"2025-10-14T23:15:19.287Z","repository":{"id":38019934,"uuid":"481428048","full_name":"redphx/joydance","owner":"redphx","description":"Use Joy-Cons to play Ubisoft's Just Dance on all platforms","archived":false,"fork":false,"pushed_at":"2024-04-24T02:37:20.000Z","size":99,"stargazers_count":101,"open_issues_count":38,"forks_count":13,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-02-27T21:48:27.596Z","etag":null,"topics":["joycon","just-dance","nintendo-switch","playstation","stadia","wii-u","xbox"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/redphx.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-04-14T01:34:07.000Z","updated_at":"2025-02-25T13:34:07.000Z","dependencies_parsed_at":"2024-10-27T12:57:34.582Z","dependency_job_id":null,"html_url":"https://github.com/redphx/joydance","commit_stats":{"total_commits":76,"total_committers":1,"mean_commits":76.0,"dds":0.0,"last_synced_commit":"34e9281e49302ccb2cd17208ccde7bd0b820a5d8"},"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redphx%2Fjoydance","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redphx%2Fjoydance/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redphx%2Fjoydance/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redphx%2Fjoydance/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/redphx","download_url":"https://codeload.github.com/redphx/joydance/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243853618,"owners_count":20358451,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["joycon","just-dance","nintendo-switch","playstation","stadia","wii-u","xbox"],"created_at":"2024-10-14T01:04:55.434Z","updated_at":"2025-10-14T23:15:14.236Z","avatar_url":"https://github.com/redphx.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# JoyDance\n\n![image](https://user-images.githubusercontent.com/96280/163298419-6279f338-069e-4302-971f-b9d2e5fc9f7a.png)\n\n## Demo\nhttps://youtu.be/f_1IkUHFdH8\n\n## Features\n- Play Just Dance 2016 and later on all platforms with Joy-Cons.\n- Playing with a Joy-Con (+ its strap) is safer and more comfortable than holding a phone.\n- No latency.\n- Better score than using a phone (hopefully).\n- No random disconnection.\n- Support up to 6 players.\n- Support all platforms:\n\n|              | Xbox Series | Xbox One | PS4/5 | NSW | Stadia | PC | Wii U |\n|--------------|:-----------:|:--------:|:-----:|:---:|:------:|:--:|:-----:|\n| 2020-2022    | ✅          | ✅       | ✅    | ✅  | ✅    |    |       |\n| 2016-2019 ⚠️ |             | ✅       | ✅    | ✅  |       | ✅ | ✅    |\n\n⚠️ **Important**: Can't use buttons on Joy-Con to navigate the UI in JD 2016-2019 (you'll have to use controllers/keyboard). See [#6](../../issues/6).\n\n  \n## How does it work?\nIt pretends to be the [Just Dance Controller app](https://play.google.com/store/apps/details?id=com.ubisoft.dance.justdance2015companion), sends movements of the Joy-Con to your game console.\n\n## Tested on\n- MacOS Catalina 10.15 with [TP-Link Bluetooth 4.0 Nano USB Adapter UB400](https://www.tp-link.com/us/home-networking/usb-adapter/ub400/).\n- Raspberry Pi Zero 2 W (Bullseye, kernel 5.15) with [MPOW BH519A Bluetooth 5.1 USB Adapter](https://www.xmpow.com/products/mpow-bh519a-bluetooth-5-1-usb-adapter-for-pc). Tested with 2 Joy-Cons and it worked just fine.\n  \n\n## Requirements\n- PC/Mac/Linux with bluetooth support. Doesn't work with Chrome OS/Crostini ([#15](../../issues/15)).\n- [Python 3.7+](https://www.python.org) and [pip](https://pip.pypa.io/en/stable/installation/) installed.\n- 1 to 6 Joy-Cons.\n- It's **RECOMMENDED** to:\n  - Use a Bluetooth dongle, because built-in Bluetooth sucks (or you will get disconnected constantly while playing). Make sure you buy a dongle with game controllers support, not just for audio devices. Not all dongles support Mac/Linux, so remember to check compatibility before buying.\n  - Use a Nintendo Switch to update Joy-Con to the latest firmware \u0026 calibate its motion sensors. Ask your friends or bring it to the game shop if you don't have one.\n\n## Installation\n\n1. Download [the latest version](https://github.com/redphx/joydance/releases/latest/) and extract it into a folder.\n2. Open that folder in Terminal/Command Prompt, then run this command:\n```\npip3 install -r requirements.txt\n```\n  \n#### Extra steps for Linux users\n\u003cdetails\u003e\n  \u003csummary\u003eClick to expand!\u003c/summary\u003e\n\n  1. Linux users may need to use [`hid`](https://github.com/apmorton/pyhidapi) instead of [`hidapi`](https://github.com/trezor/cython-hidapi) (not sure why `hidapi` couldn't find Joy-Cons on Linux).\n  ```\n  pip3 uninstall hidapi\n  sudo apt install libhidapi-dev\n  pip3 install hid\n  ```\n\n  2. Create a new udev rule file at `/etc/udev/rules.d/50-nintendo-switch.rules` ([Source](https://www.reddit.com/r/Stadia/comments/egcvpq/using_nintendo_switch_pro_controller_on_linux/fc5s7qm/))\n  ```\n  # Switch Joy-con (L) (Bluetooth only)\n  KERNEL==\"hidraw*\", SUBSYSTEM==\"hidraw\", KERNELS==\"0005:057E:2006.*\", MODE=\"0666\"\n\n  # Switch Joy-con (R) (Bluetooth only)\n  KERNEL==\"hidraw*\", SUBSYSTEM==\"hidraw\", KERNELS==\"0005:057E:2007.*\", MODE=\"0666\"\n\n  # Switch Pro controller (USB and Bluetooth)\n  KERNEL==\"hidraw*\", SUBSYSTEM==\"hidraw\", ATTRS{idVendor}==\"057e\", ATTRS{idProduct}==\"2009\", MODE=\"0666\"\n  KERNEL==\"hidraw*\", SUBSYSTEM==\"hidraw\", KERNELS==\"0005:057E:2009.*\", MODE=\"0666\"\n\n  # Switch Joy-con charging grip (USB only)\n  KERNEL==\"hidraw*\", SUBSYSTEM==\"hidraw\", ATTRS{idVendor}==\"057e\", ATTRS{idProduct}==\"200e\", MODE=\"0666\"\n  ```\n\n  Reload udev rules:\n  ```\n  sudo udevadm control --reload-rules\n  sudo udevadm trigger\n  ```\n\n  3. Install [`dkms-hid-nintendo`](https://github.com/nicman23/dkms-hid-nintendo) (Joy-Con driver) if you're running Linux kernel older than 5.16.\n\u003c/details\u003e\n\n## Usage\n\n1. Open the phone pairing screen on Just Dance.\n\n2. Connect your PC/Mac/Linux to the same Wi-Fi or LAN network as your game console. For Stadia you just need to connect to the internet.\n\n3. Run this command:\n    ```\n    python3 dance.py\n    ```\n    or\n    ```\n    python dance.py\n    ```\n\n4. Open http://localhost:32623 (not https://...) in a web browser (32623 = DANCE). You can also open JoyDance on another device (connected to the same network) with this link: `http://[JOYDANCE_DEVICE_IP]:32623` (for example: `http://192.168.1.100:32623`).\n\n5. Turn on Bluetooth and pair with Joy-Con by holding down the [SYNC button](https://en-americas-support.nintendo.com/app/answers/detail/a_id/22634) until the light move up and down. Press the \"Refresh\" button until your Joy-Con shows up.\n\n6. Fill the form.\n\n    - **Pairing Method**:\n      |                    | Default        | Fast      | Stadia    | Old                   |\n      |--------------------|----------------|-----------|-----------|-----------------------|\n      | Platforms          | All but Stadia | X1/PS/NSW | Stadia    | All, incl. PC \u0026 Wii U |\n      | Game versions      | 2020-2022      | 2020-2022 | 2020-2022 | 2016-2019             |\n      | Pairing Speed      | Slow           | Fast      | Slow      | Fast                  |\n      | Pairing Code       | Require        |           | Require   |                       |\n      | Private IP Address | Host           | Console   |           | PC/Console            |\n\n    - **Host's Private IP Address**:\n      - The private IP address of your PC/Mac/Linux running JoyDance. Find this in the Wi-Fi settings.\n      - Starts with `192.168.` or `10.`.\n    - **PC/Console's Private IP Address**:\n      - The private IP address of your PC/console. Find this in the Wi-Fi settings on PC/console.\n      - Starts with `192.168.` or `10.`.\n    - **Pairing Code**: get this from the game.\n\n7. Press the \"Connect\" button next to Joy-Con to start the pairing process.\n\n8. 💃🕺\n\n## FAQ\n1. **What is the correct way to hold a Joy-Con?**  \n  Please follow these images for [Joy-Con (L)](https://static.wikia.nocookie.net/justdance/images/2/20/Hold_joy-constrap_blue.png) and [Joy-Con (R)](https://static.wikia.nocookie.net/justdance/images/8/8a/Hold_joy-constrap_04.png).  \n  \n2. **How to control with Joy-Con (L)?**  \n\n    | Joy-Con (L) | Joy-Con (R) |\n    |-------------|-------------|\n    | Up          | X           |\n    | Right       | A           |\n    | Down        | B           |\n    | Left        | Y           |\n    | L           | R           |\n    | ZL          | ZR          |\n    | Minus       | Plus        |\n\n3. **How to exit JoyDance?**  \n  Press `Ctrl + C` two times or close the Terminal window.\n\n4. **Is it possible to port JoyDance to wearable devices like smart watches (Wear OS, watchOS...)?**  \n  Yes. I tested on a tiny [M5StickC Plus](https://shop.m5stack.com/collections/stick-series/products/m5stickc-plus-esp32-pico-mini-iot-development-kit) and it worked! But remember, some movements require you to move only the palm of your hand won't be recognized correctly.\n\n5. **Can I play Just Dance 2017 (PC) and run JoyDance on the same PC?**  \n  Yes, you can.\n\n## Acknowledgements\n-  [dekuNukem/Nintendo_Switch_Reverse_Engineering](https://github.com/dekuNukem/Nintendo_Switch_Reverse_Engineering)\n-  [tocoteron/joycon-python](https://github.com/tocoteron/joycon-python)\n-  [Davidobot/BetterJoy](https://github.com/Davidobot/BetterJoy)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fredphx%2Fjoydance","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fredphx%2Fjoydance","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fredphx%2Fjoydance/lists"}