--- id: PLN-0065 ticket: prometeu-hub-ui-direction title: Pixel Operator Font Integration status: done created: 2026-05-15 ref_decisions: [DEC-0028] tags: [hub, ui, shell, system-apps, lifecycle, design-system] --- ## Briefing Integrate the already-available Pixel Operator font asset into the first Hub UI slice when the existing rendering path can support it without creating a new public font system. Source decision: `DEC-0028`. ## Objective Use pixel-style typography for the Hub/Home and fake Shell app labels while keeping font work scoped to the initial UI slice. ## Dependencies - `DEC-0028` must remain accepted. - `PLN-0064` can proceed without this plan if font integration exposes unrelated architecture work. - The asset is expected to exist already under `assets/pixel_operator` or from `assets/pixel_operator.zip`. ## Scope - Locate and verify the extracted Pixel Operator asset. - Determine the current text rendering path available to Hub/System UI. - Add a local font binding or asset loading path if one already fits the runtime. - Use the font for Hub button labels and simple Shell app text. - Document any reason this must be deferred. ## Non-Goals - No general font manager unless one already exists and only needs registration. - No text layout engine. - No multilingual shaping. - No public asset/font spec change unless implementation requires a durable contract. - No dependency download. ## Execution Method 1. Verify the asset. - What changes: confirm exact files and format under `assets/pixel_operator`. - How: inspect asset directory and identify usable font/bitmap files. - Files: `assets/pixel_operator*`. 2. Inspect current text rendering. - What changes: determine whether Hub can draw text through existing HAL/GFX primitives or asset-backed glyph rendering. - How: search current text/glyph/font rendering APIs and examples. - Files: `crates/console/prometeu-hal`, `crates/console/prometeu-system`, current asset/glyph code. 3. Add the narrowest local integration. - What changes: make Hub text use Pixel Operator if the path is straightforward. - How: register/load the asset in the same style as existing assets; keep code local to Hub UI if there is no general font contract. - Files: Hub module and asset-loading modules identified in step 2. 4. Add fallback behavior. - What changes: if font rendering is not currently suitable, keep the visual slice working with existing text/primitive rendering and record a follow-up. - How: do not block `PLN-0064` on broad font architecture. - Files: Hub module and this plan's execution notes. 5. Validate typography use. - What changes: button labels and simple Shell app labels render legibly in 270p. - How: manual visual verification plus any available render tests. - Files: Hub render path. ## Acceptance Criteria - [x] Pixel Operator asset location and format are verified. - [x] Hub text rendering uses Pixel Operator when the existing rendering path supports it. - [x] If deferred, the reason is recorded and `PLN-0064` remains executable. - [x] No broad font/text toolkit is introduced. - [x] Text remains legible at 270p. ## Tests - Compile tests for any asset/font binding. - Unit tests only if new parsing/registration logic is added. - Manual visual verification of button labels and Shell labels. ## Affected Artifacts - `assets/pixel_operator*` - `crates/console/prometeu-system/src/programs/prometeu_hub/` - Existing HAL/GFX/asset modules if they already host font or glyph rendering ## Execution Notes The asset is present under `assets/pixel-operator/` as TrueType files, including: - `PixelOperator.ttf` - `PixelOperator8.ttf` - `PixelOperatorMono.ttf` - `PixelOperatorMono8.ttf` The included license is CC0 1.0 Universal. The current runtime text path does not have a TTF loader, font manager, glyph rasterizer, or asset-backed font registration path. Hub/System UI currently reaches text through `GfxBridge::draw_text`, backed by the built-in 3x5 bitmap glyph path in `crates/console/prometeu-drivers/src/gfx.rs`. Because `DEC-0028` explicitly forbids expanding this wave into a broad toolkit and this plan forbids introducing a general font manager/text engine, Pixel Operator rendering is deferred. `PLN-0064` remains executable and tested with the existing bitmap text path, which is already pixel-style and legible at 270p.