Atomic Hand turns your laptop camera into a controller. Rotate, zoom, and flip through 3D molecular structures in real time — no mouse, no keyboard, just gestures.
The real thing in action, and the sci-fi moment that inspired it.
MediaPipe tracks 21 hand landmarks per frame; a lightweight engine maps them to camera moves.
Copy, paste, run. Tested with Python 3.11 on macOS. Grant camera permission when prompted.
Prerequisites: macOS with git and conda. No conda? Install Miniconda. No git? Run xcode-select --install first.
# 1. clone git clone https://github.com/s-choung/atomic-hand.git cd atomic-hand # 2. environment (Python 3.11) conda create -n atomic-hand python=3.11 -y conda activate atomic-hand # 3. dependencies pip install ovito mediapipe==0.10.14 opencv-python PySide6 numpy # 4. run with the bundled demo molecules python src/app_window.py structures/*.xyz
Rendering is powered by OVITO's Tachyon ray tracer, which bundles its own Qt/PySide6 — install ovito first and let it pull its dependencies to avoid Qt conflicts.
Honest expectations before you try it.
Viewing gestures (rotate, zoom, switch, pause) are solid. But hands-on editing — like dragging and dropping individual atoms — is experimental and may not behave reliably yet.
The native stack leans on specific, somewhat older releases (e.g. mediapipe==0.10.14). Newer Python or library versions can break the environment, so stick to the versions in the install steps above.
io_mesh_atomic add-on) for higher-fidelity, GPU-accelerated visuals beyond the CPU ray tracer.