Skip to content

tachyonfx-v0.19.0

Choose a tag to compare

@junkdog junkdog released this 27 Sep 18:12
· 139 commits to development since this release
c760ab0

tachyonfx 0.19.0 - 2025-09-27

interactive-examples

The documentation for most effects now contain links to interactive examples powered by
tachyonfx-ftl
.

Added

  • fx::evolve: Creates evolving text effects that transform characters through a series of symbols.
    Combine with .with_pattern() for progressive transformation.
  • fx::evolve_into: Evolve effect variant that reveals underlying buffer content at completion (alpha=1.0).
  • fx::evolve_from: Evolve effect variant that reveals underlying buffer content at the start (alpha=0.0).
  • EvolveSymbolSet enum: Defines symbol progressions for evolve effects with variants:
    • BlocksHorizontal: Horizontal block progression (▏▎▍▌▋▊▉█)
    • BlocksVertical: Vertical block progression (▁▂▃▄▅▆▇█)
    • CircleFill: Circle fill progression (◌◎◍●)
    • Circles: Circle progression ( ·•◉●)
    • Quadrants: Quadrant block progression (▖▘▗▝▚▞▙▛▜▟█)
    • Shaded: Shading progression ( ░▒▓█)
    • Squares: Square progression ( ·▫▪◼█)
  • Pattern trait: New pattern-based spatial effects system for controlling how effects progress across screen areas:
    • CheckerboardPattern: Creates alternating checkerboard reveal patterns with configurable cell size and transition width
    • CoalescePattern: Randomized coalescing effects where cells activate at random thresholds for organic transitions
    • DiagonalPattern: Diagonal sweep effects in four directions (top-left to bottom-right, etc.) with smooth gradients
    • DissolvePattern: Randomized dissolve effects where cells deactivate at random thresholds - the reverse of CoalescePattern
    • RadialPattern: Radial expansion effects from configurable center points with parameterized transition widths
    • SweepPattern: Linear sweep effects in four cardinal directions (left-to-right, right-to-left, up-to-down, down-to-up)
  • Effect::with_pattern(): Applies spatial patterns to pattern-compatible effects, supporting:
    • fx::coalesce, fx::coalesce_from
    • fx::dissolve, fx::dissolve_to,
    • fx::evolve, fx::evolve_from, fx::evolve_into
    • fx::explode
    • fx::hsl_shift, fx::hsl_shift_fg
    • fx::fade_from, fx::fade_from_fg,
    • fx::fade_to, fx::fade_to_fg
    • fx::paint, fx::paint_fg, fx::paint_bg
  • Interactive Examples: DSL examples for most effects at https://junkdog.github.io/tachyonfx-ftl/ and linked from docs.
  • fx::paint: Applies color painting effects to foreground and background.
  • fx::paint_fg: Paints only the foreground color.
  • fx::paint_bg: Paints only the background color.

Breaking Changes

  • fx::translate: Changed from translate(Option<Effect>, (i16, i16), timer) to translate(Effect, Offset, timer).

DSL

  • CellFilter method chaining: supports .negated(), .into_static(), and .clone() methods in DSL expressions.
  • fx::translate effect now available in DSL expressions with full roundtrip support.
  • Documentation revised for conciseness and to reflect current DSL capabilities and limitations.

Changed

  • FilterProcessor::validator(): Changed visibility from pub(crate) to pub.
  • CellValidator: Changed visibility from pub(crate) to pub.
  • CellValidator::is_valid(): Changed visibility from pub(crate) to pub.

Deprecated

  • FilterProcessor::predicate(): Deprecated in favor of validator() method which provides better performance.
  • fx::resize_area(): Deprecated due to poor design and functionality issues. No replacement planned.
  • Feature web-time: Use the wasm feature instead.

Fixed

  • no_std compatibility: removed simple-easing crate dependency.
  • no_std compatibility: removed implicit std math function usage with feature-gated implementations.
  • Fixed Interpolation::CubicOut and Interpolation::CubicInOut incorrectly calling circular easing functions.
  • Fixed Interpolation::QuintIn to use correct mathematical formula.
  • fx::remap_alpha: Fixed incomplete reset implementation that could cause state persistence across effect resets.

Removed

  • simple-easing dependency: replaced with internal easing implementations for better no_std compatibility.