kika / fixedsys

Fixedsys Excelsior font with programming ligatures
997 stars 50 forks source link

[Suggestion] Change style of braille characters for better compatibility with ASCII art #27

Open iiiGerardoiii opened 3 years ago

iiiGerardoiii commented 3 years ago

This suggestion seems to be unrelated to the font's principles (only adding ligatures) but I'll share the idea in case anyone is interested in doing this change.

The use of braille characters for making ASCII art is becoming quite popular, probably because of Reddit and Twitch chat, and while these characters are not used for programming, they may be used on IRC clients such as mIRC where fixedsys is the default font.

⣿⣿⣿⣿⣿⣿⣿⣿⠟⠁⠄⠄⠄⠄⠄⠄⠄⠄⠄⠸⣿⣿⣿⣿⣿
⣿⣿⣿⣿⣿⣿⠟⠁⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⢿⣿⣿⣿⣿
⣿⣿⣿⠟⠛⠁⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⣼⣿⣿⣿⣿
⣿⡟⠁⣀⣠⣤⣀⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⢀⠄⢀⣿⣿⣿⣿⣿
⡁⠁⠄⢩⣭⣍⣭⣭⣥⣤⣢⣒⣀⣲⣄⣒⣛⣛⣛⣛⣛⣛⢻⣿⣿
⠇⠄⢨⣿⣿⣿⣿⣿⣿⣿⣿⡿⣿⣋⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
⠄⠄⠄⠉⠙⡿⢿⣿⣿⣿⣿⠑⠄⠈⣝⣿⣿⣯⣴⣦⡾⣿⣾⣿⡗
⡄⠄⠄⠄⠄⠈⠉⠙⠒⠂⠄⠄⠄⠄⣿⣷⠿⠛⠛⠚⠛⣻⣿⣿⡇
⠃⠄⠄⠄⠄⠄⠄⠄⠄⠁⡀⠄⠄⠄⢹⣿⣧⠄⠄⠄⠄⣿⣿⡿⠁
⠄⡀⠄⠄⠄⠄⠄⣀⢀⣠⢼⣷⣤⣤⣿⣿⣤⣀⠄⠄⢸⣿⣿⡇⠄
⠄⢇⠄⠄⠄⠄⠰⢿⣤⣤⠤⢤⣬⣽⣽⣿⣿⣿⣿⠄⢸⣿⣿⣀⠄
⠄⠈⢦⡀⠄⠄⠄⠄⠈⠈⠑⠢⠭⠤⢭⣿⣿⠟⠛⠄⣾⣿⣇⢻⠄
⠄⠄⠄⠑⣄⠄⠄⠄⠄⠄⠰⢾⣾⣿⣿⣿⣿⣶⣤⣾⣿⡟⢁⠄⠄
⠄⠄⠄⠄⡈⢳⣦⡀⠄⡀⣀⣀⣤⣅⣈⣀⣼⣿⣿⡿⡋⠄⠂⠄⠄
⠄⠄⠄⠄⠄⢄⠈⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⡃⠄⠄⠄⠄⠄⠄ 

Fixedsys Excelsior comes with braille characters, but only the 6-dot patterns, and they were designed in a way that people could see which "dot" is disabled. Designer_PAIsfmoS25 This style is quite problematic for ASCII art, here's an example of shrek done in ASCII using these braille characters:

Designer_tWj6PGPlBr

By simplifying the design of the 6-dot characters, and adding the 8-dot ones, the result is a font ready to be used for proper ASCII art through braille: image An example of shrek with the new characters:

Designer_Lwk3wMbRWe

PS: These images were made in Photoshop since I couldn't get fonttools to run on my system.

iiiGerardoiii commented 3 years ago

Unfortunately I couldn't modify the .ttx file from this repo cuz I'm too dumb with fonttools, what I did was open/edit the .ttf file in FontForge and then export it back. Here's the modified font with the new braille characters if anyone wants to use it: FixedsysExcelsiorBeta.zip

kika commented 3 years ago

If someone can make a PR, I'd merge it. @iiiGerardoiii, does it just expand the Braille table or modifies it? If the latter, wouldn't genuine braille users suffer from this change?

iiiGerardoiii commented 3 years ago

If someone can make a PR, I'd merge it.

Excellent. I managed to make fonttools run on my system, it doesn't crash anymore so I'll try to do the PR soon.

does it just expand the Braille table or modifies it? If the latter, wouldn't genuine braille users suffer from this change?

The design of the existing 6-dot symbols was modified, but only its "styling". The dots' placement is the same as it was before so no worries. Plus, the appearance of a braille font is irrelevant to a blind person because blind people get these patterns through another device (a braille embosser for example). I only changed the appearance of the braille symbols to make it more readable by removing the unpunched dots, which are pretty much useless. You can read more about it here https://en.wikipedia.org/wiki/Braille_Patterns#Font_differences. Popular fonts such as DejaVu Sans, Cascadia Code, and Segoe UI also have their braille symbols without unpunched dots.

FSEX only had 6-dot symbols so I expanded it to have 8-dot symbols as well. 8-dot symbols are not as useful as 6-dot, but most modern fonts that support braille have both 6-dot and 8-dot. You can read more about the 8-dots here: http://www.brailleauthority.org/eightdot/eightdot.html

iiiGerardoiii commented 2 years ago

I'll try to do the PR soon

Sorry, it seems FontForge modifies the .ttx file too much beforehand, so many lines changed for some reason. I don't know how else to add the braille characters. Do you use only fonttools to edit/add characters? just wondering how you do it. Fonttools uses a CLI so that's why I wanted to take the FontForge family-friendly path.

kika commented 2 years ago

Can you create a font with only these Braille characters? Take the Fixedsys, add your characters and remove all others. Then create a PR with a new TTX file, like braille.ttx and I'll look into merging it manually.