This is the Cosic visual identity repository. = Structure of the repository = docs : postscript language documentation, reference material on moire fonts : fonts inspiration : inspirational material literaldraw-research : experiments with Literal Draw, in particular with the svg-effect command that allows to tile a pattern over an image and transform (scale or rotate) the former according to the HSL/RGB values of the image. patterns : repository of patterns in both svg/ps extracted from the moiré effect pdf, or made by "mouse". research : Edu's experiments with patterns from the PDF compiling moiré effects. ps : Home of the hand-made postcript files = Links = * [Links to many PostScript resources](http://www.inkguides.com/postscript-programming.asp) * [PostScript Tutorial](http://www.tailrecursive.org/postscript/postscript.html) * [PostCanvas: a JavaScript PS interpretor](http://www.feiri.de/pcan/) * [Golfing in PostScript](https://sites.google.com/site/codegolfingtips/Postscript) == Moire == * [Examples of random moire](http://4z.com/people/emin-gabrielyan/public/070212-random-moire/) * [Lots of moire figure in PostScript already!!](http://diwww.epfl.ch/w3lsp/books/moire/figs1.html) * [Moire demonstration kit](http://diwww.epfl.ch/w3lsp/books/moire/kit1.html) == Circles == * [Power of a Point](http://en.wikipedia.org/wiki/File:E8PetrieFull.svg) * [Circle](http://en.wikipedia.org/wiki/Circle) * [Inversive geometry](http://en.wikipedia.org/wiki/Inversive_geometry) = Font Embedding = There are only two options when it comes to embedding fonts in PostScript: PostScript Type 1 or Type 42. Type 42 is generally easier to convert into from TrueType, so that is likely what we will be using. == Testing via TTF == For testing purposes we can simply use TTF files (OpenType fonts will have to be converted to TTF first; see 'fonts/tools/otf2ttf'). Though this will make the git repository slightly fatter, it gives us the ability to easily switch fonts in our designs. At some point, however, we will want to create a subset font and convert it to Type 42. For testing purposes, it is necessary to maintain a Fontmap file which Ghostscript will read in order to easily load/switch a font. Included is 'fonts/tools/ttfontmap', which can be invoked as ttfontmap cosic/fonts > cosic/fonts/Fontmap Then you are almost finished. The final step is to pass in the 'cosic/fonts' directory using the -I switch for gs (a la `gs -I/home/serk17/OSP/cosic/fonts`). For the sake of this project, it might be useful to add it as an alias to your shell's RC file (~/.bashrc, ~/.zshrc, etc). == Subsetting == In the 'fonts/tools' directory I have included an archive which contains a Ruby library for modifying TTF. Included in this archive is a tool called 'ttfsubset' which takes a TTF file and a textfile of characters as input and produces a new TTF containing only those characters as the output. There is already a text file, 'fonts/chars.txt', which contains 'COSI' and 'cosi'. The 'ttfsubset' tool is called via `ruby ttfsubset`. I installed it in my own '~/.scripts' directory (which is in my $PATH) after running `sudo ruby setup.rb` in the 'ruby-ttf' directory. NOTE: The 'fonts/lato-black.ttf' and 'fonts/lato-bold.ttf' files are both already subsetted. == Converting to Type 42 == This is as simple as installing the 'ttftotype42' program, generally available in distribution repositories. You then paste the resulting output into the top of your .ps file. = Tips = == Clean postcript file from inkscape == It is possible to improve the readability of inkscape generated postcript files by setting the document unit to "point" and then using the grid to snap the curve/line points to round values. However it appears that it is still necessary to fix some floating points values by hand, but it is much better. SVG Cairo uses aliases to shorten the files, and it is necessary to search n replace a couple of aliases (mainly c to curveto, and m to moveto). Might be automated, not sure... # meeting notes - the "color" of the patterns; tweak parameters so that it doesn't get too dark - timeline: as soon as possible - they will send and discuss amongst professors - public access to source code isn't a problem - feedback process - send purchase order for "first" part - will hopefully have a decision for the second part by 2 august