Skip to content

Feat/fireflies - #76

Open
tusharmalpani20 wants to merge 2 commits into
ChrisBuilds:mainfrom
tusharmalpani20:feat/fireflies
Open

Feat/fireflies#76
tusharmalpani20 wants to merge 2 commits into
ChrisBuilds:mainfrom
tusharmalpani20:feat/fireflies

Conversation

@tusharmalpani20

Copy link
Copy Markdown

Summary

Adds a new fireflies effect that creates a calm nighttime animation where glowing fireflies wander across the canvas, gather
around hidden character positions, and gradually illuminate the original input text.

Animation

  • Fireflies enter from different canvas edges and corners.
  • Input characters temporarily appear as ., *, and o.
  • Each firefly follows an independently generated curved path.
  • Blink timing, brightness, movement speed, and arrival timing vary.
  • Nearby characters gather in loose spatial groups.
  • Some fireflies briefly orbit or overshoot their destination.
  • Characters are revealed in uneven clusters.
  • A warm illumination wave passes through the completed text.
  • Atmospheric fireflies and landing halos are pooled and cleaned up.
  • The final symbols, positions, and colors match the original input.

Difference from Swarm

Fireflies emphasizes slow wandering, asynchronous blinking, hesitation, local gathering, and staggered illumination. It does not
use coordinated flock movement or send every character directly toward its destination.

Configuration

Adds options for:

  • Firefly colors
  • Firefly symbol sequence
  • Movement speed
  • Bounded wander cycles
  • Atmospheric firefly count
  • Final gradient colors, steps, and direction

Edge Cases

Handles:

  • Empty and whitespace-only input
  • Single-character input
  • One-row and one-column canvases
  • Tiny and sparse canvases
  • Multiline, wide, and tall text
  • ANSI foreground and background colors
  • Deterministic randomized behavior
  • Bounded animation duration and auxiliary cleanup

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant