Play around with this text to make your own version. You can't break the original!

# Examples

Click one to make your own version.

“Theories of change: great idea, but fiddly to draw and revise.”

“Try Theory Maker, the quick, free web app.”

# Theory Maker - sketch out your Theory of Change

Theory Maker is a free web app by Steve Powell for making any kind of causal diagram, i.e. a diagram which uses arrows to say what contributes to what. You make the diagrams just by typing the names of the elements (called variables) in a structured way into a (resizeable) window, and you get a live diagram as output which reflects what you type.

In particular, it is optimised for making theories of change, logframes, etc. - special kinds of pragmatic causal theory which are particularly popular at the moment in the world of monitoring and evaluation (M&E).

Theory Maker is most often used by M&E staff for quickly sketching out project theories and evaluation plans. But scientists, especially social scientists, and policy makers use it too.

Theory Maker is a free, open-source project. The license is here. The engine which creates the diagrams (using Graphviz) is here and for the web interface (using Shiny) is here if you want it. It is under rapid development and run on a shoestring so please don't rely on it being there next week. I plan to keep it running for years, but who knows.

I also restart the server every day or so as I update the code, so make sure you save a copy of your text or save your diagram as a permanent link, so you don't lose your work.

I don't plan ever to charge for Theory Maker or to make money from it directly. It is a project for airing some ideas I have about Theories of Change to accompany a book I am writing.

Plus, Theory Maker is based on a theory of Theories of Change. So when you diagram your theory using Theory Maker, the examples help you to make a real theory, expressed using variables and rules to link them up, not just a nice picture. I have just started to set out some of this theory in the examples provided here. There is a lot more to come.

## Credits

Theory Maker is built on top of Graphviz using Shiny.

For the icons, flaticon.com and font-awesome.

Many people have helped me in developing the app, not limited to: Anamaria Golemac Powell, Esad Bratovic, Simone Ginsburg, Randall Puljek-Shank, many colleagues on LinkedIn, …

Please tweet me or write here.

Do us a favour and tweet about Theory Maker!

# Theory Maker 2!

## What is new in Theory Maker 2

Theory Maker 2 is a complete rewrite of Theory Maker.

• It runs about twice as fast (the code is about a quarter the length of the old code) and should be a lot more stable and easier to maintain.
• Works with other languages: You can now use a whole range of non-English Unicode characters with accents and symbols.
• You can apply themes just by adding a line like theme=winter, theme=summer, theme=drama, theme=comic or theme=night. More coming!
• The syntax is simpler and you can tweak your diagram with almost the entire range of Graphviz attributes from label positioning to URLs.
• You can set 'engine=circle' to get non-hierarchical, more circular layouts

I am also running it on a more powerful server.

Here are the new, somewhat simpler rules for writing Theory Maker diagrams. Or just click on the link “Help and tips” above the text window.

## If you saved a diagram in a previous version of Theory Maker

• arrows between groups (“boxes”) of variables,
• “sentences in variable names. Like. this.”
• dots to draw arrows,
• >> to draw arrows,

it may not look right now. Sorry for any inconvenience. You will need to “redraw” your diagram just using spaces to create arrows. Or just write to me at steve@pogol.net and I will fix it for you.

apple
.banana
.peach


you can rewrite it as

banana; peach
apple


apple>>banana


you should rewrite it as

banana
apple


A variable name. A sentence to appear as a note. Another sentence.


you can rewrite it like this:

A variable name; note=A sentence to appear as a note///Another sentence.///


Look here for more help.

# Theory Maker Features (& Known Bugs)

## Main features

• Two different ways to “draw” lines between variables, so you can use whatever is most convenient.
• Recognises and makes auto links for standard decimal naming conventions beginning with a number.
• Boxes for putting variables in groups, for example to mark off different phases, places or participants.
• Format your variables and boxes with colours, fonts etc.
• Easy to change diagram direction (left-to-right, top-to-bottom, etc.) and diagram proportions (wider, taller etc.).
• Easy to add cross links even in mainly hierarchical theories, e.g. from one sub-Outcome to more than one Outcome
• You can create aliases/labels for your variables to save tiresome retyping
• Add notes, “calendar bars” and many other bells and whistles
• Lots of live templates and suggestions for your theory of change, ready for you to edit (don't worry, you aren't editing the originals).
• Each new diagram gets a unique permanent link which you can bookmark to return to later or send to a friend. Anyone can save changes to this link.

The rules for typing diagrams in Theory Maker are here.

## What it doesn't do

### No beautifying

Theory Maker doesn't give you much control over the actual layout (like whether something appears at the top or bottom). This tool tries to keep the layout simple, but that doesn't necessarily mean things are where you expect them to be. Don't bother trying to get the nodes and boxes to move about: If you want to tweak a diagram further, you can download the .svg version of it and manipulate it further in Inkscape, Libreoffice Draw or Illustrator.

### Remember to save your text

There is no registration or log-in. You just type text. You can type a title for your diagram and click to save a version and bookmark the link. If you don't, don't forget to copy and paste (somewhere safe) the text you typed, because it won't be there next time you visit the site.

Here.

# Below this line are technical details of interest mostly to myself…

## Missing features to add soonest

• Easy alias - just take first matching letters. This would work for decimals as well. But it would have to be a separate loop after the main processing.
• Wrap at node level, not only global?
• conditional formatting and/or fromnow;arrow;width=3 etc

## Bugs to be fixed

• delete query string when clicking on gallery etc
• if name contains “=” it gets interpreted as a global att, so either have to list all atts to check if it exists, or insist that graph-level globals are of form diagram;x=y
• text-align left is difficult, becaue even if you manage to get
into the label, it indents the first line as if it is a paragraph.

## Posts to write

Flexible theories of change

Simon Hearn on Impact

Q: How can I split a line? A: Use /// like this: first line blah///second line blah
Q: How can I end one box without starting another? A: Just put a line with the same number of -s as the box you want to end, and no other text.