this repo has no description
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Add licenses; flatten fonts dir; update font path references

- LICENSE: 0BSD for project code and dataset generation scripts
- data/fonts/LICENSE-OFL-1.1.txt: covers Comic Neue, Gochi Hand, Handlee, Oswald, Dancing Script
- data/fonts/LICENSE-Apache-2.0.txt: covers Special Elite (Astigmatic)
- data/fonts/README.md: copyright notices and designer credits
- data/fonts/: flatten from data/fonts/handwriting/ (removed unnecessary nesting)
- src/download_hw_fonts.py, src/generate_handwritten.py: update default font path

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

+334 -5
+12
LICENSE
··· 1 + Copyright (C) 2026 oscillatory.net 2 + 3 + Permission to use, copy, modify, and/or distribute this software for 4 + any purpose with or without fee is hereby granted. 5 + 6 + THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL 7 + WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES 8 + OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE 9 + FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY 10 + DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN 11 + AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT 12 + OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+201
data/fonts/LICENSE-Apache-2.0.txt
··· 1 + Apache License 2 + Version 2.0, January 2004 3 + http://www.apache.org/licenses/ 4 + 5 + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 6 + 7 + 1. Definitions. 8 + 9 + "License" shall mean the terms and conditions for use, reproduction, 10 + and distribution as defined by Sections 1 through 9 of this document. 11 + 12 + "Licensor" shall mean the copyright owner or entity authorized by 13 + the copyright owner that is granting the License. 14 + 15 + "Legal Entity" shall mean the union of the acting entity and all 16 + other entities that control, are controlled by, or are under common 17 + control with that entity. For the purposes of this definition, 18 + "control" means (i) the power, direct or indirect, to cause the 19 + direction or management of such entity, whether by contract or 20 + otherwise, or (ii) ownership of fifty percent (50%) or more of the 21 + outstanding shares, or (iii) beneficial ownership of such entity. 22 + 23 + "You" (or "Your") shall mean an individual or Legal Entity 24 + exercising permissions granted by this License. 25 + 26 + "Source" form shall mean the preferred form for making modifications, 27 + including but not limited to software source code, documentation 28 + source, and configuration files. 29 + 30 + "Object" form shall mean any form resulting from mechanical 31 + transformation or translation of a Source form, including but 32 + not limited to compiled object code, generated documentation, 33 + and conversions to other media types. 34 + 35 + "Work" shall mean the work of authorship, whether in Source or 36 + Object form, made available under the License, as indicated by a 37 + copyright notice that is included in or attached to the work 38 + (an example is provided in the Appendix below). 39 + 40 + "Derivative Works" shall mean any work, whether in Source or Object 41 + form, that is based on (or derived from) the Work and for which the 42 + editorial revisions, annotations, elaborations, or other modifications 43 + represent, as a whole, an original work of authorship. For the purposes 44 + of this License, Derivative Works shall not include works that remain 45 + separable from, or merely link (or bind by name) to the interfaces of, 46 + the Work and Derivative Works thereof. 47 + 48 + "Contribution" shall mean any work of authorship, including 49 + the original version of the Work and any modifications or additions 50 + to that Work or Derivative Works thereof, that is intentionally 51 + submitted to Licensor for inclusion in the Work by the copyright owner 52 + or by an individual or Legal Entity authorized to submit on behalf of 53 + the copyright owner. For the purposes of this definition, "submitted" 54 + means any form of electronic, verbal, or written communication sent 55 + to the Licensor or its representatives, including but not limited to 56 + communication on electronic mailing lists, source code control systems, 57 + and issue tracking systems that are managed by, or on behalf of, the 58 + Licensor for the purpose of discussing and improving the Work, but 59 + excluding communication that is conspicuously marked or otherwise 60 + designated in writing by the copyright owner as "Not a Contribution." 61 + 62 + "Contributor" shall mean Licensor and any individual or Legal Entity 63 + on behalf of whom a Contribution has been received by Licensor and 64 + subsequently incorporated within the Work. 65 + 66 + 2. Grant of Copyright License. Subject to the terms and conditions of 67 + this License, each Contributor hereby grants to You a perpetual, 68 + worldwide, non-exclusive, no-charge, royalty-free, irrevocable 69 + copyright license to reproduce, prepare Derivative Works of, 70 + publicly display, publicly perform, sublicense, and distribute the 71 + Work and such Derivative Works in Source or Object form. 72 + 73 + 3. Grant of Patent License. Subject to the terms and conditions of 74 + this License, each Contributor hereby grants to You a perpetual, 75 + worldwide, non-exclusive, no-charge, royalty-free, irrevocable 76 + (except as stated in this section) patent license to make, have made, 77 + use, offer to sell, sell, import, and otherwise transfer the Work, 78 + where such license applies only to those patent claims licensable 79 + by such Contributor that are necessarily infringed by their 80 + Contribution(s) alone or by combination of their Contribution(s) 81 + with the Work to which such Contribution(s) was submitted. If You 82 + institute patent litigation against any entity (including a 83 + cross-claim or counterclaim in a lawsuit) alleging that the Work 84 + or a Contribution incorporated within the Work constitutes direct 85 + or contributory patent infringement, then any patent licenses 86 + granted to You under this License for that Work shall terminate 87 + as of the date such litigation is filed. 88 + 89 + 4. Redistribution. You may reproduce and distribute copies of the 90 + Work or Derivative Works thereof in any medium, with or without 91 + modifications, and in Source or Object form, provided that You 92 + meet the following conditions: 93 + 94 + (a) You must give any other recipients of the Work or 95 + Derivative Works a copy of this License; and 96 + 97 + (b) You must cause any modified files to carry prominent notices 98 + stating that You changed the files; and 99 + 100 + (c) You must retain, in the Source form of any Derivative Works 101 + that You distribute, all copyright, patent, trademark, and 102 + attribution notices from the Source form of the Work, 103 + excluding those notices that do not pertain to any part of 104 + the Derivative Works; and 105 + 106 + (d) If the Work includes a "NOTICE" text file as part of its 107 + distribution, then any Derivative Works that You distribute must 108 + include a readable copy of the attribution notices contained 109 + within such NOTICE file, excluding those notices that do not 110 + pertain to any part of the Derivative Works, in at least one 111 + of the following places: within a NOTICE text file distributed 112 + as part of the Derivative Works; within the Source form or 113 + documentation, if provided along with the Derivative Works; or, 114 + within a display generated by the Derivative Works, if and 115 + wherever such third-party notices normally appear. The contents 116 + of the NOTICE file are for informational purposes only and 117 + do not modify the License. You may add Your own attribution 118 + notices within Derivative Works that You distribute, alongside 119 + or as an addendum to the NOTICE text from the Work, provided 120 + that such additional attribution notices cannot be construed 121 + as modifying the License. 122 + 123 + You may add Your own copyright statement to Your modifications and 124 + may provide additional or different license terms and conditions 125 + for use, reproduction, or distribution of Your modifications, or 126 + for any such Derivative Works as a whole, provided Your use, 127 + reproduction, and distribution of the Work otherwise complies with 128 + the conditions stated in this License. 129 + 130 + 5. Submission of Contributions. Unless You explicitly state otherwise, 131 + any Contribution intentionally submitted for inclusion in the Work 132 + by You to the Licensor shall be under the terms and conditions of 133 + this License, without any additional terms or conditions. 134 + Notwithstanding the above, nothing herein shall supersede or modify 135 + the terms of any separate license agreement you may have executed 136 + with Licensor regarding such Contributions. 137 + 138 + 6. Trademarks. This License does not grant permission to use the trade 139 + names, trademarks, service marks, or product names of the Licensor, 140 + except as required for reasonable and customary use in describing the 141 + origin of the Work and reproducing the content of the NOTICE file. 142 + 143 + 7. Disclaimer of Warranty. Unless required by applicable law or 144 + agreed to in writing, Licensor provides the Work (and each 145 + Contributor provides its Contributions) on an "AS IS" BASIS, 146 + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 147 + implied, including, without limitation, any warranties or conditions 148 + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 149 + PARTICULAR PURPOSE. You are solely responsible for determining the 150 + appropriateness of using or redistributing the Work and assume any 151 + risks associated with Your exercise of permissions under this License. 152 + 153 + 8. Limitation of Liability. In no event and under no legal theory, 154 + whether in tort (including negligence), contract, or otherwise, 155 + unless required by applicable law (such as deliberate and grossly 156 + negligent acts) or agreed to in writing, shall any Contributor be 157 + liable to You for damages, including any direct, indirect, special, 158 + incidental, or consequential damages of any character arising as a 159 + result of this License or out of the use or inability to use the 160 + Work (including but not limited to damages for loss of goodwill, 161 + work stoppage, computer failure or malfunction, or any and all 162 + other commercial damages or losses), even if such Contributor 163 + has been advised of the possibility of such damages. 164 + 165 + 9. Accepting Warranty or Additional Liability. While redistributing 166 + the Work or Derivative Works thereof, You may choose to offer, 167 + and charge a fee for, acceptance of support, warranty, indemnity, 168 + or other liability obligations and/or rights consistent with this 169 + License. However, in accepting such obligations, You may act only 170 + on Your own behalf and on Your sole responsibility, not on behalf 171 + of any other Contributor, and only if You agree to indemnify, 172 + defend, and hold each Contributor harmless for any liability 173 + incurred by, or claims asserted against, such Contributor by reason 174 + of your accepting any such warranty or additional liability. 175 + 176 + END OF TERMS AND CONDITIONS 177 + 178 + APPENDIX: How to apply the Apache License to your work. 179 + 180 + To apply the Apache License to your work, attach the following 181 + boilerplate notice, with the fields enclosed by brackets "[]" 182 + replaced with your own identifying information. (Don't include 183 + the brackets!) The text should be enclosed in the appropriate 184 + comment syntax for the file format. We also recommend that a 185 + file or class name and description of purpose be included on the 186 + same "printed page" as the copyright notice for easier 187 + identification within third-party archives. 188 + 189 + Copyright [yyyy] [name of copyright owner] 190 + 191 + Licensed under the Apache License, Version 2.0 (the "License"); 192 + you may not use this file except in compliance with the License. 193 + You may obtain a copy of the License at 194 + 195 + http://www.apache.org/licenses/LICENSE-2.0 196 + 197 + Unless required by applicable law or agreed to in writing, software 198 + distributed under the License is distributed on an "AS IS" BASIS, 199 + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 200 + See the License for the specific language governing permissions and 201 + limitations under the License.
+86
data/fonts/LICENSE-OFL-1.1.txt
··· 1 + ----------------------------------------------------------- 2 + SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 3 + ----------------------------------------------------------- 4 + 5 + PREAMBLE 6 + The goals of the Open Font License (OFL) are to stimulate worldwide 7 + development of collaborative font projects, to support the font creation 8 + efforts of academic and linguistic communities, and to provide a free and 9 + open framework in which fonts may be shared and improved in partnership 10 + with others. 11 + 12 + The OFL allows the licensed fonts to be used, studied, modified and 13 + redistributed freely as long as they are not sold by themselves. The 14 + fonts, including any derivative works, can be bundled, embedded, 15 + redistributed and/or sold with any software provided that any reserved 16 + names are not used by derivative works. The fonts and derivatives, 17 + however, cannot be released under any other type of license. The 18 + requirement for fonts to remain under this license does not apply 19 + to any document created using the fonts or their derivatives. 20 + 21 + DEFINITIONS 22 + "Font Software" refers to the set of files released by the Copyright 23 + Holder(s) under this license and clearly marked as such. This may 24 + include source files, build scripts and documentation. 25 + 26 + "Reserved Font Name" refers to any names specified as such after the 27 + copyright statement(s). 28 + 29 + "Original Version" refers to the collection of Font Software components as 30 + distributed by the Copyright Holder(s). 31 + 32 + "Modified Version" refers to any derivative made by adding to, deleting, 33 + or substituting -- in part or in whole -- any of the components of the 34 + Original Version, by changing formats or by porting the Font Software to a 35 + new environment. 36 + 37 + "Author" refers to any designer, engineer, programmer, technical 38 + writer or other person who contributed to the Font Software. 39 + 40 + PERMISSION & CONDITIONS 41 + Permission is hereby granted, free of charge, to any person obtaining 42 + a copy of the Font Software, to use, study, copy, merge, embed, modify, 43 + redistribute, and sell modified and unmodified copies of the Font 44 + Software, subject to the following conditions: 45 + 46 + 1) Neither the Font Software nor any of its individual components, 47 + in Original or Modified Versions, may be sold by itself. 48 + 49 + 2) Original or Modified Versions of the Font Software may be bundled, 50 + redistributed and/or sold with any software, provided that each copy 51 + contains the above copyright notice and this license. These can be 52 + included either as stand-alone text files, human-readable headers or 53 + in the appropriate machine-readable metadata fields within text or 54 + binary files as long as those fields can be easily viewed by the user. 55 + 56 + 3) No Modified Version of the Font Software may use the Reserved Font 57 + Name(s) unless explicit written permission is granted by the corresponding 58 + Copyright Holder. This restriction only applies to the primary font name as 59 + presented to the users. 60 + 61 + 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font 62 + Software shall not be used to promote, endorse or advertise any 63 + Modified Version, except to acknowledge the contribution(s) of the 64 + Copyright Holder(s) and the Author(s) or with their explicit written 65 + permission. 66 + 67 + 5) The Font Software, modified or unmodified, in part or in whole, 68 + must be distributed entirely under this license, and must not be 69 + distributed under any other license. The requirement for fonts to 70 + remain under this license does not apply to any document created 71 + using the Font Software. 72 + 73 + TERMINATION 74 + This license becomes null and void if any of the above conditions are 75 + not met. 76 + 77 + DISCLAIMER 78 + THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 79 + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF 80 + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT 81 + OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE 82 + COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 83 + INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL 84 + DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 85 + FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM 86 + OTHER DEALINGS IN THE FONT SOFTWARE.
+30
data/fonts/README.md
··· 1 + # Font licenses 2 + 3 + ## Apache 2.0 4 + 5 + Special Elite: 6 + Designed by Astigmatic (http://www.astigmatic.com/) 7 + 8 + ## OFL 1.1 9 + 10 + Dancing Script: 11 + Copyright (c) 2011, The Dancing Script Project Authors (https://github.com/googlefonts/dancing-script), 12 + with Reserved Font Name "Dancing Script". 13 + 14 + Gochi Hand: 15 + Copyright (c) 2011, Juan Pablo del Peral (juan@huertatipografica.com.ar), with Reserved Font Names "Gochi" and "Gochi Hand" 16 + 17 + Handlee: 18 + Copyright (c) 2011, Joe Prince, Vissol Ltd. (http://www.vissol.co.uk/mavenpro/) with Reserved Font Name "Handlee". 19 + 20 + Comic Neue: 21 + Copyright 2014 The Comic Neue Project Authors (https://github.com/crozynski/comicneue) 22 + 23 + Oswald: 24 + Copyright 2016 The Oswald Project Authors (https://github.com/googlefonts/OswaldFont) 25 + 26 + This Font Software is licensed under the SIL Open Font License, Version 1.1. 27 + This license is copied below, and is also available with a FAQ at: 28 + https://openfontlicense.org 29 + 30 +
data/fonts/handwriting/ComicNeue-Regular.ttf data/fonts/ComicNeue-Regular.ttf
data/fonts/handwriting/DancingScript-Regular.ttf data/fonts/DancingScript-Regular.ttf
data/fonts/handwriting/GochiHand-Regular.ttf data/fonts/GochiHand-Regular.ttf
data/fonts/handwriting/Handlee-Regular.ttf data/fonts/Handlee-Regular.ttf
data/fonts/handwriting/Oswald-Regular.ttf data/fonts/Oswald-Regular.ttf
data/fonts/handwriting/SpecialElite-Regular.ttf data/fonts/SpecialElite-Regular.ttf
+3 -3
src/download_hw_fonts.py
··· 1 1 """ 2 2 Download handwriting fonts from Google Fonts for use in generate_handwritten.py. 3 3 4 - Saves TTF files to data/fonts/handwriting/ (or --out). Typst discovers them 4 + Saves TTF files to data/fonts/ (or --out). Typst discovers them 5 5 via --font-path at compile time. 6 6 7 7 Usage: 8 8 uv run download-hw-fonts 9 - uv run download-hw-fonts --out data/fonts/handwriting 9 + uv run download-hw-fonts --out data/fonts 10 10 """ 11 11 12 12 import argparse ··· 100 100 101 101 def main() -> None: 102 102 parser = argparse.ArgumentParser() 103 - parser.add_argument("--out", default="data/fonts/handwriting", 103 + parser.add_argument("--out", default="data/fonts", 104 104 help="Directory to save font files") 105 105 args = parser.parse_args() 106 106
+2 -2
src/generate_handwritten.py
··· 18 18 VAL_SPLITS / TEST_SPLITS in data.py when ready to train. 19 19 20 20 Prerequisites: 21 - uv run download-hw-fonts # fetch fonts into data/fonts/handwriting/ 21 + uv run download-hw-fonts # fetch fonts into data/fonts/ 22 22 23 23 Usage: 24 24 uv run generate-hw --mode hw --count 15000 --out data/hw_structured_train ··· 45 45 46 46 # ── Font pool ───────────────────────────────────────────────────────────────── 47 47 48 - _DEFAULT_FONT_DIR = Path("data/fonts/handwriting") 48 + _DEFAULT_FONT_DIR = Path("data/fonts") 49 49 50 50 # Maps the Typst family name (what Typst sees in font metadata) to the filename 51 51 # slug used when checking whether the font was downloaded.