← Back to work

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
Real product walkthrough1:15 · 16:9
Read transcript
  1. 01Start with an address or an aerial image. No separate takeoff file is required.
  2. 02Markings remain editable. The model proposes; the estimator reviews and corrects.
  3. 03Accepted quantities flow into company rates, labor assumptions, margins, and materials.
  4. 04The same project becomes a branded quote that can be sent for e-signature.
  5. 05The measured stall detector is strong, but occlusion and unusual sites still require review.
Identified items
10,947

Training, validation, and golden sets

Stall precision
96.3%

Golden set

Stall recall
97.5%

Golden set

Visible stall recall
99.4%

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

  1. 01

    Address or aerial

    Search a property or upload imagery while preserving its real scale and source resolution.

  2. 02

    Count and correct

    Models propose markings. The estimator reviews, moves, adds, or rejects them before anything is priced.

  3. 03

    Price with your rates

    Accepted quantities meet company labor, materials, margins, and service-specific assumptions.

  4. 04

    Send for signature

    The same project becomes a branded PDF and a tracked, versioned e-signature link.

Tried and rejected

  1. 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.

  2. 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.

  3. 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.

LineStriper AI counting mode with colored markers over an aerial parking lot

01 · Count and inspect

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

LineStriper AI measuring mode showing pavement area and projected crack length

02 · Measure at real scale

Boundaries, sampled cracks, and projections remain visible instead of collapsing into an unexplained total.

LineStriper AI three-pane quote workspace with line items, live PDF preview, and e-signature controls

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

  1. 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.

  2. 02

    Keep changes recoverable

    Detections begin as a ghost preview. Excluded marks stay faint and restorable, while orange review-only suggestions never affect counts.

  3. 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

  1. 01

    React + Konva

    Browser workspace for imagery, maps, geometry, review, and manual correction.

  2. 02

    Convex

    Projects, collaboration, estimating snapshots, quote state, files, and organization permissions.

  3. 03

    PyTorch services

    Specialist point, line, area, and context models served behind a versioned detection API.

  4. 04

    Deterministic rules

    Geometry, barriers, thresholds, and output contracts constrain what models may return.

  5. 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

  1. 01

    Split by property

    Tiles from one property never appear across training and evaluation partitions.

  2. 02

    Freeze review snapshots

    Approved labels are copied and hashed so candidate and control scoring use the same truth.

  3. 03

    Score physical stalls

    Point precision, recall, F1, count error, visibility state, and resolution slices match the customer task.

  4. 04

    Keep humans in the loop

    Prediction remains a proposal until an estimator reviews it; row completion is still review-only.

Golden-property model review showing false detections near curbs, buildings, and tree edges

Background lookalikes

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

Model review image showing parking rows interrupted by cars, trees, and shadows

Occlusion and coarse imagery

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

Model review image showing mixed correct, missed, and false stall detections on a complex property

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.

Read case study →