Philosopher is a free font from Google. See https://fonts.google.com/specimen/Philosopher The font was produced into a sprite sheet using BMFont 64, version 1.14b_beta. See https://www.angelcode.com/products/bmfont/ All four weights, Regular, Bold, Italic and Bold Italic, are vendored in Philosopher-ttf.7z, taken from https://github.com/google/fonts/tree/b52eb558fc7bee81ee125e306dc7fdfe11e31143/ofl/philosopher (2024-06-26, Version 2.001). Only Regular has sheets so far. The .ttf files are the repository's, byte for byte: Philosopher-Regular.ttf sha256 e1cba0b5003b5694f1d6cc0fbe629f78362ad38a9ffd4d0cb7abfd9698a575ed Philosopher-Bold.ttf sha256 2277c78b95657274b949f40b64b58d18fe7bbe0ec968c104d38906ec700024ea Philosopher-Italic.ttf sha256 1ec5f0cc140a5daefca74692c1693c224aaac6936b8eda16598d56eba94cf008 Philosopher-BoldItalic.ttf sha256 a8abb9341d1dc574d301edebf9ad8ea68dd0ae61ca1fa640b9bbdb5f388013c4 The Regular file replaced an earlier copy that also said Version 2.001. The two have the same 538 mapped characters with identical outlines and advances, and differ in three unmapped glyphs and some layout tables, so the existing sheets did not change. The .ttf files are packed to keep the tree small. ..\MakeFonts.py unpacks them under Junk\Fonts when it regenerates a sheet, and `MakeFonts.py --unpack Philosopher` leaves them there for the BMFont window. Each .bmfc generates one sheet, one face at one size, and BMFont cannot pack several together. Glass only loads single-page fonts, so a page is the smallest power of two the size's faces fit on. ..\MakeFonts.py names it for the family and size, with no face, and stacks the faces of a size into it once there is more than one: Philosopher-18px_0.png 64x128 Philosopher-Regular-18px Philosopher-32px_0.png 128x128 Philosopher-Regular-32px Philosopher-64px_0.png 256x256 Philosopher-Regular-64px 18px rather than the 16 its Liberation Sans counterpart uses: Philosopher spends only 0.36 of the em on x-height against Liberation's 0.47, and 18 is the smallest size where that rounds up to 7 pixels with no stem rounding to 2. Sweeping 14-20px, only 17 and 18 manage both -- below them the lowercase is 5-6 pixels, and by 19 the hinter starts rounding stems up again and the text goes blotchy. Sizes double so they land on each other's pixel grid exactly, which keeps a sheet scaled to another size sharp instead of resampling between them. The 32px sheet is the original checked-in atlas and is deliberately not regenerated -- this machine's font smoothing rasterizes a few glyphs a pixel differently, so re-running BMFont over it would change a shipping asset for no gain. Sheets below 20px turn useSmoothing and useClearType off: at that scale GDI's smoothing spreads every sub-pixel stem across two pixels at partial coverage so none reaches full opacity, which reads as grey mush rather than text. Above 20px smoothing wins and the sheets keep the settings the 32px one was tuned with. They keep useRenderFromOutline off, unlike Liberation Sans, which needs it below 20px to stop GDI rounding its 'f' stem to 2px. Philosopher wants the opposite: its lowercase is short enough here that GDI snapping features to the pixel grid beats a faithful outline fill, which leaves the letterforms broken. The setting belongs to the face, not the size. Philosopher is a display face, so 16px is about its floor -- prefer Liberation Sans for body text. Each sheet also packs a U+2220 ANGLE mark from its own *-angle.png, since Philosopher has no such glyph and the phasor labels need one. Those .png files are generated -- see ..\AngleGlyph\README -- and are checked in so a sheet rebuilds from its .bmfc alone. The 32px sheet is the exception in how it got there: regenerating it would re-rasterize the original atlas, so the mark was instead drawn into the one channel its packer left empty and a char record appended. Every other glyph, and every pixel already carrying one, is byte-identical to before. Its .bmfc does declare the icon, so a regeneration would produce the glyph -- but it would also re-cut every other one, which is the thing that sheet exists to avoid.