A phone becomes a handheld camera for Blender: free open-source addon
The Phone Camera Controller addon turns an iOS or Android smartphone into a handheld virtual camera for Blender. The phone shows the viewport in real time, and the 3D camera in the scene repeats the phone's movement. Hold down record and the move is saved into ordinary camera keyframes. The addon is free, distributed as open source under the GPL, and weighs 35 KB.
As the developers see it, a phone lets you make camera moves that are hard to get with a mouse: walk around the room with it and record a flight around the scene as handheld footage. Focus can be pulled by hand during the take, and that goes into the animation too.
What gets recorded into a take
The camera is controlled in six degrees of freedom: position in X, Y, Z and rotation (pan, tilt, roll). The data comes from the gyroscope, the accelerometer and AR tracking of the phone's position. The lens is set from the smartphone as well: focal length, focus distance, aperture, blur strength and depth of field apply immediately.
«Focal length, focus distance, aperture and depth of field are set from the phone and recorded into keys while shooting, so focus can be pulled by hand», the developers write on the addon's page.
There are two ways to record. A short press sets a single keyframe at the current frame. Hold the button and position and rotation are written frame by frame while the timeline runs; release the button and recording stops. The timeline is also controlled from the phone: start, pause, scrub, step by frames, jump to the beginning or the end.
Motion settings are gathered in the Phone Cam side panel (the N key in the viewport):
- rotation and translation are enabled separately — for example, rotation only for a pan as if from a tripod;
- sensitivity sets how far the camera travels per step of real movement: for small, measured moves it is lowered;
- smoothing removes sensor jitter: higher — a smooth move, lower — raw handheld footage;
- any axis can be inverted;
- neutral pose calibration remembers the current camera position so every take starts from the same frame.
The addon works with several phones at once, each driving its own camera in the scene. For that you add one camera per phone in Blender and link them in the app, while the viewport follows the last selected camera.
Connecting without network settings
The phone and the computer find each other on their own via Bonjour/mDNS, including on Windows: no need to enter IP addresses, ports or pairing codes. Just press Start Server in the panel and Blender appears in the app's list of hosts. The preview reaches the phone in the same shading mode as in the viewport: Solid for speed or Material Preview to see color and light. This is useful even without recording — for example, to show a client the shot on a phone screen without rendering anything.
The limitations are stated outright. Both devices have to be on the same local Wi-Fi network; the addon does not work over cellular or remote networks. The developers recommend 5 GHz, as latency is higher on 2.4 GHz. While the server is running and the phone is connected, the addon renders a preview 640 pixels wide by default (width and frame rate are changed in the addon preferences). Ports HTTP 8254 and UDP 8255 are used — useful to know if a studio network is closed off by a firewall. The scene is transmitted locally only and is not uploaded to the internet.
Where to get it and what recording costs
The Phone Camera Controller addon, version 1.4.1, is published as a single archive for all platforms. It is written in pure Python, requires Blender 4.2 or newer on macOS, Windows (64-bit) or Linux, and has been tested on Blender 5.2 LTS. It installs via Install from Disk in the preferences, and no administrator password is needed. The Phone Camera Control app is free on the App Store and Google Play (Android 8.0 and newer); the phone needs a gyroscope and an accelerometer.
Monetization concerns recording only. Streaming, camera control, settings, the timeline and working with several phones are unrestricted and come without ads. After registering in the app you get 30 Ad Credits for recording; watching a short ad adds 10 seconds of recording, with no daily limit. The one-time Ad-Free purchase removes ads and lifts recording restrictions; its price is not given on the addon's page. There are no Lite and Pro versions: the feature set is the same for everyone. An account in the app is needed to track credits.
How it differs from other «cameras in a phone»
Similar tools existed before. PocketCam on the Superhive marketplace also offers 6DoF tracking, a real-time viewfinder and recording with timeline playback with sound. Connection there goes via QR code, the phone opens the interface in a browser without installing an app, and stabilization and a commercial license are claimed. In 2021, as BlenderNation wrote, VirtuCamera offered similar capabilities: motion transfer over Wi-Fi, viewport streaming, key recording, focal length control and smoothing. It required an iPhone or iPad with ARKit support and worked with Blender 2.83–2.92.
In our assessment, next to PocketCam the main differences of Phone Camera Controller are a free addon and operation entirely on the local network: PocketCam is sold for money, requires an internet connection and a Cloudflare account, but is not tied to a single Wi-Fi network. Another difference is the recording of focus distance and aperture along with the movement, so the operator can pull focus during the take. Compared with VirtuCamera, Android and current Blender versions have been added. The weak point is the credit model: the free mode will probably be enough to try it out and shoot a few short moves, but regular work with long takes will most likely require the one-time purchase. It is also unclear how AR tracking behaves on long moves: the developers give no data on drift. They themselves advise holding the phone with both hands, starting the movement slowly and, on jerks, cancelling the take and reshooting, so cleaning up the curves after recording is probably worth planning for.
Ну и какая погрешность?
Интересная для меня тема, даже специально зарегистрировался здесь ради неё.
Когда-то давно экспериментировал с наложением эффекта камеры, раскачивающейся при ходьбе, на 2D анимацию, но использовал совсем другие инструменты. У меня тогда был Макбук с HDD диском. В нём есть датчики Sudden Motion Sensor, которые следят за изменением положения ноутбука в пространстве. Их основная цель – обеспечить парковку головок жесткого диска в случае падения и, тем самым, обезопасить диск и данные на нём. Существует бесплатный софт, который позволяет вести запись в файл данных с этих датчиков. Я запускал воспроизведение анимационного куска на ноуте, включал запись данных с сенсоров в файл и проносил ноут в руках по комнате, стараясь синхронизировать его движения с происходящем на экране. Делал несколько дублей. Затем данные с датчиков пересохранял в Excel файл, импортировал в AftеrEffects и накладывал на анимацию. Чтобы снизить дрожание и сделать движение более плавным, приходилось эти данные предварительно перемножать, подбирая коэффициенты. Погрешность меня не интересовала, нужен был эффект как таковой.
Вот ещё демо анимационно-игровых трюков, которые можно делать с помощью датчиков Sudden Motion Sensor в ноутбуке:
https://www.youtube.com/watch?v=koHfshmHUmI