Bennett Speir, home

OEM Paint Lab

OEM Paint Lab is a tool for exploring and comparing automotive colors for digital use. Browse paint records, inspect their sources, and save colors for later.

Role
Product strategy, design & engineering
Stack
React · TypeScript · Vite
Data
303 paint records
Year
2026
OEM Paint Lab Library showing 303 paint records, search and filtering controls, and four color records: Acid Green, Aetna Blue, Agate Grey Metallic, and Alfa Rosso.
View full size

A credibility problem, not a conversion problem

Digital automotive paint references are scattered across manufacturer pages, specialist databases, games, screenshots, and enthusiast archives. Values are often copied without their source or presented with more certainty than the evidence supports. The larger product problem was making each record inspectable: where it came from, how it was interpreted, and what remained unknown.

OEM Paint Lab treats every HEX value as an sRGB screen reference, not a physical paint specification or claim of official OEM accuracy.

From converter to reference product

OEM Paint Lab began as a 173-color utility built around HEX conversion, normalized HSB values, and a simple finish calculator. It was useful, but every workflow still revolved around the converter. As the dataset grew, the product shifted to a Library-first system: searchable records became the foundation, Paint Detail made their context inspectable, and conversion became one tool inside a connected reference product.

Original Paint Color Converter showing a 173-color archive, quick HEX conversion, manufacturer filters, and early Confirmed and Approximate classifications.
Original state · 173-color converter using the early “Confirmed” and “Approximate” classifications View full size

The Library became the product spine

The Library anchors the product: search and taxonomy support discovery, Paint Detail makes each record inspectable, Lab analyzes entered colors and finish relationships, My Colors keeps saved archive records and custom colors available locally, and Compare brings selected records together. Because every view works from the same structured data, a color can move from discovery to analysis, saving, and comparison without losing its source context.

OEM Paint Lab My Colors view showing eight saved archive paint records available for reuse in Lab and Compare.
My Colors · Saved Library records kept available for reuse View full size
OEM Paint Lab Finish Lab showing a base color, Pearl flake suggestion, finish controls, and generated finish values.
Finish Lab · Base and flake starting points for selected colors View full size

A deterministic system for imperfect data

Behind the interface, OEM Paint Lab turns a versioned workbook into validated application data and keeps provenance, finish properties, and record identity explicit rather than inferred. That deterministic foundation gives every product view the same source of truth while saved records and custom colors remain local to the browser.

  1. XLSX workbook
  2. Normalize
  3. Validate
  4. Typed JSON
  5. Product views
Data
303 records · Stable IDs · Reference / Estimated
Color
sRGB → CIELAB → CIEDE2000
Persistence
My Colors stored in localStorage

A reference system designed for repeated use

The finished product connects discovery, provenance, analysis, saving, and comparison in one reusable workflow. Paint supplies the chromatic content while the surrounding interface stays deliberately neutral, keeping source context and analytical relationships clear. Compare makes that outcome tangible by placing selected records side by side and measuring their separation with CIEDE2000 rather than relying on visual judgment alone.

OEM Paint Lab Compare view showing Lamborghini Giallo Inti and Ferrari Giallo Modena side by side with color values and a CIEDE2000 perceptual distance of 2.213.
Compare · Giallo Inti and Giallo Modena measured at ΔE00 2.213 View full size