Extropian Spatial UI

Type:UI/UX library
Categories:Engineering UIVisualization & Interaction
Status:in-development

2.5D UI as ECS entities in your GL scene — widgets, layout, and interaction, no DOM.

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
  • Deterministic dirty-driven pipeline: size, flex layout, mesh, interaction
  • Pure-math layout — Column/Row/Absolute plus a built-in flex engine
  • Rich widget catalog: controls, containers, charts, diagrams, and LLM-authored JSON schema
  • Headless-first and WASM-safe: null-window tests, injected mesh creation, screenshot capture

Technical foundation

  • Pure ECS + SceneGraph from extropian-core, text and meshes from extropian-geometry, GL rendering via extropian-render, window/input from extropian-app
  • FreeType SDF glyph atlas and HarfBuzz-driven text pipeline
  • CPU-side mesh generation only — no GPU, DOM, or document runtime in the library

Ecosystem connections

Licensing & customization

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.

Start a conversation

Tell me about your workflow and deployment — I respond within 24 hours.