LineStriper AI
Parking-lot striping contractors lose time moving from aerial takeoff to estimate to signed quote.
A human-in-the-loop takeoff and estimating system that turns aerial imagery into corrected counts, company-specific pricing, and an e-signed quote.
My role · Solo founder
- •Product strategy and direct-user research
- •Product and interaction design
- •Full-stack application engineering
- •ML data, evaluation, serving, and operations
Read transcript
- 01Start with an address or an aerial image. No separate takeoff file is required.
- 02Markings remain editable. The model proposes; the estimator reviews and corrects.
- 03Accepted quantities flow into company rates, labor assumptions, margins, and materials.
- 04The same project becomes a branded quote that can be sent for e-signature.
- 05The measured stall detector is strong, but occlusion and unusual sites still require review.
- Identified items
- 10,947
- Stall precision
- 96.3%
- Stall recall
- 97.5%
- Visible stall recall
- 99.4%
Training, validation, and golden sets
Golden set
Golden set
Golden set
01 / Problem and research
One job, too many handoffs
The opportunity was not another isolated measuring tool. It was a trustworthy path from the first aerial look to a signed job.
Striping estimators move between satellite imagery, takeoff software, spreadsheets, price books, proposal tools, and signature platforms. Every handoff invites re-entry, mismatched quantities, and stale prices.
Direct conversations and pilot use repeatedly surfaced the same needs: work from the truck or office, correct automation before trusting it, keep company-specific rates intact, and avoid rebuilding the job at quote time.
Variable imagery
Resolution, season, angle, cars, trees, shadows, and faded paint change the evidence.
Thin objects
A few pixels can be a real stall line. Background-heavy accuracy would hide meaningful errors.
Money downstream
A false count is not cosmetic once it becomes labor, paint, margin, and a customer price.
Touch and tablets
Oversized hit targets, long-press actions, and gesture-aware undo make field editing practical without a mouse.
Non-technical users
Animated gesture tips, persistent pan and zoom hints, explanatory scale warnings, and confirmed destructive actions teach by doing.
Concurrency over offline
A two-minute soft edit lock, read-only collaborator state, retrying autosave, and an unsaved-work warning protect shared projects. Offline-first remains out of scope.
Early flow
- 01
Address or aerial
Search a property or upload imagery while preserving its real scale and source resolution.
- 02
Count and correct
Models propose markings. The estimator reviews, moves, adds, or rejects them before anything is priced.
- 03
Price with your rates
Accepted quantities meet company labor, materials, margins, and service-specific assumptions.
- 04
Send for signature
The same project becomes a branded PDF and a tracked, versioned e-signature link.
Tried and rejected
- 01
Fixed imagery scale
A 10 cm/pixel resampling pipeline made training uniform but reduced validation and golden performance, so native-resolution evaluation replaced it.
- 02
Persistent draw mode
Repeated drawing caused accidental marks. Finishing a shape now selects it and returns to Select; a deliberate Draw another action re-arms the tool.
- 03
Hosted quote templates
A template-first signature workflow duplicated document ownership. The product now renders its branded PDF and sends that stable version to DocuSeal for signature.
02 / Shipped experience
Trust is an interaction
The UI makes model output editable, keeps measurement context visible, and carries only reviewed quantities into pricing.

01 · Count and inspect
The legend and canvas stay synchronized so the estimator can see what each quantity is made from.

02 · Measure at real scale
Boundaries, sampled cracks, and projections remain visible instead of collapsing into an unexplained total.

03 · Keep price and document aligned
The estimate owns prices; the quote editor changes presentation without creating a second source of truth.
Auto Count review contract
- 01
Explain every block
The Run control surfaces one blocking reason at a time in a fixed priority order. Machine errors become plain language with a manual path forward.
- 02
Keep changes recoverable
Detections begin as a ghost preview. Excluded marks stay faint and restorable, while orange review-only suggestions never affect counts.
- 03
Provenance before trust
Each run shows imagery source, resolution, and capture date, can overlay the analyzed image, and accepts the reviewed result as one undoable action.
System architecture
- 01
React + Konva
Browser workspace for imagery, maps, geometry, review, and manual correction.
- 02
Convex
Projects, collaboration, estimating snapshots, quote state, files, and organization permissions.
- 03
PyTorch services
Specialist point, line, area, and context models served behind a versioned detection API.
- 04
Deterministic rules
Geometry, barriers, thresholds, and output contracts constrain what models may return.
- 05
DocuSeal + Resend
Versioned PDFs, stable customer links, signatures, status updates, and preserved copies.
Custom planning tools
Plan mode adds snapping, dimensions, constraints, layout labels, and exportable striping plans for work that begins before estimating.
Field photo and video
Crews can capture tagged site photos and video from a phone, keep the media with the project, and reuse selected evidence in customer quotes.
03 / Evidence and failure
Model card, not accuracy
The headline numbers below apply to one scoped task: physical stall-center detection. They do not describe every marking family in the product.
- Training split
- 52%
- Validation split
- 25%
- Golden split
- 23%
- Precision
- 96.3%
- Recall
- 97.5%
- F1
- 96.9%
- Visible recall
- 99.4%
- Occluded / inferred recall
- 79.3%
Source: current active models.
Evaluation contract
- 01
Split by property
Tiles from one property never appear across training and evaluation partitions.
- 02
Freeze review snapshots
Approved labels are copied and hashed so candidate and control scoring use the same truth.
- 03
Score physical stalls
Point precision, recall, F1, count error, visibility state, and resolution slices match the customer task.
- 04
Keep humans in the loop
Prediction remains a proposal until an estimator reviews it; row completion is still review-only.

Background lookalikes
A 465-stall golden property produced 35 false positives, concentrated around curb, building, and tree-edge patterns.

Occlusion and coarse imagery
Visible recall is stronger than occluded recall. Trees, vehicles, and lower-resolution paint edges remain consequential.

Complex-site overcount
One validation property overcounted by 76 stalls, demonstrating why aggregate F1 cannot replace property-level review.
What changed
Native-resolution evaluation replaced a one-size resampling assumption.
Separate point, line, area, symbol, and context tasks replaced one misleading umbrella metric.
Prediction review, raw coordinates, and deterministic geometry constraints became explicit output contracts.
Future additions
Capturing accepted-review edits, including nudges, excluded marks, row adjustments, accepted counts, and training eligibility.
Adding per-class correction rates, georegistration health, row changes, checklist completion, and time-to-quote monitoring.
Routing eligible reviewed corrections into training labels so user fixes improve later model candidates.
Expanding specialist routing and review-only row completion as each feature clears its own evaluation and release gates.
Next case study
BidVisory
Property owners and managers compare inconsistent contractor bids without a repeatable way to defend the decision.