Files
Miguel Angel Simon Sierra 5725064cc7 perf(studio): fetch each media source once while opening a project
Opening the load fixture fetched every media file 2.38 times (19 requests
over 8 sources) against a 1.2x budget. Nothing was issuing REPEAT requests:
three independent subsystems each fetched every source exactly once.

- The parent-frame media proxies mirror the iframe's timed media so mobile
  can produce audible output when autoplay is blocked. They preloaded at
  adopt time, downloading a second copy of every file for a fallback that is
  gated on parent audio ownership and most sessions never take. They are now
  created unloaded and load when ownership is taken.
- The Studio metadata probe downloaded every source to read a duration the
  preview iframe's own media element reports for free. It now skips sources
  the runtime has promoted to preload, and a duration learned by any clip
  seeds every clip sharing that file — one file backs many clips, and only
  the ones near the playhead get promoted.
- Beat analysis and the waveform decoder each fetched the same track for
  themselves. Both now decode one shared download.

Open drops to 9 requests over 8 sources: 1.13x, under budget.
2026-08-03 22:00:56 -07:00
..
2026-08-02 21:57:19 -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