Gemini: Exploring the Cozy World of Capsules and Space

Table of Contents

This post is made to give you basic understanding of what Gemini is, what are Capsules and Gemlogs, modern-day use of retro image techniques and text-based art

I highly recommend you to read geminiquickst.art before this post, because it provides a lot of valuable information about Gemini, and it is better written than this post

What Is Gemini

For more accurate and in-depth answer to this question see Project Gemini FAQ

Gemini is how some people call it - “smol web” - web without distracting elements such as ads, stylesheets that define website look, various tracking scripts, cookies and etc.

Gemini has its own aesthetics, it feels cozy, is small, has its own community, and are easy to use

It’s not made to replace or compete with web, but to co-exist with it, it’s made for those who like old web philosophy, but would like to use modern tools

Project Gemini started in June 2019 by Solderpunk, who remains the “Benevolent Dictator” of the project

In February 2021, long time Gemini contributor Sean Conner was granted some decision making authority to help finalize the Gemini specification during a time when Solderpunk was unable to dedicate the necessary time and energy to the project

The current (informal) specification of the protocol is largely frozen, so no major changes will be made

Take a look at awesome-gemini for list of great Gemini-related projects

Gemini Browsers

Gemini is a protocol that are not supported by regular web browsers, so you will need a separate browser for it. As Gemini protocol are much easier than web, there are a lot of browsers for it, some good ones are:

Or, if you don’t want to install a separate browser for Gemini or just want to quickly look over some capsule, you can use Gemini to web proxy, such as portal.mozz.us

Browsing Geminispace

You can start browsing Geminispace by looking over some capsules at various aggregators:

Gemini also has its own search - geminispace.info

I have found some interesting capsules you might like to look at:

Creating Own Capsule

You can start by getting your own Gemini capsule (a website in Geminispace), there are multiple free capsule providers, one of them are Flounder

Flounder gives you own Capsule, where you can put files, posts, and it also provides web proxy, so your friends can enjoy your content from regular web browsers

There are, however, some limits:

The may seem strict at first, but they are more than enough for Gemini text

First of all you need to register an account, every account is manually approved, so you may need to wait, (in my case I had to wait 2 months, and then I decided to send an email to admin, he immediately approved my registration, huge thanks to him!)

After your registration have been approved, take a look at Tips and tricks and Gemini text guide

And you are ready to start writing!

Writing Gemtext

Gemtext is a markup language a bit similar to Markdown, it has only most needed formatting

You can learn Gemtext in 5 minutes, for start, take a look at:

Gemini also supports Unicode, so you can do 🤣️, 🖂, 🗺 and etc.

If you are familiar with Markdown, there are Markdown to Gemtext converters, e.g gemgen

(This post were written in Markdown, so I found out the hard way that gemtext doesn’t support links in text, they need to be on separate line)

Adding Images

Knowing about file size and overall available size restrictions of Flounder, you may have question: how I can include images!

There are 2 ways, first one is to use put image somewhere at web (Imgur and others) or to put the image directly in your capsule after compression, one of the ways to greatly compress an image is dithering

Dither is an intentionally applied form of noise used to randomize quantization error, preventing large-scale patterns such as color banding in images, basically, it allows to reduce the amount of colors in image while keeping somewhat readable image

For this you can use Halftone - A simple Linux app that allows you to dither your image in seconds, or you can use Terminal tools such as Pixfect (by me :P), ImageMagick and others. You can also use amazing website for image dithering with some really interesting options - Dither Me This

Example of simple ordered image dithering with 2 colors using ImageMagick 1

convert image.jpg -resize 840x840 -strip -colors 4 -ordered-dither o8x8 image-dithered.png

I will use Halftone in this example

This is what we get in the end

bay bridge floyd

San Francisco Bay Bridge photo in dark tones, with Floyd-Steinberg dithering

Image on Unsplash

Not bad, right? and what’s with the file size? let’s see!

bay-bridge.jpg > 521,9 KB halftone-bay-bridge.png > 26,2 KB

The decrease is 94.9799%, quite a lot considering limited storage

Now you can fit 357 photos, while without compression you could only fit 19

But, we can go even further, by using less colors and different dithering algorithm

With ordered dithering (Bayer) and 2 colors we get the following result

bay bridge bayer

San Francisco Bay Bridge photo in black and white, with Bayer dithering

Image on Unsplash

bay-bridge.jpg > 521,9 KB halftone-bay-bridge-2.png > 4,9 KB

99.0611% decrease

The image is notably worse, but it has its own aesthetics, and size speaks for itself

Taking into account ability to link images from web, images are not such a big issue in Geminispace

ASCII

ASCII art is a good way to give your Gemlog (this is how blogs hosted at Gemini are called) more personality and make them more fun

ASCII art is with us from around 1966, and was invented in large part because early printers often lacked graphics ability and thus, characters were used in place of graphic marks that couldn’t display normal images, ASCII art was also used in early e-mail when images could not be embedded 2

ASCII art is used to-date, sometimes as a braille art (you likely seen one of these), as image converted to ASCII, as text banners or as emoticons :‑) 3

Image to ASCII is very common, and you can easily make one yourself!

Good tools for image to ASCII are:

ascii-image-converter in my experience, works the best

Here are simple example of ASCII and Braille images made with ascii-image-converter

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@%%%%%%%%%%%%%%%%%%%%%
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%@%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%@@
@@@@@@@@@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@*%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@%+@@@@@@@@@@@@@@@@@@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@**@@@@@@@@@@@@@@@@@@@#@@@@%###%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#+@@@@%%%#@@@@@@@@@@@@@@@@
@@@@@@@%=%@@@@@@@@@@@@@@@@@@%*@%+-:::-------=###%%%%%@@@@@@@@@@@@@@@@@@@%#=#@@@#++--%%@#*+#@@@@@@@@@
@@@@@@@*+@@@@@@@@@@@@@@@@@@@##%==------------:::::::::-----==========++*%%*@@@#-=::#%%%+=:-+*=**=@@#
@@@@@@@=#@#+====+++++#%%%%%%##=-==+=:------=-:------:::::::::..........=###@@@@+:-+#%@#+*=#**=+-=*+=
@@@@@@#+@=--::::--:::-+++==%#-:==+*=-+++=--=:----------=====-------::::.:+*@@#*=+++#*%=*=*%##*%+#@*#
#***=+@@%.=----------+++*=*%+:==+++%%*+*#*+--===------==============++==---==-=-+==*+==+-*##+**=@%#%
*-:::*@@=-----------=*++==++ :+---:-++++**=--==++++===--------===+**%%=-========---------=+++*++%%%@
@@*=:*=+.::....:::::-++++=*-.--::...:---::.  ...::----==--------===#@#==----============--------===+
@@@@@++*   .........:-----+--:..:........:. ..      ...::::::::::=+++=-=---=-----------====-==------
#%##%+*#.    .. .  .::-:::=--.......................:::::::::::::::::::::::------------------------=
++-----+:          .:--=--=--    ........................::..:::::::::::::::::::::..:::::----------=
:..:-=.:--:..     ..:+####++-.         ..     .   .......          .......::::-----==++===-:::::::--
=--------+*+=-:-=-==--::-===-::.....         ..::---::::::---:::----==++******++++++++****##**+=-::.
==-:.:::..:--===-::-=:..:=:..+--:-::::::...   .-------=###%%#=+####*+++==--:::.    .......::--=++++=
.::.::--:-=:.------=:--:=+:-+*:--:::::-:....     .::-:+*++==+=++=-:.....:.:..::::::::........ ....:-
..  :..::....::.:--==:. -:..:.::: .-.::::-..::. .     :=-:.:---::.:::::::::......::::::::::::-.:::::
=------=-::=-:---=+-..--:-++=. :::--::-======+=-:::::--+..-=-::::........ ..............:::.::--::::
#######%%#%#%##%%%%: =+..#%#%* -%%#################*=:=-:+*++=##**+=--:......... .............::::::
**************+****=..-. :++=: -+++++++++++++++***+:::++**++==+*####*****+==-:::....................
++++++++++++++++++++*++++======+================-:  .=##***+++=++++++++++********+++=-==--==---::---
**##****##*####**###*#**######*###*#####**####+: .:::=*#**+==#*******************#**######*######*##
**********#*******************************#***: .=-::-:::--. :************************+******+******
++++++++++++++++++++++++++++++++++++*++++****+. :-..*::=-:+=  =**************++**+****++******+***+*
+*++*+*+++++*+++++++++++++++++++++++++++++++++-  .  -=-+=++:  ++++++++++++++++++++++++++++++++++*+++
**+++*+*++++++++++++++++++++++++=++++=+=====+==---:  --=-=. .----:::::::::::::::::::---------=======
*++*+**++***+++****++*+++++++++++++++++++++++++++++=========+=====-====--==-==---------:------------
*+++++++++++**+*+*******+***+*************************************************************++**++++++
⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
⣿⣿⣿⣿⣿⣿⣿⣿⣿⣟⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
⣿⣿⣿⣿⣿⣿⣿⣿⣿⢻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
⣿⣿⣿⣿⣿⣿⣿⣿⡟⣸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⠿⣿⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⢸⣿⣿⣿⣿⣿⣿⣿⢻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
⣿⣿⣿⣿⣿⣿⣿⣿⡇⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⠁⠀⠀⠀⠀⠀⠀⠈⠉⠉⠉⠉⠿⠿⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⣛⣁⣾⣿⣿⣿⣿⣶⣶⠅⠸⢿⣿⣿⣟⣹⠋⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿
⣿⣿⣿⣿⣿⣿⣿⣟⢳⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⢸⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠉⠉⠉⠉⠛⠛⠉⠉⠉⠉⠉⠉⠛⠛⠛⣵⣿⣿⣿⣿⣿⣿⣧⠭⡡⠁⠀⣶⣶⣶⣿⢭⣍⠀⠙⠲⠿⠧⣿⡿⢘⣿⣿⣟
⣿⣿⣿⣿⣿⣿⣿⡏⣾⣿⣿⠋⠉⠉⠉⠙⠛⠛⠉⠉⠍⢿⣿⣿⡿⢿⡿⣿⣿⣿⠇⡘⠀⢀⣤⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⢿⣿⣿⣿⣿⣿⣿⡇⠀⢀⣨⣟⢿⣿⡟⣸⡿⢠⣿⣿⣶⣤⣤⡄⣈⣙⠋⠹
⣿⣿⣿⣿⣿⣿⣿⢣⣿⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⣿⣛⣷⠒⢆⣿⡿⠜⠀⡇⢠⣾⣛⠁⢀⣤⣤⣤⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠻⠻⣿⣿⣿⣯⡑⢰⡻⢸⣿⣷⡿⠁⣿⠇⣾⣿⣿⣿⢿⣿⣷⣿⣿⣿⣿
⡿⣿⣽⡶⠤⢸⣿⣿⡿⢀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣰⠟⠻⠟⠣⣼⣿⡿⢠⣰⠀⠹⢇⠹⢿⣿⣯⣗⣟⣿⣦⣤⡀⠀⣀⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⢠⣀⠀⠀⠀⠀⠈⠉⠁⠘⠀⠠⠶⠇⠈⠿⠹⠃⢤⡏⠀⣼⣿⣿⣇⣾⡟⠛⣿⣿⣿⣿
⣧⡀⠀⠀⠀⣸⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣿⣿⣶⠊⠋⢉⡇⠀⠀⡍⠀⠀⠀⠀⠈⢿⣌⣋⣹⡿⠛⠉⠀⠀⠀⠙⠻⠿⣷⣦⣄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣤⣿⣿⣿⣿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⠛⠛⠛⠿⠃⣶⣿⣿⣿⣿
⣿⣿⣦⣄⡀⣿⡏⠻⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠻⠿⠿⠿⠿⢾⡇⠀⠀⠃⠀⠀⠀⠀⠀⠀⠈⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠉⠉⠛⠓⠦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠙⠛⢿⣿⣿⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠉⠃⠉⠛
⣿⣿⣿⣿⣿⡇⢰⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⡶⠛⠋⠁⠀⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⣿⣿⢿⣿⣿⡇⢼⣧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⡽⢗⠀⠀⠀⡇⠨⠷⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣀⣀⣀⡄⢰⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠤
⠀⠀⠀⠀⢀⡇⠀⠀⠀⣀⣀⢀⠀⠀⠀⠀⠀⠀⠀⠀⠐⣩⣿⣿⣷⣭⡇⣘⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⣀⣀⣀⣀⣀⣀⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⢂⠄⠀⡀⠀⠃⠉⠀⠀⠻⢿⣧⠄⣀⠀⢐⠶⠂⠾⠷⠂⠀⠀⠀⠉⠙⠑⠋⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⠠⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣀⠀⢀⣀⣀⣀⣀⣠⣤⣤⣤⣶⣶⣶⣶⠶⠿⠿⠛⠛⠛⠛⠛⠛⠛⠛⠻⠿⠿⢿⣿⣷⣶⣤⣄⣀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⡀⠀⠀⠀⠀⠀⠈⢬⠙⠃⠀⠀⠀⢀⠏⠀⠀⠀⠀⣶⠀⠀⠀⣴⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡀⠀⣠⣶⣾⣿⣿⣿⣿⠋⢵⡿⠿⣿⣟⠛⠛⠛⠋⠉⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠉⠙⠛⠿⠶⣦
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⠀⠀⠀⠀⠐⢀⠀⠠⠚⠀⠀⠀⠀⢠⠇⠀⠀⣠⠏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠙⠛⠀⢻⡻⠛⠛⠛⠉⣩⠴⠞⠿⠍⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠐⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣩⠖⠋⠉⠀⠨⠀⠀⠀⠉⠁⠀⠀⠀⠀⠀⠂⠀⠀⠀⠀⠀⣆⠀⠀⠤⡀⠀⠀⠀⠀⠀⠀⠀⠀⢀⢑⠆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠀⠀⠀⠀⠀⠀
⣀⣀⣀⣀⣀⣀⣀⣄⣀⣀⣀⣀⣀⣀⣀⣀⣄⣠⣤⠀⠀⢀⡴⠂⠀⢀⣴⣶⣤⡀⠀⢀⣀⣀⠀⡀⠀⠀⢀⡐⢄⣀⢀⣀⢀⣉⣳⡀⠀⠀⠀⠀⠀⡠⠃⡜⠀⠀⣠⣤⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠒⠀⠀⠀⠀⠀
⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀⢸⡄⠀⠀⣿⣿⣿⣿⣷⠀⠈⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠋⠀⢰⠇⢠⣾⣿⣿⠁⠀⣾⣿⣷⣶⣦⣤⣀⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⣿⣿⡿⠿⠿⡿⠿⢿⠿⢧⠀⠀⠉⠀⠀⠘⠛⠿⠟⠁⠀⠸⠿⠿⠿⠿⠿⠿⠿⠿⠿⠿⠿⠿⠿⠿⠿⠿⢿⣿⠟⠁⠀⠀⣍⣴⣿⣿⣿⣿⡂⢬⠛⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣶⣤⣤⣤⡀⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣥⣾⣾⣶⣶⣾⣿⣾⣿⣿⣷⣾⣶⣶⣦⣴⣶⣶⣶⣦⣴⣦⣤⣤⣤⣤⣤⣤⣤⣤⣤⣦⣤⣤⣄⡤⠂⠀⠀⠀⠀⣠⣿⣿⣿⣿⣿⣿⣧⣶⣖⣿⣟⣾⣿⣷⣿⣿⣻⢿⣾⣿⣿⣿⣾⣶⣿⣿⣿⣿⣷⣶⣤⢠⣤⣤⣤⣤⣤⣤⣤⣀⣀⣀⣀⣀⣀⣀
⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⠀⠀⢀⡀⠀⠈⠙⢿⣿⣿⣿⠿⠿⠛⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⠀⠀⢀⠏⠀⠀⢀⠖⡉⠉⠁⡐⢄⠀⠀⠘⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⣻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣻⣿⣿⣯⣿⣾⣿⣿⣿⣿⣿⣯⣿⣿⣿⣷⢿⢿⡽⣿⡿⣿⡿⣿⡿⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⠘⠀⠀⠀⡏⠀⠀⣤⠄⠤⢼⡇⠀⠀⢹⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
⣿⣿⣿⣿⣿⣿⣿⣻⣿⣿⣿⣿⣿⡿⣿⣿⣽⣿⣫⣽⣻⣿⣿⣿⣿⣿⢽⣿⣻⣿⣹⣾⣿⣿⣿⣾⣯⣿⣿⣳⣾⢿⣶⣿⣭⣿⡄⠀⠀⠀⠀⠀⠱⣠⠎⢰⠘⣦⡼⠁⠀⠀⣼⣿⣟⡛⠻⠻⠛⠻⢛⠛⣏⠟⣽⠚⠿⠿⡛⠫⠻⠿⠛⡹⢇⡹⠻⠛⠟⠟⠟⠿⠻⡿⡿⡿⣿⣟⣿⡿
⣿⣿⣿⣾⣿⣿⣿⣿⣿⣻⣻⣿⣿⣿⣿⣿⣿⣿⣿⣙⣿⣽⣿⣿⣭⣻⣜⣿⣿⣿⣟⣻⢋⣉⣛⣳⣽⠊⣛⠃⡆⠥⠊⠠⣩⣈⡁⠀⠀⢀⡀⠀⠀⠈⠓⠛⠚⠋⠀⠀⠀⠀⠀⠀⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠁⠀⠉⠑⠛⠙⠉⠛⠑
⣿⣿⣿⣿⣿⣿⣿⣿⢿⣿⣿⣿⣷⣿⣿⣿⣿⣿⣿⣯⣿⣿⣿⣿⣿⣿⣾⣿⣾⣿⣿⣿⣿⣿⣯⣼⣴⣿⣿⣷⣯⣾⣵⣶⣿⣿⣦⣼⣷⣮⡶⣶⣴⣶⣦⢶⣤⣶⢂⣤⡤⣤⣠⣦⣄⡄⢀⣔⣠⠀⣠⡄⢠⣄⣄⠀⢠⣀⢀⢀⡀⠀⡀⠀⠀⡀⠀⠀⢀⢄⠀⠀⠀⠀⠀⠀⠀⠀⠤⠀
⣿⣿⡻⣿⣿⣻⣿⣿⣿⣿⣿⣿⣿⣿⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣿⣿⣿⣿⣿⣿⣾⣷⣶⣧⣶⣷⣶⣶⣶⣾⣶⣦

But, do you think it looks anything like this image?

grayscale plane

T-6 plane photo in grayscale, with Floyd-Steinberg dithering

Image on Unsplash

Me neither…

The result heavily depends on amount of detail, colors, contrast, the width of ASCII output and etc. you can get pretty decent result, but for images it probably worth just to use dithering ;)

But… ASCII works nicely for art and text banners, like this computer!

                       .,,uod8B8bou,,.
              ..,uod8BBBBBBBBBBBBBBBBRPFT?l!i:.
         ,=m8BBBBBBBBBBBBBBBRPFT?!||||||||||||||
         !...:!TVBBBRPFT||||||||||!!^^""'   ||||
         !.......:!?|||||!!^^""'            ||||
         !.........||||                     ||||
         !.........||||  ##                 ||||
         !.........||||                     ||||
         !.........||||                     ||||
         !.........||||                     ||||
         !.........||||                     ||||
         `.........||||                    ,||||
          .;.......||||               _.-!!|||||
   .,uodWBBBBb.....||||       _.-!!|||||||||!:'
!YBBBBBBBBBBBBBBb..!|||:..-!!|||||||!iof68BBBBBb....
!..YBBBBBBBBBBBBBBb!!||||||||!iof68BBBBBBRPFT?!::   `.
!....YBBBBBBBBBBBBBBbaaitf68BBBBBBRPFT?!:::::::::     `.
!......YBBBBBBBBBBBBBBBBBBBRPFT?!::::::;:!^"`;:::       `.
!........YBBBBBBBBBBRPFT?!::::::::::^''...::::::;         iBBbo.
`..........YBRPFT?!::::::::::::::::::::::::;iof68bo.      WBBBBbo.
  `..........:::::::::::::::::::::::;iof688888888888b.     `YBBBP^'
    `........::::::::::::::::;iof688888888888888888888b.     `
      `......:::::::::;iof688888888888888888888888888888b.
        `....:::;iof688888888888888888888888888888888899fT!
          `..::!8888888888888888888888888888888899fT|!^"'
            `' !!988888888888888888888888899fT|!^"'
                `!!8888888888888888899fT|!^"'
                  `!988888888899fT|!^"'
                    `!9899fT|!^"'
                      `!^"'

Or this fancy banner!

 ██████╗ ███████╗███╗   ███╗██╗███╗   ██╗██╗
██╔════╝ ██╔════╝████╗ ████║██║████╗  ██║██║
██║  ███╗█████╗  ██╔████╔██║██║██╔██╗ ██║██║
██║   ██║██╔══╝  ██║╚██╔╝██║██║██║╚██╗██║██║
╚██████╔╝███████╗██║ ╚═╝ ██║██║██║ ╚████║██║
 ╚═════╝ ╚══════╝╚═╝     ╚═╝╚═╝╚═╝  ╚═══╝╚═╝

The ASCII art can be found online in huge amounts, I will give you some good websites for start

As for banners, they can be easily created with figlet or toilet, you can easily find installation instructions online, I also recommend to install additional beautiful and sometimes funny fonts from figlet-fonts, which basically consists of few commands

git clone https://github.com/xero/figlet-fonts.git
cd figlet-fonts/
sudo cp -r ./ /usr/share/figlet/

And then you can create your own banner!

figlet -f ANSI\ Shadow "gemini"

To easily find the perfect font, you can look at font preview

There are also amazing graphical app for this - Calligraphy, made specifically for creating ASCII banners!

You can also use online tools

Conclusion

Gemini is cozy corner for those who tired of railway noise of the web, it has its own limitations and strengths, and of course, community, in this post we have briefly touched additional topics: dithering and ASCII art

There are more things I want to tell you about, I want to write more in-depth post about Dithering, Halftone and tech limitations that forced us to implement such things

Extra

Footnotes


Go to TopFile an Issue