Skip to main content

A creative coding language based on Processing and Python for creating interactive character terminal art.

Project description

Charming: Character Terminal Art Programing

Charming is a creative coding language designed for Character Terminal Art Programming.

It is currently written in Python and provides Processing-like APIs, which aims to help artists, designers, educators, beginners, and anyone else to easily create following visual effects in terminal.

There are many reasons for creating Charming, but the most important one is that I hope not only does Charming make you love programming for fun or show a magic world to you, but also make this journey relaxing and interesting.

Charming

📎 Links

✨ Features

  • Highly Expressive: Unlike traditional drawing system or tool using three numerical channels ((r, g, b) or (h, s, v)) to describe a color, Charming allows you to describe a color like (character, foreground color, background color), which means you can express more with the extra the character channel.
  • Powerful and Flexible: Charming is not as same as urwid or click to build console line interface. Actually it more like asciimatics, art or tcharts to draw some visual effects in the terminal but with more flexibility. Instead of drawing limited and predefined shapes or effects, you can draw some basic primitives, custom shapes, curves, images, typography with transforms (translate, rotate, shear) and even events (mouse, keyboard) in Charming.
  • Easy to Learn and Use: Charming is very beginner-friendly, because of Python's simple syntax and Processing's concise APIs. It will be more easier if you are already familiar with them. Once you've master Charming, you can create anything interesting in you head with it and enjoy the pure joy of coding.

📦 Installation

  • Supported OS: Charming currently only supports MacOS, though it should also work for any other platform that provides a working curses implementation. It soon will support Windows and run in Modern Browsers.
  • Python: 3.6/3.7/3.8
$ pip3 install charming --user

📺 A Simple Example

'''rect.py'''
import charming as cm

# draw a rect
cm.full_screen()
cm.rect(0, 0, 10, 10)

# run the sketch
cm.run()
$ python3 rect.py

get started

🛸 Future work

  • Using Rust as backend to run in browser and support multiple OS, using both JavaScript and Python as frontend.
  • Add more API to be more expressive.
  • Build a community and online playground like OpenProcessing.

💳 License

Charming is LGPL-2.1 License.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

charming-1.0.0a2.tar.gz (547.5 kB view details)

Uploaded Source

Built Distribution

charming-1.0.0a2-py3-none-any.whl (41.2 kB view details)

Uploaded Python 3

File details

Details for the file charming-1.0.0a2.tar.gz.

File metadata

  • Download URL: charming-1.0.0a2.tar.gz
  • Upload date:
  • Size: 547.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/3.7.2 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.0 CPython/3.7.7

File hashes

Hashes for charming-1.0.0a2.tar.gz
Algorithm Hash digest
SHA256 f72b366fad92c0623bdaf0a8b808f154de2c3bcec9fd49c75b8d2727839be0bb
MD5 5759a7e0a264d433490d7909d09ec49d
BLAKE2b-256 5105110914bf3af2a6daf779309fe6e1ae11aa9ffe043604fe2ef6ceb449ec21

See more details on using hashes here.

File details

Details for the file charming-1.0.0a2-py3-none-any.whl.

File metadata

  • Download URL: charming-1.0.0a2-py3-none-any.whl
  • Upload date:
  • Size: 41.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/3.7.2 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.0 CPython/3.7.7

File hashes

Hashes for charming-1.0.0a2-py3-none-any.whl
Algorithm Hash digest
SHA256 7425b71947a8b34667678f4f1ace7dbc1d4d41c2a9397f576551438e7c463c16
MD5 9ffba8d8abc5ca2bfa3e36f594412d02
BLAKE2b-256 8f45454415c8b27f751d30cbd8d00de331d0299f82242d64cd8fcecef76058a2

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page