You're blocking ads, which pay for BlenderNation. Read about other ways to support us.

Free Flow Map Painter Addon


Clemens Beute has released the free 3D Flow Map Painter addon to his Gumroad. This addon allows to paint flow maps and contains material setups showing how to build shaders using the painted flow maps.

Flow maps are a staple in game engine workflows as they allow for the creation of advanced shading effects that are not too costly to compute. The standard example for flow maps is shown below (when this addon was still limited to 2D painting) with the flowing water example.

Another great use for flow maps is for texturing directional elements by using it to determine rotation, such as the other example provided by Clemens below.

Get the addon on the link below:

About the Author

Mario Hawat

Mario Hawat is a Lebanese 3D artist, writer, and musician currently based in Paris. He is a generalist with a special focus on environments, procedural and generative artworks. Open to freelance work.


  1. It's not working on blender 2.92.

    When i try to paint, it gives this error.

    Python: Traceback (most recent call last):
    File "E:\BIDULCHOUET\Blender\B_HUMAN\Scripts\addons\flow_map_painter\", line 343, in modal
    direction_color = get_uv_direction_three_d(context, area_pos, area_prev_pos)
    File "E:\BIDULCHOUET\Blender\B_HUMAN\Scripts\addons\flow_map_painter\", line 131, in get_uv_direction_three_d
    uv_pos = line_trace_for_uv(context, area_pos)
    File "E:\BIDULCHOUET\Blender\B_HUMAN\Scripts\addons\flow_map_painter\", line 124, in line_trace_for_uv
    uv_co = pos_to_uv_co(obj=tri_obj, matrix_world=obj.matrix_world, world_pos=hit_world, face_index=face_index)
    File "E:\BIDULCHOUET\Blender\B_HUMAN\Scripts\addons\flow_map_painter\", line 90, in pos_to_uv_co
    face =[face_index]
    IndexError: bpy_prop_collection[index]: index 41 out of range, size 12

    location: :-1

    Is it only for blender 2.83 ?

    • Clemens Beute on

      It works on 2.92. I think, your error was coming from a modifier on your object. I updated the add-on. It now supports painting on objects with modifiers.

      Anyways, this might not be the best place for bug reports. There now is an e-mail address on gumroad for that.

  2. Thank you very much.
    Yeah i understand , that's my bad, i tried it on a cube with a chamfer modifier (my default file)

  3. This is very Van Gogh LSD intriguing. Props to you.

    Could this method be adopted to control particle generation and/or movement? All of a sudden, your painted stream movement is now causing the reeds to sway in it realistically, as well. All with seemingly fairly low overhead.

    It could be adapted to make wind through hair look realistic.

  4. Henrik Cederblad on

    Could this be useful for something like a water stream with varying degrees of 'white' (flow intensity/'splashyness') in different parts of the stream?

Leave A Reply

To add a profile picture to your message, register your email address with To protect your email address, create an account on BlenderNation and log in when posting a message.