Flow Field Editor Still Alive

I’ve come up with some new ideas for what seemed a completed tool. This release of FFE (“Flow Field” Editor) has changed significantly, so I will describe it from scratch.

What FFE now produces is in general an image. It can be created from: flow field points, color points, color gradients following Bezier curves (middle-click at endpoints to adjust colors) or a combination of these.

First, Bezier curves with adjustable width (middle-click at the control points) are drawn on an initially empty and transparent canvas.

Flow field points are mapped to color points depending on their direction+magnitude (RGB, use handles to manipulate) and wave size (A, middle-click at one of flow field point handles to edit).

Color points are defined directly using RGB and A components (middle-click to edit).

The space between color points is then interpolated using either linear, cubic or natural neighbor interpolation.

In linear interpolation mode, color points can be marked as “passive” meaning that one of non-passive points in the triangulation will replace the color of the passive point. To flip point’s passiveness Shift + right-click on it or use the Mark Passive tool.

To delete any object, right-click on the movable part of it (e.g., flow point’s handles, Bezier curve’s endpoints).

There are 9 tools now in FFE:
– Flow points (add flow points)
– Gradient points (add color points)
– Flow brush (adjust direction/magnitude of flow points using a brush)
– Gradient adjust (adjust individual color points using absolute or relative color changes with optional cloning)
– Eraser (remove flow and color points using a brush)
– Gradient brush (change color of multiple color points using a brush)
– Mark passive (set, unset or flip passiveness of multiple color points using a brush)
– Add Bezier curve (as the name says 😉 )
– Add Bezier point (add new segment to the current Bezier curve; the current Bezier curve is the last created or edited one).

Some of the tools have configurable options displayed in a panel below tool selection combo box.

You can right-click in the free space of your design to undock the tools menu and display it under your mouse cursor. It’s a convenience feature to minimize moving your mouse back and forth. Double-clicking the title bar of such undocked menu sends it back to the docking space. You can also close it and use right-click again to reopen it.

The New/Save/Load/Export entries in File menu remained mostly the same except for the “Generate flow grid” and “Generate gradient grid” in the “New” submenu. As the names suggest they generate an MxN flow or gradient grid respectively. In addition to number of rows/columns, for flow grid – the direction (in %) and wave size (0-255) have to be specified, for gradient grid – the color.

Behind-the-scenes Changes:
– Natural neighbor interpolation is now based on nn-c library which is significantly faster than my own implementation from previous releases.
– FFE no longer uses OpenGL for linear interpolation. It is software-based now for both preview and output. A little bit slower but more predictable.

Licensing Changes:
Previously FlowEd was published without any specific license. It’s time to change that. Eventually I’m aiming for a commercial open-source model but for now I’m publishing just the binaries under a free-of-charge EULA license. It’s nothing too restrictive, just trying to prevent others from making what I consider unfair profit on my Software. Output of this software is not subject to ANY restrictions, so you can relax and use it in your productions.

A couple of new effects are possible with this new functionality. I will describe at least one of them in the coming posts. In the meantime, feel free to unleash your own creativity using this new tool 🙂 Enjoy!

DOWNLOAD: flowed.zip


    • Sure, go ahead. Currently, I’m having some issues with licensing my more complete works. Usually, I publish snippets of code under BSD-new license but with pretty much complete applications like FlowEd or ThinGit I hesitate to give it away just like that to anybody. But recently I was looking at BSD-old and it seems that the advertising clause might suffice to scare away those trying to make easy money on my work. Anyway – I was about to say that pretty soon FlowEd might go open-source and I think it would be great if people interested in its development could gather and contribute ideas, code or both.

  • I downloaded this to test, but my interface doesn’t generate a preview, and also doesn’t export anything at all. Also, the top left button (which looks like a mini preview in your example image) is blank.

    • The trivial solution: make sure you load an image first to guide your drawing. The flow maps are exported with the same dimensions as the image. If no image is loaded dimensions are 0x0.

      In case you already did….

      Non-trivial: It looks as if something is wrong with the very first step of processing, namely running qdelaunay.exe. Could you try running it from command line and see if there’s any problem with missing DLLs for example?

  • Hi,

    I like this toolbut was wondering if there is any tutorial available as I can’t seem to achieve the expected results I’m looking for. I want to create a flow map for a river and like to have the flow follow the river. Basicly I’m looking for restricting the places where flow can occur. Any tips and/or advices?

    • Sadly, there aren’t any tutorials. If you wish you could take a look at other posts about Flow field editor on my blog, but they don’t outline all of the intricacies of using ‘flowed’. Try using middle button on different elements of the design, there are some settings there you might need.

  • The eraser doesn’t work with the brezier curves. Also, it would be nice to show the brush while you are erasing. Otherwise, great program!

  • Czesc – kiedys dawno temu podpytywalem Cie o mozliosc dostepu do tego kodu 🙂 Czy jest szansa zebys ew. udostepnil kody/algorytmy ktore mozna by zintegrowac z nowym edytorem ktory przygotowalem? Appka bylaby open-source.


Leave a Reply

Your email address will not be published. Required fields are marked *