← Blog
MILESTONE · 0.6.0 video

LCARS Progress Bar, Data Strip + Full Demo Scene

June 22, 2026 · sigil-video · Sigil-Docs
video lumen theme gpu design 0.6.0

The LCARS theme grows two new widgets: lcars_progress (right-justified fill bar) and lcars_data_strip (N-segment status readout). A capstone demo test combines all primitives into a full LCARS panel scene. GPU-first with Pi 3 software-2D floor on both. LCARS-PROG-PASS + LCARS-DEMO-PASS x86. (sigil-video 64ec1fb, 2264795)

lcars_progress and lcars_data_strip on x86
lcars_progress (75% fill) + lcars_data_strip (4 segments at 100/50/0/75%) — x86 PASS

lcars_progress

Commit 64ec1fb. A right-justified fill bar with a black track. value/max drives fill width; the fill grows from right — unlike conventional progress bars, the bar fills toward the left margin, following the LCARS convention used across all Trek-era displays.

Signature: lcars_progress(x, y, w, h, value, max, color)

GPU path: gpu_submit rect-fill (CAP_ACCEL; Apple Silicon pending). Software-2D floor: fill_span rows via lcars_fill_rect — functional on Pi 3 with no acceleration.


lcars_data_strip

Commit 64ec1fb. N equal-width segments separated by 1px gaps, each an independent progress bar — the classic LCARS system-status readout used for multi-channel monitoring. Each segment takes its own value/max pair from a pointer array, making the strip composable over any N channels without additional API surface.

Signature: lcars_data_strip(x, y, w, h, n, values_ptr, max, color)


Test: lcars_progress + lcars_data_strip

Single bar 75% fill — fill_start=ok fill_end=ok track_black=ok. Data strip n=4 [100, 50, 0, 75]: strip_full=ok strip_half=ok strip_empty=ok. LCARS-PROG-PASS.


lcars_demo capstone

Commit 2264795. 160×120 framebuffer showing the full LCARS panel — panel_header(hh=18, sw=36) + progress bar (80% gold fill) + data-strip (3 segments blue, values 100/66/33). Seven pixel oracles verify the output:

LCARS-DEMO-PASS.

Full LCARS panel demo scene
Full LCARS panel demo scene: header + progress bar + data-strip — LCARS-DEMO-PASS x86

The LCARS API surface

Nine public functions in core/lcars_theme.sg. GPU-first with software-2D floor on all paths.

FunctionDescription
lcars_fill_rectSolid rectangle fill — base primitive
lcars_fill_circleFilled circle (Bresenham spans)
lcars_fill_qcircle_brBottom-right quarter-circle fill (elbow corner)
lcars_hbarHorizontal bar with rounded end caps
lcars_elbowL-shaped elbow connector (header left element)
lcars_panel_headerFull LCARS panel header (elbow + top bar + sidebar)
lcars_labelRight-aligned text label using the 8×16 glyph atlas
lcars_progressRight-justified fill bar with black track
lcars_data_stripN-segment independent progress strip