All projects

Treadstone Designer

A garage designed in 3D and priced as it's drawn.

When
2026
For
Treadstone Coatings, Nanaimo BC
Role
Designer and developer
Presentation mode: a red coupe parked on a charcoal flake floor in a 3D garage, with the floor area and a single price below
Stack
React 19, three.js through react-three-fiber, Supabase
Tests
300+, plus Playwright on desktop, iPhone and iPad

Highlights

  • The drawing is the estimate

    Square footage, wall run, cove base, stair count and the storage list all come from a takeoff of the design. Nobody types a square footage into a quote.

  • Runs on the laptop they already own

    It has to run on an ordinary work laptop, not a gaming rig. The 3D view only redraws when something changes, and quality steps down before the frame rate does.

  • Margin can't leak into the room

    One keystroke switches to presentation mode, which can't show cost or margin, so they never end up in front of the customer.

Why I built it

Treadstone Coatings is a family-run epoxy and polyaspartic flooring company in Nanaimo. A homeowner collecting three quotes can't picture a finished garage, so the cheapest number usually wins. A rep who can show them their own garage with their own flake blend and their own cabinets, and hand them a proposal before leaving, wins the job at a better margin.

Nothing off the shelf does that. Photo visualizers can't price anything, room planners render in the cloud and know nothing about flake, and the contractor sales suites are Windows desktop apps for pools and roofs.

Work mode: the catalog rail, the 3D viewport, and the blend editor with chip ratios
Work mode. A catalog of real cabinets and racks on the left, Torginol chip ratios on the right, quote and margin updating in the header.

How it's built

The geometry and pricing live apart from the app, so the numbers can be tested on their own. The catalog has real cabinets and racks at their real sizes, Torginol's flake blends, and travel costs out from Nanaimo.

The app is React and Vite. The floor plan is drawn in SVG and the 3D view is react-three-fiber. Supabase holds accounts and saved designs, and it keeps working when the connection drops.

Decisions I'd defend

Walls are flat shapes with holes cut for doors and windows, then pulled into 3D. The fancier way of doing it breaks in strange ways and eats weeks.

Presentation mode was a store flag from day one, not a bolt-on. Retrofitting the idea that some numbers must never render in front of a customer is how margin ends up on a projector.

What's next

The tool is going to an interior-design conference. Before then: glossier floors, a few lighting moods, and a photo overlay that puts the blend on the customer's actual floor.

Get in touch

Email is the fastest way to reach me.

lhindley@ualberta.ca

Based in Edmonton, happy to work anywhere.