Skip to content

Releases

v0.17.0

Choose a tag to compare

@CoreySpohn CoreySpohn released this 05 Nov 15:04
496fd5c

0.17.0 (2026-11-04)

Features

  • opt-in skip_held_draws skips the draw callback on held frames (89c7199)
  • render: render_variants work_dir keeps chunks and scratch out of out_dir (1883cbf)
  • testing: opt-in cvd-fill check of motif fills at their opacities (e24e675)
  • waive allowlist, stamp as furniture, time-range renders, quieter clip checks (9b15f77)

Bug Fixes

  • bound memory of variant visual keys with a digest (a4dc36c)
  • crossfade only for plain text, reject tear waivers, presence ignores path effects (74aabed)
  • drop time-range renders, check visible group members, effect geometry, reject unattributable waivers (da658be)
  • excerpts keep full layout, conservative ink and crossfade checks, distinct dead moves, inert waivers rejected (0893d10)
  • eyepiece: flag image occlusion and visibly empty panels (f743aa5)
  • eyepiece: skip the empty-panel check in clips unless requested (e8eef11)
  • frame keys type scalars and never share nan, cgroup worker memory, untrimmed key checks (b335b21)
  • glyph cache probe is lock-free and TeX-safe, keeps foreign hooks, bounds layouts; skip_held_draws is the last ClipSpec field (258908c)
  • number finding labels by base artist type under the stage guard (12f9651)
  • paint-skip absent stage leaves, keep visibility, exact mux and frame reuse (178bd14)
  • presence checks keep base visibility, effect handling only for collisions (0a8d2d1)
  • share variant frames only for exact inputs, keep rasterization, guard fewer leaves (c0fc575)
  • stage shade memo only for finite plain levels, keeps signed zeros and none pairs on the original path (c7a4bea)
  • video sampling works with ffmpeg 4, narrow the clip-check memory claim (1b99cab)

Performance Improvements

  • exact plan frame keys, frame-key checker, cpu and memory worker budget (fce7c6d)
  • hide inkless stage leaves, render frames once, share check samples (e136756)
  • memoize stage shading of single colors (13adb40)
  • plan reached state, frame keys cover build latches (ab19e38)
  • reuse Agg text layouts and glyph bitmaps in movie rasters and clip checks (ec2dea5)
  • streamed bounded-memory clip checks, keyed readability reuse, opt-in video sources (9c4cd36)

v0.16.0

Choose a tag to compare

@CoreySpohn CoreySpohn released this 21 Oct 21:20
0acdc25

0.16.0 (2026-10-21)

Features

  • anim: pix_fmt encoder key, yuv444p opt-in with yuv420p kept as default (485837e)
  • anim: reading PRESETS["talk_60"] warns, use "talk" (591f06a)
  • anim: record draws frames unsnapped by default, add ep.unsnapped (bd58cb4)
  • anim: remove record(allow_rescale=), deprecated in 0.15 (1593d36)
  • anim: talk preset records at 60 fps, docs presets stay at 30 (4d41f2e)
  • anim: talk_rc sizes talk type and strokes from the frame height (a1b9fb5)
  • anim: to_scrubber writes an offline HTML page whose slider scrubs one knob of a plan (61d24f4)
  • api: add lazy aliases in task namespaces (18e2200)
  • api: add plot, clock and motion namespaces and extend style, render, testing and narration (604a2b6)
  • api: shrink the root to stable shortcuts, keep legacy root paths working (6c6cc46)
  • attention: add transient text underlines (30a87b9)
  • attention: circumscribe flash comet and a plateau pulse for indicate (7322906)
  • attention: click lands a composite in one 0.6 s beat, then a 1.5 s hold (ba8b907)
  • attention: head_draw behind= cuts halo and backing lines to the body so none leads the head (0434e45)
  • attention: head_draw staggers by per-line offsets such as coordinates (797b977)
  • attention: head_draw, a constant arc-length reveal with a bright head (405b3f2)
  • attention: remove the ignored write(overlap=) argument (68c51e0)
  • attention: ruler_readout binds a ruler and a counter to a drawing head (8f09fed)
  • attention: scaled arrow growth, staccato axis build, transform fade_toward (3015963)
  • attention: Stage.weigh lift_pt lands a label into place with its fade (097d28a)
  • attention: write traces each glyph with a thin pen, then fills it (7cfb69f)
  • clock: declare zero duration cuts (9a34389)
  • clock: Plan.spans_json(holds=False) leaves holds out of a manifest (72b2c78)
  • clock: rename Timeline.pulse and ring to indicate and circumscribe (f3eeb7b)
  • clock: text naming a move may arrive over its last quarter (874b8ec)
  • clock: Timeline.spans, a read-only live view of the declared spans (3d76e5a)
  • clock: Timeline.wait_until holds the picture until a time without a span (0f9c0c2)
  • equation: bind a term to the mark it names, with linked cues (1a8096f)
  • hop: exchangeable draws with dimming ghosts and a converging tally (51a442a)
  • hop: warn at a rate outside the three to six draws a second band (f4311a4)
  • labels: spread nearby curve end labels (4df8821)
  • marks: rename spans to shade_intervals, spans deprecated (4f7c6ec)
  • motion: add the smooth sigmoid easing and a DEFAULT_EASE constant (3cb3a54)
  • motion: default easing is the smooth sigmoid, read from DEFAULT_EASE (c02695d)
  • motion: expose the plateau pulse shape (d5cdbb7)
  • narration: a 20 s sweep prototype with its count heard, cued and silent (e375264)
  • narration: audio_track mixes cue sounds before the loudness pass; the voice yields to them (3c4909e)
  • narration: check_number_sync, a readout settles on its spoken number (8ef5d7c)
  • narration: cue synthesizers for a count tone, pixel-read ticks and a click sting (9f40b96)
  • narration: duck windows drop the room-tone bed to its floor (7e6aecf)
  • narration: Line sentence_gap_s speaks a line one sentence at a time (f116ca4)
  • narration: lint_script and check_script_speech rules for sentences, numbers and cues (195dfdd)
  • narration: pair scientific screen and speech values (b80dc93)
  • narration: Pause, a first-class silent beat with a duration and an on-screen description (64096f6)
  • narration: per-line speech speed that enters the line's cache key (7aab0e9)
  • narration: remove Narration(min_s=), deprecated in 0.15 (d9451bf)
  • narration: silence lint for cue coverage, undeclared silence and the hero beat (f00034b)
  • narration: synthesize takes rules= to refuse lint findings (190af7e)
  • narration: write_chapters, a WebVTT chapters file with one cue per beat (a0550e5)
  • photons: aperture_counts reads counts and known-leak S/N off the photons mark (b08eb5b)
  • photons: photons mark with settling arrival glow and exposure_text log clock (ed678e7)
  • photons: seeded Poisson arrivals on an exposure clock, final frame fixed by the seed alone (0a37e13)
  • profiles: name image profile computation explicitly (53ae2d3)
  • relay: add carried panel furniture tags (88a4c31)
  • render: content keys over a clip's inputs (93d01e0)
  • render: deterministic manifest of rendered variants (6d1e4a0)
  • render: deterministic posters, stills and picture comparison (bb3e212)
  • render: let clip specs choose variant output paths ([1067126](106...
Read more

v0.15.0

Choose a tag to compare

@CoreySpohn CoreySpohn released this 17 Oct 03:40
2a9226b

0.15.0 (2026-10-16)

Features

  • anim: add shared encoder profile, 30 fps presets, unsnapped moves and seamless phase ring (29a8aa5)
  • anim: record stills= during the encode and on_rescale= replacing allow_rescale (868b511)
  • anim: record warns once about unread and constant knobs, with end-to-end stills tests (730f527)
  • arrows: add arrow, angle_arc and compass, marks that grow, sweep and turn on one artist (c6809c5)
  • attention: add follow_zoom, a magnified inset that follows a moving point (a388ae7)
  • attention: add morph, a ghost that carries one path into another (3c515a8)
  • attention: add readout, a number that counts in a fixed layout (63e0541)
  • attention: add words, one line of text with per-word color and in-place reveal (9e5b355)
  • attention: add write, a handwriting reveal that traces glyph outlines then fills them (025c3ac)
  • attention: draw_on reveals a line along its display-space length (cecf0e4)
  • attention: ease the presence of a stage group in weigh (bc58cab)
  • attention: ep.warp and ep.warp_grid, matrix and pointwise plane warps (c80f282)
  • attention: follow_zoom halo for dark images and loc auto with hysteresis (f7f853e)
  • attention: let words colors take a word string as a key (edb4216)
  • clock: one timeline of named spans, knobs derived at build time, and the events of the plan (5bac655)
  • clock: Plan.value reads the t, index and section frame fields (d67fd73)
  • equation: add equation and transform, glyph-level math with named terms and a move between two (5bb92a7)
  • equation: add replace=morph to transform, outline-to-outline as Manim aligns paths (2996833)
  • equation: align, group motion, replaced terms and travel-scaled arcs in transform (1a635d7)
  • equation: arc by travel direction and align on the shift most groups share (17e5927)
  • equation: make morph the default for replaced terms (e573511)
  • motifs: add Motif and MotifSet with motif_faults checks (16f43fd)
  • motifs: motif kwargs carry a gid and MotifSet.meaning_keys (d9b1d34)
  • motifs: read label inks and accept declared pairs with a second channel (94f0b26)
  • motion: add back_out and running_start eases with a strength (afd794a)
  • motion: MotionContract on move results, declared for the gallery moves (1a14886)
  • narration: caption_at, and caption breaks avoid brackets and bare operators (a6bdd9f)
  • narration: JSON scripts, --estimate, and a caption sentence-count warning (ece0e2b)
  • narration: keep min_s= as a deprecated duration from the line start (53354b9)
  • narration: loudness, room tone, wrapped captions, caption placement and display text (28a4985)
  • narration: say and speech_faults for numbers the voice misreads (1981462)
  • narration: speak a clip script and cue attention moves on its words (7683422)
  • output: deterministic save_fig and stamp(reserve=True) (e52d52d)
  • style: pupil colormap role, corner density on probability (eeded1d)
  • testing: add meaning_faults color-meaning check (6ea8e5b)
  • testing: add motion_faults and assert_motion, a linter for the path between states (b6c4676)
  • testing: add speech_rate and assert_speech_rate (fb93e2e)
  • testing: check_clip and assert_clip check a plan-driven clip in one call (7898f24)
  • testing: declared steps for the motion check (82ba1a4)
  • testing: readability checks for a figure or a clip sampled at times (98dbd89)
  • testing: shape-class fault kind for pieces that must stay axis-aligned rectangles (f8e8da2)
  • video: add the video extra and name it in the missing-ffmpeg error (fd3ccaa)

Bug Fixes

  • anim: fade in the real text during write so the end has no jump (d29c02c)
  • attention: draw_on rejects stepped drawstyles (c771d88)
  • attention: readout ink test, clamp overshoot eases, reject negative when signed=False, term_row wording (3714b7b)
  • clock: max_late_s, narrated captions skip short-read, separate label namespace, truncating clamp, chaining stagger (099010d)
  • equation: draw curved glyphs as cubics, morph contract overlap, morph gallery prose (e8043dc)
  • equation: land on the snapped rest state, so the ends of a transform do not jump (9575b81)
  • equation: pair tagged with untagged equations by glyph order and warn on a lost tag partner (8341755)
  • equation: stretch a fraction bar as a rectangle, so its ends stay square (49d0a84)
  • motifs: check roles in sharing, full stand-in table, mutation tests, docs extra (cf8b4ce)
  • motion: continuous collapse copy, morph ghost and follow_zoom halos; gallery label room and unroll (f05d671)
  • motion: write declares nothing, transform rectilinear skips replaced terms, negative controls for the contracts (1b65f3c)
  • narration: add the room-tone bed after loudness normalization (979c42b)
  • narration: name the pinned kokoro version in the missing-soundfile error (d32f666)
  • **tes...
Read more

v0.14.0

Choose a tag to compare

@CoreySpohn CoreySpohn released this 15 Oct 17:06
8ca36e9

0.14.0 (2026-10-15)

Features

  • attention: add circumscribe, an outline that draws on around a target and fades (9b591ba)
  • attention: add indicate, a transient pulse that returns to the stage level (2d79150)
  • attention: add link, a line that grows between marks in different panels (b45d1e0)
  • attention: add term_row, an equation or readout with one text per term (d7d1929)
  • attention: audit leaders through an explicit check instead of raising in draw (5e95207)
  • attention: fade a link by level and audit it against titles and axis labels (223e051)
  • attention: let flight carry and turn a line segment or a bar patch (43150e3)

Bug Fixes

  • attention: fade a caption's box faster than its words (3429a37)

v0.13.0

Choose a tag to compare

@CoreySpohn CoreySpohn released this 15 Oct 02:30
8c97b7c

0.13.0 (2026-10-15)

Features

  • attention: add build_axes to draw an axis on in sequence (d03c6aa)
  • attention: add collapse to gather a row of cells into a bar (6907feb)
  • attention: add Stage to show, dim or hide named groups (4803fa4)
  • attention: add Tempo, one factor for a staged clip's pace (daf75f4)
  • attention: color and weight callout key terms; let captions rise (a877df0)

v0.12.0

Choose a tag to compare

@CoreySpohn CoreySpohn released this 14 Oct 03:20
086bd26

0.12.0 (2026-10-14)

Features

  • attention: Anchor, flight, leader and callout for explainer animations (4c8969d)

v0.11.0

Choose a tag to compare

@CoreySpohn CoreySpohn released this 13 Oct 22:02
9fbe5a8

0.11.0 (2026-10-12)

Features

  • role: resolve prior, positive, negative, posterior and truth roles (a182899)

Bug Fixes

  • role: lowercase hex for fixed-color fallbacks, docstring names them, test pins them to hwostyle (13caf7b)

v0.10.0

Choose a tag to compare

@CoreySpohn CoreySpohn released this 12 Oct 18:10
e378a41

0.10.0 (2026-10-12)

Features

  • style: resolve semantic color roles (507094f)

v0.9.0

Choose a tag to compare

@CoreySpohn CoreySpohn released this 12 Oct 03:54
2ac6e1e

0.9.0 (2026-10-12)

Features

  • marks: add spans, ref_line and log_zero_floor (5f92efc)
  • stats: add calibration and strip diagnostics (02cbc41)
  • stats: add interval_points (05b1255)
  • stats: add scatter_values with inset colorbar and cmap role fallback (1792ff4)
  • style: export neutral and backing (2a6d569)

Bug Fixes

  • marks: spans shades where mask is True (4836cd3)
  • stats: calibration keeps later data visible and log band exact; log_zero_floor pins only the floor (de8fe2f)

v0.8.0

Choose a tag to compare

@CoreySpohn CoreySpohn released this 11 Oct 15:51
03caecd

0.8.0 (2026-10-05)

Features

  • anim: add RawSink and record(free_limits=) for axes whose limits move (3bf88c4)
  • camera: add PageCamera, overview_box and spotlight (5ed474f)
  • deps: require matplotlib 3.11 and drop the version gates (a441d03)
  • manim: make ensure_font and Units public (8e84791)
  • morph: add quad_image and brush (9f825bb)
  • motion: add Timeline, Plan, ease, stagger, frame_count, zoom_path, view_limits and pixel_quads (02693eb)