“Theories of change: great idea, but fiddly to draw and revise.”
“Try Theory Maker, the quick, free web app.”
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. The whole Shiny application is available here if you want to run your own server. 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 am working on a new version of Theorymaker which will be based on DiagrammeR and will allow actual calculations down the causal tree.
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.
Please tweet me me your comments, problems and suggestions.
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!
sex=male
do not now need a preceding ;
style=full
to access some new features for compatibility with Evalian, a dialect for evaluation!.
Theory Maker 2 is a complete rewrite of Theory Maker.
theme=winter
, theme=summer
, theme=drama
, theme=comic
or theme=night
. More coming!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.
Some things will work fine, but if your diagram had:
>>
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.
So if you had this:
apple
.banana
.peach
you can rewrite it as
banana; peach
apple
and if you had this:
apple>>banana
you should rewrite it as
banana
apple
If you had this:
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.
The rules for typing diagrams in Theory Maker are here.
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.
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.
Sometimes crashes when call to /www/x.png from Word?
-a x -a x
crashes because newrank=true when two clusters have exactly the same contents. This is just a Graphviz bug, don't know what to do about it.
Maybe complete rewrite in python using pydot
, which supports nested subgraphs? (Rgraphviz
doesn't because graph
doesn't support them either.)
Really important to ensure that
a;sex=m a;sex=f
resolve to DIFFERENT Variables.
but this doesnt work with aliases. – fixed this. Have a look at line 627.
Move email list button higher up.
-y
(lhead=cluster_y)b
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.
Q: How can I use the diagram in a document? A: 1) Select the format you want, click the download button, save the diagram and paste into your document. PDF will provide better quality. 2) Right-click on the diagram to copy or save it - but it will be in .svg format, which you can paste into some document types (like Libreoffice) but not others (Microsoft office).
Q: Help, I made a mistake typing something and got lost! A: trying undoing your changes: Press control-z one or more times on Windows or Linux.
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.
Q: What if I want to work on different diagrams at the same time? A: Just open Theory Maker in different browser windows.
Q: I want to make my diagram super fancy and fit our corporate template. A: If you want to tweak a diagram further, you can download the .svg version of it and manipulate it further in a program like Inkscape, Libreoffice Draw or Illustrator.