Introducing Flo

Well I have been mumbling for a few weeks now about this "Flo" project and so far I have gotten a ton of encouraging feedback. For those of you who don't know what Flo is, here is a gentle introduction.

Flo is a multi-platform mind mapping program. I have been interested in mind mapping for some years and have written an application that can help express mindmaps and translate them into various document formats. Mind mapping for those of you who don't know about it is a way of brainstorming. One of the main ideas of Flo is to take these brainstorms and create outlines and various documents. Mind maps can be used for everything from project planning to designing software test cases. Pretty much anything that can be expressed in an outline can translate into a mind map quite painlessly. The main advantage of a mind map is that it is easier to reorder and reorganize ideas in a visual fashion before applying them to something more rigid like an outline.

Flo on Ubuntu Linux
Flo Linux
Flo on Windows XP
Flo Windows
Flo on MacOS X
Flo MacOS X
So here is the theory of operation. I have organized ideas into three types. The main thesis of the mind map, ideas that support the main thesis and general supporting ideas. Most of the time there is only one main thesis, but nothing prohibits having multiple ones. The main purpose for these classifications of ideas is for the document export of outlines. Each idea has an index, this is mainly autolayout and for export of the mind map to other formats, but can be helpful for organization of the mind map. To add a new idea one can select a parent idea and press the "+" button. To remove an idea select it and press the "-" button. These actions are also available via a right click context menu when you select a shape. If you right click on the canvas you can pan across the view and if you use your mouse wheel on the canvas you can change the zoom level. If you wish to reorganize the map's ideas you can change the parents of child ideas very easily. First select the new parent, then click the "Reparent" button on the UI. Lastly drag from the new parent to the child idea you wish to reparent. When you release the mouse it will reparent the idea for you. At this point you can right click on the child and edit its properties to change its index in relation to its new sibling ideas. Once you have created and organized the ideas in your brainstorming session you can export to an outline format to quickly generate your final document.

So now on to the features! Flo has quite a few small features that I have added as I needed them for work. One big problem with me working on it for two years now is that a lot of little undocumented features have slipped in that I have used once or twice and then forgotten. These features need to be debugged a little bit, but in my opinion they are useful still. Here is a taste of what I have so far.

  • Adding custom text notes to each idea.
  • Ability to add custom pixmap emblems as well as a set of built in vector emblems.
  • Document wide meta information to help organize the document better.
  • Ability to change the parents of ideas to reorganize the map quickly.
  • Cut, Copy and Paste between instances of Flo.
  • Undo/Redo support.
  • Panning support via the mouse.
  • Zoom support via the UI, mouse and keyboard.
  • Font embedding to provide common fonts across platforms.
  • Spellchecking for all text in the document.
  • Automatic layout of the document as well as alignment options.
  • Auto save as well as automatic creation of backup files.
  • Recent documents support.
  • Ability to change font, color and shape on multiple ideas at a time.
  • Support for multiple languages in the spell checker (TODO)
  • Export Features
    • Docbook 4.2 export support that supports graphics.
    • ASCII text outline support.
    • Wiki outline support for Wikimedia, Trac, Creole 1.0 and Parsewiki
    • SVG, PDF and pixmap.
    • Rudimentary PDF export of beamer slides.
    • ODF outline support with images (Pending Qt 4.5)
  • Import Features
    • Freemind import with shapes, fonts and colors.
    • ASCII text outline import (TODO)
    • Creole 1.0 wiki import (TODO)

So as you can see its got a lot of little features that make it usable for every day use at this point. I am finishing up the documentation of the whole application and it should be available in the next few weeks.

Now most importantly how to get Flo! If you are using a Debian based system you can just add the following to your /etc/apt/sources.list file: deb $YOURDIST contrib Where $YOURDIST is one of the follwing: sid, etch, lenny, feisty, gutsy, hardy, or intrepid. I have amd64 and i386 builds. PowerPC builds are pending on me getting a new hard disc for my system. Jaunty will be available as it is updated. I have a basic spec file present for SuSE and Red Hat based systems, but I have not been able to get automated builds for those dists done. If someone wishes to provide me builds I will more than gladly post them. If you are stuck on windows you can also download an installer here. Mac users are out of luck until I can fix a problem that causes Flo to crash when you move multiple objects. I think this is manifested as a performance problem on Win32 and Linux, but its fatal on MacOS X. The main webpage is at

Lastly, I consider this a Beta release. I use Flo every day and have stopped adding new features. I will finish the remaining todos and finish the documentation and hope to release the final version on the 1st of December. Until then please everyone take it for a spin and crash it any way you can. I want to release something solid here. Please give it a whirl and have fun!


The easy-to-use mindmapping applications are needed. This looks like it would be learned easily by any aged person and could be used thats why on schools etc.

btw, is there possiblity to "link" (not actually linking but making a symbolic link) "newidea 0" to "newidea 3"?

I get many times situations where same thing comes up in different place and it should be linked to other thing in other tree, but in all other mindmapping tools it is impossible. So I need to write it second time to difference place. Instead that it could be a cool to have automatic link so when clickin it, you would get reminded the other tree thing too.

By fri13 at Sat, 11/15/2008 - 12:04

What I dislike about most mindmapping programs is that they follow the "star" paradigm, so there is one central idea and every other idea is subordinate. This is a hierarchy. But the real world is a mesh, not a star. Let's take Linux as an example. I would like to have a node nmap for the command. This would be connected to netstat, because you should understand as well the differences as what those commands have in common. Both would be associated with networking. Networking would be associated with "Network Troubleshooting" and "Network Troubleshooting" would again be connected with nmap and firewalls.

You could easily derive such a mindmap from a wiki - a wiki article would be a node and links would be the connections between them. BTW, what do you mean by "Wiki outline support"?

By this, I could give my trainees an excellent overview about what I am going to teach them in Linux.

By tstaerk at Wed, 11/26/2008 - 19:40


I'm just wondering how Flo compares to Semantik (and/or its KDE3 predecessor KDissert) from Thomas Nagy. What I'm concerned about the most is:
* since both are KDE mindmapping-like tools for generating, what are the differences between them
* import/export from and to KDissert/Semantik
* export to ConTeXt (a more modern TeX macrolanguage that supports Unicode natively (oposed to LaTeX))
* KDissert has the ability to make a link between two "ideas" that are not in a parent-child relationship — is that planned for Flo as well?
* I use KDissert also as a study help, because it shows more (and formated) text on mouse-over of the "idea" — I think this is similar to your "Adding custom text notes to each idea."

I'm still on KDE 3.5 (until 4.2 hits stable) and use KDissert quite often and am looking at what would fill my needs on KDE4.

By hook at Sun, 12/28/2008 - 23:37