Saturday, August 24, 2013

Setup Mountain Lion with the freetype-py library

Today wanted to start exploring how I'm going to create a generic representation of a character based on the fonts information. However since I have changed my laptop I need to get the framework setup again, so I'll describe the process here for future use.

I have a mountain lion mac (which I love), running v10.8.4. In order to run the freetype-py library, the freetype library needs to be installed, which in turn requires GNU Make. freetype-py is a python binding to the freetype library that is written in C. Since I don't want to write this in C unless I have to, I'll see if I can get everything I need from freetype-py. If not I may take a look at the Ruby binding for freetype: ft2-ruby.

So the steps were:

  1. Download GNU Make and run the configuration file. 
  2. Download FreeType.
  3. From the root of the freetype folder run the following commands (as described in this post):
  4. ./configure
    make
    sudo make install
  5. Download FreeType-py.
  6. From the freetype-py root directory run:
    python setup.py build
    python setup.py install
    To verify the system is setup correctly try entering the python shell and run:
    import freetype
    If no error occurs the installation of freetype and freetype-py was successful.
  7. Next I wanted to also install matplotlib so I can run the example I was interested in. For that I followed the installation steps describe here.
  8. Finally I was able to run the glyph-vector examples that display the use of outlines in the library!
Well, that only took way too many hours...

Sunday, August 11, 2013

Meeting with Alex on Aug 7

We discussed mainly the need to focus the tasks this visualization will enable. There are so many directions this can take and so much information this data represents that without first defining the tasks it is extremely hard to decide on a direction. So here is a first run:

  1. Determine strongest visual themes of different writing systems
  2. Make a visual comparison between writing systems
  3. Find story behind above connection - historical / geographical
Based on this, I'm thinking on the main page described above with an emphasis on visual themes and not just space distributions. A connected graph that defines the resemblance of writing systems and a third layer, that is to be determined that exposes the story behind.

First steps

Starting from the two projects done as part of cs-171 visualization class, I was trying to define what it is that I want to do for my thesis. With Hanspeter guidance I started thinking of the tasks I want to enable in the visualization and came up with:


  • What are the visual themes of a given writing system?
  • How visually similar are different systems?
  • What are the connections between the similarity level of writing systems and their geographical and historical proximity?



Then I met with Alex and with his help I started thinking of how to give form to the data that can help answer the research questions. A few important notes that came up in the meeting were:



In parallel I was working with Jeff in order to complete my Thesis proposal and have it approved. This included summarizing the previous projects, investigating some of the technical aspects of the implementation and of course, above all, trying to design the project.

I have had several views in mind - a connected graph and a map of the world were the main ones. I realized that the space distribution view is effective for visual comparison and decided to use it as well. However this view represented spoken languages and I will want to combine them into writing systems. To this I wished to add sorting and filtering.

Sorting by:


  • Convexity
  • Density
  • Segmentation
  • Number of spoken languages

  • Filtering by:


  • Geography (continent)
  • History (time of writing system creation)

  • (add images)


    I was thinking of the transition between the visualizations and decided a tabbed layout makes most sense.

    (add images)

    As for the main view, the space distribution did not necessarily provide a strong sense of the visual themes of a given writing system (example Thai) so I am trying to find a better way of capturing it. I'm currently focusing on the idea of curve fitting (either based on the space dist. or using the contours provided by the glyph library.

    I have issues gathering the information for the history and geography layers - it is too fuzzy and not  well structured enough for scripting. How do I determine the geography of a given script? Do I manually enter the time period for each language?