A family friend was living with constant colds. A pulmonologist looked at the hands with care and talked about digital clubbing as a sentinel sign for lung conditions such as primary ciliary dyskinesia and cystic fibrosis. I was moved that a small, visible sign could help someone get the right next steps.
According to Myers and Farquhar in JAMA (2001), visual agreement was often only fair, and the profile-angle difference can be a few degrees [1]. That is a reason the sign is easy to overlook. It does not prove I solved it.
The invention
I wanted a guided photograph, digital imaging, and software that knows when it should not answer. AI only helps locate points. Ordinary geometry measures. Unable to assess appears when confidence is low. A person still interprets.
The gap I care about is equity of attention. The sign is on the hands, and a careful look can change what happens next. A simple capture is my attempt to make that look easier to document with patience. It is not a diagnosis, and it is not a fairness result. No person co-designed this with me. I used papers for the science and AI tools to implement.
Watch the construction
Same educational fixture as the project page. Lovibond is the unsigned profile angle at the fold. It cannot exceed 180°, so it is not a Myers cutoff.
Educational fixture
Lovibond
—
DPD/IPD
—
Educational fixture. Not live model inference.
DIP joint
Dorsal interphalangeal landmark on the finger.
Nail fold
Proximal nail fold; vertex of the educational Lovibond angle.
Nail plate
Point along the nail plate used for the second vector.
I kept landmark finding separate from geometry so I can unit-test the math while the vision step stays experimental. Quality comes first. A stub may not look clinical.
I wrote and ran engineering tests as the project grew: geometry, quality, fusion, and screening labels. A public snapshot on 2026-10-19 shows 17 tests passing (commit 3354f22). Those suites measure fixtures and policy, not clinic accuracy. They cannot be used to claim a diagnostic device.
Landmark detection is still experimental. Abstention is implemented; calibration is not established.
Where I got stuck was treating a successful run as if it proved I found the anatomy. A stub can return fixed points and still produce angle values. That is why Demo captions now say when placeholders are active.
I also had to understand that my unsigned acos angle cannot exceed 180°, even though the literature scaffold mentions values past 180°. I did not change the formula to chase the papers. I documented the limit.
The origin still sits with me: a careful look at the hands can change what happens next. I have not shown that a photograph makes that look available fairly across lighting, cameras, or skin tones. The harder question became how to build a system that knows when it should not answer. I still need landmark validation, device robustness, and a real clinical study before stronger claims.