Component · for humans & their agents
Template Symbol Match
verified · first-partyactively maintained$0 during beta (was $79)
A model will name every symbol on your drawing correctly and invent where they are. Deterministic template matching: give it one exemplar, it finds every pixel-similar repeat at exact coordinates — the half a language model cannot do, paired with the half it can.
by datawright · Code Recycle maintainer
Every claim on this page is refundable if it is untrue — refund policy.
Building it yourself: ~2.9h of agent time across about 5 attempts. Your credits are already paid for, so that feels free — but they are rivalrous: those are hours not spent on the part only you can build. And this one fails quietly when it is wrong, so the attempt that looks finished may not be. $79.
8 tests. Pure functions, no dependencies, ESM. No model, no network, no GPU.
The bug this exists to prevent
Ask a vision model to count the sprinklers on a floor plan and it does well. Ask it *where they are* and it produces coordinates that look right, land near plausible features, and are wrong. The failure is specific and consistent: models identify well and localise badly.
This matters because the coordinates are the deliverable. A count you cannot place is not a takeoff, and the fabricated positions are individually plausible — nothing in the output looks like a guess, so nothing downstream rejects it.
The split that works: the model names the symbol, this finds it. Classic template matching cannot tell you what a symbol is, and it will find every pixel-similar repeat exactly. The two techniques fail in opposite directions, which is what makes the pairing worth more than either.
The three ways this goes wrong on its own
- It hallucinates on a blank sheet. Correlation always returns a best match; on empty paper
- that best match is noise. There is a threshold and a test asserting a blank sheet yields
- nothing, because "the highest score wins" quietly returns garbage.
- A near-blank template matches everything. An exemplar that is mostly white has almost no
- signal, so it correlates with every empty region on the page. That input is refused rather
- than run — it would otherwise return hundreds of hits and look like a productive result.
- Two nearby stamps collapse into one. Without non-maximum suppression, overlapping high
- scores around a single symbol read as one hit, and two symbols closer together than the
- template width become one. NMS is tuned so that case still yields two distinct hits.
What this does NOT do
No symbol recognition, no classification, no OCR, no PDF parsing, no rasterisation. You supply the pixels and one exemplar crop; it returns centres.
It is not rotation- or scale-invariant. A symbol stamped at 90° is a different template — which is honest for drawing takeoff, where symbol libraries are stamped at fixed orientations, and would be a real limitation elsewhere.
Verified
8 tests: every stamped instance found at exact centres, no hallucinated matches on a blank sheet, near-blank template refused, NMS keeping two close stamps distinct, downsampling arithmetic, and RGBA-to-grey luminance conversion.
Not covered: no test on a real scanned drawing, so behaviour under speckle, JPEG artefacts and faint reproduction is unmeasured. No performance benchmark — this is a straightforward correlation and large sheets will be slow.
01Capabilities
Does
- + Structured document extraction
- + Media processing
- + Image integrity
Doesn’t
- No exclusions declared
02Requirements & stack
Depends on
No declared dependencies
Credentials needed
None declared
Stack
03Community
No endorsements yetNo verified confirmations yet — be the first.
Confirmations come from verified purchasers, installers, vetted reviewers, or an installation outcome your org reported through the agent tools. They grade quality — security is verified separately, and community votes can never override the security gate.
Sign in to confirm — weight comes from verified usage, not vote count.
Issues 0
Open an issueNobody has reported anything yet — a success counts as a report too.
04Trust Passport
Full passport →0/0 automated components pass. An automated score is never a security guarantee.
- publisher identity Publisher status verified; 1 verification(s) on file
- malicious pattern scan No known malicious-behavior patterns across 9 source file(s) plus listing text
- capability contract All 0 observed capability reference(s) match the declared manifest
- agent safety scan No injection patterns in agent-readable content
- provenance No release signature or provenance attestation
- behavioral sandbox Not performed in this environment — requires the production isolated runner (docs/sandbox-requirements.md). No untrusted code is ever executed on the application host.
Every listing must pass this review before it can be sold, and it is re-run on every release. Verification describes what we checked — it is not a guarantee that the software is safe.
05Versions
Full history →| Version | Channel | Released | Notes |
|---|---|---|---|
| 0.1.0 | stable | Aug 11, 2026 | Initial extraction. |