Typeface interpolation


I’m a graphic design student whose first approach to VVVV is for an university project. I designed a simple and geometric typeface in two weights (thin and heavy). I used for each letter the same amount of points.

I need to interpolate the two weights in order to get the intermediate weights.
Does anybody know how to do that?


I haven’t tried yet but this may help tutorial geometry morphing cpu

edit: i’ve just done the tutorial… easy but i have issues with my own meshes, sometimes the number of positions out of the vertexBuffer doesn’t match. While the Mesh split give the same number of indices.


@newemka: vertexpositions and mesh indices are not related in their counts. so it seems your meshes just have different pointcounts.

It depends on what kind of output you are hoping to get from it. If it is purely visual, then you could do it with 2 Typospread nodes. But a typospread doesn’t consider the actual points of the font you have created and there is no apparent logic to the way it places the points along the outline of the text. It has a lot of other quirks as well, but in the end is very powerful once you get your head around it.

If you have already created the thin and heavy weights, then why not create the medium one as well? As a graphic designer I know that a medium font is not the same as the average of the heavy and thin font. If it is geometrical it should be all the more easy to create the medium font. It will be much quicker than trying to do this using a programming environment, even one as user-friendly as vvvv.

Why do you want to use vvvv for it? It will be quicker and cleaner doing this in Illustrator.


I have made this in vvvv and it took me about a week of work for the whole tool, which is now quite versatile, but i can’t imagine creating the 3rd font from scratch taking much longer than a few hours, if you already have the other 2.

vvvv wont be able to export your font into anything immediately usable anyways, so you would have to find a way to do that first.

… no text …

First of all thanks for the answers

@seltzdesign I haven’t created the regular weight because my work is a little more complex.

The whole project is to create a sound-reactive typeface.
VVVV should:
1_ to write the word spelled with speech recognition node
2_ to interpolate the 4 type extremes (thin-condensed, bold-condensed, thin-ultraexpanded, bold-ultraexpanded), so the length and the weight of the font change

I’ve already done some experiments with the blend tool in Ai (as shown in the image attached).
The final outputs should be:
1_ a logo-generator
2_ a video-installation, in which the words are projected on a wall behind the speaker (with a microphone linked to VVVV)

Hope I’ve been clear.
thanks again,


Well you should have said that from the start. Now it makes sense to use vvvv for it.

Its possible using vvvv, but it wont be very easy unless you can make some compromises.

I just wanted to write how you could do it with a typospread, but after trying it out in vvvv quickly I realized it would be way too much work. The problem is that typospread only creates points and you can create outlines from that, but not really fills. Also the transformation as you want it (not just simple stretching, but extending from the center part) is possible, but takes a lot of sorting, transforming and other operations, which I don’t think you will be able to get your head round easily if you are just starting with vvvv. All this work gets a lot harder when you have multiple characters, words and then even sentences or paragraphs, as you have to account for the transformation in each character to move along the others or you will just get overlapping letters.

The text node cant use spreaded input for the font or allow transform of individual characters, even if you had a seperate font for each combination, giving you 100 fonts.

If you DID have all 100 font combinations then I would probably use some combination of HTML, CSS and Javascript (or jQuery), to achieve what you want. It can handle textinput and different fonts very well and will already solve things like pushing letters along, breaking lines and being able to style things easily. It doesn’t really matter if you have 2 fonts or 100. You can access individual letters, and assign them fonts. If you name your fonts from for example 00 to 99, then the first digit could be the thickness and the second the width. Then to change the font just increment the font name by 1 to go wider and by 10 to go thicker. Creating the 100 fonts might be a bit of a pain though.

So good question and many approaches, none of which seem to me like an easy route.

Let us know how you get on and I’ll help as best I can.