At some point a prototype stops being interesting just because it exists.
That was the phase I hit in late spring 2025. I had enough geometry, enough molds, and enough poured objects to know the idea was real. What I did not have yet was a workflow that could survive iteration cleanly, or a product shape that felt settled enough to build around.
This is where repeatability became the shared obsession on both sides of the project.
In code, that meant memoization, staged operations, and trying to keep notebooks from turning into an expensive soup of reruns. In fabrication, it meant process logs, batch math, mold numbering, and trying to produce candles that were not each their own weird little diplomatic incident.
By early May 2025, wax-cam already had a lot going on:
That is enough complexity that iteration starts hurting.
I left myself a pretty revealing note on 2025-05-06:
Added mesh memoization based on a dict hash, returns filename of stl Lots of stl pollution
That is the whole phase in miniature.
The workflow was becoming powerful, but also messy. More capability meant more derived artifacts, more chances to rerun expensive steps, and more ambiguity about which output actually represented the current truth.
There were really two repeatability problems happening at once.
I needed to avoid recomputing heavy geometry steps every time I changed something adjacent.
I needed to avoid reinventing the candle process every time I poured a new batch.
These are not identical problems, but they rhyme hard.
In both cases I was trying to answer:
On the software side, the repo history is pretty explicit.
Key commits include:
b778c4a (2025-05-04 11:23 -07:00) — Tracking memoize_mesh function1c8547a (2025-05-04 11:27 -07:00) — ui_memoize_meshd1e0421 (2025-05-06 11:37 -07:00) — Adding memoization based on hashes of previous data404af0a / 556ecae / 832888f / 1e93b54 in 2026 around Operations.py and disk cachingThe notes also preserve the mental model pretty cleanly:
Each cell is either a decision or an operation
That line rules.
It is a very practical way to think about notebook work. A decision changes intent. An operation transforms data. If those get smeared together, it becomes hard to know what should be recomputed and what should just be reused.
On the physical side, I was doing something similar whether I realized it or not:
That is not just journaling. It is process control, or at least the scrappy home-gamer version of process control.
This phase is also where the actual object kept getting negotiated.
The mountain shape alone was not enough. I kept having to tune:
Some of the strongest signs are in the repo and notes around text work:
dec9966 (2025-05-07 18:22 -07:00) — pyhershey-based text layout0fc719a (2025-05-10 21:39 -07:00) — TallText on Mt Hood96bff9d / 35eb36c / d477c93 in June 2025 — rounded plate, faster truncone, multiline handling, alignment fixes2025-06-12: “made letters real goodly”That is not a side quest. It is the object getting taught how to present itself.
A few important things happened here.
Instead of one-off notebook cells doing random heavy work, the project started acquiring reusable operations and cacheable stages.
Text, plate, prominence, and variant choices made the candles read more like deliberate products and less like raw terrain studies.
With mold logs tied to wax-cam revisions and pour logs tied to mold versions, the project got much better at answering “what produced this?”
This is one of my favorite things about the evidence. The same impulse shows up everywhere:
I do not think this phase yields a perfectly stable product. That would be too neat.
What it does yield is a much more serious system for iteration.
By mid-2025, I had:
That is enough structure to support real product development instead of isolated experiments.
This phase absolutely adds complexity.
The cleaner I tried to make iteration, the more internal tooling and bookkeeping I had to carry.
That is always the trade:
For a toy project, that can be overkill. For a project trying to move from prototypes toward production, I think it was necessary.
This phase is what made the market push possible.
Without it, I do not think I could have gotten to:
It still was not smooth. But it was real enough to leave the shop.
And that created the next problem.
Once the project was coherent enough to show other people, it had to become legible to them too.
That meant branding, info sheets, website work, booth planning, product copy, and then the much more interesting question:
would any of this actually land in the market I had in mind?