There is one file at the center of everything we make. Every custom cleat, every FitSock, every sole we have ever printed started life inside a single Grasshopper definition that takes a 3D scan of your feet and turns it into printable shoe geometry. We recently did something we had never done before: we mined the complete file history, every saved version back to 2017, and rendered the whole thing as an animation. This post is what we found in there. Some of it surprised even me, and I wrote the file.
Seventeen real versions of the algorithm, 2017 to 2026. Nothing here is an artist's impression: every block is a real component at its real position, matched save-to-save by its internal ID.
What ten thousand hours actually looks like
People like to ask founders if they have put in their ten thousand hours. I never had a real answer, so we computed one. The file history says I have opened Grasshopper on 2,356 different days since 2014, and saved 3,088 versions of my own definitions. The master shoe algorithm alone has 2,194 saved versions. Depending on how conservatively you count the hours between first and last save each day, the total lands somewhere between eight and thirteen thousand hours, with the honest middle estimate crossing ten thousand sometime in spring 2025.
The metadata also knows my schedule better than I do. Peak save activity is 11am. There is a second shift from 9pm to 11pm that I would have denied existed, and 28 saves stamped after midnight that I cannot deny because timestamps do not negotiate. A quarter of all saves happened on weekends.
Five generations, four funerals
The algorithm has been rebuilt from scratch more than once. The file names tell the story: BF Shoe Generator (2017), B Shoe Generator (2018 to 2021), BioShoeGenerator (2021), Last&ShoeGenerator (2021 to 2026), and the current 3DMasterFile. Five generations. Each one started because the previous one taught me enough to deserve a restart.
Here is the part that stopped me cold. Grasshopper gives every component a permanent internal ID, so you can check exactly which pieces of an old version survive in the current one. For everything before September 2021, the answer is zero. Not "a few utilities made it." Zero. In August 2021 the previous generation had 11,786 components, the product of four years of work, and one month later the new file shared none of them. I deleted four years of components and kept only what those years had taught me. It reads brutal in the data, and it was the single best decision in the file's history.
The 948 survivors
The current master has 23,691 components connected by 30,878 wires. Of those components, 948 date back to the very first weeks of the 2021 rewrite. They are the founding cohort: the core logic that has survived every revision since, five years of daily production, and thousands of customer feet. Around them, the file keeps turning over. Roughly a third of today's components were born in 2023, and 3,556 arrived in just the last few weeks as we build the next generation, which is already leaner: the file peaked at 33,100 components in March 2026 and the current master runs 28 percent lighter. Growth was the easy part. Learning to delete took nine years.
Confessions from the file metadata
A few things the metadata volunteered that I would not have:
- The busiest day was July 13, 2024: 151 saves. One save every few minutes for an entire day. I do not remember what broke, but clearly I did not trust it to stay fixed.
- The longest streak is 25 consecutive days of saving the file, ending mid-October 2022. Including weekends, obviously, see above.
- There are 1,465 Scribble notes on the canvas. Scribbles are Grasshopper's sticky notes. The algorithm is roughly one part geometry to one part me leaving messages for future me, and future me is grateful for every one.
- There are only 2 sliders in the whole file. A typical Grasshopper definition is covered in manual sliders. Ours has 3,792 number components and 338 embedded Python scripts instead, because a value you drag by hand is a value the algorithm cannot set from your foot scan. The whole point is that your biometrics turn the dials, not me.
- Dropbox recorded 6 "conflicted copy" collisions: moments where two computers both thought they were the one working on the master file. Growing pains of a company slightly outgrowing one laptop.
Why this file will never be finished
An algorithm that generates shoes from scans has one enormous advantage over a factory mold: it can learn. When an athlete tells us their toe box needed another half millimeter, that lesson does not go into a filing cabinet, it goes into the file, and every shoe generated after that day benefits. The 2,194 saves are, in a very literal sense, a record of everything our customers' feet have taught us. That is also why we are honest that generated does not mean infallible: feet are hard, scans have limits, and the fit feedback we collect from every order is what keeps the curve bending in the right direction.
If you want the shorter, prettier version of this story, it now lives on our technology page. If you want to see what the file does with your own two feet, that part is easy.
Cheers,
Oliver
Founder
Prevolve Footwear

