Autofocus Lens Interface for Cinema Equipment
Alice is an Android app that turns your phone into an external autofocus controller for any camera. It uses the external depth information to measure distance and wirelessly controls a focus motor—no camera firmware integration required.
Use Alice when your camera can’t provide reliable autofocus, or when autofocus isn’t available at all. Typical situations include:
- Manual-focus lenses with no built-in AF motor
- Adapted lenses that don’t communicate with the camera body
- Linear polarizers that interfere with phase-detect AF
- Cameras with poor or restrictive firmware that hampers autofocus performance
- ...
Alice doesn’t rely on your camera’s AF system. It measures distance with its own depth sensor and adjusts focus through a wireless motor, so it can work with virtually any lens once calibrated.
🔗 Video
| Component | Requirement | Notes |
|---|---|---|
| Phone / Tablet | Android 8.0+ (API 26) | USB 3.0 recommended. |
| Depth Camera | Intel RealSense | Any of: D415, D435, D435i, D435f, D455, D405. (Buy used to save money (╯°□°)╯︵ ┻━┻). |
| Focus Motor | Tilta Nucleus Nano II | Hand controller only needed for initial pairing. |
| Wireless Bridge | nRF52840 USB Dongle | Required for wireless communication. |
| Accessories | USB Hub | To connect peripherals to the phone. |
Manual Focus Direct motor control via on-screen slider. Full 0–4095 position range with preset buttons for common distances.
Single Point Focus (AF-S) Tap anywhere on screen to focus at that point. Focus locks until you tap again—useful for static shots or recomposing after focus.
Continuous Point Focus (AF-C) Tap to select a point, and Alice continuously tracks depth at that screen position. As the camera moves or subject distance changes, focus adjusts automatically.
Face Tracking (AF-F) Automatic face detection and tracking. When multiple faces are present, tap to select which one to follow.
- Download the APK and
firmware.hexfrom the Releases page - Flash the firmware to your nRF52840 dongle
- Install the APK on your phone
- Connect your devices and calibrate your lens
For detailed setup, see INSTRUCTION.md.
See BUILD.md.
USB 3.0 is recommended for full functionality. With USB 2.0 (480 Mbps), Alice automatically adapts by disabling the RGB stream from the RealSense and running depth-only mode. Autofocus still works, but you may experience lower frame rates.
A few things to keep in mind:
-
Depth accuracy varies. Results depend on your sensor model, lighting conditions, and scene content. Reflective surfaces, glass, and extreme lighting can affect readings.
-
Calibration is required for each lens. Alice needs to learn the relationship between measured distance and motor position for your specific lens. This takes a few minutes per lens.
-
Non-parfocal lenses require per-focal-length calibration. If your lens shifts focus when zooming, you'll need separate calibration profiles for each focal length you use.
-
This is a supplementary tool. For critical cinema work, a skilled AC is still your best option. Alice is designed to fill the gap for solo shooters and low-stakes scenarios.
The Tilta motor communication protocol was derived from strawlab/tilta-n2-control, with modifications for Alice's requirements. Some firmware flashing instructions are adapted from their documentation. I appreciate their work in figuring out the protocol.
If you find code that should be attributed but isn't noted in the source, please open an issue.
Code: Parts of the UI were generated with Claude Sonnet 4.5, subject to human review and verification.
Media: The assets in the video demo and repository banner are based on real photography, processed with Nano Banana Pro to optimize lighting and backgrounds.
