OGraf Studio 0.09
OGraf Studio 0.09
Released: 2026-08-28
OGraf Studio 0.09 makes dense broadcast-authoring work faster and clearer. It expands Timeline and
layer-order editing, improves project/history reliability, adds a deliberate text-distortion mode,
and aligns the application chrome and configuration panes with the Zero Density/RealityHub visual
system. These editor changes do not alter authored canvas pixels unless the author explicitly uses
the new content properties.
Timeline editing
- Added Ctrl/Cmd additive selection across layer/property timeline rows and same-row Shift ranges.
Dragging or arrow-nudging any selected key moves the complete selection atomically, preserves
spacing, and stops at composition bounds or unselected keys on every affected track. - Set lifecycle, layer, and property key diamonds to 11 px. Loop badges and selection/focus
outlines scale with them without changing frame alignment or Timeline row heights. - Made the divider between Timeline layer/property names and keyframe tracks resizable. Dragging,
keyboard arrows, Home/End, and double-click reset are supported; the width persists locally and
always reserves usable track space. - Made Timeline Group names reliably editable by double-click, with full-name selection, F2 keyboard
access, and event handling that no longer lets the second click retrigger group selection. - Hidden selected-layer outlines and Moveable controls during Timeline playback. Selection is
preserved and its overlay returns immediately when playback pauses or stops. - Upgraded normal Timeline Play to sample every compiled local loop together, including scrolling
tickers and loops that continue while parked at a Step. Removed the redundant top Edit/OGraf
Preview switch and separate main-canvas runtime mode; Preview & Export remains available for
detailed playout actions and certification.
Layer ordering and reliability
- Added an editable Z order field to Properties. It maps directly to canonical layer paint
order, with1at the back and the current layer count at the front; values are rounded and
clamped to the available range. - Added standard Send to Back, Send Backward, Bring Forward, and Bring to Front toolbar actions.
They support multi-selection, retain internal order, and disable at the applicable boundary. - Added Ctrl/Cmd+A and Edit -> Select all layers for selecting the complete active composition
instead of webpage text. Hidden, locked, and guide layers are included; editable fields retain
native Select All behavior. - Browser Undo now reconciles the active composition and keyframe when restoring a snapshot from a
different bridge-synchronized project, preventing stale composition IDs from crashing the editor.
Docking and element authoring
- Changed Window-menu reopening so a closed pane first returns as a centered floating window rather
than docking automatically to its former/default edge. Multiple reopened panes cascade slightly
and remain fully dockable afterward. - Added Squeeze beside the existing text sizing modes. Resizing a squeezed text layer scales
glyph width and height independently to fill the box, enabling intentional condensed, expanded,
tall, or flattened text in the editor, capture path, and exported runtime. - Changed ordinary Rectangle, Ellipse, Text, Image, Path, Image Sequence, and Lottie creation to
alpha 1 at Start, Step, and End so new objects are immediately visible. Recipe motion retains its
explicit hidden entrance and exit states. - Replaced text-only add-element buttons with a consistent icon-only SVG set. Accessible names,
native titles, immediate custom tooltips, and clearer hover/focus feedback remain available.
Zero Density visual system
- Centralized the visual tokens sampled from the live RealityHub interface: Nunito, 14 px/13 px
hierarchy, charcoal surfaces,#dadada/#aaaaaatext,#399ed4active tabs,#60d0fffocus,
teal actions, 1 px separators, and flat 0/2 px geometry. - Bundled OFL-1.1 Nunito 400 Latin, Latin Extended, and Vietnamese subsets locally through
@fontsource/nunito; Studio does not depend on a running RealityHub server or external font CDN. - Applied the shared contract to application/header surfaces, docking tabs/groups/floating panes,
menus, panels, scrollbars, forms, selections, resources, layer rows, and element/timeline toolbars.
Authored graphic typography, canvas pixels, capture, certification, and export remain independent.
Configuration tables and numeric scrubbing
- Reworked Properties into RealityHub-style configuration tables with full-width section bars,
stable 42% label / 58% editor columns, 1 px row/column separators, aligned checkboxes, and
full-row Width/Height/effect/corner/frame-duration controls instead of scattered mini-grids. - Applied the same label/value column contract to Data test values and Preview data overrides while
preserving task-specific list, canvas, chat, resource-tree, and Timeline-track layouts. - Added one editor-wide RealityHub-style controller for every enabled numeric input: hover shows the
usage popup and east/west cursor, horizontal drag changes by the declared field step, Shift uses
10x speed, Alt uses 0.1x speed, and min/max bounds are respected. - Kept normal typing first-class: a sub-threshold click focuses and selects the value, while real
drags publish native bubbling input/change events through existing React/store/history actions.
Validation
npm run verifypasses generated MCP-contract and in-app-prompt drift checks, formatting, lint,
every workspace typecheck, 410 tests across 84 files, the runtime bundle, and the production
editor build.- Regression coverage includes multi-key selection, gutter resizing, z-order commands, Select All,
project-history reconciliation, Squeeze rendering, full-alpha creation defaults, the shared
configuration-grid contract, and numeric modifier/rounding/clamping behavior. - The production editor build continues to emit the documented large-chunk advisory. Headless
render/certify remains intentionally deferred, and real provider smoke testing still requires the
user's configured BYOK credentials.