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
.ogeprojto.ogsacross browser saves, downloads, file pickers, URL examples, embedded-source discovery, MCP open/save contracts, and reference templates. - Kept
.ogeprojand.ogeproj.jsonreadable as legacy inputs; every new browser or MCP save now produces/requires.ogs. The.ograf.zipplayout-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
.ogssource 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
.ogssemantics 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 rootLICENSEfile.
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 verifypasses generated-contract/prompt drift, formatting, lint, every workspace typecheck, 363 tests across 75 files, the runtime bundle, and the production editor build.