{"id":20595428,"url":"https://github.com/adobe-type-tools/drawbotproofing","last_synced_at":"2026-03-14T09:03:16.599Z","repository":{"id":193698831,"uuid":"652841328","full_name":"adobe-type-tools/drawBotProofing","owner":"adobe-type-tools","description":null,"archived":false,"fork":false,"pushed_at":"2024-12-18T17:23:18.000Z","size":36405,"stargazers_count":34,"open_issues_count":0,"forks_count":6,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-04-14T23:43:29.613Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/adobe-type-tools.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-06-12T22:54:36.000Z","updated_at":"2025-03-19T10:43:58.000Z","dependencies_parsed_at":"2024-12-18T17:37:34.449Z","dependency_job_id":null,"html_url":"https://github.com/adobe-type-tools/drawBotProofing","commit_stats":null,"previous_names":["adobe-type-tools/drawbotproofing"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adobe-type-tools%2FdrawBotProofing","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adobe-type-tools%2FdrawBotProofing/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adobe-type-tools%2FdrawBotProofing/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adobe-type-tools%2FdrawBotProofing/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/adobe-type-tools","download_url":"https://codeload.github.com/adobe-type-tools/drawBotProofing/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248981259,"owners_count":21193143,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-16T08:13:00.827Z","updated_at":"2026-03-14T09:03:16.589Z","avatar_url":"https://github.com/adobe-type-tools.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DrawBot scripts for proofing fonts and/or UFOs.\n\n## Prerequisites\n\n- we recommend using a Python virtual environment. You can easily create\nand activate one with the following commands in Terminal:\n\n```bash\npython3 -m venv my_venv\nsource my_venv/bin/activate\n```\n\n- once you have a virtual environment activated, the proofing tools themselves\ncan be installed via `pip`:\n\n```bash\npip install git+https://github.com/adobe-type-tools/drawBotProofing.git\n```\nFurther installation instructions can be found in [INSTALLATION.md](INSTALLATION.md).\n\nYou’re now ready to start proofing!\n\n----\n\n\n### `accent-proof`\n\nProof of all Latin accents supported by a given font, with example words for\neach accent (both upper- and lowercase). Additionally, words with “atomic”\nLatin base glyphs (such as æðøß) will be shown.\n\nInput:\n* font file(s), or folder(s) containing font files\n\n![accentProof.py](_images/accentProof.png)\n\n----\n\n### `alphabet-proof`\n\nCreates example pages for:\n\n- general alphabet (upper- and lowercase)\n- spacing proofs\n- some sample words\n\nModes (`proof`, `spacing`, `sample`) can be chosen individually, or all at once\n(`all`).\n\nWriting systems supported are `lat`, `grk`, `cyr`, `ara`, `tha`, and `figures`.\nBy default, supported writing systems are automatically chosen on a per-font basis.\n\nKerning can be toggled off (`-k`).\n\nOptionally, a sample string (`-s`), or an input text file file (`-t`) can be\nspecified. When using an input a text file, there will be no reflow (which may\nmean that lines exceed the right edge of the page). A double-line break in the\ntext file translates to a new page in the proof.\n\nInput:\n* font file(s), or folder(s) containing font files\n\n![alphabetProof.py](_images/alphabetProof_1.png)\n\n![alphabetProof.py](_images/alphabetProof_2.png)\n\n![alphabetProof.py](_images/alphabetProof_3.png)\n\n----\n\n### `charset-proof`\n\nVisualizes a given (Adobe) character set.\nThe default charset is AL-3. Code points not supported in the font at hand will\nbe shown as a .notdef glyph (but are still present as text in the PDF file).\n\nMore information on Adobe’s character sets:\n\n- [Latin](https://github.com/adobe-type-tools/adobe-latin-charsets)\n- [Cyrillic](https://github.com/adobe-type-tools/adobe-cyrillic-charsets)\n- [Greek](https://github.com/adobe-type-tools/adobe-greek-charsets)\n\nInput:\n* font file(s), or folder(s) containing font files\n\n![charsetProof.py](_images/charsetProof_1.png)\n\n![charsetProof.py](_images/charsetProof_2.png)\n\n![charsetProof.py](_images/charsetProof_3.png)\n\n----\n\n### `context-proof`\n\nCreates example pages for usage of a specific letter or letter combination.\n\nNeeds a word list as an input file, such as the word lists available at\nhttps://github.com/hermitdave/FrequencyWords/tree/master/content/2016\n\nInput:\n* font file(s), or folder(s) containing font files\n\n![contextProof.py](_images/contextProof_1.png)\n\n![contextProof.py](_images/contextProof_2.png)\n\n----\n\n### `figure-spacing-proof`\n\nSimple script to check figure spacing in fonts or UFOs (without kerning).\nFor each figure suffix found (such as .tosf), a new spacing page is made.\n\nInput (pick one):\n* folder(s) containing UFO- or font files\n* individual UFO- or font files\n* designspace file (for proofing UFO sources)\n\n![figureSpacingProof.py](_images/figureSpacingProof.png)\n\n----\n\n### `glyph-proof`\n\nCreates a PDF document which helps comparing glyphs to each other.\nVarious modes are possible – the default is an\n[Autopsy](https://vimeo.com/116063612)-like showing of glyphs in a grid view.\nOther modes include\n* `gradient` (horizontal waterfall)\n* `single` (page-by-page)\n* `overlay` (superimposed outline view)\n\nInput (pick one):\n* folder(s) containing UFO- or font files\n* individual UFO- or font files\n* designspace file (for proofing UFO sources)\n\nIn the input filtering process, UFO files are preferred to fonts, OTFs to TTFs.\nIf results are unexpected, it helps to specify input files one-by-one.\n\n![glyphProof.py](_images/glyphProof_1.png)\n\n![glyphProof.py](_images/glyphProof_2.png)\n\n![glyphProof.py](_images/glyphProof_3.png)\n\n![glyphProof.py](_images/glyphProof_4.png)\n\n----\n\n### `glyphset-proof`\n\nVisualizes the complete glyphset of a font or UFO on a single page.\nThe output is good to use with a diffing tool like `diff-pdf` in a later step.\n\nThe glyphset can be filtered with a regular expression (for example,\nuse `-r \".*dieresis\"` to show all glyphs whose names end with -dieresis).\n\nInput (pick one):\n* folder(s) containing UFO- or font files\n* individual UFO- or font files\n* designspace file (for proofing UFO sources)\n\n![glyphsetProof.py](_images/glyphsetProof_1.png)\n\n![glyphsetProof.py](_images/glyphsetProof_2.png)\n\n![glyphsetProof.py](_images/glyphsetProof_3.png)\n\n----\n\n### `overlay-proof`\n\nProofing tool for overlaying releated fonts on top of each other.\nSome smartness is used to make sure fonts end up on the same baseline.\n\nTo-Do:\n- make font pairing smarter\n- allow overlaying static and VF\n\nInput (pick one):\n* folder(s) containing font files\n* individual font files\n\n![overlayProof.py](_images/overlayProof.png)\n\n----\n\n### `reference-proof`\n\nCreate samples for a string of characters, set in all fonts that support it.\nThe choice of fonts is either all installed fonts (no argument), or all fonts\nin a given folder tree. The font list can be filtered by supplying a regular\nexpression.\n\nThis proof helps solving the question\n“How do other fonts deal with this weird glyph?”\n\nInput:\n1. sample characters\n2. folder containing font files\n   (or no argument, which means parsing all installed fonts)\n\n![referenceProof.py](_images/referenceProof_1.png)\n\n![referenceProof.py](_images/referenceProof_2.png)\n\n![referenceProof.py](_images/referenceProof_3.png)\n\n----\n\n### `text-proof`\n\nCreate example paragraphs corresponding to a given character set.\n\nDefault mode is creating single-page PDF with a random subset of the requested\ncharset. Optionally, a full charset can be consumed systematically, to show\nas many characters as possible.\nThe alternative mode is using a text file as input, to achieve more predictable\n(and comparable) output. In text-mode, the output is limited to a single\npage (no matter how long the text file may be).\n\nKnown bug:\nLine spacing may become inconsistent if a character set beyond the font’s\ncharacter support is requested (this is a macOS limitation caused by the\nvertical metrics in a given fallback font).\n\nInput:\n* font file(s), or folder(s) containing font files\n\nOptional input:\n* choice of text file (`-t`) or charset name (`-c`)\n* secondary font(s) (`-s`) (for mixing Roman/Italic, for example)\n\n![textProof.py](_images/textProof_1.png)\n\n![textProof.py](_images/textProof_2.png)\n\n![textProof.py](_images/textProof_3.png)\n\n----\n\n### `unicode-chart-proof`\n\nCreates character charts similar to those appearing in The Unicode® Standard,\nbut using the supplied font (and only the characters present in the font).\n\nInput: font file or folder containing font files\n\nCLI Inputs: see help\n\n![unicodeChartProof.py](_images/unicodeChartProof_1.png)\n\n![unicodeChartProof.py](_images/unicodeChartProof_2.png)\n\n![unicodeChartProof.py](_images/unicodeChartProof_3.png)\n\n----\n\n### `vertical-metrics-comparison-proof`\n\nCreates pages with example characters to visualize the variation\nof vertical metrics across a typeface family.\n\nInput (pick one):\n* folder(s) containing UFO files or font files\n* individual UFO- or font files\n* designspace file (for proofing UFO sources)\n\n![verticalMetricsComparisonProof.py](_images/verticalMetricsComparisonProof.png)\n\n----\n\n### `vertical-metrics-proof`\n\nCreates simple view which illustrates all vertical metrics\nset in the font metadata. Additionally, tallest and lowest glyphs are shown.\n\nUsing the -e option, the number of reported extreme glyphs can be modified.\n\nInput:\n* font file(s), or folder(s) containing font files\n\n![verticalMetricsProof.py](_images/verticalMetricsProof_1.png)\n\n![verticalMetricsProof.py](_images/verticalMetricsProof_2.png)\n\n![verticalMetricsProof.py](_images/verticalMetricsProof_3.png)\n\n----\n\n### `waterfall-proof`\n\nCreates pages of example words for a list of fonts, arranged in waterfall-like\nfashion (both vertically and horizontally).\n\nThe proof text comes from the waterfall_horizontal and waterfall_vertical text\nfiles found in the `_content` folder.\n\nInput:\n* folder containing font files\n\n![waterfallProof.py](_images/waterfallProof_1.png)\n\n![waterfallProof.py](_images/waterfallProof_2.png)\n\n----\n\n\n## Acknowledgements\n\n- \"en_10k.txt\" is based on [en_50k.txt](https://github.com/hermitdave/FrequencyWords/blob/525f9b560de45753a5ea01069454e72e9aa541c6/content/2016/en/en_50k.txt) from the [FrequencyWords](https://github.com/hermitdave/FrequencyWords) project, Copyright (c) 2016 Hermit Dave\n- fonts included in this distribution are subject to the SIL Open Font License, Copyright 2016-2023 Adobe.\n- Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the United States and other countries.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadobe-type-tools%2Fdrawbotproofing","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fadobe-type-tools%2Fdrawbotproofing","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadobe-type-tools%2Fdrawbotproofing/lists"}