2.5D UI as ECS entities in your GL scene — widgets, layout, and interaction, no DOM.
Spatial Ui
Dependency Graph
Most engineering software lives with a split personality: a native or DOM-based UI bolted onto a graphics engine. Extropian Spatial UI eliminates that divide by rendering 2D/2.5D UI directly inside the GL context. Widgets — panels, buttons, labels, headers, separators — are ordinary spatial entities living in the same ecs::Registry and ecs::SceneGraph as 3D geometry, CAE models, and data visualizations. There is no separate 2D scene, no DOM, and no document runtime.
Resolution runs as a deterministic dirty-tag pipeline: a font/viewport structural phase, a layout phase where Column/Row/Absolute containers reflow through a pure-math flex engine, then a mesh-generation and interaction phase that uploads meshes and assigns stable pick IDs. The library never touches the GPU — meshes are uploaded through an injected mesh-create function into the Extropian Render graphics context, while hit resolution and event dispatch (hover/click/drag, keyboard focus, scroll, selection) stay in this library.
The system is headless-first and WASM-safe: every stage runs with a null window and an injected mesh callback, verified by a headless doctest suite and scriptable screenshot capture. The widget catalog spans controls, containers, charts and data-viz, and diagram widgets — including widgets authored from an LLM-style JSON schema via the semantic builder.
Core capabilities
Widgets as ordinary ECS entities in one scene graph with 3D geometry
Binary Distribution (Proprietary)Internal Use (Proprietary)
Licensing is negotiated around the software, deployment model, scope, and ownership requirements of each project — whether Extropian Spatial UI is used as-is, customized for your workflows, or embedded in a larger system you are building. I prefer perpetual licenses per major version: one fee licenses the version you chose for as long as you use it, with maintenance updates included within that major version.
Binary Distribution (Proprietary): one-time license to use and distribute the software in binary form, including inside products you sell.
Internal Use (Proprietary): one-time license for ongoing internal use of the software as delivered — no distribution, no recurring fees.