Colorfont Workshop at LGM 2012

During the recent Libre Graphics Meeting in Vienna, we hosted a typography workshop, under the theme of multicoloured fonts. While developing version 1.1 of Colorfont.js, we put together a collection of colorfonts — variations of one font that can be used with different colours, overlaying each other.

This had us thinking about the specifics designing a font to be used with two or more colours, particularly how to “cut” a font, meaning the division of a typeface into two or more colour areas. Looking at past instances of coloured type, we began wondering which kind of cuts could be made to the glyphs, which cuts work best, how to achieve rhythm, and how to systematize the cuttings, finding if possible some kind of logic in the process.

Having all this in mind, we did a first experimental session around colorfonts in Brussels, during our residency at Constant Variable. From that workshop, everyone came up with many ideas and input for new colorfont designs, during a full afternoon around letters and colour. We took some cues from this session to organize the Colorfont Workshop in Vienna.

We had only two hours available and a mix audience of artists & programmers. We started with a quick intro to the theme and moved to dribbling with pen and paper right away. For this session we choose a set of five libre fonts: Changa One, League Gothic, M+ P Black, Monserrat and Paytone One. We printed out the uppercase latin alphabet using outlined letters and distributed them among the participants.

We wanted each person to plan in paper what they would execute later in FontForge — it’s too easy to lose oneself in the program, so the goal was to have everything fleshed out before even touching the computer. After that we moved to a quick Fontforge tutorial, focusing on techniques for subtracting parts of a glyph.

While some went forward translating their paper designs into actual colorfonts, other participants struggled with getting Fontforge to work, specifically inside OSX. Lesson learned for future workshops: the only safe way to have Fontforge running on OSX is to use a virtual machine running a GNU/Linux system; in the next workshops we’ll bring some ready-made virtual machine installations so that anyone can quickly run an instance of Fontforge without hassle.

The workshop ended with some bright surprises: not only having finished a full uppercase colorfont, Simon Budig found the time and determination to fix a selection bug in Colorfont.js.

Other participants also came up with some clever and beautiful designs, which are now showcased at the Colorfont website. Check them out!

Posted in libre type, news Tagged , , , Leave a comment

Awesome libre typography

Photo by Luís Camanho

Last Thursday we did a talk on The Awesome things libre typography enables you to do, in Viena, at the Libre Graphics Meeting 2012 (get the slides here).

We mentioned many examples and resources for working with Libre Type.
Here is a list in progress. We’ll build on it as we go along.

Libre font resources

Libre font collections:

Libre type foundries:

jQuery libraries for working with type:

Posted in libre type, news 2 Comments

The first plotter poster

Last year, after reviving an old Roland plotter, we took the chance to make some prints with it. The most refined and finished one was poster with the cover illustration of the Libre Graphics magazine issue 1.2.

The full poster took more than four hours to print. We used an A2 size fluorescent green cardboard and white and black markers. We’re a short video of the printing in action:

Plotter at work from Manufactura Independente on Vimeo.

Posted in hacks, news Tagged Leave a comment

Implied Spacing

Working with the Scribus API we wrote a script for something we named Implied Spacing.

The script removes all spaces between words and creates a gradient in the letter colouring. The rule is, as a word gets closer to its end, each letter gets progressively lighter.

It’s quite short so here it is:


from scribus import *

# change values here
font = "Bevan Regular"
fontsize = 10
linespacing = 11
defineColor("PunctColor", 0, 255, 255, 70)
defineColor("TextColor", 200, 100, 0, 50)
punct_chars = ".,?!\""

# open the text we'll use
txt = open('/home/rlafuente/proj/lgru/space/lovelikesalt.txt', 'r').read()
txt = txt.replace('\n', ' ')
# create text box
textbox_name = createText(0, 0, 595, 840, "Text1")
setText(txt, textbox_name)

# set up textbox attributes
selectObject(textbox_name)
setFont(font, textbox_name)
setFontSize(fontsize, textbox_name)
setLineSpacing(linespacing, textbox_name)
setTextColor("TextColor", textbox_name)

def allindices(string, sub, listindex=None, offset=0):
    # find all indices of a specific string
    if not listindex:
        listindex = []
    i = string.find(sub, offset)
    while i >= 0:
        listindex.append(i)
        i = string.find(sub, i + 1)
    return listindex

# get positions for all space characters
txt = getAllText(textbox_name)
spaceindexes = allindices(txt, " ")
print spaceindexes
# likewise for punctuation
punctindexes = []
for char in punct_chars: 
    idxs = allindices(txt, char)
    punctindexes.extend(allindices(txt, char))

deselectAll()

shade = 100
for i in range(1, len(txt)):
    if i in spaceindexes:
        # space
        shade = 100
    elif i in punctindexes:
        # punctuation
        selectObject(textbox_name)
        selectText(i, 1)
        setTextColor("PunctColor")
    else:
        # not space
        if shade < 20:
            shade = 20
        selectObject(textbox_name)
        selectText(i, 1)
        setTextShade(shade)
        shade -= 20

# now delete all spaces
spaceindexes.reverse() 
for i in spaceindexes:
    selectText(i, 1, textbox_name)
    deleteText() 

Posted in hacks 1 Comment