You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I'm a maintainer of OpenMAIC, an open-source project that generates interactive AI "classrooms" — a lesson is authored as structured data (slide DSL, scenes, timed teacher actions like narration / spotlight / laser / embedded video, plus generated media and TTS audio) and played back in the browser.
A frequently requested feature is exporting a generated classroom as a narrated video (eventually with subtitles). After evaluating options, we've decided to build this on Hyperframes as the rendering backend rather than growing a custom static-frame + FFmpeg pipeline. Your HTML/CSS/media + seekable-animation → MP4 model with deterministic headless-Chrome frame capture fits us well: we keep OpenMAIC classroom data as the single source of truth and add a compiler that emits a Hyperframes composition (an intermediate VideoTimeline IR → HTML + paused GSAP timelines + a self-contained asset ZIP), then render out-of-app via the producer.
I ran a small end-to-end spike (PNG base + a GSAP-driven SVG spotlight mask + dual audio tracks) and it rendered cleanly to MP4 — doctor / lint / validate all green on Node 22, and the paused window.__timelines + frame-seek contract worked exactly as documented. Really nice tool. 🙏
Our full design and phased plan live in this issue, which should be self-explanatory: THU-MAIC/OpenMAIC#854
I'd value your perspective on a few points:
Pre-1.0 stability — we plan to pin a version and isolate API churn behind our IR/emitter. Anything on the roadmap (especially the frame-adapter API, which is marked experimental) we should design around?
Determinism — we enforce no network and no Date.now / Math.random at render time, and vendor GSAP locally. Any other determinism footguns for frame-seek fidelity we should be aware of?
Producer as a service — we'd like to run the producer's HTTP server (POST /render + SSE) in an isolated Node 22 container for in-app one-click export. Is that a supported/recommended deployment shape, and any guidance on concurrency / resource sizing?
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
-
Hi Hyperframes team 👋
I'm a maintainer of OpenMAIC, an open-source project that generates interactive AI "classrooms" — a lesson is authored as structured data (slide DSL, scenes, timed teacher actions like narration / spotlight / laser / embedded video, plus generated media and TTS audio) and played back in the browser.
A frequently requested feature is exporting a generated classroom as a narrated video (eventually with subtitles). After evaluating options, we've decided to build this on Hyperframes as the rendering backend rather than growing a custom static-frame + FFmpeg pipeline. Your HTML/CSS/media + seekable-animation → MP4 model with deterministic headless-Chrome frame capture fits us well: we keep OpenMAIC classroom data as the single source of truth and add a compiler that emits a Hyperframes composition (an intermediate
VideoTimelineIR → HTML + paused GSAP timelines + a self-contained asset ZIP), then render out-of-app via the producer.I ran a small end-to-end spike (PNG base + a GSAP-driven SVG spotlight mask + dual audio tracks) and it rendered cleanly to MP4 —
doctor/lint/validateall green on Node 22, and the pausedwindow.__timelines+ frame-seek contract worked exactly as documented. Really nice tool. 🙏Our full design and phased plan live in this issue, which should be self-explanatory: THU-MAIC/OpenMAIC#854
I'd value your perspective on a few points:
Date.now/Math.randomat render time, and vendor GSAP locally. Any other determinism footguns for frame-seek fidelity we should be aware of?Thanks for building and open-sourcing Hyperframes — happy to share back anything useful we learn from the integration.
Beta Was this translation helpful? Give feedback.
All reactions