Add-on for Generating Writing Animation (Free)


(Khemadeva) #1


Thanks to those, who attended the premiere.

Download location of the add-on:
Blender 2.8 Beta Script File:
Blender 2.79 Script File:

Video tutorial:

(urkokul) #2

The great idea and addon. Thanks

(Khemadeva) #3

Thank you for the encouraging words!
Merry Christmas :slight_smile:

(txusmiCG) #4

Well done!

Great features and easy to use.


(Khemadeva) #5

You are welcome. Appreciate you taking the time to try the features and share your feedback.

(Khemadeva) #6

The add-on is now also ported to Blender 2.8 Beta :slight_smile:

The script file is
Dowload repository is the same (

In 2.8 the UI is on ‘Active Tool and Workspace settings’ tab on the properties panel.

I have tested the main use cases with both Cycles and Eevee.
Do let me know if you happen to try the tool and come across any defects.

Suggestions and feedback are alwyas welcome!

(Shohrukh) #7

Are other languages ​​supported?

List of addons that work with 2.8
(Khemadeva) #8

Do you mean the font for writing text in other languages?

In the demo, I am using the single stroke fonts of Inkscape Hershey text extension. It supports English, Greek and Japanese, I guess.

You can of course create text in any language in an SVG editor (by tracing it for instance) and import that in Blender to generate the animation.

(Hershey extension can be extended for custom single stroke fonts also. It involves creating character set in SVG. I have written a script for that. Can share it if there is enough interest. )

(Shohrukh) #9

Please send this script. I want this addon to support Russian (and my native language is Tajik).
Does this addon work in blender 2.80?

(Khemadeva) #10

Yes, it works with 2.80. You need to install (please see my message above).

The add-on creates animation based for the selected bezier curves. For text animation there are two possibilities.

  1. You can use the blender text object and convert it to curve. All the fonts have closed curves so there are double strokes for every letter. This does not involve any manual curve creation.

  1. You can create the text as curves directly in blender or import it as SVG (by tracing for example). This will allow you to create the single stroke fonts, which is more natural. I have created the following text in Inkscape with the Freehand Drawing tool and imported it using the Paths & Shape Keys Import add-on

Inkscape already has 2 single stroke fonts, but they only have roman characters.
The script I was talking about, joins the letters to make the user given text. But here also the individual letters need to be traced manally. To explain its usage I need to create a tutorial (to use it the SVG nees to be in a particular format). I can do that if there are at least a few users interested in using it.

Let me know if you need more explanation for tracing the text in SVG and importing it into blender.
PS: I have used google translate for the russian translation of ‘hello’. Excuse me if there are any mistakes :slight_smile:

(Blender Foundation CERTIFIED TRAINER) #11

Oh man! This is gold!

(Shohrukh) #12

Oh man, your addon is very mega super awesome!
But I have a few questions:

  1. It is necessary to add the function of erasing letters (a pencil with an eraser).
  2. The function of saving the letters I created using curves in Blender as the font used by this addon.
  3. I prepared the scene, but the render does not display lines of letters. What am I doing wrong?

(Khemadeva) #13

These words of appreciation are tremendously motivating. Thank you so much!

(Khemadeva) #14

Thanks for the great feedback!

  1. I will add the erase functionality. Along with erase op, there needs to be a procedurally created eraser object as well. So just give me some time to implement that.
    Meanwhile, you can run the following script to convert the writing animation to erasing animation. You need to a) run the standard writing animation op then b) go to the last animation frame so that all curves are fully visible and c) select all the curves and d) execute this code:
import bpy

for o in bpy.context.selected_objects:
    if(o.type != 'CURVE' or len( == 0 \
        or[0].type != 'BEZIER' \
            or == None \
                or == None):
            continue = 'SPLINE'
    for fc in
        if(fc.data_path == 'bevel_factor_end'):
            fc.data_path = 'bevel_factor_start'

Please let me know if there are any issues running it.

  1. A better place to have this function is the SVG editor. The script I mentioned earlier is an inkscape extension that does this. Since inkscape already has the Hershey extension, which implements more or less the functionality of using pre-defined curves as fonts, duplicating that same thing won’t make sense. So to reuse that, I have created another Inkscape extension that creates the data file based on the curves created by user in the format understood by Hershey extension.

  2. Try setting the bevel depth of the curves to a higher value, maybe .01 or so. With the grey backgound, in Blender 2.8 the curves are not clearly visible in rendered display, unless they have sufficient bevel depth value. If you still face issues, please share your blend file if possible and I will look into the problem.

(NewVisitor) #15

Where can I find this Inkscape Extension?

(Khemadeva) #16

I have not shared it yet, since the funcationality is very specific and I wasn’t sure if many users would be interested in it. I will upload it on Github in a few days and update this thread.

(NewVisitor) #17

Many thanks.