ThinkComposer is now OPEN-SOURCE!

Since February-2015 ThinkComposer is an open-source product, licensed under the GNU General Public License 3.0.

This roughly means that you can freely download, share, modify or extend it, as long you provide also a free copy of the original source code plus your own modifications and extensions.

The source code is available on CodePlex at:


ThinkComposer reviewed in

Recently, ThinkComposer was reviewed by Roy Grubb of He did a great job summarizing the product and giving feedback of both, its pros and cons, plus in relation with other products.


Also, ThinkComposer was included in the very extensive catalog (the “master list”) of visual tools that exposes, which is a great source of information of the market tools and their way of help visual thinkers. Great!

Concept Map of Sci-Fi Authors: A quick intro to ThinkComposer

Learn the basics of ThinkComposer while creating a Concept Map of Science Fiction Authors:

(maximize the player to look in HD when bandwidth is available)

You can download the sample composition from here (Note: Your browser might change the file extension to ‘.zip’, so rename back it to ‘.tcom’ if necessary).

Help to decide ThinkComposer next features

File and Code Generation in ThinkComposer version 1.3

A new version of ThinkComposer (1.3) is available! It can generate text files, either for code generation or custom information export, based on templates using the Liquid markup language. So, the precise knowledge stored in Composition documents can be consumed from external sources. Lets take a look.

Suppose you want to export the information content of the next Composition diagram…


…and your desired generated file, for the ‘Compute Result’ Concept, would look like:

Global-Id: 7b104a91-b464-484a-9419-9d37ee578b9c
Name: Compute Result
Summary: Use the entered Code to calculate the proper result.
 [1] 'Correct' (Correct state.)
 [2] 'Star Gold' (Star Gold award.)
 Descriptor: 'Approved' -- Full compliance with our test cases!
 [1] 'Flow (Idea 10)' FROM 'Is Valid?'('Yes'); .
 [1] 'Flow (Idea 11)' TO 'Show Result'; .

Then, to achieve that formatted result file, you can use the Output-Template editor (accessed thru ‘Domain’ -> ‘Edit Domain’-> ‘Output-Templates’ -> ‘Concept base templates…’) as shown in the next screenshot:


The complete sample output-template is:

%%:FileName={{ TechName }}.txt

Global-Id: {{ GlobalId }}
Name: {{ Name }}
Summary: {{ Summary }}

{%- if Markings.Size > 0 -%}
MARKINGS [{{ Markings.Size }}]:
{%- for Mark in Markings -%}
[{{ forloop.index }}] '{{ Mark.Definitor.Name }}' ({{ Mark.Definitor.Summary }})
{%- if Mark.Descriptor != null -%}
Descriptor: '{{ Mark.Descriptor.Name }}' -- {{ Mark.Descriptor.Summary }}
{%- endif -%}
{%- endfor -%}

{%- endif -%}
{%- if IncomingLinks.Any -%}
INPUTS [{{ IncomingLinks.Size }}]:
{%- for Link in IncomingLinks -%}
[{{ forloop.index }}] '{{ Link.OwnerRelationship.Name }}'{% unless Link.Descriptor == null %}('{{ Link.Descriptor.Name }}'){% endunless -%}
 FROM {% for OriginLink in Link.OwnerRelationship.OriginLinks -%} '{{ OriginLink.AssociatedIdea.Name }}'{% unless OriginLink.Descriptor == null %}('{{ OriginLink.Descriptor.Name }}'){% endunless -%}; {% endfor -%}.
{%- endfor -%}
{%- endif -%}

{%- if OutgoingLinks.Any -%}
OUTPUTS [{{ OutgoingLinks.Size }}]:
{%- for Link in OutgoingLinks -%}
[{{ forloop.index }}] '{{ Link.OwnerRelationship.Name }}'{% unless Link.Descriptor == null %}('{{ Link.Descriptor.Name }}'){% endunless -%}
 TO {% for TargetLink in Link.OwnerRelationship.TargetLinks -%} '{{ TargetLink.AssociatedIdea.Name }}'{% unless TargetLink.Descriptor == null %}('{{ TargetLink.Descriptor.Name }}'){% endunless -%}; {% endfor -%}.
{%- endfor -%}

{%- endif -%}

Output-Templates can be defined, at the Domain level, for:

– Composition: To create a file for the root of the Composition.

– Concepts: Use one template to generate files with the same format from all Concepts.

– Relationships: Same as the prior, but for Relationships.

Plus, the Output-Template can be declared individually per each Idea (Concept or Relationship) Definition, in case you have specialized or more complex ones.

These Output-Templates are stored in the Domain, so you can reuse them in other Compositions.

To generate the files, just select the “Tools” tab and click the “Generate Files…” button. The next window will be shown:


The description of the Output-Templates language and the ThinkComposer Information model can be found in the manual.

ThinkComposer 1.2 published

I’m pleased to announce the release of ThinkComposer 1.2., which includes the next improvements:

  • Diagram views and Reports are exportable in PDF format.
  • Reports can be generated as HTML
    • Diagram symbols can be clicked to access the respective Idea page.
    • Uses subdirectories to include nested diagrams (easy to copy/publish on your website)
  • Reports are enhanced with the inclusion of deeper information about:
    • Idea Details (attachments content, links address and tables data)
    • Relationship Links (origins, targets and their companions/siblings)
  • Simplified declaration of Table-Structures for Tables and Custom-Fields.
  • Predefined graphic styles for easy apply.

Also, the next Domains has been added for your use and extension:


Use Case diagrams

Class diagrams

Sequence diagrams

Plus lots of other improvements and fixes!

Multilevel Concept Maps or Diagrams

A problem while working with 2D graphics, in the style of big concept maps or other kind of diagrams, is that when the matter is complex, they can become a problem to navigate  and edit them like in the next very cluttered map:

This is unavoidable if you need to show (or print) the map as single unit.

However, with the help of software, you can divide the map in hierarchically contained sub-maps, spanning multiple levels. Consider the next diagram, made with ThinkComposer, representing a simple aircraft design as an advanced concept map:

With this multilevel capability you can “compose” (or decompose) your ideas to any extent into a single document. Plus, notice that you can still connect nodes, not within the same view (map/diagram), by using Shortcuts that you can point/click to easily navigate to the original source.