● LIVE
sensei.coach
Last reviewed
2026-05-31
Jurisdiction
Ireland · EU
Contact
kevin@senseiai.ai
Responsible AI · the doctrine

Honest models, honest infrastructure.

Sensei AI exists to help fighters train better between sessions — not to flatter them with invented numbers. This page documents how the system is built, where it runs, what it does with your data, and what it explicitly will not do. It's the single source of truth for the responsible-AI material referenced elsewhere on this site.

01
Architecture
What runs where, and on what

The product is on Google Cloud. The marketing site is on Vercel. Both are EU.

app.senseiai.ai

The application

Where users sign in, upload clips, receive analyses, and chat with the coach. All training data, video, and analyses live here.

  • Compute: Google Cloud Run · europe-west1 (Ireland)
  • Storage: Google Cloud Storage (video) + Supabase EU (relational)
  • Pose pipeline: MediaPipe BlazePose Heavy, run locally in our Cloud Run containers
  • LLM coaching: OpenAI GPT-4o via a LangChain tool-using agent (no PII passed in prompts; Gemini integration planned for full GCP-native stack)
  • Secrets: Google Secret Manager
  • Observability: PostHog EU (analytics), Sentry (errors)
sensei.coach

The marketing site

The public shopfront. Static content + a small number of form endpoints that today log payloads server-side and return mock responses (real backend handoff in flight).

  • Framework: Next.js 14 · TypeScript · Tailwind
  • Hosting: Vercel (Frankfurt, fra1, for any server-side execution)
  • Forms: /coaches apply + /contact route through Vercel functions pinned to fra1; no user data leaves the EU
  • Analytics: none on this surface today
  • No PII storage: the marketing site does not persist user data
Roadmap

Over the next 12 months we plan to consolidate brand presence under sensei.coach while keeping the production application on Google Cloud (europe-west1). All commitments on this page apply regardless of the user-facing URL.

02
Data residency & retention
Six commitments we keep in code

Your training data stays in the EU, and stays for 90 days.

EU-only data residency

Production application runs on Google Cloud Run europe-west1 (Ireland). Supabase EU (Postgres + Auth + Storage). No US or Asia data centers. Marketing-site form submissions run on Vercel Frankfurt (fra1).

90-day video auto-delete

Every training video uploaded to the app is deleted from object storage after 90 days. Generated analyses (text + numbers) are retained while the account is active, deleted on request within 30 days.

Sparring vision · faces blurred

Multi-person sparring footage runs through OpenCV face detection and Gaussian blur before any biomechanical analysis. The unblurred frame never leaves the processing function.

Whoop tokens encrypted

OAuth tokens for the optional Whoop integration are AES-GCM encrypted at rest. Encryption key lives in Google Secret Manager.

GDPR right-to-erasure

One-click data deletion through account settings. Consent + deletion audit tables in Postgres (migration 065). Statutory response within 30 days.

No third-party motion capture

Pose extraction uses Google's MediaPipe BlazePose Heavy model running locally on our Cloud Run containers. Your video never goes through DeepMotion, Move.ai, or any other external motion-capture API.

03
Calibrated confidence
Every analysis ships with its own honesty score

When the camera can't see clearly, Sensei says so.

Every video analysis produces a 0–100 confidence score from four measured factors. The score is surfaced to the user as a coloured pill in the analysis card header, and the coaching layer is rule-bound to refuse strike-count claims and offer only qualitative observations when confidence is low.

FactorWeightWhat it measures
Temporal coverage35%Usable frames as a fraction of frames sampled.
Mean frame confidence30%BlazePose per-landmark certainty, averaged.
Stability20%Fraction of usable frames that are consecutive.
Resolution15%Source resolution as a 0–1 score.
HIGH
≥ 75

Full frame-anchored coaching with strike-level reads.

MEDIUM
50 – 74

Specifics with hedged language and a visible confidence pill.

LOW
< 50

The model refuses strike counts; qualitative observations only.

04
What we don't do
Hard constraints from the codebase

The opposite list. What Sensei refuses to claim.

  • We do not claim accurate strike counts. The model is calibrating, so we talk about joint kinematics and movement quality instead — never invented numbers.
  • We do not promise a specific time-to-feedback. A 30-second clip typically takes 45–90 seconds end-to-end on EU infrastructure, and we say so.
  • We do not perform live mobile-camera analysis today. Upload-only; real-time is on the roadmap and will be flagged explicitly when it ships.
  • We do not make medical claims. The product addresses technique, not injury, recovery, or diagnosis.
  • We do not market opponent scouting, sparring vision, Corner Mode, Session Journal, or drill verification as free-tier features. They are Pro-only and gated in the UI.
05
Consent, control & rights
What the user can do about any of this

The control belongs to the athlete.

Opt-in upload

Video upload requires explicit consent. The consent flag is stored alongside the upload row in Postgres with a timestamp.

Right to erasure

One-click account deletion from settings. Backend deletes within 30 days; deletion audit table records the action.

Data portability

Users can export their training history (analyses, scores, chat) in JSON or CSV on request.

Full GDPR rights detail and exercise process is on the GDPR page. Privacy commitments and the cookie posture are at /privacy and /cookies.

06
By the numbers
The facts that matter most

At a glance.

100%
EU-hosted data
90d
video auto-delete
0
third-party motion APIs
30d
GDPR response SLA
Questions, audits, or program review

Reach the team directly.

For data, AI ethics, or platform-review questions — including program-partner due diligence — email Kevin directly. We aim to reply within two working days.