The open field monitor for Nikon Z.
Pro monitoring scopes, playback, full camera control, and Camera-to-Cloud export with LUT
baking. Free and open source.
Join the TestFlight beta · Join the Android beta · Visit openzcine.app · Explore the roadmap
OpenZCine turns an iPhone, iPad, or Android phone into a production monitor and remote for Nikon Z cinema cameras, with current development and testing centered on the Nikon ZR. The iOS TestFlight and Android Google Play betas are both public today.
- Read the image like a colorist. Waveform, RGB parade, histogram, and vectorscope run live beside the image you are judging.
- Catch exposure and focus before the take. Codec-aware false color, zebras, RED-inspired Traffic Lights, and industry-standard focus peaking work directly on the monitor feed.
- Frame once for every delivery. Stack multiple aspect markers, custom frames, grids, crosshairs, level, and de-squeeze without losing sight of the shot.
- Set the camera without touching the camera. Control ISO, shutter angle, iris, white balance, recording format, frame rate, autofocus behavior, and recording from the device on your rig.
- Review before striking the set. Browse clips, scrub playback, check scopes and markers, and preview the selected look on-device.
- Ship it with the look baked in. Apply built-in, RED, or custom
.cubeLUTs during export, then send through platform-native sharing or directly to Frame.io. - Keep the monitor on your wrist. Apple Watch and Wear OS companions mirror the live feed with its LUT, camera status, timecode, and remote record control.
- Resilient Wi-Fi discovery, pairing, saved-camera profiles, and automatic reconnect
- Live-view monitoring, timecode, battery, storage, temperature, and camera warning readouts
- Record control plus ISO, shutter, iris, white balance, focus, resolution, frame-rate, and codec controls
- Professional scopes, exposure and focus assists, framing tools, and customizable monitor layouts
- On-device clip browsing, playback review, LUT preview, LUT-baked export, and Frame.io delivery
- Adaptive live-view thermal management during long sessions and recording
- Native iPhone, iPad, and Android layouts, plus Apple Watch and Wear OS companions, with Bluetooth shutter integration under hardware validation
- USB-C tethered transport foundation alongside the primary Wi-Fi workflow
Nikon ZR is the primary hardware target today. USB-C transport, both wearable companions, and wider phone/tablet coverage continue to be hardened with real-world testing.
The roadmap lives in GitHub Discussions,
where every proposed feature has its own thread. Browse the
Ideas category to vote,
add production context, or propose what OpenZCine should tackle next. Roadmap discussions describe
direction, not promised dates or release commitments. Current engineering status is visible on the
read-only OpenZCine Kaneo board,
while engineering-phase detail lives in docs/ROADMAP.md.
No subscriptions, no paywalls, no advertising, and no telemetry. OpenZCine is Apache-2.0 licensed and built in public with Claude Code and Codex so filmmakers and developers can inspect, improve, and adapt the tool they rely on.
Production targets a shared Swift business/protocol core with native platform shells:
| Layer | Path | Purpose |
|---|---|---|
| Shared core | Sources/OpenZCineCore/ |
PTP-IP protocol, camera state, Nikon property codes, discovery, pairing |
| iOS app | ios/ |
SwiftUI shell, Bonjour discovery, live-view rendering, camera I/O |
| Android app | Apps/Android/app/ |
Jetpack Compose phone shell and Android platform adapters |
| Android facade | Sources/OpenZCineAndroidFacade/ |
Swift session and JNI boundary for Android |
| Wear OS | Apps/Android/wear/, Apps/Android/wear-relay/ |
Wear UI and phone-mediated relay |
| Tests | Tests/OpenZCineCoreTests/ |
Swift package tests — packet encoding, property parsing, discovery, layout |
| Prototype | reference/flutter-prototype/ |
Archived Flutter reference — not part of production CI |
The shared Swift core owns all protocol logic and stays portable (no SwiftUI, UIKit, or Android dependencies). Platform shells own sockets, permissions, lifecycle, rendering, and UI.
See docs/design/specs/2026-06-20-production-native-architecture-design.md
for the full architecture decision and layering rationale.
User journeys and screen-level design live in docs/flows/ as git-tracked
Excalidraw diagrams (.excalidraw, open at excalidraw.com or with an
editor extension) paired with markdown node cards. Conventions: docs/flows/README.md.
OpenZCine is deliberately, transparently built with agentic coding tools. Engineering
guidelines live in AGENTS.md, design specs and implementation plans in
docs/design/.
OpenZCine went through an extended private R&D phase before publication; the public repository starts from a clean slate with a squashed initial commit rather than carrying the experimental history along.
This project is not affiliated with Nikon. No Nikon SDK or proprietary documentation is included
in, distributed with, or required by this project. The camera protocol is implemented from public
sources — see docs/nikon-sdk.md.
Tooling is managed through just:
just setup # install meta-check tools (macOS / Homebrew)
just # list all recipes
just check # run repository quality checks
just format # format Swift sources
just test # run Swift package tests
just native-check # run Swift tests and build the native iOS app
just android-build # build the Android app and staged Swift runtime
just android-check # build, test, compile device tests, and lint Android
just android-release-check # verify the signed phone/Wear release pair
just bug-relay-check # test the standalone anonymous bug-report relayContributions are welcome!
- See
CONTRIBUTING.mdfor development workflow, code standards, and how to report bugs vs. request features. - Report a Problem offers two public-issue paths: an anonymous in-app report with no GitHub account (optional privacy-filtered activity events and user-selected, metadata-stripped screenshots), or a signed-in GitHub issue with richer optional details. Both paths are public; feature requests stay in GitHub Discussions and require an account.
- Before enabling that flow in a release, follow the secret-free GitHub App and Cloudflare
provisioning steps in
services/bug-relay/README.md. - We use GitHub Discussions (Ideas category) for feature requests.
- Standardized labels help triage work — see
.github/labels.yml.
Please also read our CODE_OF_CONDUCT.md. For security issues, see SECURITY.md.
Apache 2.0. Third-party licenses are listed in
THIRD-PARTY-NOTICES.md. The app's privacy policy lives at
openzcine.app/privacy.
"Nikon", "Nikon Z", "ZR", and "Z Cinema" are trademarks of Nikon Corporation, used here for identification only.