What it is
painTest is an iPhone app. You take a picture of a face. One computer in the background (OpenFace) measures facial Action Units. The app turns those into estimated PSPI, 0 to 16. You can add your own 0 to 10 rating, save history, look at a graph, and export a CSV.
It is not a doctor and not a diagnosis. It can still act as a personal pain log: a face-based estimate plus your own rating, so patterns show up that you would miss from memory alone.
How it helps
Pain is easy to forget or rewrite. A photo plus a score plus a self-report is a record you can look at next week. That is useful when pain is hard to describe, and for a class or a small study that needs a CSV instead of a pile of screenshots.
Facial pain software is often trained on younger faces. Wrinkles can look like a frown or a squint, so older people get worse scores. Most apps run the photo as-is. painTest lets you type your real age and optionally de-age toward a younger target (around 25) before OpenFace runs, then it keeps the original score next to it.
What you can do
- One mode: Action Units (no separate “age look” preview)
- Guided camera with a face oval, then review / retake
- Estimated PSPI and a full Action Unit list
- Self-report 0 to 10 and notes
- History, trends, CSV export
- Optional de-aging using the age you type in Settings
Where OpenFace runs
The phone does not install OpenFace. It talks to one server. Right now that server is a Mac on the same Wi-Fi, or the same Mac through a Cloudflare tunnel when you are away. Cloudflare is only a pipe. It does not score the face.
A shipped app would be the same idea with a hosted server, so the user never installs OpenFace or Cloudflare. Photos would then go to that server instead of staying only on your Mac.
Limits
Treat the score as an estimate you track, not as a reason to start or stop treatment. Bad lighting and a turned head still wreck the number, which is why low-confidence shots get flagged. For this contest build, the Mac has to be on with the bridge running.