Repository navigation
Releases
Releases · CoreySpohn/eyepiece
v0.17.0
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
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...
v0.15.0
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...
v0.14.0
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
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
v0.11.0
v0.10.0
v0.9.0
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
v0.8.0
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)