2025-09-16
In the process of replacing Python prototype with C++/Fennel implementation. Prototype has skybox, line, triangle, text (msdf), image, point, mesh and sub-world renderers. UI layout system has measure pass and layout pass. Layout nodes have to be assembled manually, no uniform widget system. Since there is no widget hierarchy, every object stores references to anything it creates, to be able to drop it when it's dropped. Entities (base units of knowledge management in space), stored in sqlite, subclasses of Entity. Each entity class defines view, preview, color, load & dump methods plus custom behavior. Entity superclass tracks type, id, color and changed signal, has base get, create, save, delete methods. Class entities are used for most of the prototype code. Jump to internal entities was problematic due to lacking internal development tools. Currently, 2-way sync between file system based classes and class entities enables working from both external and internal environments. Space graph, called dynamic graph in the prototype, implemented in classes DynamicGraph and DynamicGraphChild. Nodes positioned using force layout, multiple LOD levels and full view added to HUD on selection. Root graph entity (ID 18) is mounted into dynamic graph.

