1# Graphite engine 2 3## Project CI status 4| OS | Intel 64 bit | Intel 32 bit | Arm 32 bit | 5|---------|:------------:|:------------:|:----------:| 6| Linux | [![Build Status](http://build.palaso.org/app/rest/builds/buildType:bt124/statusIcon)](http://build.palaso.org/viewType.html?buildTypeId=bt124&guest=1) | [![Build Status](http://build.palaso.org/app/rest/builds/buildType:bt123/statusIcon)](http://build.palaso.org/viewType.html?buildTypeId=bt123&guest=1) | [![Build Status](http://build.palaso.org/app/rest/builds/buildType:Graphite_Linux32bitArm/statusIcon)](http://build.palaso.org/viewType.html?buildTypeId=Graphite_Linux32bitArm&guest=1) | 7| Windows | [![Build Status](http://build.palaso.org/app/rest/builds/buildType:Graphite_Windows64bit/statusIcon)](http://build.palaso.org/viewType.html?buildTypeId=Graphite_Windows64bit&guest=1) | [![Build Status](http://build.palaso.org/app/rest/builds/buildType:bt91/statusIcon)](http://build.palaso.org/viewType.html?buildTypeId=bt91&guest=1)| | 8 9## What is Graphite? 10 11Graphite is a system that can be used to create “smart fonts” capable of displaying writing systems with various complex behaviors. A smart font contains not only letter shapes but also additional instructions indicating how to combine and position the letters in complex ways. 12 13Graphite was primarily developed to provide the flexibility needed for minority languages which often need to be written according to slightly different rules than well-known languages that use the same script. 14 15Examples of complex script behaviors Graphite can handle include: 16 17* contextual shaping 18* ligatures 19* reordering 20* split glyphs 21* bidirectionality 22* stacking diacritics 23* complex positioning 24* shape aware kerning 25* automatic diacritic collision avoidance 26 27See [examples of scripts with complex rendering](http://scripts.sil.org/CmplxRndExamples). 28 29## Graphite system overview 30The Graphite system consists of: 31 32* A rule-based programming language [Graphite Description Language](http://scripts.sil.org/cms/scripts/page.php?site_id=projects&item_id=graphite_devFont#gdl) (GDL) that can be used to describe the behavior of a writing system 33* A compiler for that language 34* A rendering engine that can serve as the layout component of a text-processing application 35 36Graphite renders TrueType fonts that have been extended by means of compiling a GDL program. 37 38Further technical information is available on the [Graphite technical overview](http://scripts.sil.org/cms/scripts/page.php?site_id=projects&item_id=graphite_techAbout) page. 39