nanoframes
SVG-first, browserless, deterministic frame rendering on ThorVG.
nanoframes is an offline counterpart to hyperframes: the same
idea — write a frame, render a video, built for agents — but without a browser. Compositions are
authored as SVG documents plus a small declarative animation timeline, and every frame is
rasterized deterministically by ThorVG (thorvg-python) to PNG, then muxed to MP4 with FFmpeg.
Because nothing depends on a browser, an AI agent can render a frame or a whole clip locally in
milliseconds and iterate fast: check → preview → render.
Status
v1 complete. Full offline pipeline works end-to-end: init → check →
render/preview → video. SVG compositions + declarative keyframe timeline are
rendered deterministically by ThorVG; MP4 export via ffmpeg; visual snapshots guard
regressions. Text auto-layout (measured chips, wrap, curve, fit) + a bundled
monospace CJK font (Sarasa Mono SC, ligatures stripped) for solid Chinese.
Layout
docs/ architecture + composition contract
examples/ `.nf.svg` compositions
skills/nanoframes/ SKILL.md — the agent production loop
nanoframes/ package (model, parser, timeline, bake, render, lint, cli, video)
tests/ unit + render + snapshot + CLI tests
Docs
- Architecture — why SVG + ThorVG, the pipeline, scope decisions.
- Composition — the
.nf.svgcontract (timing attributes + animation timeline). - Text capabilities — measured chips/wrap/curve/fit, bundled CJK font,
text_handlerescape hatch.
docs/ and skills/ also ship inside the pip wheel (nanoframes/docs,
nanoframes/skills); running nanoframes with no arguments prints where the
docs and the agent skill live — repo checkout or installed package alike.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file nanoframes-0.1.1.tar.gz.
File metadata
- Download URL: nanoframes-0.1.1.tar.gz
- Upload date:
- Size: 13.4 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.1.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
76baf668d7a8e6e1e08b78a41f4e6ff3075e367de2e4e03c24c8acac05a22b1b
|
|
| MD5 |
9d5e561cac42777d820918a90391101e
|
|
| BLAKE2b-256 |
0eab0b9759be2d7b348c10fba744a968caabf9a60dc80f947b667ecd76b62c13
|