Repository navigation
Fix generation quality - #164
Merged
Merged
Conversation
… typefaces embedded in export - scene-kit.css: grey placeholder accents and a neutral #141414 ground instead of violet; font-family var(--mk-font, Inter, system-ui, sans-serif); the drifting stage light (::before/::after) now draws only with data-ambient or on a legacy mk-theme-* stage, so saved projects are unchanged; mk-input border follows the accent instead of a fixed violet-pink gradient - film-fonts.ts: Inter, Plus Jakarta Sans, Space Grotesk, Fraunces, JetBrains Mono, Oswald (OFL, @fontsource-variable, latin wght) declared in every kit film - frame-render: export embeds each bundled face the film names (plus Inter) and inlines brand @font-face files, which an SVG image cannot fetch
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
…litReveal, verify export parity
- presets.ts registers DrawSVGPlugin, Flip, MorphSVGPlugin, MotionPathPlugin and SplitText and exports them, so dynamic-compiler puts them in every timeline's scope
- sharedElementHandoff(timeline, el, { from, to, at, duration, ease }) and splitReveal(timeline, el, { at, by, mask, stagger }); deterministic under end -> start -> middle scrubbing (tests mirror the runtime's seek)
- src/render-kit + scripts/build-render-kit.mjs: the editor's compiler, kit, presets, runtime and export rasterizer as one browser bundle
- scripts/check-export-parity.mjs (npm run export:parity): every primitive previews and exports identically in Chromium (<=0.05% of pixels differ, text anti-aliasing only)
src/render-kit/render-check.ts mounts a film with the editor's compiler, kit, presets and runtime, seeks each scene midpoint and each seam's start, middle and end, and reports objective faults: timeline throws, null registered element, scene missing/empty at its midpoint, blank frame, opacity-only cut, handoff object hidden at a seam end, a stretch over 1.5s without change (text changes count; the final settle gets the editor's 1.8x allowance), text overlap or off-canvas, low contrast (WCAG 4.5:1, 3:1 for large type), timeline length vs declared duration. Frames are rasterized by the export path into a contact sheet (JPEG, 1280px wide, up to eight frames).
measureSlop(film) mounts a film and counts, at scene midpoints and cuts: painted pills, kicker + headline + subtitle stacks, glow blobs and glowing text, and cross-fades (both scenes half-transparent at a cut). Counts for the benchmark, not faults.
Render raw HTML as a stage-only seekable film, synthesize soundtrack audio once for native playback/export, rasterize SVG and canvas output, and add the compact generation effort/progress UI.
PromSereyreaksa
marked this pull request as ready for review
October 14, 2026 19:34
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Generation-quality fixes, the editor side of the backend PR. One step per commit (
step N: ...).Step 3: neutral defaults and typefaces
--mk-font(falling back to Inter), and the drifting stage light is opt-in (data-ambient). Stages on a legacymk-theme-*keep the light, so saved projects look the same.@fontsource-variable: Inter, Plus Jakarta Sans, Space Grotesk, Fraunces, JetBrains Mono, Oswald.@font-facefiles. Before this, only Inter was embedded, so brand fonts fell back to a system face in exported video.