alzin/skyhand

Fly a virtual drone with your hand: a browser-based 3D simulator using p5.js and ml5.js.

JavaScript

1

1 commits

updated Oct 12, 2026

See the code

See what people are saying

SourceMessageScoreDate

Open-source drone simulator controlled by hand gestures (r/robotics)

SkyHand is a 3D drone simulator using **p5.js + ml5.js hand tracking**. Control the drone directly with hand gestures. Demo: [https://alzin.github.io/skyhand](https://alzin.github.io/skyhand) GitHub: [https://github.com/alzin/skyhand](https://github.com/alzin/skyhand)

1

Oct 12, 2026

README

SkyHand

Fly a virtual camera drone with your hand. SkyHand is a browser-based 3D drone simulator built with p5.js and ml5.js hand tracking, featuring hills, a lake, a small town, wind, and a race course.

Play SkyHand

Getting started

Open the live demo in a modern browser with WebGL support. Allow webcam access for hand tracking, hold up an open palm, and select Start flying. You can also fly with the keyboard without a camera.

Internet access is needed to load p5.js, ml5.js, the hand-tracking model, and Google Fonts. Camera access requires HTTPS or localhost. The application uses the webcam for browser-side hand tracking; its source does not implement a video upload service.

Run locally

Clone this repository and serve its directory with any static HTTP server. For example, with Python installed:

git clone https://github.com/alzin/skyhand.git
cd skyhand
python -m http.server 8000

Open http://localhost:8000. No package installation or build step is required.

Controls

Hand gestures

GestureAction
Pinch and holdTake off or land; the pose sets the neutral position
Raise or lower your handClimb or descend
Tilt fingers toward the screen / backFly forward / reverse
Tilt like a steering wheelTurn
Move left or rightSlide sideways
Make a fistBrake and hover

Press T to switch to two-hand control: the left hand controls altitude and turn, while the right controls forward/back and sideways movement.

Keyboard and mouse

KeyAction
W / SForward / back
A / DSlide left / right
Up / Down arrowsClimb / descend
Left / Right arrowsTurn
SpaceTake off / land
HReturn home
CCycle chase, FPV, gimbal, and pilot cameras
FCycle cine, normal, sport, and attitude flight modes
TSwitch one-hand / two-hand control
GChange wind strength
PTake a photo
MToggle sound
RReset the drone
Mouse wheelAdjust chase camera distance

Source layout

FilePurpose
index.html, style.cssStart screen, help, and styling
sketch.jsMain loop, camera modes, and input
world.jsTerrain, town, lake, forest, sky, and race course
drone.jsDrone physics, flight controller, model, and particles
hands.jsWebcam tracking and gesture controls
hud.jsFlight display
audio.jsSynthesized rotor audio
utils.jsMath, filters, textures, and mesh helpers

Scripts share browser globals and load in the order listed in index.html.

Deployment

GitHub Pages serves the root of the main branch. Changes pushed to main are published automatically. The .nojekyll file enables plain static hosting; no backend or environment variables are required.

Contributing

Contributions, bug reports, and ideas are welcome! See CONTRIBUTING.md for the development workflow and verification checklist. Open an issue to discuss substantial changes, or submit a focused pull request.

License

SkyHand's source is available under the MIT License. Third-party libraries, fonts, and model assets remain under their respective licenses.

alzin/skyhand

Fly a virtual drone with your hand: a browser-based 3D simulator using p5.js and ml5.js.

JavaScript

1

1 commits

updated Oct 12, 2026

See the code

See what people are saying

SourceMessageScoreDate

Open-source drone simulator controlled by hand gestures (r/robotics)

SkyHand is a 3D drone simulator using **p5.js + ml5.js hand tracking**. Control the drone directly with hand gestures. Demo: [https://alzin.github.io/skyhand](https://alzin.github.io/skyhand) GitHub: [https://github.com/alzin/skyhand](https://github.com/alzin/skyhand)

1

Oct 12, 2026

README

SkyHand

Fly a virtual camera drone with your hand. SkyHand is a browser-based 3D drone simulator built with p5.js and ml5.js hand tracking, featuring hills, a lake, a small town, wind, and a race course.

Play SkyHand

Getting started

Open the live demo in a modern browser with WebGL support. Allow webcam access for hand tracking, hold up an open palm, and select Start flying. You can also fly with the keyboard without a camera.

Internet access is needed to load p5.js, ml5.js, the hand-tracking model, and Google Fonts. Camera access requires HTTPS or localhost. The application uses the webcam for browser-side hand tracking; its source does not implement a video upload service.

Run locally

Clone this repository and serve its directory with any static HTTP server. For example, with Python installed:

git clone https://github.com/alzin/skyhand.git
cd skyhand
python -m http.server 8000

Open http://localhost:8000. No package installation or build step is required.

Controls

Hand gestures

GestureAction
Pinch and holdTake off or land; the pose sets the neutral position
Raise or lower your handClimb or descend
Tilt fingers toward the screen / backFly forward / reverse
Tilt like a steering wheelTurn
Move left or rightSlide sideways
Make a fistBrake and hover

Press T to switch to two-hand control: the left hand controls altitude and turn, while the right controls forward/back and sideways movement.

Keyboard and mouse

KeyAction
W / SForward / back
A / DSlide left / right
Up / Down arrowsClimb / descend
Left / Right arrowsTurn
SpaceTake off / land
HReturn home
CCycle chase, FPV, gimbal, and pilot cameras
FCycle cine, normal, sport, and attitude flight modes
TSwitch one-hand / two-hand control
GChange wind strength
PTake a photo
MToggle sound
RReset the drone
Mouse wheelAdjust chase camera distance

Source layout

FilePurpose
index.html, style.cssStart screen, help, and styling
sketch.jsMain loop, camera modes, and input
world.jsTerrain, town, lake, forest, sky, and race course
drone.jsDrone physics, flight controller, model, and particles
hands.jsWebcam tracking and gesture controls
hud.jsFlight display
audio.jsSynthesized rotor audio
utils.jsMath, filters, textures, and mesh helpers

Scripts share browser globals and load in the order listed in index.html.

Deployment

GitHub Pages serves the root of the main branch. Changes pushed to main are published automatically. The .nojekyll file enables plain static hosting; no backend or environment variables are required.

Contributing

Contributions, bug reports, and ideas are welcome! See CONTRIBUTING.md for the development workflow and verification checklist. Open an issue to discuss substantial changes, or submit a focused pull request.

License

SkyHand's source is available under the MIT License. Third-party libraries, fonts, and model assets remain under their respective licenses.