Your body is the controller. Your shadow is your fighter.
SHADOWCLASH is a full-body motion fighting game. Your webcam tracks your real punches, kicks and blocks and mirrors them 1:1 onto your in-game fighter. No gamepad, no buttons: if you throw a punch, your shadow throws a punch. Fight a ladder of 10 AI villains, train on a kicking pole, or battle another player over LAN or the internet.
Game modes
- Single Player: beat 10 villains with rising difficulty, from STREET PUNK to SHADOW KING
- Training: practice strikes on a kicking pole with a live debug overlay
- VS Mode: fight another player anywhere. The host gets a 6-letter room token, the other player types it in. Works on the same WiFi or across the internet, with no port forwarding and nothing to configure.
How fighting works: faster strikes deal more damage. Head hits hurt most, leg hits least. Raise your forearms or join both hands in front of you (like a Tekken guard) to block. Stand back so your whole body is in the camera frame.
- Download
shadowclash-windows-x64.zipfrom the latest release. - Extract the zip anywhere.
- Run
shadowclash.exeinside the extracted folder. - If SmartScreen warns about an unknown publisher, click More info, then Run anyway. Allow camera access if Windows asks.
-
Download
shadowclash-macos-arm64.zip(Apple Silicon, M1 or newer) from the latest release. Intel Macs: use "Running from source" below instead. -
Extract the zip, then open Terminal in the extracted folder and run:
xattr -dr com.apple.quarantine shadowclash ./shadowclash/shadowclash
(The
xattrline is needed once, because the app is not notarized by Apple.) -
Allow camera access when macOS asks.
Option A, container image (recommended): a single file with everything inside, runs on any distro with Apptainer installed. Download it from Zenodo and see PLAY_ON_LINUX.md for the two-command setup and troubleshooting.
Option B, release bundle: download shadowclash-linux-x64.zip from the
latest release,
extract, and run ./shadowclash/shadowclash.
git clone https://github.com/SAADAT-Abu/SHADOWCLASH.git
cd SHADOWCLASH
python3.11 -m venv ~/.venvs/shadowclash
source ~/.venvs/shadowclash/bin/activate # Windows: %USERPROFILE%\shadowclash-venv\Scripts\activate
pip install -r requirements.txt
python -m shadowclash.main- One player picks VS Mode, Host and reads out the 6-letter room token shown on the waiting screen.
- The other picks VS Mode, Join and types that token.
- The host picks how many rounds the match runs (best of 3, 5 or 7) in the settings panel; the joiner picks that up automatically.
- Once both players are in, a 30 second countdown runs, then the fight starts. The same countdown separates each round.
The token works whether you are in the same room or on opposite sides of the world. The two games try to talk to each other directly, and fall back to routing through the SHADOWCLASH server if your network blocks that (common on mobile and campus connections). The waiting screen tells you which happened.
Both players must run the same version of the game. VS Mode uses a versioned network protocol, so a v1.0.0 build cannot see a v1.0.1 build; if they disagree the screen says VERSION MISMATCH.
Playing offline with no internet at all? The token needs the internet to
work, so on an isolated LAN start the host with --mode host, read the
address it prints, and have the other player run
--mode join --ip <that address>.
- A webcam and a reasonably modern CPU (pose tracking runs on CPU)
- A desktop session (the game opens a window; it cannot run headless)
- For internet VS Mode: an open internet connection, UDP traffic allowed