{"id":20161749,"url":"https://github.com/bskp/mimikro","last_synced_at":"2026-05-08T20:32:33.919Z","repository":{"id":144952156,"uuid":"232185971","full_name":"bskp/mimikro","owner":"bskp","description":"A human's interpretation of a machine mimicking human handwriting","archived":false,"fork":false,"pushed_at":"2020-01-06T21:30:59.000Z","size":254,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-03T02:43:34.752Z","etag":null,"topics":["font","human-computer-interaction","man-vs-machine","oflv1","recursion-exercises"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"ofl-1.1","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bskp.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"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":"2020-01-06T21:09:55.000Z","updated_at":"2023-10-10T10:12:47.000Z","dependencies_parsed_at":null,"dependency_job_id":"a4d62089-b356-4916-9263-38f3ba5ad30e","html_url":"https://github.com/bskp/mimikro","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/bskp/mimikro","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bskp%2Fmimikro","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bskp%2Fmimikro/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bskp%2Fmimikro/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bskp%2Fmimikro/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bskp","download_url":"https://codeload.github.com/bskp/mimikro/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bskp%2Fmimikro/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32795908,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-08T08:22:46.396Z","status":"ssl_error","status_checked_at":"2026-05-08T08:22:45.650Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["font","human-computer-interaction","man-vs-machine","oflv1","recursion-exercises"],"created_at":"2024-11-14T00:20:38.979Z","updated_at":"2026-05-08T20:32:33.896Z","avatar_url":"https://github.com/bskp.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ![mimikro header](header.svg)\n\n*A human's interpretation of a machine mimicking human handwriting.*\n\nComputers are notoriously bad in generating self-similar sequences like handwritten script: They lack a certain natural context-aware \"randomness\".\n\n Humans, on the other hand, are really bad at repetitive, precise tasks and are prone to introduce quirks and deviations over time.\n\nLet's combine our weaknesses and team up for a new font!\n\nProcess\n-------\n\n1. Recurrent Neural Networks can generate convincing handwriting. The paper [Generating Sequences With Recurrent Neural Networks](https://arxiv.org/abs/1308.0850) by Alex Graves explains the process\n\n2. No need to understand in in-depth!  \nInstead, use [Sean Vasquez's implementation](https://github.com/sjvasquez/handwriting-synthesis) to generate seemingly handwritten text as SVG vector graphics.  \nThe recurrent neural network was trained using human examples, and therefore features many human-specific oddities:\n   - Glyphs are more slanted towards the end of each row, as the writer's hand tends to rotate\n   - Letter features (like a descenders and ascenders) are more pronounced or softened, depending on neighbouring characters\n\n3. Use a [pen plotter](https://www.silhouetteamerica.com/shop/cameo) and ballpoint pen to draw them on paper sheets. This introduces jitters and opacity variations\n\n4. Scan the results in a flatbed scanner, because you need every bit of resolution!\n\n5. Trace every letter. In this step, opacity variations are translated into stroke-width variations to simulate different gray tones. Furthermore, a global slanting angle has to be chosen (we're not doing a cursive Garamond here, after all!)\n\n6. Compose a font using eg. [Glyphs Mini](https://glyphsapp.com/glyphs-mini) to do the heavy lifting. Feel free to add ligatures and kerning tables, it may help to connect the letters\n\nResults of the May 2019 Run\n---------------------------\n\n![Mimikro regular](regular.svg)\n\nDownload as…\n- [.otf](Mimikro_Regular.otf)\n- [.woff](Mimikro_Regular.woff)\n- [.woff2](Mimikro_Regular.woff2)\n\n![Mimikro light](light.svg)\n\nDownload as…\n- [.otf](Mimikro_Light.otf)\n- [.woff](Mimikro_Light.woff)\n- [.woff2](Mimikro_Light.woff2)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbskp%2Fmimikro","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbskp%2Fmimikro","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbskp%2Fmimikro/lists"}