[EDIT} Please disregard this post, it was foolish of me to ask a question of law in this forum. My apologies.
I have a commercial, non-free, font that I would like to use on eggbot. I would like to do a manual tracing/interpretation of the font to make it an engraving font.
I have no problem deciding that I can use this for my own non-commercial purposes. But I wonder if anybody has knowledge of how copyright law would apply in the event that I wanted to make the engraving script freely available to the eggbot community??
A brief web search leads me to a very tentative conclusion that my work would be"transformative" (a term of art) and thus be fair use.
https://en.wikipedia.org/wiki/Derivative_workI know this subject is more properly a legal question, but just wonder if anybody has some considered opinions on the subject?
Comments
Nonetheless, to try to educate myself about the snags involved, I tried manually converting a few free fonts to vector format. I have evolved a system that, while far from perfect, is perhaps useful. It enables me to convert an appropriate font to single-vector style in just a few hours. The strokes are completely manually performed in Inkscape, then the resulting .svg files are put through the wringer in a Visual Basic 6(!) program I wrote.
The output of the VB6 program is a line of text defining the font face in hershey vector format as used in a completely stock hershey.py. The text line can then be copied into a stock hersheydata.py.
The image below is of three different fonts I've vectorized, along with the stock Sans 1-stroke, and the picture comes from the attached .svg [whoops, I don't see how to attach an svg, so we'll ignore that for the moment.]
I feel that the manually transcribed vectors yield a perhaps more "supple" text effect than the standard Hershey fonts. Oh, I should mention that I took the liberty of pushing the Hershey envelope by going to higher precision. I think it's this higher precision which gives the new text a less "pedantic" feel. I think the century has come when we can throw off some of the constraints Hershey worked within a half century ago.
I did _not_, however, change anything in hershey.py - so the new schema is as far as I know completely compatible.
What do you think - is this method interesting enough to pursue? Or should I just keep it for my in-house use.
Oh, rats, I see I can't paste an image here without exceeding the allowed character count. I guess I'll have to finally open a flickr account or something.
OK, let's see if I've flickrized it: http://www.flickr.com/photos/35400824@N03/shares/n1gH7X
On the editor idea...If you felt strongly enough about it to create a github issue, I would be glad to at least consider undertaking creation of an Inkscape extension to accomplish this. Nothing fancy, and probably a bit complicated to use, but maybe with the kind of back-and-forth we did on the hatch extension we could get it done.
http://i.imgur.com/7wmraYb.png
, nothttp://i.imgur.com/7wmraYb
1. Perhaps we could acknowledge the designer while making it clear that the designer is not responsible for this incarnation, by doing something like: prepending "Like " or "Derived from " or "Not " or "Based on " or "Eggbot-", rather than simply making up descriptive names???
1a. For what it's worth, at http://www.dafont.com/jenna-sue.font the author is quoted as: And the license.txt file that accompanied the download said: 2. I'll review and touch-up if necessary the three fonts you have mentioned. What would you like me to submit to you - just the text lines to be inserted into hersheydata.py and hershey.inx, or new hersheydata.py and hershey.inx?
And where should they be sent? service@evilmadscientist.com, or someplace else? Or maybe you want to open an issue at github and I'll send them there?
3. Would you also like the .svg files I generated where I hand-traced each glyph, and which are the input files to the Visual Basic 6 svg-to-hershey program?
4. I would be glad to give you the VB6 program, but it is very very creaky and windows only. Would you like me to rewrite the VB6 program in python? It would be a good python learning experience for me.
5. If you wish me to give the same treatment to additional fonts, please let me know, I'd be happy to - this is kinda fun! 8^)
I particularly do like the Sacramento. Bilbo, too. A fantastic source of these SIL OFL fonts (not sure if this is where you're getting them) is Google Fonts, when you filter by "Handwriting". Clicking through that list, I thought that the following (in addition to the ones that you already created) might be good candidates: Mrs Saint Delafield, League Script, Bad Script, Tangerine, Alex Brush, Parisienne, Delius, Qwigley, and Felipa
Probably the best way to move forward would be to add these directly to the Hershey text extension... a possible path forward _from there_ would be that we could get this updated into a future version of Inkscape itself. (And for that reason, we probably don't want to label any of them as EggBot specific.)
One other consideration, which you're probably thinking about: When possible, it is best to try and match the locations where cursive-type letters begin and end. I have an experimental optimization that I've been trying out, which skips the pen raise-and-lower if the pen travel distance is zero (really, below a fixed, small threshold). This makes much neater characters when the pen doesn't have to lift between them.
It's a tricky call what the best way to move forward on that software is-- a Hershey-style font editor is a really neat idea, but I'm not sure that it's best in Inkscape, or elsewhere-- perhaps as a processing sketch that can run within a browser? There are font editing capabilities built into Inkscape now; it might be worth looking at how that process works.
I have checked the metadata in all the exemplars, and all state that they are licensed with SIL OFL (except Tangerine has nothing in the metadata, though both fontsquirrel and google claim the SIL OFL license applies. I have an email request in with fontsquirrel requesting the source of their licensing info.)
Yeah, I see what you mean about the naming problem. If I had designed one of those fonts, I for sure would not want to see it hacked up by somebody like me without changing the name.
I find that hershey.py annoyingly has two casts to integer in draw_svg_text. For use here I've changed the casts to float. The only difference is that the cast to integer forces character location to integer values, which leaves an ambiguity of up to 1 step in character position. Once the character is positioned, hershey.py allows my more-precise values for the character shape. A possible workaround would be for me to do the conversion to hershey at a larger size. This would presumably cause user to scale it down, so the character position ambiguity would be reduce to less than one step.
Thus, your experimental skip-pen-up-down ("SPUD"?) would perhaps only marginally work on the integer text. Dunno, you'd have to try it. With the two casts changed to float, I get beautiful joinage of joinable cursive characters. I was not, however, thinking of your SPUD algorithm when I did the fonts, so the beginning and end of cursive characters is not readily identifiable. This could be fixed by my reworking the fonts if it proves desirable.
I hope you had a good time at the Maker Faire! 8^)
Yes, it is huge isn't it (and my own personal copy is "huger", as I've included for my own personal use some additional fonts which are free but not covered under SIL OFL).
[EDIT: See following post for these files with two more fonts added.]
https://www.dropbox.com/s/pvui6438o6dlvmu/hersheydata.zip?dl=0
[EDIT: Ho hum, added yet another, see next message for the link]
https://www.dropbox.com/s/x37ayun6e08ec5j/hersheydata 02.zip?dl=0
https://www.dropbox.com/s/b8l6x9uytysytln/hersheydata 03.zip?dl=0
In this latest version I've kept the font shapes all the same, but have regularized, as much as possible, their sizes. This makes a visual difference when the font samples are being displayed, and thus perhaps makes it slightly easier for user to compare faces.
This is just the hersheydata.py file, you'll need the previous zip for hershey.py and hershey.inx
https://www.dropbox.com/s/mqkilhxwzpfchl7/hersheydata 04.zip?dl=0
Here is the font names crossreference to original names:
Cocoa Allure <= Allura SIL OFL per metadata
Cocoa Bird <= Bilbo SIL OFL per metadata
Cocoa Bird Swash Caps <= Bilbo Swash Caps SIL OFL per metadata
Cocoa Brush <= Alex Brush SIL OFL per metadata
Cocoa Capitol <= Sacramento SIL OFL per metadata
Cocoa Casual Hand <= Covered By Your Grace SIL OFL per metadata
Cocoa Delight <= Delius SIL OFL per metadata
Cocoa Delight Swash Caps<= Delius Swash Caps SIL OFL per metadata
Cocoa Elfin <= Mountains of Christmas SIL OFL per metadata, though google cites Apache License, version 2.0
Cocoa Felix <= Felipa SIL OFL per metadata
Cocoa Herculean <= Poiret One SIL OFL per metadata
Cocoa Invite <= Tangerine metadata silent, but SIL OFL per google and fontsquirrel
Cocoa League <= League Script SIL OFL per metadata
Cocoa Misty Night <= Foglihten No03 SIL OFL per metadata
Cocoa Neato <= Bad Script SIL OFL per metadata
Cocoa Osmotron <= Orbitron Regular SIL OFL per metadata
Cocoa Pepita <= Pecita SIL OFL per metadata
Cocoa Qwandry <= Qwigley SIL OFL per metadata
Cocoa Society <= Mrs Saint Delafield SIL OFL per metadata
Cocoa Swiss <= Italianno SIL OFL per metadata
Cocoa Tech <= Architects Daughter metadata silent, but SIL OFL per google
Anyway, here's a zip with the Cocoa Bird problem fixed, and - no big surprise - two additional fonts, both licensed under SIL OFL. Cocoa Little Princess based on Princess Sofia, and Cocoa Pancakes based on Short Stack.
https://www.dropbox.com/s/quupalfxunjf3cq/hersheydata 05.zip?dl=0
If the name is just because it's evocative of the name Hershey, we might consider a few alternatives, for example cacao, choco, etc. However, I would instead suggest the prefix "HT" -- for Hershey Text. Many font families have similar name conventions, where a 2-3 letter prefix or suffix designates the origin (font foundry), as in "Trebuchet MS" or "URW Venus (see https://www.fonts.com/support/faq/lt-mt-ef-abbreviations and http://blog.extensis.com/fonts/abbreviations-font-names.php ). I think that "MT Bird," "MT Pancakes", and "MT Little Princess" would be compact, easy to read, and clear that they represent a family (or shared origin, at least). Thoughts?
The idea of designating the origin in the traditional way is perfect - I was clueless in that regard. I assume when you used "MT" in your suggestions that was a neural echo of the "HT" you initially suggested - your first link shows "MT" as the Monotype designator.
[Whoops - note added in proof: "HT" is already in use by Huerta Tipográphica http://www.huertatipografica.com/en#
I also searched for HM font foundry, HS... (for Hershey Modified, Hershey Style) and got too many hits for comfort. Even "EB" is in use as a prefix. What about "EG"? What do you think? ] 8^)
So, I take it you would like to use the files? If so, I'll make the Cocoa => xx changes in the next day or two, and upload them here?
Additional question: are there any of the font names for which you have alternate suggestions? As you can guess, the names were completely off-the-cuff creations for which I have no great partisanship.