Live data from Hacker News

I Created 175 Fonts Using Rust

chevyray.dev

71–80 of 117 posts

Re: I Created 175 Fonts Using Rust

#71
post #59

Very nice! One question: I was curious why you chose this subset of Scandinavian special characters. There are three extended chars in Swedish (äöå) and Norwegian/Danish (æøå), but your fonts have æ, but not ø, which means you could drop the æ and still support Swedish, or add an ø to also support Norwegian and Danish. Was this an oversight or is there some locale that has just æ and not ø? (and before anyone asks I…

This was just an oversight. I actually got very far into the project before I realized that ø was missing from my set.

It’s something that I could definitely go through and patch into all the fonts, but I was waiting to see if there was enough demand for the effort. I think supporting two more languages would be very cool though.

Re: I Created 175 Fonts Using Rust

#73
post #59

Very nice! One question: I was curious why you chose this subset of Scandinavian special characters. There are three extended chars in Swedish (äöå) and Norwegian/Danish (æøå), but your fonts have æ, but not ø, which means you could drop the æ and still support Swedish, or add an ø to also support Norwegian and Danish. Was this an oversight or is there some locale that has just æ and not ø? (and before anyone asks I…

This was just an oversight. I actually got very far into the project before I realized that ø was missing from my set. It’s something that I could definitely go through and patch into all the fonts, but I was waiting to see if there was enough demand for the effort. I think supporting two more languages would be very cool though.

From a Dane that finds multiple of these fonts gorgeous and highly appreciate the elaborate kern pairs: please consider patching the fonts with an ø. ;-)

Re: I Created 175 Fonts Using Rust

#74
post #26

Earlier quoted context omitted.

None of that matters with this code. There are no lifetimes here and in fact there is no ownership either. Everything is a primitive char. They’re always copied and no mutation occurs. It’s pure computation. You could write this code exactly the same way in those languages.

Java's HashMap for example is not thread-safe, but if you use it from multiple threads, you may or may not experience all kinds of issues.

Again that only matters if there is mutation. Reads are perfectly safe to happen from any thread. This code is self contained. Rust isn’t a silver bullet here.

Re: I Created 175 Fonts Using Rust

#75
post #64

Earlier quoted context omitted.

Making a complete font set can easily take as long as a year. Making a font family can easily be a lifelong project.

> Making a font family can easily be a lifelong project. Donald Knuth made https://www.1001fonts.com/cmu-font.html __and__ designed and implemented an entire typesetting system __and__ did a bunch of other not-so-small things that makes designing a font family seem like a side project.

Tex was the side project. Knuth went on a years long yak shave to write book-making software instead of writing the book because he was unhappy with the fonts in the printer proof.

Re: I Created 175 Fonts Using Rust

#76

Cool fonts, and an interesting post. I kind of want the top-right fake game in https://chevyray.dev/blog/creating-175-fonts/old_previews.pn... to be real. It has a " Wonder Boy in Monster World on the GBA" vibe I think is nice. I have noticed that the license doesn't allow you to use the TTFs in open-source software, which is something to keep in mind. > Licensed Content may not be distributed to third parties as sta…

If you like platformers, give Celeste a try. The scene in that mockup is a reference to an opening scene from that game.

Re: I Created 175 Fonts Using Rust

#77

Cool fonts, and an interesting post. I kind of want the top-right fake game in https://chevyray.dev/blog/creating-175-fonts/old_previews.pn... to be real. It has a " Wonder Boy in Monster World on the GBA" vibe I think is nice. I have noticed that the license doesn't allow you to use the TTFs in open-source software, which is something to keep in mind. > Licensed Content may not be distributed to third parties as sta…

Hmm, it definitely doesn't allow you to distribute them as open source (or CC or whatever) but I don't know that I'd agree that it forbids you from shipping them with something that's otherwise open source.

Though clearly the intent is that these be used more in the final product stage of the kinds of things that are more rarely open source, games vs. engines or templates.

I found myself thinking about a different copyright corner-case when reading the post and this question: the fact that typefaces aren't copyrightable in the US. Fonts are, as computer programs, but typefaces (and so also fonts that are simple bitmaps) aren't. So this workflow goes from a non-copyrighted source, (the original tilesheet) to a copyrighted output (the TTFs) and also back to a non-copyrighted output too (the output tilesheet/atlas).

Re: I Created 175 Fonts Using Rust

#78
post #14

Earlier quoted context omitted.

It's not really unique to Rust. Scala and Java both support this out of the box.

Yeah, but in Rust it’s far less likely to explode in your face.

Or in Ada. Ada 202x[1] brings enhancements like the parallel block, making parallelism easier to express, somewhat similar to Rust's approach but still with Ada's emphasis on clarity and safety.

[1] https://blog.adacore.com/ada-202x-support-in-gnat (2020)

There may be more enhancements that I may not know about or remember, although I did mention Ada's constructs for safe concurrent code before.

Re: I Created 175 Fonts Using Rust

#79
post #52

Earlier quoted context omitted.

Nice catch. That's a culprit of the `auto_kerning_min` property that you'll see on a lot of the fonts. this tells the auto kerner not to exceed that. I added this parameter because I fouund that for a lot of fonts, squeezing letters together over a certain distance would just look bad, so I would set -1 or -2 as a cap. It looks like that's just one that snuck past my notice. The word "Fjord" would look strange becaus…

Thanks for taking the time to answer. I don't understand why in the dj combination, j is able to reach under d for what looks like a kerning of about -4, when the auto_kerning_min property is set to -1 or -2, keeping Fj apart.

Maybe they just manually kerned "j" with the lowercase letters? The "j" line on the lowercase sample would jump out pretty strongly in a way the capitals-with-j don't on the mixed-case one.

Re: I Created 175 Fonts Using Rust

#80

Earlier quoted context omitted.

Making a complete font set can easily take as long as a year. Making a font family can easily be a lifelong project.

It makes me very happy to see people talking about how much work can go into a typeface. Like, these pixel fonts are very quick to make, but fully contoured vector fonts can be tweaked to perfection infinitely, there's always more languages and more diacritics and more weights and styles you could do. Truly a rabbit hole, but when it's done well it's very worthwhile. I have a lot of respect for font makers.

Has anyone tried training a DL model to handwrite things? That seems like a fascinating rabbit hole as well. In addition to all the context sensitive letter differences, you could even label training pieces with the mood of the writer and the flexiness of the nib/quill. If I type an angry emoji after a sentence it gets scribbled harder when drawn.
Post reply on HN