The most expensive mistake in landscaping isn't a bad design. It's a plant that dies because nobody checked how much sun that spot actually gets. The landscaper eats the replacement cost. The client loses trust. And the information was sitting in free satellite data the whole time.

I started with a SvelteKit app called solar-sim that used ShadeMap's API for terrain and building shadows. Forty dollars a month, someone else's algorithms, and the browser choked on anything larger than a few acres. But the core idea worked: point at a property, see where the sun hits, match plants to actual light conditions instead of guessing. It was enough to know the question was worth pursuing.

Replacing the Rental

ShadeMap did the hard part — shadow simulation against real terrain and buildings — but I was renting it. No control over the algorithms, no way to extend it, and a monthly bill that would only grow with usage. I needed to own the shadow engine.

Claude Code made that transition surprisingly fast. I described the algorithms I wanted — ray-cast DDA against heightfield data, sampling sun positions across the day — and had working Rust implementations within a few agent sessions. Understanding computational geometry and solar position math well enough to direct the work still took real effort. But the gap between "I understand what this should do" and "I have running code that does it" shrank from weeks to days.

The Python prototype served a 13-acre scene in thirteen seconds. The Rust engine does it in half a second. That's not just faster — it's a different kind of tool. Thirteen seconds means batch processing. Half a second means a landscaper standing in someone's yard with an iPad, getting answers in real time.

User interface showing a map selection component, a visualization of sun exposure on a hilly 3D terrain, and controls for the tool

Then the scenes got bigger. Fifty-three acres, rendered with buildings, tree canopy from Meta's satellite data, and a sun-hours heatmap draped over real terrain. The kind of view that would have been impossible in the browser-based version, now served from a Rust engine running on a single machine. No API dependency. No monthly bill. Every improvement to the algorithms compounds because I own the whole stack.

The Strange Middle

Here's where the project is right now: the technology clearly works, and I don't know what the product is yet.

The engine serves arbitrary regions in under a second. The data pipeline pulls from six public sources — elevation, canopy height, building footprints, federal datasets. The 3D renderer shows you a property with its actual terrain, actual trees, actual shadow patterns. A plant recommendation engine scores candidates against measured sun hours instead of nursery tag labels. A cost estimator generates a bill of materials for a fence from a few lines drawn on a map.

All of that works. None of it is a product. Is this for the landscaper in the field? The designer at a desk? The homeowner who can't figure out why things keep dying in that corner? Each answer means different decisions about everything else.

So instead of picking prematurely, I've been building labs. Individual pages that each explore one capability — polygon drawing, plant placement, terrain filters, drainage visualization, shadow algorithm comparisons, retaining wall estimation. Seventeen of them so far, across a couple weeks of agent-driven development. Each one answers a question about what's possible. Together they're building the understanding of what the product should be, one experiment at a time.

What I Think This Becomes

The pieces point toward something specific: a property analysis tool embedded in a landscaper's website. Enter an address, see the solar profile, mark planting beds, get validated recommendations, estimate materials. The kind of capability that currently requires expensive survey equipment or years of intuition — made accessible through public data and fast computation.

It's designed to plug into the Blanksy landscaper vertical as an applet. The platform handles auth, billing, tenant isolation. This tool just needs to be the best answer to "what should I plant where, and what will it cost?"

That's the direction. Getting there is the work that's still happening.