NATIVE IOS APP  ·  IPHONE & IPAD

Native camera control.

Built for modern cameras.

Sign Up for Beta Access

(All photos are screenshots, not mockups. All photos taken by me. Images were fed to the app for making this website because my living room is boring, but the histograms are real.)

Fujikage live view on iPhone
BLE PAIRING
LIVE VIEW
GPS SYNC
IMAGE TRANSFER
TRANSPARENCY

WORKFLOWS

YAPAWP

Yet Another Photography App Written by a Photographer

In the beta

Pairing screen Main controls

01  /  CONNECT

Reliable connections

Surprisingly, this was one of the things that inspired me to make this: getting reliable camera connections. I started from scratch, have retries in sensible places, and separate UI, GPU, and IO threads to keep the app responsive.

02  /  LIVE VIEW

Camera-paced live view with Exposure Triangle at the forefront.

Camera manufacturer apps struggle with the high-volume, 60fps MJPEG streams in live view. Fujikage uses GPU native, zero-copy acceleration and multi-threading to efficiently handle and display the live view while keeping your input responsive.

Live view Live view with the ISO adjust panel open
GPS Sync screen with the Live Activity mirror and write cadence

03  /  GPS SYNC

Continuous GPS tagging over Bluetooth.

I like to geotag my photos while hiking. Other apps were apps getting killed in the background and I was losing my coordinates along the way. Fujikage can alert you if your scheduled GPS update is behind schedule.

04  /  TRANSFER

Background image transfer with Live Activity progress.

Files transfer reliably in background with resumable transfers (so that 8gb movie you just shot doesn't have to restart from the beginning) and clear notifications. Show someone their photos the moment you're done — no waiting, no babysitting a progress bar. Extract full-size JPEG for quick showing even if you only shoot RAW. RAW photos? More like "Rawr, photos!"

Image transfer
Camera settings Camera Wi-Fi

05  /  TRANSPARENCY

Clear status.

The number one frustration I had with other apps was not knowing how far the unreliable connection was really making it. Fujikage shows you what it's doing. It shows you how long each step should take.

ROADMAP

Coming soon.

Sign up for the beta and review these in-progress features.

Coming soon

Multi-screen view

View your camera's live feed on more than one device. Or see images captured on a television or monitor.

Coming soon

macOS & Android

The camera engine is portable by design. MacOS and Android get all the same benefits.

Coming soon

Advanced settings

Fujikage can read and parse your firmware settings to recommend changes.

Coming soon

USB Tethering

Connect directly to the camera's USB port.

UNDER THE HOOD

Built differently.

The app you interact with is just the skin of an effort to simulate how cameras actually work. More of that story here.

01

State-machine first.

Application state is composable and deterministic — no hidden side effects, no "it works on my phone" surprises.

02

Clean-room protocol implementation.

No manufacturer SDK or borrowed code. The camera protocol was mapped by documenting how cameras talk, then rebuilt independently. The app consumes the protocol engine like a third-party library.

03

I wrote a whole camera simulator. It has its own terminal UI. Really.

ptpsim faithfully simulates the full camera feature set: live view, exposure controls, file transfer — with camera models described by the same data that drives Fujikage. This is open-sourced.

04

Rust camera engine.

The app's entire camera brain is a Rust engine driven by per-model manifests, the same engine that powers the simulator. A bugfix or feature update to a shared primitive lands on every supported model at once and every platform at once, not camera by camera.

05

Instrumented like a service.

My background building distrubuted systems helped me build Fujikage like a service. The dashboard shown here is real data from real beta sessions. This means I have the data to fix issues faster than you can even report them.

ptpsim operator TUI running in a terminal: a simulated GFX100 II in live view, with camera state, exposure properties, telemetry, and hotkey controls

PTPSIM OPERATOR TUI - GFX100ii

Grafana camera-connection-health dashboard: Wi-Fi security observations, shutter attempts, and PTP/IP session opens broken down by named failure mode, from live opt-in telemetry

CAMERA CONNECTION HEALTH — LIVE GRAFANA, OPT-IN TELEMETRY FROM REAL SESSIONS

IPAD

Purpose-built for iPad.

iPad remote viewing is why I started making this app in the first place. My model needs to be able to see what I see.

iPad fullscreen live view
iPad full screen view 👩‍🍳💋
iPad horizontal live view with controls
Yep... that's me. I bet you're wondering how I got here...

BETA ACCESS

Join the beta.

Fujikage is in active development. Sign up to be notified when a TestFlight slot opens.

COMPATIBLE CAMERAS
Built for modern Fujifilm™ X-series and GFX bodies. Validated end-to-end on GFX100 II — beta testers are how the list grows.

Type to search, add all that apply — I'll prioritize beta testers that have access to cameras that I don't.

Select all that apply.