N oodle
Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Back to homepage

Geometer

A “geometer” is a program that takes doodles and maps them into geometric space.

The geometer concept goes back to the origins of noodle and is probably the fundamental concept of noodle. I would say the “doodle” is the central concept, but geometer is the fundamental concept.

Putting geometry behind noodle structure is useful for many reasons. You need a function to map noodle structure into 1-dimensional space to store it in memory, RAM or storage. AKA serialization. You can think of the filesystem as a kind of serialization. It’s also useful to reduce cache misses at runtime if you find a way to put doodles that are near eachother in the mux graph to be near eachother in memory. You need a way to project noodle structure into 2-dimensional space to display it on a screen.

I want to be able to change “the way I look at” my noodle structure. It’s tied to the whole concept of layers and multiplicity of perspectives or associations.

So I really want to add a way for noodle UI to intepret an externally defined geometer to organize doodles visually. If down the line someone were to decide to make a 3D app based on noodle structure it would be interesting to have a 3D-geometer for instance. Or maybe if someone is working a lot with fbx files or CAD etc. A clever 2D geometer could be used to organize hand-written notes. Different note components (svg files) could be translated and resized in intelligent ways. Imagine an entire dynamic UI or window manager based on 2D noodle geometers. But backed by explicitly defined associations in noodle structure.

Geometers can be discrete or continuous. You can think of a sorting algorithm as a 1D discrete geometer. So at least for the CLI, I’d like to be able to change the order of the display doodles based on an externally defined geometer mapping. I also want a dynamic “base geometer” to continuously be trying to improve the 1D ordering of doodles. This will be the only predefined geometer built into the noodle core. I want to use it to design a dynamic data structure that will replace std::unordered_map in the mux graph. I want rebase and other restructuring or automatic structuring commands to make use of this optimization as well. Another benefit to having a “canonical” ordering of the knowledge base is git-friendliness in the connectome. Consistent ordering means small changes have a small impact.

To me, geometer is peak noodle.