1
0
mirror of https://github.com/hannobraun/Fornjot synced 2025-04-16 17:18:28 +00:00
Fornjot/experiments/2025-03-18
2025-04-16 12:23:39 +02:00
..
.vscode Start new experiment as copy of previous one 2025-03-18 22:04:32 +01:00
src Prepare to support arcs in sketches 2025-04-16 12:23:39 +02:00
.gitignore Start new experiment as copy of previous one 2025-03-18 22:04:32 +01:00
Cargo.lock Update fj-interop 2025-04-16 10:22:57 +02:00
Cargo.toml Remove more unused dependencies 2025-03-25 20:19:55 +01:00
README.md Start new experiment as copy of previous one 2025-03-18 22:04:32 +01:00
shell.nix Start new experiment as copy of previous one 2025-03-18 22:04:32 +01:00

Fornjot - Experiment 2025-03-18

About

This experiment is packaged as a single application. Run it with cargo run. This should open a window and also create a 3MF file in this directory.

Context

It has become clear, that Fornjot's current architecture is at a local maximum. I also think it is too complicated for what it does, and suspect that a simpler architecture would serve us much better going forward.

While it's certainly not impossible to address this piecemeal, through incremental improvements (which is the approach that I usually prefer), I don't think this is the best course of action.

Because while I don't consider the architecture to be very good, it is still consistent and self-reinforcing. Whenever I try to simplify one aspect, I run into the problem that it's there for a reason; that other aspects of the architecture depend on it being the way it is.

And while I haven't figured out yet, how to break out of this situation, I do have quite a few unproven ideas on how an improved architecture would look like, redesigned from the ground up using the experience I've gained over the last few years.

This experiment is the third in a series meant to prove out those ideas. The results should provide a clearer picture of what is possible, and how the current architecture can be evolved.

Setup

This experiment builds on the second one. There are two objectives:

  • Simplify the Object trait by removing as much functionality as possible. Compensate for the loss of insight into an object's structure by experimenting with other means of providing required debug information.
  • Expand the existing b-rep primitives, adding support for curved surfaces.

Result

The experiment is still ongoing.