The desktop application shell for Extropian — SDL3 windows, OpenGL context, input, and main loop.
Dependency Graph
Every desktop application starts with a window and an event loop. Extropian App is the desktop platform library of the ecosystem: it creates an SDL3 window with an OpenGL 4.6 core profile context, polls input events, and exposes them through the abstract core::WindowState interface defined in extropian-core — so downstream systems (like the renderer) never touch SDL3 directly.
The framework is intentionally minimal: a Window class wraps the SDL3 window and GL context, an EventState captures a per-frame snapshot of keyboard, mouse, scroll, and gamepad input, and an Application base class provides an on_startup / on_update / on_shutdown lifecycle around the main loop. It depends only on extropian-core; it deliberately excludes rendering, audio, and AI orchestration, which live in other Extropian libraries.
Currently Linux-focused, with SDL3 providing the cross-platform abstraction for Windows, macOS, and mobile.
Core capabilities
SDL3 window creation with an OpenGL 4.6 core profile context
Per-frame keyboard, mouse, scroll, and gamepad input snapshots
FPS vs UI input modes with normal/hidden/captured cursor control
Minimal Application lifecycle (on_startup/on_update/on_shutdown) around a main loop
Implements core::WindowState so the renderer stays SDL-free
Technical foundation
SDL3 for windowing, GL context, input, and gamepad
OpenGL 4.6 core profile
extropian-core for the WindowState interface, math types, clock, and logging
Source Available (PolyForm Shield)Binary Distribution (Proprietary)Internal Use (Proprietary)
Licensing is negotiated around the software, deployment model, scope, and ownership requirements of each project — whether Extropian App 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.
Source Available (PolyForm Shield): view and build from the source under terms that prevent offering it as a competing product or service — no license fees or royalties.
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.