Freemind is a free mind-mapping application written in Java that will help anyone who plans projects, for example: developers, writers, conference presenters, and students.

When planning a project, whether it's an essay or software, there's a tendency to try to capture ideas in a linear fashion, organizing them as you draw them forth from your mind. The classic example of this is attempting to write an orderly outline as the first step of composing an essay.

The problem with this approach is that combining brainstorming and structuring can actually hinder both processes. On the one hand, without the raw ideas visualised, you can become trapped in structural dead ends. And on the other hand, adhering to a prematurely conceived structure makes it harder to call forth all the ideas efficiently. Anyone who has been stuck partway through a stubbornly dysfunctional outline knows this dilemma all too well.

In other words, it's often better to separate the two processes: get all the ideas down first in a nonlinear way, then organize.

Mind mapping is great for this kind of two step brainstorming. A mind map is a diagram that represents ideas arranged around a central concept. It's a nonlinear way to organise and visualise ideas.

Freemind is a free mind-mapping application written in Java that will help anyone who plans projects, for example: developers, writers, conference presenters, and students. Beyond planning, it can be used to assist decision making, organise information, and aid problem solving.

Freemind boasts a number of excellent features, including: a fast and intuitive interface, node folding, support for hyperlinks to remote and local content, drag and drop editing, and export to HTML, XHTML, PDF, SVG, PNG, JPEG, and OpenOffice Writer document.

The latest version is available at the Freemind website. There are versions for Linux, Mac OS X, and Microsoft Windows, as well as generic binaries for any operating system. Freemind requires the Java Runtime Environment.

Using Freemind is easy. When you launch the application, you see a new, blank mind map. Click the root node in the centre of the map and type in a word or short phrase that describes the key concept you are brainstorming. For our simple example, we're labelling our key concept "animals".

Now we can add child nodes. Child nodes can, in turn, have child nodes and sibling nodes - nodes with equal hierarchical value.

To add a child node, choose New Child Node from the Insert menu, or simply press tab. Our first child node is mammals, so we type Mammals into the new node.

We want two other child nodes: birds and fish, and we want them to be equivalent to mammals, so we must create sibling nodes. To create sibling nodes, we choose New Sibling Node from the Insert menu or hit return.

Navigating our mind map with the arrow keys and adding new child and sibling nodes, we can now add more nodes.

If we're concentrating on the mammals branch and want to fold the birds and fish branches out of the way, we simply click on the Birds and Fish nodes. To unfold them, we click them again.

Now that we have the beginnings of a populated mind map, we may want to change the relative positions of nodes. To move nodes, click and drag or use keyboard shortcuts. For example, move Fish to the left side of the root node by dragging it, and move birds above mammals by navigating to it with the arrow keys and pressing ctrl-up arrow.

Freemind offers many more features than we've described here. To learn about these features, use Freemind's built-in help, which is in the form of... you guessed it: a mind map! Choose help from the menu and a new mind map will appear that contains a wealth of useful information.


We use mind maps on a regular basis and we've been very impressed with Freemind. The interface is clean and fast, and it has all the features we need, plus many others we haven't yet explored. One shortcoming is Freemind's lack of multi-user support, but it does have what the authors call a "preliminary locking mechanism" to prevent conflicts. Aside from this issue, Freemind is a great little application. Try it and see.