After hearing for so many years how much better Fontographer's change weight feature was than FontLab's emboldening, I downloaded the new Fontographer 5 demo to try it out. Clearly, the outline transformation algorithm used by Fontographer is superior in that there is much less distortion and a much cleaner result, but still... this is a weight change feature programmed by someone who has never designed a typeface and knows nothing about letterforms. Any weight change function that is only capable of adding the same amount of weight in both the x and y direction is completely useless. Any weight change feature that only offers the options to preserve existing height and/or width is similarly useless.
The interface for Karsten Luecke's Glyph Tweaker script for FontLab Studio shows what a real weight change feature should provide:
First, there are independent controls of height and width that not only allow one to fix those, if one wishes, but more importantly enable one to intelligently adjust them as part of the outline transformation. The height control is particularly clever, because it enables one to identify a particular outline feature height and adjust everything else relative to this. So, for instance, you might adjust or fix the x-height, and not run into the silly situation produced by the Fontographer weight change feature in which, if overall height is fixed, the x-height of glyphs that start as the same end up different:
The ability to independently change the x and y stem weight, rather than adding/subtracting a global amount obviously makes much more sense given that type is very seldom truly monolinear.
Now, the KLTF Glyph Tweaker is not perfect, in large part because it relies on some FontLab Studio outline tranformation functions that sometimes results in outline kinks that require a lot of manual cleanup. But if something like Karsten's tweak UI could be married to Fontographer's cleaner outline transformation algorithm, then perhaps we'd be approaching a real weight change feature.
I say approaching, because ultimately a weight change feature should also understand diagonals and be informable about design topology, e.g. by enabling the user to identify typical hairline or bowl-to-stem weight thicknesses and have these independently adjusted too, regardless of whether they are horizontal, vertical or diagonal features.