ProductOverview

How UNFORCE works

Film a racket-sport session on your phone. Get one honest fix, three proof clips and every number traceable to a frame.

01 · Film it

One phone, behind the baseline. Table tennis is the side-on exception.

02 · Walk away

We tell you when it will be ready.

Where the job actually runs

  1. requestUploadPath creates jobs/{jobId} with status = pending and grants a user-scoped upload under videos/{uid}/{sessionId}/….
  2. Finalizing that object fires processVideoOnUpload in Firebase europe-west1. After validation, the job moves through uploaded to processing and the function enqueues the dispatchGpuJob Cloud Task.
  3. The task remints a short-lived download URL. Production policy selects only the Lambda adapter, which writes a queued record to Firestore gpuQueue/{queueId}.
  4. The live unforce-gpu-worker control plane scales and recovers the pool; self-hosted workers currently run in Lambda Cloud regions us-east-1, us-south-2, and us-southeast-1. A worker claims the queue record and the unforce-gpu-backend pipeline processes the video.
  5. The worker uploads the canonical output under results/{uid}/{sessionId}/…. Firebase onResultUploaded treats that upload as the completion authority and sets jobs/{jobId}.status = done.

There is also an active parallel analysis path. When the job becomes processing, analyzeVideoOnProcessing submits the full uploaded video by gs:// reference to Gemini on Google Vertex AI's global endpoint and writes a separate report to jobs.videoAnalysis. It does not block, fail, or advance the canonical GPU job status.

RunPod is not fallback or standby capacity. Its historic adapter remains disabled and receives no production traffic. See the privacy policy for the current processor and transfer disclosure.

03 · Read one sentence

Then the clips, then everything. Exactly one fix reaches a ready debrief. Zero is legal: some sessions are clean.

04 · Send it to your coach

Free for them to read.

Every claim is traceable

Every number traces to a frame of your footage. When something cannot be measured — spin on a phone, landings with a cropped court — it is named, with the reason. No predicted ratings. No estimated anything.

“Went middle 9 times” opens 9 moments of footage. Accurate to one frame. Argue with the video, not with us.

Some sessions are clean

“Nothing stood out” is an answer we actually give. A product that finds a flaw every week is inventing them.

Improvement is only claimed once it survives a second session. “It held” is the best thing we will ever say to you.

Next: Where the phone goes · Read a real debrief · Film a session