Generator Bajek
Powered by the Portable Animator engine
Portable Animator is a lightweight animation and scene-synthesis engine. Generator Bajek is its flagship, finished application that puts these capabilities into practice.
Local-first workflow that supports full offline execution, with optional high-res cloud render. By default, story text is generated through AWS Bedrock and images through Azure, each falling back to the local pipeline automatically when the cloud is unavailable. Speech recognition, speech synthesis and video assembly always run on your own machine.
User Interface
The screenshots below come from the running desktop application.
Interactive Demo — Skeletal Playback
This is an illustrative demo, not the production pipeline.
A 2D canvas renders a scene graph: a JSON document describes a
2D character skeleton (root, hips, torso, neck, head, arms, legs) where
every bone inherits its parent's transform. Two keyframe clips
(Idle and Run cycle) are interpolated with a
Catmull–Rom spline inside a requestAnimationFrame
loop. It is fully deterministic: the same scrubber position always gives
the same pose. Nothing here generates images or speech, and no model is
called — the skeleton and keyframes are illustrative sample data,
not an export from a real project. TTS and video assembly run locally
in the desktop application; image generation runs there too, but
through a cloud model by default, with the local pipeline as its
fallback. Not in this page.
Pipeline Architecture
- Text advisor: Default: Claude Haiku 4.5 via AWS Bedrock (cloud). Automatic fallback to the local GGUF model (2.2 GB on disk) on any Bedrock error — no network, no AWS credentials, rate limit.
- Image generation: Default: Azure GPT-Image (cloud). Automatic fallback to FastSD CPU — a local, CPU-only inference pipeline — on any cloud error (no network, no credentials, rate limit), with a placeholder image as a last resort.
- Speech recognition (STT): offline model
- Speech synthesis (TTS): local voices
- Frame orchestration and video assembly: frames and the audio track are joined locally into a single file with moviepy (H.264/AAC, 24 fps)
Roadmap
The Scene DAG above is a specification today, not implemented code -- see the full roadmap and current status on the project roadmap.