Realm
Oa Plot module interface with data layers and analysis views

Ui and Plot

Model diagnostics and retained interfaces on one GPU canvas.

One canvas from model state to presentation.

OA Plot dark model diagnostics gallery

Retained figures

Ordered artists become one reusable figure for live presentation or deterministic output.

OA Plot light model diagnostics gallery

Theme parity

Dark and light themes preserve the same composition, measurements, and artist contract.

OA Plot training and evaluation diagnostics

Model diagnostics

Training curves, heatmaps, histograms, and image grids stay inside the OA data path.

OA Plot projected scalar-field wireframes

Projected fields

Scalar fields and wireframes lower through the same compact Vulkan compositor.

Compose once. Present anywhere.

Ui is the retained command layer over Renderer. Viewer presents images and video interactively; Plot builds composable figures for training, evaluation, diagnostics, and image grids. The same scene can render live, become a semantic Image, or save headlessly through one engine-owned Vulkan compositor.

01

Compose

Record semantic artists into a small retained Figure without exposing rendering machinery.
02

Render

Lower text, grids, heatmaps, images, and vector geometry through the GPU compositor.
03

Present

Reuse the same Figure in Viewer, return a semantic Image, or write a deterministic PNG.
04

Regenerate

Change an artist, rerun the source tutorial, and verify the resulting presentation artifact.

One figure. Two language surfaces.

The private OA development tree now presents matching Rust and Python Figure APIs. These are development previews; public qualification and release are still ahead.

1use oa::{Engine, plot};
2
3let engine = Engine::new()?;
4let loss = [1.0, 0.7, 0.4, 0.2];
5let mut figure = plot::Figure::new(plot::FigureConfig {
6 title: "Training".into(),
7 ..Default::default()
8});
9let axes = figure.ax(0, 0);
10axes.title("Cross entropy");
11axes.x_label("optimizer step");
12axes.y_label("loss");
13axes.plot(&loss, plot::LineStyle::default());
14figure.show(&engine)?;

A tiny renderer foundation, already useful for real model work.

Figures, viewers, images, text, and diagnostics share one retained presentation contract. The surface stays small enough to reason about while supporting live and headless model workflows.

01

Retained figures

Compose one Figure from ordered artists, then replay it through a live Viewer or a terminal image sink.
02

Model diagnostics

Line, scatter, bar, histogram, heatmap, labels, legends, and explicit limits cover OA training and evaluation.
03

GPU compositor

Plots lower through the same Vulkan Ui compositor as images, text, grids, overlays, and Viewer controls.
04

Dark and light

Realm dark is the default; Realm light is an explicit peer with the same layout and artist contract.
05

Rust and Python previews

The private development tree now carries matching Figure, Axes, and Viewer surfaces while public release qualification continues.
06

Live or headless

Show the retained Figure in Viewer, save a PNG, or render a semantic Image for another OA pipeline.

One library. Across the stack.

Follow the same Engine, values, and explicit execution contract into another module.