Upload photos, redact faces before anything is stored, set the capture parameters, and prepare them for ingest.
Simulated data. Every capture in this demo is
origin: "simulated" — invented, not recorded on a jobsite. These
pages show how a productivity factor is derived. No model-accuracy
figure is reported anywhere: simulated captures may train a model and may never
measure one, so an accuracy number computed here would be meaningless.
Photos stay in this tab unless you press "Describe with AI".
Reading, redacting and previewing all happen locally — nothing is uploaded by
simply adding a photo. Describe with AI is the one exception: it sends
the redacted image to Amazon Bedrock in ca-central-1,
and the button stays disabled until faces are redacted or you declare there are
none, so an unredacted photo has no path off this machine. It may propose an area
and a scope item; it may never propose a quantity.
This mirrors the real capture path: the mobile app redacts faces
on-device before sending, and the ingestion service re-checks
server-side regardless. Two independent passes, because a client-side bug is not
an acceptable failure mode for a promise made in a contract.
Drop photos here
Add a photo to start redacting.
Drag across a face to redact it. Regions are mosaicked, not softly blurred —
averaging whole blocks is not reversible the way a gaussian often is.
Capture parameters
Proposed only. origin is set authoritatively by the ingestion
service and never inferred later — that is what keeps the simulated-capture
leak assertion enforceable.
Prepared captures (0)
Assistant · fills forms and explains numbers. It never sets a quantity,
an abstention, or a face-blur declaration — those stay yours.