Fornjot

2020 - 2026
dead europe
hanno braun spent almost six years alone on a boundary-representation cad kernel, funded by github sponsors who mostly gave him eight dollars a month. forty-five releases and never a 1.0. he quit on 19 june 2026 and posted a list of his own mistakes instead of a thank-you note, naming the biggest one himself: twice, when his sponsorship income collapsed, he had two reasonable options and took neither.

~ the obituary ~

On 19 June 2026 Hanno Braun posted a piece titled Shutting Down Fornjot and opened it with eleven words: "Fornjot is ending; unfinished, incomplete." The GitHub repository took its last commit the same day at 19:36 UTC and was archived. The website is still up and announces it in a highlighted box above the navigation, on every page: Fornjot has shut down, and this website is archived. The About page is blunter: "The project is now over, and its goals were not reached."

Fornjot was a CAD kernel. A kernel is the geometry engine underneath a CAD program rather than the program itself, the part that knows what happens when you cut a hole through a solid and something has to work out what the remaining surfaces are. It used boundary representation, which describes a shape by its faces and edges rather than by filling a grid with material, and it was written in Rust. The ambition on the README was to be a foundation other people built on. One person wrote it.

The first commit landed on 30 July 2020. Braun got serious in early 2022: a website, a release cadence, issues and pull requests instead of pushing straight to main, and a GitHub Sponsors page. A Hacker News submission on 28 March 2022, titled "Fornjot, The world needs another CAD program", took 182 points and 137 comments. Version 0.5.0 had shipped two months earlier. Forty-four more versions followed it.

Then it slowed. The weekly release posts stopped on 8 May 2023 with one called "The Last One". Version 0.49.0 went out on 21 March 2024 and nothing came after it, so the project spent its final twenty-seven months with no release at all while the monthly sponsor updates kept going. When the end did come, three separate Hacker News submissions over 19, 20 and 21 June collected 5, 6 and 7 points between them. The announcement had been worth 182. The funeral was worth eighteen.

~ the case file ~

Born30 July 2020, first commit, Michelstadt in the German Odenwald
Peak2,552 GitHub stars and 56 contributors, highest version ever shipped 0.49.0
Killed19 June 2026
Lifespan5 years, 10 months
Made byHanno Braun, independent developer, working alone
Killed bysix years of sponsorship against an estimated two to three more years of foundation work

~ what a kernel is for ~

Braun's earlier CAD experiments used signed distance fields, where a shape is a function telling you how far any point sits from the surface, and that approach is forgiving. Boundary representation is the opposite: every surface is stored explicitly along with every curve where two of them meet, and each operation has to keep that whole description consistent. He switched to b-rep because the early results looked promising, then expected the rest to keep arriving at that rate. It did not. In his words he ran into a cliff, and spent years discovering in different ways why these things are considered hard.

The original plan had been a code-first CAD application with its own kernel inside it. In 2023 he cut the application and kept the kernel, and he came to think that was a mistake, because cutting it removed the only thing that had been telling him what to build. An application can be focused around users who want particular things; a kernel has every possible use case to consider. He then spent more than a year prototyping architectures rather than shipping one.

~ the sponsor who did not renew ~

The money arrived from GitHub Sponsors in amounts starting at two dollars a month, most of it at eight or above. Some months into 2022 the total crossed into being enough to live on, and it did so because of one unusually generous sponsor. That sponsor did not renew in 2023, and a similar drop happened again in 2024. Both times the remaining sponsors eventually closed the gap, and both times there was a stretch of months in between where the income looked finished.

Braun's verdict on those two gaps is the harshest thing in the post: each time he had two reasonable options, full commitment or quitting on the spot, and he did neither. The first drop broke the spell. After the second he made Fornjot a side project and his life's work became something else.

Boundary representation is not my field. I do computer vision on hardware that flies, and the closest I get to a solid model is somebody else's STEP file turning up as an input. What reads without translation is the paragraph about serializing his efforts: one project at a time until a good pause point, then switch. Anyone holding a day job and a thing they care about more has run that scheduler. His account is that it worked right up to the week Fornjot came around again, and that the view from there is what ended it.

~ the mistakes he listed ~

The post carries a section headed "Mistakes I Made" with five subsections under it: extrapolating from early success, seeking sponsorship too early, sticking to incremental improvements, responding to crisis with half-measures, allowing his vision to become muddled. Under the sponsorship one he writes that instead of selling a product he had sold a dream, and that it gnawed at him for years afterward. He also corrects himself in a parenthesis: the private note to his sponsors days earlier had said five years, and then he checked the repository and found the first commit was July 2020.

~ the archived readme ~

The README opens with a banner saying the project has been shut down and its goals were never reached, and that the rest has been left as it was, for posterity. Past the banner the old text is intact, including the phrase "the project's (so far unrealized) goal", which he had written while it was still alive. The website's archive notice points visitors at next.BREP.io, a Rust b-rep kernel under active development by a different author, which answers 200 today. GitHub lists forty-five releases, and the highest version number the thing ever carried was 0.49.0.

~ leave a rose ~

an anonymous tribute. one rose per visitor per day.

@}-->-- ... roses left here

~ leave a wreath ~

a rose fades by morning. a wreath stays on this grave for good, with your name on it.

from $1, paid once through stripe. it keeps the graveyard running: the hosting and the nightly digging. adopt it and the headstone reads "maintained in memory by" you. the groundskeeper plants new wreaths at the next tending, usually within a day.

» one email a week: new graves and the anniversaries of the dead. subscribe

~ leave a note ~

visitors before you have left these graveside notes. anonymous welcome.

other software: DreamLab, Prezi Classic, Theano, NetMeeting

also died in the 2020s: Hispachan, Stripperweb, DreamLab

« previous  ·  random  ·  next »