Files
ukimsanov f11cf23112 feat(studio): pure timeline drag math — collision, snapping, multi-drag preview
What: three new pure modules with their test suites: timelineCollision
(zone-aware placement — clampTrackToZone, resolveInsertRow, resolvePlacement,
lane/overlap predicates), timelineSnapping (snap-target collection and
pixel-threshold time snapping), and timelineMultiDragPreview (group-drag
passenger offsets and clamped group deltas).

Why: this is the math core of the NLE clip-drag engine. It has no DOM, no
React, and no store writes, so it is reviewable as plain functions before
the integration PR wires it into the drag gesture.

How: new files only; imports are limited to types from the existing
playerStore. Nothing on main imports these yet — the integration PR
(studio-dnd/pr05) becomes the first runtime consumer.

Test plan: bunx vitest run on the three test files; tsc --noEmit in
packages/studio; fallow audit --base origin/main clean (every export is
consumed by the same-PR tests).
2026-07-10 15:16:07 -07:00
..
2026-07-10 09:57:48 -07:00
2026-03-21 22:43:56 -07:00

@hyperframes/studio

Browser-based composition editor UI for Hyperframes. Provides a visual timeline, code editor, and live preview for building video compositions.

Install

npm install @hyperframes/studio

What it does

The studio is a React application with:

  • Visual timeline — drag, resize, and arrange elements on tracks
  • Code editor — edit HTML and GSAP scripts with CodeMirror (syntax highlighting, autocomplete)
  • Live preview — see changes in real time as you edit
  • Composition inspector — view and modify element properties

Development

The studio is embedded in the hyperframes preview command. To develop the studio UI itself:

cd packages/studio
bun run dev        # Start Vite dev server
bun run build      # Build for production
bun run typecheck  # Type-check

Tech stack

  • React 18/19, Zustand (state management)
  • CodeMirror 6 (editor)
  • Tailwind CSS (styling)
  • Vite (bundler)
  • Phosphor Icons

Documentation

Full documentation: hyperframes.heygen.com/packages/studio