StoryForge takes a subject, researches it, writes a script, generates narration and visuals, and renders a finished video with a mastered audio track, all without a human touching an editing timeline.
Each documentary lives in its own project folder with its own config, assets, and script. The engine runs every project through the same eight-stage pipeline: trend discovery, research, script generation, asset scraping, narration, composition, render, and mastering.
An environment variable picks between two complete, independently working rendering stacks. Neither was deleted when the other was built; both still run.
Topics are validated and researched against live web sources before a script is written, with a fallback chain if the primary research provider is unavailable.
Selected per run by the STORYFORGE_STACK environment variable. Both stacks' files coexist in the repo; nothing was removed during the migration to v2.
Root.tsx composition, the historical baselineEvery project runs the same sequence. The v2 multi-part render splits long documents into one composition per part, then concatenates with ffmpeg, which fixes a decode-load hang that affected earlier long-form runs.
The default hero-clip provider now generates depth-based parallax motion from a still image, running a depth model and a WebGL2 shader inside a headless browser, entirely on local compute.
The project is mid-way through a visual quality push. A previous paid image-to-video provider was dropped permanently after its account balance was exhausted with no top-up; the replacement free provider is now the shipped default.
A dispatch table lets the asset stage swap image-to-video providers without touching the rest of the pipeline. The free provider is now the default; a second provider exists but is dormant and unverified.
The commit that shipped the free depth-parallax provider landed 509 files at once: a style-lock module fixing the visual language across generated stills, and a claim-grounding gate checking narration against the research digest.
Account balance exhausted mid-run with no further funding; kept in the codebase only as a reference implementation, not an active path.
A second image-to-video provider was built and wired into the dispatch table but left dormant, waiting on an API key before it can run as an alternative to the free depth-parallax default.
Two working rendering stacks, a research-backed script pipeline, and hero motion plus narration that run locally at no per-video cost.
Active developmentEvidence: compiled from the storyforge repository on 2026-08-03. Every number on this page traces to a file path or command output in the source tree. Last updated: 2026-08-03.