This post is a capture of my preliminary thoughts on combining artificial intelligence and automated user feedback to generate new fonts. I've designed some fonts during my Apple II display legible text by taking advantage of monitor defectors and also during my Mac days because I couldn't find a good font to program with. Both times, each font took unbelievable amount of time and result was never completely satisfying.
The system starts with a seed font and a font transformation model (FTM) for the font. FTM is created using a GUI tool to mark features of a family of fonts, much like the way latest 3D modeling tools allow animators to draw skeletons and design meshes to ease model transformation. What FTM really does is defining what aspects of a font family can be changed and how they should be changed. A lot of room for innovations in constraint expression here.
The font creation process is divided into two phases. The first phase is the design phase during which the goals is to create a unique design that meets the design goals. Design goals are qualitative and are specified through policy configuration. The second phase is the finetuning phase during which the font is optimized and customized using font hints.
In each phase, the system applies genetic algorithm to design a generation of font by transforming each part of the font randomly. The result is shown to users to gather feedback. Feedback questionaries are dependent on the type of transformation made so if the width of a font was reduced, then the question during the might be:
- Too thin?
- Too thick?
- Just right?
During the design phase, questions will be more abstract like:
- Too warm
- Too cold
- Too sparse
- Too dense
Another approach is to simply use thumbs up or down.
A variation of this approach can be used for font selection and personalization to help the user select the font they need and then fine tuning it to their need or taste at the point of sales.