Skip to content

Releases: Dicklesworthstone/franken_manim

FrankenManim v0.5.0 — native WAV/SVG outputs, multi-team CPU rendering, wider manimlib portal

Choose a tag to compare

@Dicklesworthstone Dicklesworthstone released this 04 Oct 03:56

FrankenManim v0.5.0: native WAV/SVG outputs, multi-team CPU rendering, wider manimlib portal

This is a pre-1.0 preview from the exact annotated tag v0.5.0, commit
8b6fdbf0f23c84b8e811240f80350e3c17d4af47.

What landed since v0.4.0

  • Native composition outputs. fmn render --format wav mixes a scene's sound
    cues into a deterministic S16 soundtrack with FMNP provenance.
    --format svg publishes the final scene state as a deterministic SVG still.

  • Bounded multi-team CPU rendering for ordinary, camera-bearing and compiled
    (FMTL) scenes. Native scenes can be exported as standalone, replayable FMTL
    bundles, and camera-bearing bundles open in native Studio.

  • A much wider manimlib portal. Constructors, authoring hooks and live
    updates now run through native-backed lifecycles for:

    • axes, planes and number lines
    • text and Tex, braces
    • surfaces and 3D solids
    • SVG assets and images
    • trackers and controls

    Edited scenes also rebuild transactionally at IPython cell boundaries.

  • New native library surfaces:

    • markdown documents with mathematics
    • tables and CSV ingestion
    • graphs and networks
    • implicit contours
    • OBJ meshes with materials
    • raster and material transitions
    • sound fades and trimming
  • Conformance tooling: a structural-facts differential harness, a class
    sweep, a corpus speed-ratio producer and a certified-arithmetic guard.

Fixed before this release

  • Concurrent WAV/SVG renders could corrupt provenance (#4). Concurrent or
    racing --format wav / --format svg renders can no longer overwrite another
    render's artifact and leave its .manifest sidecar describing different
    bytes. Both now publish create-only: a synced unique sibling temp file, then
    an atomic no-clobber link. This matches the PNG, GIF, Y4M and video outputs.
  • Windows fmn doctor could load DLLs from the working directory (#3).
    The default fmn doctor probe on Windows no longer launches the installed
    ffmpeg with the caller's working directory in its DLL search path. Windows
    keeps v0.4.0's fail-closed behaviour: ffmpeg is reported unavailable, and the
    native outputs need no ffmpeg.

Artifacts

Native fmn archives and franken-manim CPython 3.13 wheels are provided for:

  • Linux x86-64 (the native binary targets glibc 2.28)
  • macOS arm64
  • Windows x86-64

Use the attached SHA256SUMS, the per-asset .sha256 files and the build
manifest to verify downloads. As with v0.4.0, these artifacts are
checksum-published but not cryptographically signed.

Install the native binary with:

curl -fsSL https://raw.githubusercontent.com/Dicklesworthstone/franken_manim/main/scripts/install.sh | bash

Verification boundary

The exact tagged source passed:

  • cargo fmt --check
  • Clippy with warnings denied: workspace all-targets, fmn-cli --features batch,
    and fmn-output --features ffmpeg-test-fixture
  • the full workspace cargo test, plus the batch and ffmpeg-fixture test suites

The release adds regression tests for #4: a deterministic
"competitor wins after preflight" fault injection for WAV and SVG, and six real
concurrent SVG renders into one destination. Both tests fail against the
previous publishers.

Native archives are built with DSR on native or cross hosts, without GitHub
Actions. Wheels are built with Maturin 1.14.1 and smoke-tested in fresh
CPython 3.13 environments with NumPy 2.5.2.

Known limitations and open items

  • Single-file artifacts are committed with a hard link. An output directory on
    a filesystem without hard links (for example FAT32/exFAT) therefore refuses
    publication rather than falling back to a replacing write.

  • ffmpeg-backed video export and the ffmpeg doctor probe remain unavailable on
    Windows.

  • Two governance follow-ups are open; neither is a known runtime defect:

    • #5: ADR-0015 does not yet list the new CPython GC traversal wrappers in its
      unsafe inventory.
    • #6: the repository's constructor-authority audit script is stale after the
      native init_points migrations.

    For this reason the full scripts/check.sh wrapper was not green for this
    cut. Its Rust gates listed above were run individually.

  • Same exclusions as v0.4.0:

    • no Linux arm64 artifact
    • no signatures
    • no npm publication
    • Python certified rendering remains a precise refusal
    • Metal is standard-only

The project README describes the 1.0 target state. Its current-status
boundaries remain authoritative for shipped capability.

FrankenManim v0.4.0 — native Studio/Metal and threaded browser preview

Choose a tag to compare

@Dicklesworthstone Dicklesworthstone released this 18 Aug 12:42

FrankenManim v0.4.0 — native Studio/Metal and threaded browser preview

This is a pre-1.0 preview from exact annotated tag v0.4.0, commit
d1e4274aa32ba5c59934029db397bbbeb9bfa18c.

What landed

  • The standalone fmn distribution now has a checksummed native installer,
    ships the batch-capable CLI, and reports compile provenance in stable robot
    version output.
  • The native Studio worker now drives real retained Lumen/Reel frames through
    its browser and terminal preview surfaces. Standard-mode offline Metal
    routing is wired through the CLI with explicit backend provenance; certified
    mode continues to refuse accelerator execution before output side effects.
  • Lumen retained rendering now persists immutable image resources, interns
    image quads, preserves transformed primitive hints, and supports
    mean-value colour fields across multiple contours.
  • The governed WASM package now has a real webpack/Chromium release gate and a
    separate shared-memory frame-pool export. The tested threaded path uses two
    module workers over a SharedArrayBuffer, byte-compares serial and threaded
    results, and fails closed without COOP/COEP isolation.
  • Per-user config discovery, production performance-front-door identity checks,
    qualified-host monitoring, fuzz-corpus replay, and bounded no-corpus-leak
    scanning have all been tightened.
  • The optional CPython 3.13 franken-manim wheels continue to expose the
    663-name manimlib namespace and production standard-mode PNG rendering.

Artifacts

Native fmn archives and franken-manim CPython 3.13 wheels are provided for:

  • Linux x86-64
  • macOS arm64
  • Windows x86-64

Use the attached SHA256SUMS, per-asset .sha256 files, and build manifest to
verify downloads. These artifacts are checksum-published but not
cryptographically signed; no release signing key is configured.

Verification boundary

The exact tagged source passed the repository's full scripts/check.sh gate:
installer smoke, formatting, all-target and shipped-feature checks, wasm32,
Clippy with warnings denied, rustdoc, the full Rust and Python test suites,
batch and ffmpeg boundary suites, the 24-crate dependency-DAG gate, Node WASM
smoke, npm pack/publish dry-run, a fresh webpack consumer, and real Chromium
serial/threaded/refusal checks. Native archives are built through DSR without
GitHub Actions. Wheels are built natively with Maturin 1.14.1 and tested from
fresh CPython 3.13 environments with NumPy.

Not claimed yet

  • This is not a 1.0 release or a declaration that G4a, G4b, G5, the full Parity
    Ledger, Look Gallery, or the full project plan is complete.
  • CUDA is not implemented at the currently pinned FrankenTorch boundary; no
    placeholder or host-copy substitute is being presented as an annex backend.
  • The npm package is verified as a tarball but is not published to npm because
    this release host has no npm registry credentials.
  • No Linux arm64 artifact is included because no proven native Linux arm64
    certification host is available. No cross-compiled or emulated substitute is
    used.
  • Python certified rendering remains a precise refusal. Metal is standard-only,
    and the WASM threaded path is frame-batch parallelism rather than intra-frame
    parallelism; broader browser coverage and speedup claims remain open.
  • Pinned bare-metal PG measurements, full cross-platform certified closure, and
    cryptographic signatures remain open work.

The project README describes the 1.0 target state; its current-status boundaries
remain authoritative for shipped capability.

FrankenManim v0.3.0 — source-unedited final-still preview

Choose a tag to compare

@Dicklesworthstone Dicklesworthstone released this 17 Aug 00:54

FrankenManim v0.3.0 — source-unedited final-still preview

This is a pre-1.0 preview from exact annotated tag v0.3.0, commit
82c3daa84129e31d742e691e3835366b7356d1c4.

What landed

  • The optional fmn-python portal can execute all eight locked G4a corpus scenes
    source-unedited and render a standard-mode PNG sequence or atomic final-state
    PNG through the retained Lumen/Reel path.
  • Python scene final-state composition now carries durable vector, surface-grid,
    triangle-mesh, and dot-cloud primitive identity, and binds the live camera and
    light into retained 3D composition.
  • The separately installed CPython 3.13 wheels expose the exact 663-name
    manimlib namespace and a real fmn-python console entry point.
  • The standalone CPython-free fmn archives contain the existing native CLI and
    built-in scene/render surfaces.

Artifacts

Native fmn archives and franken-manim CPython 3.13 wheels are provided for:

  • Linux x86-64
  • macOS arm64
  • Windows x86-64

Use the attached SHA256SUMS, per-asset .sha256 files, and combined build
manifest to verify downloads. These artifacts are checksum-published but not
cryptographically signed; no release signing key is configured.

Verification boundary

The exact tagged source passed the repository's full scripts/check.sh gate:
format, all-target checks, feature checks, wasm32 check, Clippy with warnings
denied, rustdoc, the full Rust test suite, and the Python bridge/portal suite.
Each wheel was built natively with Maturin 1.14.1 on its target OS and installed
into a fresh CPython 3.13 virtual environment with NumPy 2.5.2. The isolated
wheel smoke exercised the 663-name namespace, console entry point, production
PNG rendering, certified-mode refusal, and namespace-collision refusal.

The native archives were built with DSR without GitHub Actions. During the first
DSR run, Windows source synchronization failed and DSR incorrectly summarized a
stale 0.2.0 Windows binary as successful. That artifact was rejected and is not
attached. The published Windows archive came from a second DSR run against a
fresh, clean, exact-tag checkout and reports 0.3.0 in both human and robot modes.
The manifest records both run identifiers and the rejection.

Not claimed yet

  • This is not a 1.0 release or a declaration that G4a, G4b, G5, or the full
    project plan is complete.
  • Python certified rendering (--reproducible), video containers, Studio,
    opener/write-all behavior, and broad class-by-class manimlib semantic parity
    remain fail-closed or incomplete.
  • No Linux arm64 artifact is included because no proven native Linux arm64
    certification host was available; no cross-compiled or emulated substitute
    was used.
  • Studio/Metal production routing, Look Gallery verdicts, cross-platform
    certification, and the pinned bare-metal performance gates remain open work.
  • The release has checksums but no signatures.

The project README intentionally describes the 1.0 target state. Its
"Current pre-1.0 status" section is the authoritative shorter description of
the currently shipped Python portal surface.

FrankenManim v0.2.0 — production Python-render preview

Choose a tag to compare

@Dicklesworthstone Dicklesworthstone released this 16 Aug 20:50

FrankenManim v0.2.0 — production Python-render preview

This is a candid pre-1.0 preview, cut from exact tag commit
88b431e17d8e1cf3c3b09d91b82b6ae06f2f3ba9.

What materially changed

  • fmn-python standard-mode PNG sequences now pass captured scene frames through the shared retained Lumen CPU renderer and Reel's ordered, atomic PNG publisher. A successful portal render now means real pixels and files, not only lifecycle/alpha probes.
  • The README-style Hello scene is exercised as a real 90-frame installed-wheel render on Linux x86-64, macOS arm64, and Windows x86-64.
  • The optional Python portal now ships with PyO3 0.29.2 and exact CPython 3.13 full-ABI wheels; detectable competing manimlib providers fail closed.
  • The governed wasm-bindgen closure is updated to 0.2.127.
  • Native fmn archives and wheel metadata consistently report 0.2.0.

Native artifacts

DSR built the native CLI on the target systems themselves, without GitHub Actions:

  • Linux x86-64: fmn-x86_64-unknown-linux-gnu.tar.xz
  • macOS arm64: fmn-aarch64-apple-darwin.tar.xz
  • Windows x86-64: fmn-x86_64-pc-windows-msvc.zip

SHA256SUMS, per-asset checksum files, and the DSR manifest accompany those artifacts. Each archive was extracted on its target platform and the contained binary reported fmn 0.2.0.

Optional Python portal wheels

The wheels require CPython 3.13 and install NumPy 2.5.2:

  • macosx_11_0_arm64: 463ac35e0aff55d3801b9d7fbde8d379403b57eb941caed15384f770af8ea30f
  • manylinux_2_34_x86_64: 7e4b01abfb8697a2b4f6fddb3a4b87ff5bab287722458eeb17df7afb28d8b1f7
  • win_amd64: 26bc556328b999cffc53bc9926c1dcf6b79d380db6972b30c55b7360e34769c2

Each wheel passed a fresh-venv installed-artifact test covering distribution metadata, the exact 663-name root namespace, scene discovery, construct-only behavior, the real 90-frame Hello PNG render, certified-mode refusal, and the namespace-collision negative control.

Verification boundary

  • The complete pinned scripts/check.sh gate passed with exit 0 on the exact release source: formatting, all-target checks and Clippy, rustdoc, the full workspace tests, batch and ffmpeg feature suites, crate-DAG enforcement, and wasm32/Node smoke.
  • DSR's final manifest binds all native builds to the tag commit above; the artifacts are unsigned because no minisign release key is configured.
  • Linux aarch64 has no configured native certification host and is not shipped here. Cross-compilation or emulation was not substituted for native proof.
  • Certified Python output, Python Studio routing, complete manimlib semantic coverage, the full certified platform matrix, and the project-wide performance/scaling goals remain open. This release does not claim the README's finished 1.0 target state.

FrankenManim v0.1.0 — early native preview

Choose a tag to compare

@Dicklesworthstone Dicklesworthstone released this 15 Aug 14:30

FrankenManim v0.1.0 is the first early-development native preview of the sovereign Rust mathematical-animation engine.

Built natively with DSR from commit ca0e83032eedadfe56a6f541a11903fc2c9d6665 (tag v0.1.0), without GitHub Actions:

  • Linux x86-64 GNU archive
  • macOS Apple Silicon archive
  • Windows x86-64 MSVC archive
  • SHA-256 manifest and per-asset checksum sidecars

Highlights include the native fmn CLI and Studio/runtime surfaces, certified-CPU rendering foundations, native text/math/output stacks, and the new fail-closed PG-8 definition/measurement front door.

Validation:

  • cargo fmt --check
  • cargo check --locked --all-targets
  • cargo clippy --locked --all-targets -- -D warnings
  • cargo test --locked
  • Three native release builds completed successfully through DSR.
  • A freshly downloaded Linux archive reported both human and NDJSON robot version 0.1.0.

Important scope boundaries:

  • This is an early preview, not the README's 1.0 target-state claim.
  • The optional fmn-python wheel/console distribution is not included.
  • The final per-platform SIMD-tier artifact matrix and installer selection UX are not included.
  • macOS and Windows artifacts were build-verified; the full locked test suite was executed on Linux.
  • No PG-A hardware-performance, complete scaling-annex, or cross-platform certified-output closure is claimed.
  • Artifacts are unsigned; verify them with the included SHA256SUMS or per-asset .sha256 files.