Capture · /dashboard/working/[id]/capture Mobile · PWA · Single URL · Internal state machine

Capture flow — six states, one URL.

Mobile-first. Each state is a screen of the same fullscreen route. The URL doesn't change; the internal state machine drives transitions: preflight → brief → record → review → upload → done.

01 Preflight Device + permissions
9:41📶84%
Step 01 · Setup

Let's check your setup.

Camera
Permission granted
Microphone
Ambient audio
!
Storage
1.2 GB free · 2 GB needed
Resolution
1080p available
Battery
84%
Network
Strong · 25 Mbps
Free up space first
02 Brief SOP keyframe
9:42📶84%
Clip 02 of 03

Capture this.

Operator manipulating the kettle from the start of pour through return to surface.

Target duration

~ 30 seconds per take

Privacy Avoid recording faces. If anyone enters frame for more than a moment, pause and re-take.
Start recording
03 Recording Fullscreen · live preview
00:24 📶84%
⚠ Hold steady · slight blur detected
Step 02 / 05
Pour into cup
PAUSE
×
04 Recorded Review & submit
9:46📶84%
Clip 02 of 03 · Captured

Review your clip.

Duration
15:08
Resolution
1080p
Issues
2
2 minor issues detected
Slight blur at 0:12 · Low light at 4:48
Re-take
Save
Submit
05 Uploading Background-safe
9:47📶84%
Clip 02 of 03 · Uploading

Sending to QA.

71%
12.3 MB of 28.5 MB · 1.2 MB/s ~ 14 seconds remaining
Background-safe You can close the app — upload continues.
Cancel upload
06 Uploaded Confirmation · auto-redirect 5s
9:48📶84%
Submitted

Clip 02 is in QA.

You'll get a notification when the publisher reviews it. Usually within 24 hours.

Submitted2 / 3
Capture next clip
Back to task
Edge cases Recovery · offline · interruption

Never lose a clip.

MediaRecorder flushes to disk every 2 seconds. If the app is killed mid-record, IndexedDB keeps what's there. On next open, a recovery banner appears app-wide.

Recovery banner A clip from 15 minutes ago wasn't uploaded. ~ 28 MB · captured locally Discard Recover
Offline You're offline · 2 clips captured and queued. Uploads resume when network returns. QUEUED · 56 MB
Blocked Camera permission was denied. Open browser settings to allow camera access for openphysix.ai. Open settings

On desktop browsers, /dashboard/working/[id]/capture shows "Open this on your phone" with a QR code linking to the same URL on mobile.