Hanno Braun
@hannobraun.com
I'm working on Fornjot, an early-stage b-rep CAD kernel written in the Rust programming language.
https://github.com/sponsors/hannobraun
https://github.com/sponsors/hannobraun
And here's the surface, shown as its full triangle mesh. Not sure how well that comes through in the picture, but when moving the camera it's obvious that the surface is completely flat. This is a degenerate case of a cylinder surface.
October 8, 2025 at 11:48 AM
And here's the surface, shown as its full triangle mesh. Not sure how well that comes through in the picture, but when moving the camera it's obvious that the surface is completely flat. This is a degenerate case of a cylinder surface.
I'm getting closer to solving the problem, I think. This shows both the face and the surface its on (shown as a wireframe of its triangle mesh).
October 8, 2025 at 11:48 AM
I'm getting closer to solving the problem, I think. This shows both the face and the surface its on (shown as a wireframe of its triangle mesh).
This is the problem I'm currently working on. On the left, we have a curved face, displayed in 3D. Perfectly reasonable! On the right, there's the same face, but projected into its surface.
October 7, 2025 at 11:53 AM
This is the problem I'm currently working on. On the left, we have a curved face, displayed in 3D. Perfectly reasonable! On the right, there's the same face, but projected into its surface.
Just finished adding labels for each vertex when displaying a face before it has been triangulated. This should be quite helpful for debugging!
October 6, 2025 at 10:56 AM
Just finished adding labels for each vertex when displaying a face before it has been triangulated. This should be quite helpful for debugging!
This is the current symptom I'm dealing with. The half-edges of this face shouldn't intersect, and there should be no gap between start and end. No idea what's going on, still.
August 20, 2025 at 8:08 AM
This is the current symptom I'm dealing with. The half-edges of this face shouldn't intersect, and there should be no gap between start and end. No idea what's going on, still.
So while I keep working on having some more exciting news at some point, in the meantime, here's a picture of my latest problem. It's debug output from a face that's about to get converted into triangles, and there definitely aren't supposed to be any intersecting lines there.
August 12, 2025 at 10:58 AM
So while I keep working on having some more exciting news at some point, in the meantime, here's a picture of my latest problem. It's debug output from a face that's about to get converted into triangles, and there definitely aren't supposed to be any intersecting lines there.
My art collection of buggy faces. No idea yet what exactly is going wrong here 😂
May 20, 2025 at 11:23 AM
My art collection of buggy faces. No idea yet what exactly is going wrong here 😂
Fornjot's debug viewer can now display faces before they are triangulated!
May 16, 2025 at 10:55 AM
Fornjot's debug viewer can now display faces before they are triangulated!
So now the latest experiment supports arcs. Which puts it roughly at parity with the mainline code in regards to what kind of geometry can be supported! Lots more to do, but things are coming along nicely.
April 17, 2025 at 1:00 PM
So now the latest experiment supports arcs. Which puts it roughly at parity with the mainline code in regards to what kind of geometry can be supported! Lots more to do, but things are coming along nicely.
Now that is much better!
April 17, 2025 at 12:52 PM
Now that is much better!
This is not what I expected to see when adding support for arcs 😂
April 17, 2025 at 12:34 PM
This is not what I expected to see when adding support for arcs 😂
The new, simplified approach to debugging models is working great! You can now display any intermediate state graphically. It's basically `println!`, but for triangle meshes.
March 28, 2025 at 7:17 PM
The new, simplified approach to debugging models is working great! You can now display any intermediate state graphically. It's basically `println!`, but for triangle meshes.
Making progress on the latest experiment. It does now support faces with holes:
February 21, 2025 at 9:07 PM
Making progress on the latest experiment. It does now support faces with holes:
I'm running out of time now and won't be able to finish today. But it's already getting complicated, and I'm not sure I'm doing it right.
January 8, 2025 at 9:49 PM
I'm running out of time now and won't be able to finish today. But it's already getting complicated, and I'm not sure I'm doing it right.
I'm still fiddling with my interactive prototype. Supporting nested operations now!
December 12, 2024 at 10:35 PM
I'm still fiddling with my interactive prototype. Supporting nested operations now!
I've been experimenting over the last few weeks! This video is from a prototype where I'm exploring a re-imagined Fornjot based on an interactive core.
November 25, 2024 at 7:29 PM
I've been experimenting over the last few weeks! This video is from a prototype where I'm exploring a re-imagined Fornjot based on an interactive core.