I want to describe an 'idea' I had for a tool to be implemented.
The idea is to have a tool for generating shapes in that order:
you give the tool a 'counter' an a set of 'rules'
the tool apply the 'rules' to the counter and generate the final shape.
In the image below the rules are represented as vectors that map points on the inner contour to points on the outer contour. If the rules are changed the outer shape change, accordingly, if the 'counter' is changed the same rules generate another shape (in my image you see the difference of scaling the counter and scaling the resultant shape.)
To test the concept I've written a script (too ugly to show) in python and, using fontforge (as a python module), I generated a 'font' (actually three letters: I'm lazy).
The script roughly performs the things I've described (it takes a shapes – the counter – and a set of rules for each node, and outputs the glyph).
While I was trying to write this script I realized that everything could be parametrized, so that you can make changes manipulating 'meaningful' parameters. The 'rules' can be as well thought as functions that respond to inputs from that parameters, and at the end you have two elastic boundaries tied together by some law.
Ideally you can reuse a counter, transform it and attach new rules to define another glyph, etc.
Below you can see some test:
changing the 'offset' (i.e. changing the stem width)
changing the width of counters
testing for extreme cases (almost Klimax-esque)
changing the defined 'contrast' parameter (horizontal/vertical offsets)
Every variation required only one or two parameters to be modified.