# Laurence Penney 🐎 ## About me Hacker of apps for font engineers. Typography fan, best known as an expert on variable fonts. I work for Google, Microsoft and others to help people create and explore variable fonts. Board member of [ATypI](https://atypi.org), 2023 to present. I made [Axis-Praxis](https://www.axis-praxis.org/) so that people could play with variable fonts for the first time. I made [Samsa](https://lorp.github.io/samsa/) to expose the vector maths inside variable fonts. I made [Fencer](https://github.com/Lorp/fencer) to allow interactive distortion of designspaces, helping font engineers to create parametric fonts and smaller, more powerful variable fonts. I’m helping to extend the capabilities of OpenType itself with contributions to [avar2](https://docs.google.com/presentation/d/1jLiUvh4PoYz2sw0T0Fygj2HoMrBhmJQuGgAmoMc_Sns/), [COLRv1](https://learn.microsoft.com/en-us/typography/opentype/spec/colr) and [VARC](https://github.com/harfbuzz/boring-expansion-spec/blob/main/VARC.md). I co-created [MyFonts](https://www.myfonts.com), which became the world’s leading font retailer. I co-created [FauxFoundry](https://www.fauxfoundry.com), which demonstrated that parametric fonts can provide elegant fallback behaviour to web browsers. I organize [Letter Luvvers](https://www.letterluvvers.org), a meet-up group for practitioners and enthusiasts of fonts, lettering, signwriting and letterpress. I like trains, cars, book cataloguing, [one-dimensional maps](https://www.lorp.org/resources/1dmaps/365typo%20242-244%20penney.pdf) and Claudius Ptolemy. I’m based in Bristol, UK. Feel free to hire me, or ask me to speak at your conference, company or university. [Contact](#Contact). ## Things I’ve made ### Fencer (2024) #### [Website](https://lorp.github.io./fencer) | [GitHup repo](https://www.github.com/lorp/fencer) | [Detailed presentation](https://www.youtube.com/watch?v=ArRMpIqNJVs) Web app that allows font engineers to edit the designspace mappings of variable fonts interactively. Mappings, compiled as the _avar_ table in OpenType fonts, enable the full potential of variable fonts to be opened up to end users in such a way that they are not overwhelmed. However, creating mappings is a new activity for font engineers, and non-trivial mathematically — interactive editing helps significantly in understanding the process. ### CFF2 specification document (2021–2022) #### [Website](https://learn.microsoft.com/en-us/typography/opentype/spec/cff2) The CFF2 format, introduced in 2016 with OpenType 1.8, extends the PostScript-style CFF font format to handle variable fonts. However it suffered from slow adoption compared with that of TrueType variable fonts. I identified many shortcomings in the readability and accuracy of the CFF2 specification, and in 2021–2022 undertook a full rewrite (~20,000 words). After review by specification experts from Adobe, Microsoft and others, it was published in May 2024. ### Samsa (2019–) #### [Website](https://lorp.github.io/samsa/) | [GitHub repo](https://github.com/Lorp/samsa) | [Detailed presentation](https://www.youtube.com/watch?v=T75bZ7ooiFQ) Web app and JavaScript library for visualizing geometric transformations and other data inside variable fonts. Initiated in 2017, the project benefited in 2019 from significant support from Google. Font engineers and typeface designers use Samsa to understand and debug how a glyph’s control points move when variation axes are adjusted. The app also exports instances (non-variable font files) and SVG graphics for QA and type specimens. The OpenType tables STAT and avar can also be inspected. The underlying library, samsa-core.js, is the basis for a fast Node.js command-line utility that generates static fonts from variable fonts, as well as a polyfill demonstrating how to add variable font support to existing systems. Samsa is written in standard JavaScript with no dependencies, and is published with a libre Apache 2.0 license. ### FauxFoundry (2019–), with [Irene Vlachou](https://www.ivtype.com) #### [Website](https://www.fauxfoundry.com) | [ATypI 2019 presentation](https://www.youtube.com/watch?v=pYNz-fST-Sg) A webfont service providing matching synthetic fonts to expand the character set of Latin fonts. A user drag-drops a Latin font onto FauxFoundry, which generates a few lines of CSS for the user to incorporate into their website. The CSS links to a synthetic Greek font created on-the-fly, hosted at fauxfoundry.com, and specified as the fallback font in the font-family property. Currently working for Greek, providing Greek fallback fonts for fonts that lack Greek. The system works by taking 12 measurements from key glyphs in the Latin font (corresponding with the [Type Network parametric axes](https://variationsguide.typenetwork.com)), and applies them as variation settings for the 12 axes of our parametric font. We presented FauxFoundry at [ICTVC Patras 2019](https://ictvc.org/2019/en/), at [ATypI Tokyo 2019](https://www.atypi.org/conferences/tokyo-2019) in our talk [Parametric Fallback Fonts for the Web](https://www.youtube.com/watch?v=pYNz-fST-Sg) (20 mins), and at [Grapholinguistics in the 21st Century](https://grafematik2020.sciencesconf.org). Specimen booklets: [1st edition](https://archive.org/details/fauxfoundry-fauxgrec-2019/mode/2up), [2nd edition](http://futuretext.org/fauxgrec-a-la-grecque-specimen-by-fauxfoundry). ### Axis-Praxis (2016–) #### [Website](https://www.axis-praxis.org/) | [Launch video](https://vimeo.com/189350146) | [Typo Labs 2017 presentation](https://www.youtube.com/watch?v=16QIZrRxafY) The original playground website for variable fonts, launched October 2016, enables font makers and front-end developers (and others fascinated by the new variable font possibilities of OpenType 1.8) to play with a selection of the new fonts. Font makers can also drop their own fonts onto the app and immediately test them in an environment resembling a design application, with variable font axis sliders alongside controls for font size, text alignment and OpenType features. A [blog](https://www.axis-praxis.org/blog), [resources page](https://www.axis-praxis.org/resources) and [Twitter feed](https://twitter.com/axis_praxis) actively encourage the new possibilities of variable fonts. ### Variable font experiments (2016–) * Muybridge’s galloping horse as a variable font: [website](https://codepen.io/lorp/pen/PRdNYq) * Fit-to-Width: [Axis-Praxis blog post](https://www.axis-praxis.org/blog/2016-11-24/10/demo-resize-textbox-with-variable-fonts-aka-fit-to-width) [GitHub](https://github.com/Lorp/fit-to-width) [Skia](https://www.axis-praxis.org/demo/1/resize-textbox) [Gimlet](https://www.axis-praxis.org/demo/5/resize-textbox-gimlet) [Avenir](https://www.axis-praxis.org/demo/7/resize-textbox-avenir) [Fit](https://www.axis-praxis.org/demo/4/resize-textbox-fit) [responding to slider]([Fit-to-Width](https://codepen.io/lorp/pen/rKMvZP) [responding to window width](https://codepen.io/lorp/pen/BVOMgj) * [Rotating cube](https://www.axis-praxis.org/playground/cube/) * [Progressive disclosure for variable fonts](https://codepen.io/lorp/pen/KeKogL) * [Simple weight slider](https://codepen.io/lorp/details/ZEbqGYG) ### MyFonts (1999–2017) #### [Website](https://www.myfonts.com/) Founder member of the team that created [MyFonts](https://www.myfonts.com/) as a startup within Bitstream, and developed it to become market leader. Multiple roles included: project manager, database design lead, recruiting key specialists, marketing, foundry relations, foundry dispute resolution, and lead developer of several systems including font import and webfont processing. Consulting continued through the company’s 2012 acquistion by Monotype, until 2017. ### Other font projects **TTJS** (2013) Prototype web app demonstrating the practicality of the web browser (via JavaScript and SVG) to offer cross-platform font parsing, interactive glyph outline editing and fast exporting of font binaries. Fonts can be loaded and glyph outline points can be dragged around. Edited fonts are saved to the Downloads folder. **TypeCaster** (1996–1998) TrueType font inspector for Windows. Key ability is debugging and demonstrating TrueType hints by stepping through a glyph’s instructions, while displaying its changing outline. **TrueType hinted fonts** (1996–) Hinting TrueType fonts using Visual TrueType and FontLab for various clients. **TrueType C interpreter** (1993–1998) Rasterizer and TrueType hint interpreter written in C, for use on industrial printers. **Interactive Typeface Manipulator** (1991–1992) Prototype parametric font engine, written in C for Unix/X-Windows. This was my final-year university project (B.Sc. Computer Science, University of Wales, Cardiff). ## Speaking and writing about fonts **[Intro to avar2](https://www.youtube.com/watch?v=j7unMVZOcaw)** Presenting the updates to the avar table in OpenType fonts, explaining how distorting a variable font’s designspace enables many things: faithful & efficient representation of the type designer’s intent, HOI fonts and parametric fonts *(ATypI 2022 Tech Talks, 57 mins)* **[Typesetting Trains](https://www.youtube.com/watch?v=2IeaPuNM6Nc)** A talk about the various ways trains and railways have been represented using fonts, and how thinking about trains could influence developments in font technology *(ATypI All Over 2020, 20 mins)* **[Samsa video workshop](https://www.youtube.com/watch?v=T75bZ7ooiFQ)** Online video workshop showing font makers around my variable font visualization app Samsa (see above), including delta sets, the STAT and avar tables, the export of instances and SVG images, and making instances on the command line *(YouTube, May 2020, 90 mins)* **[FauxFoundry: parametric fallback fonts for the web](https://www.youtube.com/watch?v=pYNz-fST-Sg)** Introducing FauxFoundry, which creates matching Greek fallback fonts from a parametric variable font *(ATypI Tokyo 2019, 20 mins)* **[Talking to web designers about variable fonts](https://www.youtube.com/watch?v=lVByGlcYEiY)** Explaining the efficiency, tweakability and responsiveness of variable fonts to CSS people, and learning from CSS people *(TypoLabs Berlin 2018, 40 mins)* **[Laurence Penney on Variable Fonts](https://pixelpioneers.co/blog/2018/speaker-spotlight-laurence-penney)** Interview by Oliver Lindberg before my talk at Pixel Pioneers, Bristol *(Pixel Pioneers, 2018)* **[Variable fonts for CSS developers](https://www.dotconferences.com/2017/11/laurence-penney-variable-fonts)** A million times the possibilities in much less bandwidth *(dotCSS Paris 2017, 20 mins)* **[Variable Fonts: a talk with Laurence Penney](https://medium.com/@Lorp/variable-fonts-a-talk-with-laurence-penney-d6f8e9777007)** Interview with Clara Weinreich of Slanted Publishers *(Slanted Publishers, 2018)* **[Axis-Praxis and variable fonts](https://www.youtube.com/watch?v=16QIZrRxafY)** Some thoughts from the first few months of variable fonts *(TypoLabs Berlin 2017, 40 mins)* **[Axis-Praxis intro](https://vimeo.com/189350146)** Short video made to launch Axis-Praxis, the variable font playground for the web, on 28 October 2016 *(Vimeo, 5 mins)* **[Delighting and reassuring: fontmakers as toolmakers](https://www.youtube.com/watch?v=a_0icx5icNI)** Making fonts delightfully, using colour, variations and more *(Typofest 2016, 32 mins)* **[TrueType Typography](http://www.truetype-typography.com)** A fan site for TrueType font technology, explaining outlines, hinting, GX fonts, and various terminology. Includes an interview with TrueType inventor Sampo Kaasila. Not updated since around 1999 but people tell me it’s still useful! *(Website, 1996–1999)* **University of Reading, Department of Typography & Graphic Communication** Numerous workshops as visiting lecturer on the subjects of TrueType hinting, variable fonts and parametric fonts for the [MA Type Design](http://typefacedesign.net/courses/matd/) and [TDi](http://typefacedesign.net/courses/tdi/) courses *(2002–present)* **Talks and workshops at universities, companies and conferences** on variable fonts, hinting and typeface design. Hosts include TYPO Labs Berlin, PJATK Warsaw, University of Gothenburg, Kerning Faenza, dotCSS Paris, isType Istanbul, TEI Athens, Typotechnica Heidelberg, ICTVC Patras, Ampersand Brighton, ATypI (various), Tiro Typeworks, Monotype, Google, Microsoft. ## Beyond fonts ### One-dimensional maps (2010–) #### [365typo article](https://www.lorp.org/resources/1dmaps/365typo%20242-244%20penney.pdf) | [Workshop photos](https://www.flickr.com/photos/lorp/albums/72157685307428835) | [Sketchnotes by Eva-Lotta Lamm](https://www.flickr.com/photos/evalottchen/8966206865/) Ongoing research into historical, current and theoretical representations (including maps) of one-dimensional geographic features. My use of the term “one-dimensional” comes from the idea that rivers, roads, railways, coastlines, frontiers, flight paths and other journeys are better served by graphics of extreme aspect ratios than by maps in a roughly square format. ### SnapMap (2003–) #### [3D flight between photos (video)](https://www.lorp.org/resources/snapmap/video/SnapMap200411120722_640x480_h264.mp4) | [Slingshot view (video)](https://www.lorp.org/resources/snapmap/video/SnapMap-piccadilly-circus.mp4) | [WhereCamp 2011 Berlin (slides)](https://drive.google.com/file/d/0Bx0VD0qF19emUGhuWFZIdkdtZzA/view) A system for recording and displaying photos according to their geographic location, orientation and focal length as well as a timestamp. In principle all photographs (and many drawings and paintings) could have this metadata added, if only approximately. In SnapMap, photographs appear in 3D space as pyramid-shaped [viewing frustums](https://en.wikipedia.org/wiki/Viewing_frustum) that define the camera’s view, or in 2D map views as triangular cross-sections of rotated frustrums. The vast majority of photographs being approximately horizontal leads to the idea of the Slingshot View, defined by a user specifying three latlongs on a map. ### Talks and workshops Presentations and workshops on one-dimensional maps, schematic maps and the SnapMap project. Hosts include universities ([University of Reading](http://www.reading.ac.uk/ready-to-study/study/subject-area/typography-and-graphic-communication-pg/ma-information-design.aspx), [University of the Arts](https://www.uarts.edu), [TU Wien](https://www.tuwien.at/en/), [BHT Berlin](https://www.bht-berlin.de)), learned societies ([Information Design Association](https://www.ida-funding.org), [Association for Geographic Information](https://www.agi.org.uk), [International Map Collectors’ Society](https://www.imcos.org)) and hacker meet-ups ([GeoMob](https://thegeomob.com), [WhereCamp](https://geoit.org/wherecamp/), [State of the Map](https://stateofthemap.org)). Some talks online: * [Schematic railway map of Belgium by Leloup, 1859](https://www.youtube.com/watch?v=u5XnoMTowhQ) *(International Map Collectors’ Society, November 2021, 13 mins)* * [Claudius Ptolemy and the first geospatial database](https://www.youtube.com/watch?v=cxHR4gSOimk) *(GeoMob, October 2020, 25 mins)* ## Contact me Email [lorp@lorp.org](mailto:lorp@lorp.org) Mastodon [@lorp@typo.social](https://typo.social/@lorp) Twitter [@lorp](https://twitter.com/lorp/) [@axis_praxis](https://twitter.com/axis_praxis/) [@fauxfoundry](https://twitter.com/fauxfoundry/) [@letterluvvers](https://twitter.com/letterluvvers/) Websites [LORP.ORG](https://www.lorp.org/) [Axis-Praxis](https://www.axis-praxis.org/) [FauxFoundry](https://www.fauxfoundry.com) [Samsa](https://lorp.github.io/samsa/src/samsa-gui.html) Other [GitHub](https://github.com/Lorp) [Flickr](https://www.flickr.com/photos/lorp/) [Facebook](https://www.facebook.com/axispraxis/) [CodePen](https://codepen.io/lorp) [LinkedIn](https://www.linkedin.com/in/laurence-penney-96682266/)