Thinkblot

  • python
  • fastapi
  • react
  • psychology

<github.com/nelsonlove/thinkblot>

Thinkblot is a scoring platform for the Rorschach Comprehensive System (Exner CS), the structured method clinicians use to code and interpret Rorschach protocols. Scoring a protocol by hand means deriving dozens of ratios, percentages, and special indices from the raw response codes; the only commercial software for it has historically shipped on a CD-ROM at a three-figure price.

The platform is a monorepo with three parts. Exnerator, the scoring engine I originally wrote as a clinical psychology Ph.D. student, does the actual work: it validates manually coded protocols, derives the full set of computed scores, and produces the Structural Summary a clinician needs for a writeup. A stateless FastAPI service wraps the engine with endpoints for scoring, validation, and PDF generation (Structural Summary and Sequence of Scores). A React workbench sits on top for entering and reviewing protocols.

The engine is validated against publicly available sample records, and the design keeps a hard line between mechanical scoring, which software should do, and interpretation, which it shouldn't.