Hand-ArM2 is a real-time desktop application for controlling and manipulating 3D models through natural hand gestures captured via webcam — no mouse or keyboard required.
Gesture Controls
| Gesture | Action |
|---|---|
| Index finger movement | Rotate model |
| Pinch | Zoom in / out |
| Wrist movement | Pan / move model |
| Open palm | Pause interaction |
| Peace sign | Capture screenshot |
3D Model Support
- Search and download models directly from Sketchfab (free API key required)
- Load local
.glband.objfiles
Performance Monitoring
- Real-time FPS, CPU, and RAM stats displayed during interaction
| Layer | Technology |
|---|---|
| 3D Rendering | Ursina, Panda3D |
| Hand Tracking | MediaPipe, OpenCV |
| GUI | Tkinter |
| Model Download | Sketchfab API, Requests |
Hand-ArM2/
├── opening.py # Main UI launcher
├── trial2.py # 3D interaction engine
├── glb_scanner.py # Model search & download
├── models/ # Local 3D model files
├── screenshots/ # Captured screenshots
├── requirements.txt
└── .env # API keys (not committed)
- Python 3.10
- A webcam
git clone https://github.com/your-username/Hand-ArM2.git
cd Hand-ArM2Windows:
py -3.10 -m venv handtrack_env
handtrack_env\Scripts\activatemacOS / Linux:
python3.10 -m venv handtrack_env
source handtrack_env/bin/activatepy -3.10 -m pip install --upgrade pip
py -3.10 -m pip install -r requirements.txtTo enable online model search and download:
- Visit sketchfab.com/settings/password and generate an API token.
- Create a
.envfile in the project root:
SKETCHFAB_API_KEY=your_api_token_hereThe Sketchfab API is free to use. Without a key, local model loading still works normally.
python==3.10
ursina==7.0.0
Panda3D==1.10.16
panda3d-gltf==1.3.0
panda3d-simplepbr==0.13.1
mediapipe==0.10.9
opencv-python==4.9.0.80
opencv-contrib-python==4.9.0.80
numpy==1.26.4
Pillow==10.3.0
psutil>=5.9.0
python-dotenv>=1.0.0
requests>=2.31.0