What are loops?
In Kumu, the three basic items you can create are elements, connections, and loops.
Visually speaking, elements are circles, connections are lines between the elements, and loops are groups of two or more connections.
Loops show up on the map as a text label, and the default position of that label is in the middle of all the connections that are part of the group.
You can use these visual tools in all kinds of different ways, but here are some common uses that we see:
Elements | Connections | Loops |
---|---|---|
Factors in a system (causes and effects) | Cause-and-effect relationships | Causal loops |
Stocks | Flows | Sub-systems |
Decisions, chances, and ends in a decision tree | Paths along the decision tree | Multi-part decisions |
Steps in a process | Paths from one step to the next | Sub-processes |
People | Interpersonal relationships | Sub-networks or communities |
People & organizations | Connect people to the organizations they're affiliated with | Sub-networks or communities |
Authors & books/articles they've co-authored | Connect authors to their books/articles | Sub-networks or communities |
Stakeholders & areas of interest | Connect stakeholders to the areas they're interested in | Sub-networks or communities |
Funders, non-profits, and population groups | Connect funders to non-proftis, and connect non-profits to the populations they serve | Sub-networks or communities |
Companies and sectors/industries | Connect companies to their sectors/industries | Sub-networks or communities |
Creating a loop
To create a loop, you can click the green button at the bottom of your map and select "Add loop". Then, click on the connections you want to include in the loop, then add a descriptive loop label below and press enter
on your keyboard.
If you want to edit a loop, click on the loop's label to open its profile in the left side panel. In the bottom right corner of the profile, click the pencil icon to select and de-select connections that are a part of the loop.
Click & drag the loop label to move it, or hold down Option
on your keyboard (Alt
on Windows) and click & drag to move the entire loop, including all its elements and connections, while maintaining their structure.
Identifying loops in systems
Colloquially, you can use the word “loop” to describe any kind of line that curves around in a circle or an oval. When you’re mapping systems in Kumu, you’ll find many groups of connections that meet that definition, but they aren’t necessarily the loops that a system mapper is looking for.
In a system map, a great litmus test for discovering loops is to ask the question, “If I follow the arrows in this group of connections, can I get trapped?” If the answer is yes, you’ve found a loop!
If not, the structure is not a loop, but might still be complex enough to deserve some further study.
Here’s an example of a structure that looks like a loop, but is not, because no matter which arrow you follow, you always end up at the same factor, escaping the trap:
On the other hand, if you reverse just one of the arrows in the structure, you inevitably get trapped going around and around in a circle:
This is the kind of loop you’re looking for in a system map.
It’s rarely so simple—in many cases, your loops will contain more than three connections, and they likely won’t be laid out in such a nice, circular shape. You'll also have the rest of the elements and connections in the map contending for your attention.
But there's one other tip that can be helpful in those more complicated cases! Notice in the screenshot above that every element has at least one incoming and one outgoing connection. In all loops, this is a basic requirement, so if you can filter out elements that don't meet the requirement, it can help you focus on what counts.
Here's how you can set up that filter in Kumu:
- Use Metrics to calculate indegree and outdegree.
- Use filtering to hide the elements that have either indegree or outdegree equal to
0
. You can use filter settings in the Basic Editor to do this, or just copy/paste the following code at the bottom of your Advanced Editor:
@settings {
ignore: element[indegree = "0"], element[outdegree = "0"];
}
There's no guarantee that you'll find loops among the remaining elements and connections, but you'll at least narrow down the portion of the system that you need to carefully study.
Decorating loops
Once you've identified your loops, you might want to customize how they look! One common thing to change is your loops' font size. This can be done in the Advanced Editor, like so:
loop {
font-size: 40; // Replace with any number
}
This code will change the font size for all loops. If you just want to change the size for a specific loop, you can use a selector. Here's an example that selects by label to decorate one loop:
// replace My Specific Loop with the label of your loop
loop[Label = "My Specific Loop"] {
font-size: 40;
}
Less common, but still useful, is to categorize loops with types like Vicious, Virtuous, Stagnating, and Stabilizing, then color-code by those loop types. If you add those types to the Loop Type field (under the Label in the profile), you can use this code to color code automatically:
loop {
font-color: categorize("Loop Type", olympic)
}
You can replace olympic
with the name of any of our color palettes.