• Stars
    star
    102
  • Rank 335,584 (Top 7 %)
  • Language
    C++
  • License
    MIT License
  • Created over 6 years ago
  • Updated over 6 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

An ASCII animation interpreter for the terminal.

Asciimation

An ASCII animation interpreter for the terminal.

asciimation plane example

Asciimation is like the flipbooks where one draws a single frame per page, and flips through it to create an animation.

asciimation simple example

The above asciimation is created from the following file contents:

x:10        # minimum terminal width
y:1         # minimum terminal height
BEGIN       # keyword to seperate headers from frames
octobanana  # the first frame
END         # keyword to seperate frames
OCTOBANANA  # the second frame

The interpreter reads from a plain text file. The start of the file contains the headers. The 'x' header is the minimum width of the terminal needed to properly display the animation, and 'y' is the height. The headers are optional, but the BEGIN line must be present. BEGIN tells the interpreter where to begin parsing the frames. Each frame is seperated by a newline with a special delimiter on it. The default delimiter is the word END.

While the above example uses a single line per frame, a frame is interpreted as anything inbetween the seperators.

See the examples folder for some ideas!

Build

Environment:

  • tested on linux
  • c++ 14 compiler
  • cmake

Libraries:

  • my parg library, for parsing cli args, included as ./src/parg.hh

The following shell commands will build the project:

git clone <repo_name>
cd <repo_name>
./build.sh -r

To build the debug version, run the build script without the -r flag.

Install

The following shell commands will install the project:

./install.sh -r

Future Features

  • layering multiple frames as one
  • keyword for coloring frames
  • keyword for modulating the delay between frames

More Repositories

1

peaclock

A responsive and customizable clock, timer, and stopwatch for the terminal.
C++
514
star
2

fltrdr

A TUI text reader for the terminal.
C++
481
star
3

belle

An HTTP / Websocket library in C++17 using Boost.Beast and Boost.ASIO.
C++
102
star
4

crex

Explore, test, and check regular expressions in the terminal.
C++
55
star
5

stig

A CLI tool for searching GitHub from the terminal.
C++
39
star
6

octavia

octobanana's customizable text-based audio visualization interactive application.
C++
23
star
7

hr

A horizontal rule for the terminal.
C++
22
star
8

nyble

A snake game for the terminal.
C++
22
star
9

hexana

Display file contents in hexadecimal and ASCII.
Assembly
15
star
10

parg

A header only c++ library for parsing command line arguments and generating usage/help output.
C++
10
star
11

lssa

List similar artists.
C++
9
star
12

pine

The pine programming language.
C++
6
star
13

nansi

A CLI tool to filter ansi escape sequences and format text streams.
C++
5
star
14

gentone

Generate a tone from a note or frequency.
C++
5
star
15

euarel

A CLI tool for URL percent-encoding and percent-decoding text.
C++
5
star
16

html

A header only c++ library for creating, manipulating, and rendering html, css, and js.
C++
3
star
17

floatybox

Float your way through perilous terrain in this endless side-scroller game.
C++
3
star
18

lispp

A Lisp interpreter in C++.
C++
3
star
19

m8

A general-purpose preprocessor for metaprogramming.
C++
2
star
20

str

A small library for handling strings in c.
C
2
star
21

ireadit

A browser extension that hides the comment section of link posts on reddit and hacker news if the article has not been read.
JavaScript
2
star
22

asio-chat

A modified version of the boost asio chat client / server program.
C++
1
star
23

m8-modules

Code modules / snippets to be used with M8's 'mod' macro.
1
star
24

setcase

A cli tool to transform text to uppercase and lowercase.
C++
1
star
25

lab

Testing grounds for programs and ideas in various languages.
C++
1
star
26

tuff

A shell script to shorten Pebble SDK commands.
Shell
1
star
27

asm-case

ASCII lowercase/uppercase filter in x86-64 assembly.
Assembly
1
star