Image effects showcase

Run python -m bruhanimate.demos.image_demo for six independent panels:

  • Glitch: fly-in lettering with flickering symbols.

  • Focus: scattered characters assemble into bruh.

  • Dissolve: characters appear in seeded random order.

  • Wipe: a straight edge reveals the text, then retracts.

  • AnimationSequence: a playlist using fresh transition factories.

  • ImageMask: plasma is visible only through the shape of the lettering.

The transition panels animate in, hold their final image for three seconds, animate back out in reverse, and hide for one second before repeating. Their plasma backgrounds keep running. reverse=True retraces the same seeded frames, with each leg taking the original transition duration. Layer styling keeps bright text over the current plasma background color without custom ANSI handling. Each panel owns its own plasma instance and transition.

An 80x40 terminal gives the panels room to show their small pyfiglet text. Column, Row, and fit-enabled Panel containers reflow on resize; tiny viewports clip safely without resetting transitions. Each plasma updates at 30 Hz while presentation and transition updates run at 60 Hz. Press q to quit.

from bruhanimate import image_demo

image_demo.run(frames=600, fps=60)

build_scene(buffer) is a complete example composed from public APIs. See ASCII images, transitions, masks, and styling for constructors, typed options, masks, and lifecycle rules.

Six resizable panels: transitions, image masks, and a public animation sequence.

Run python -m bruhanimate.demos.image_demo; q quits. An 80x40 terminal gives each panel enough room for its small pyfiglet image. Tiny viewports clip safely.

bruhanimate.demos.image_demo.build_scene(buffer: Buffer) → Animation[source]

Build independently owned panels using public Layer mask/style options.

bruhanimate.demos.image_demo.run(*, frames: int | None = None, fps: float = 60, on_resize: Literal['raise', 'resize'] = 'resize') → int[source]

Present at fps; transitions use simulation seconds and preserve resize state.