Skip to main content

OGraf Studio 0.07

OGraf Studio 0.07 adds a persistent Visual Studio-style docking workspace, the canonical .ogs project format, remote editable-project loading, refined canvas/layer/timeline controls, neutral motion defaults, and GNU AGPL v3.0 licensing. Project documents and certified OGraf playout output remain isolated from editor-only layout state.

OGraf Studio project extension​

  • Changed the canonical editable project extension from .ogeproj to .ogs across browser saves, downloads, file pickers, URL examples, embedded-source discovery, MCP open/save contracts, and reference templates.
  • Kept .ogeproj and .ogeproj.json readable as legacy inputs; every new browser or MCP save now produces/requires .ogs. The .ograf.zip playout-package extension is unchanged.

Dockable panes​

  • Made Layers, Chat, Resources, Inspector, Data, Preview & Export, and Timeline independently dockable around the fixed canvas.
  • Added left/right/top/bottom/float docking hints, live drop previews, tab-stack drops, double-click floating, movable/resizable floating windows, and dock-location controls in floating headers.
  • Added Visual Studio-style edge proximity while moving floating windows: approaching the nearest workspace edge reveals its directional guide and dock preview, and releasing there docks the pane.
  • Strengthened edge detection with pointer and floating-frame proximity, support just outside the workspace so literal corners remain usable, larger labelled guides, and a higher-contrast preview. Additional bottom panes now stack above the existing bottom pane and reduce its height.
  • Added drag-and-drop tab reordering with before/after insertion markers; the same indexed drop can place a pane arriving from another dock group, and the resulting order persists locally.
  • Unified the entire tab body under one pointer gesture so normal tab dragging now always exposes the docking overlay: tab targets reorder, guides/edges dock, and free centre space floats.
  • Added persistent internal split handles between adjacent dock groups, with live pair resizing, orientation-correct cursors, and minimum pane sizes for stacked and side-by-side layouts.
  • Added × actions for docked and floating panes plus a checked Window menu that closes open panes and reopens closed panes in their default region. Intentional closure persists locally and remains distinct from layout-repair recovery.
  • Preserved the former arrangement as the default and persist the validated editor layout locally; docking never changes project documents, undo history, MCP revisions, or exported OGraf output.

Canvas center marker​

  • Added an optional Center marker toggle to Canvas Layout.
  • The editor-only cross stays at the exact composition centre and keeps a stable on-screen size across canvas zoom levels without entering capture, certification, or exported OGraf output.

Layer visibility icon​

  • Replaced the Layers panel's circle glyphs with compact Photoshop-style eye and struck-eye SVG icons while preserving the existing show/hide behavior, tooltips, and accessible labels.

Remote editable-project loading​

  • Added Open URL for editable .ogs source hosted at an absolute HTTP(S) URL.
  • Added credential-free CORS fetch, HTTP(S)-only redirect validation, bounded streaming with a 32 MiB limit, shared local/remote parsing, and explicit confirmation before replacing the current project.
  • Documented public GitHub raw-file repositories as a supported storage model, including immutable commit-SHA URLs and the privacy boundary for embedded project assets/data.

Semantic timeline colours​

  • Replaced layer-ID-hashed random timeline hues with one fixed neutral-gray parent-layer summary colour.
  • Added stable colours for Position X, Position Y, Width, Height, Rotation, Alpha, origins, text stroke, blur, shadow properties, and a deterministic repeating gradient-stop palette.
  • Applied each semantic colour consistently to the property label accent, animation rectangles, key diamonds, loop markers, selection outline, and easing/frame labels across every object/project.
  • Laid out parent-track frame counts and easing names in one constrained metadata row, reserving space for both and truncating long easing names instead of allowing the labels to overlap.

Neutral easing defaults​

  • Changed newly authored generic layer keys, property keys, editor auto-keys, and lifecycle transitions from legacy Quad In/Out to None (Linear).
  • Kept explicit recipe/user/MCP easing authoritative and left legacy migration fallback unchanged, preventing existing projects from acquiring different motion when opened.

Active property tracks​

  • Changed expanded timeline layers to show only value-changing, non-lifecycle-authored, looped, selected, or manually added property tracks instead of every static compatibility track.
  • Added All as a transient full-property projection and + Property to reveal a compatible static property and select/add its key at the current frame.
  • Replaced low-visibility Timeline Group and layer-property disclosure triangles with bold + for collapsed and - for expanded while retaining accessible Expand/Collapse labels.
  • Kept show/hide/reveal state local to the editor; compiled output and portable .ogs semantics remain unchanged until the user actually authors a key.

License​

  • Relicensed the repository and every npm workspace under GNU AGPL v3.0 only (AGPL-3.0-only) with the complete license text in the root LICENSE file.

Validation​

  • Remote-loader tests cover successful credential-free fetch, invalid schemes, HTTP/network/CORS diagnostics, malformed JSON/project shapes, and declared/streamed size-limit failures.
  • npm run verify passes generated-contract/prompt drift, formatting, lint, every workspace typecheck, 363 tests across 75 files, the runtime bundle, and the production editor build.