Create animated ASCII-art for the command line almost instantly!

Overview

clippy

Create and play colored 🟥 🟩 🟦 or colorless ⬛️ ⬜️ animated, or static, ASCII-art in the command line!

clippy can help if you are wanting to;

  • Develop a rogue-like ASCII game
  • Develop word games (animate text)
  • Develeop TUI's or CUI's
  • Develop a Terminal screensaver
  • Create animated logos for your scripts
  • Make ASCII-art
  • Make coloured ASCII art
  • Make animated ASCII art
  • Only use the Python standard library!

State

OPEN TO CONTRIBUTIONS

Example Animation

Get this clip From this txt file/s!

.................
........~...v....
.........../|....
.....v..../_|__..
.........\-----/.
~~~~~~~~~`~~~~~~'

How clippy works

clippy looks at all the txt files in a directory, and sequentially prints each file to the console in the same line/column position. If the color flaf is passed, it maps colors onto each frame.

Each txt file acts as a 'frame' of the clip; Minor variations between these text files creates the animation!

Make your own animations

Steps

  1. Create a sub-directory inside the 'art' directory. Eg: under sea/boats. Give it a meaningful name eg: "small_boat_1" for a sailing boat animation
clip
   ├───art
   ├───animals
   ...
   ...
   └───sea
       └───boats
           └───small_boat_1
  1. In this folder create 2 sub-directories: 'ascii' and 'color'
clip
   ├───art
   ├───animals
   ...
   ...
   └───sea
       └───boats
           └───small_boat_1
               ├───ascii
               └───color
  1. In the 'ascii' sub-directory create a base/template txt file. Your ASCII-art template will live in here. Do it yourself or get ideas from https://www.asciiart.eu/ Eg: your base might have some ASCII-art like this in it (or anything you want!)
 clip
  ├───art
  ├───animals
  ...
  ...
  └───sea
      └───boats
          └───small_boat_1
              ├───ascii
              |       └───small_boat_1a.txt
              |       └───small_boat_1b.txt
              |       ...
              |       ...
              |       └───small_boat_1h.txt
              └───color

The text file might look something like this:

.................
........~...v....
.........../|....
.....v..../_|__..
.........\-----/.
~~~~~~~~~`~~~~~~'

  1. Make copies of this file, and in each copy, make some minor changes!

For the example below I've shifted the boat left, and added a seagull:

.....\,/.........
~...v............
.../|............
../_|__..........
.\-----/.........
~`~~~~~~'~~~~~~~~

  1. Run clip.py and pass the relative path of the directory containing your txt files (frames), pass it the speed (1-100), and pass it the number of cycles to run (1-1000)

  2. Enjoy and contribute your art here! Submit a pull request of your art to this repo!

ROADMAP

  1. Update steps and add steps to do color
  2. Build library of ASCII-art and animated ASCII-art
  3. Auto-colour terminal art
  4. Generative ASCII-art
You might also like...
A python CLI app that converts a mp4 file into a gif with ASCII effect added.
A python CLI app that converts a mp4 file into a gif with ASCII effect added.

Video2ASCIIgif This CLI app takes in a mp4 format video, converts it to a gif with ASCII effect applied. This also includes full control over: backgro

commandpack - A package of modules for working with commands, command packages, files with command packages.
commandpack - A package of modules for working with commands, command packages, files with command packages.

commandpack Help the project financially: Donate: https://smartlegion.github.io/donate/ Yandex Money: https://yoomoney.ru/to/4100115206129186 PayPal:

A Python-based command prompt concept which includes windows command emulation.

PythonCMD A Python-based command prompt concept which includes windows command emulation. Current features: echo: Input your message and it will be cl

Library and command-line utility for rendering projects templates.
Library and command-line utility for rendering projects templates.

A library for rendering project templates. Works with local paths and git URLs. Your project can include any file and Copier can dynamically replace v

A command-line utility that creates projects from cookiecutters (project templates), e.g. Python package projects, VueJS projects.
A command-line utility that creates projects from cookiecutters (project templates), e.g. Python package projects, VueJS projects.

Cookiecutter A command-line utility that creates projects from cookiecutters (project templates), e.g. creating a Python package project from a Python

instant coding answers via the command line
instant coding answers via the command line

howdoi instant coding answers via the command line Sherlock, your neighborhood command-line sloth sleuth. Are you a hack programmer? Do you find yours

As easy as /aitch-tee-tee-pie/ 🥧 Modern, user-friendly command-line HTTP client for the API era. JSON support, colors, sessions, downloads, plugins & more. https://twitter.com/httpie
As easy as /aitch-tee-tee-pie/ 🥧 Modern, user-friendly command-line HTTP client for the API era. JSON support, colors, sessions, downloads, plugins & more. https://twitter.com/httpie

HTTPie: human-friendly CLI HTTP client for the API era HTTPie (pronounced aitch-tee-tee-pie) is a command-line HTTP client. Its goal is to make CLI in

A supercharged AWS command line interface (CLI).
A supercharged AWS command line interface (CLI).

SAWS Motivation AWS CLI Although the AWS CLI is a great resource to manage your AWS-powered services, it's tough to remember usage of: 70+ top-level c

A command line utility to export Google Keep notes to markdown.

Keep-Exporter A command line utility to export Google Keep notes to markdown files with metadata stored as a frontmatter header. Supports exporting: S

Comments
  • Default example doesn't work

    Default example doesn't work

    Am I doing something wrong? I'm running the code exactly as in the readme.

    (base) ryan@sisko~/etc/clippy 13:50:42 $ python clip.py art/sea/boats/small_boat_1/ 100 3 -c
    sh: color: command not found
    sh: cls: command not found
    Traceback (most recent call last):
      File "clip.py", line 376, in <module>
        clippy(args.path, args.speed, args.cycles, args.color)
      File "clip.py", line 370, in clippy
        clip = Clip(path, speed, cycles, color)
      File "clip.py", line 205, in __init__
        raise ClipException("""
    __main__.ClipException: 
                        Your folder specified by path, must contain a subfolder 
                        called 'ascii'. This ascii subfolder must contain at least 
                        1 txt file. Your folder hierarchy should look similar to:
    
                        C:.
                        └───art
                            ├───animals
                            ├───buildings
                            │   └───castles
                            ...     └───my_folder
                                        └───ascii
                                            └───my_art_1.txt
                                            └───my_art_2.txt
                                            ...
                                            ...
                                            └───my_art_n.txt
    
                        
    (base) ryan@sisko~/etc/clippy 13:50:43 $ ls art/sea/boats/small_boat_1/ascii/
    small_boat_1a.txt	small_boat_1d.txt	small_boat_1g.txt	small_boat_1j.txt	small_boat_1m.txt
    small_boat_1b.txt	small_boat_1e.txt	small_boat_1h.txt	small_boat_1k.txt	small_boat_1n.txt
    small_boat_1c.txt	small_boat_1f.txt	small_boat_1i.txt	small_boat_1l.txt	small_boat_1o.txt
    

    Thanks for a cute and creative library!

    opened by quadrismegistus 3
Owner
Connor
Honours Electrical/Computer Engineer + Python dev supplementing these skills with HTML / CSS / JavaScript. Building a web automation tool
Connor
A 3D engine powered by ASCII art

3D engine powered by ASCII art

Lingdong Huang 48 Nov 16, 2022
Generate your name in Ascii modular type art through the terminal

ASCII Name Generator Designed and developed by Eduardo Aire The ASCII Art Name Generator is a simple program that helps you to have a practical Shell/

Eduardo Aire 1 Nov 17, 2021
A command-line based, minimal torrent streaming client made using Python and Webtorrent-cli. Stream your favorite shows straight from the command line.

A command-line based, minimal torrent streaming client made using Python and Webtorrent-cli. Installation pip install -r requirements.txt It use

Jonardon Hazarika 17 Dec 11, 2022
A Python module and command-line utility for converting .ANS format ANSI art to HTML

ansipants A Python module and command-line utility for converting .ANS format ANSI art to HTML. Installation pip install ansipants Command-line usage

null 4 Oct 16, 2022
A command line tool to create a graph representing your Ansible playbook tasks and roles

Ansible Playbook Grapher ansible-playbook-grapher is a command line tool to create a graph representing your Ansible playbook plays, tasks and roles.

Mohamed El Mouctar Haidara 424 Dec 20, 2022
A cd command that learns - easily navigate directories from the command line

NAME autojump - a faster way to navigate your filesystem DESCRIPTION autojump is a faster way to navigate your filesystem. It works by maintaining a d

William Ting 14.5k Jan 3, 2023
AML Command Transfer. A lightweight tool to transfer any command line to Azure Machine Learning Services

AML Command Transfer (ACT) ACT is a lightweight tool to transfer any command from the local machine to AML or ITP, both of which are Azure Machine Lea

Microsoft 11 Aug 10, 2022
Ros command - Unifying the ROS command line tools

Unifying the ROS command line tools One impairment to ROS 2 adoption is that all

null 37 Dec 15, 2022
A Python3 rewrite of my original PwnedConsole project from almost a decade ago

PwnedConsoleX A CLI shell for performing queries against the HaveIBeenPwned? API to gather breach information for user-supplied email addresses. | wri

null 1 Jul 23, 2022
Module for converting 2D Python lists to fancy ASCII tables. Table2Ascii lets you display pretty tables in the terminal and on Discord.

table2ascii Module for converting 2D Python lists to a fancy ASCII/Unicode tables table2ascii ?? Installation ??‍?? Usage Convert lists to ASCII table

Jonah Lawrence 40 Jan 3, 2023