wiki:Compositor
Warning: Can't synchronize with repository "(default)" (Unsupported version control system "svn": No module named svn). Look in the Trac log for more information.

Compositor is an OpenType layout engine.

This layout engine is not intended to be a high-volume production grade engine. It is meant to be an engine that type designers can use to test their OpenType fonts.

The engine is written in Python.

The engine supports almost all of the GSUB and GPOS tables. The known issues are:

  • GSUB Lookup Type 8 (Reverse Chaining Context) is not supported.
  • GPOS Lookup Types 3, 4, 5 and 6 are probably not supported properly.
  • LookupFlag.RightToLeft is not supported.
  • The Ignore Format and Extend characters, except when they appear at the beginning of a region of text. portion of  Unicode word boundary algorithm is not implemented in the boundary detection functions. I don't understand it.

Things that need more testing to make sure that they are working correctly:

  • GPOS Lookup Types 3, 4, 5 & 6.
  • init, medi, fina and isol feature support.

Any information about these issues, code patches or bug reports would be greatly appreciated.

If you would like to test the engine, FeatureProof is a Mac OS X application built on top of Compositor.

Implementation Notes

The case conversion algorithm is based on the  Unicode case conversion information.

The word boundary detection used for case conversion and the positional features is based on the  default Unicode word boundary algorithm. No special language dictionaries are used.

Dependencies

  •  FontTools You'll need to check out the latest version from CVS to get full functionality.
  •  Numeric FontTools requires the old Numeric package.

Source Code

You can get the latest beta version as a bundle  here, you can check out the current development version with Subversion at  http://svn.typesupply.com/packages/compositor or you can browse the source code here.