Software Tools for your Brain

Simple concepts for mentally abstracting complex systems

Part of learning and problem solving is abstracting complex systems so that we can visualize them in our minds eye.

Ideas, relationships, changes, and other zeroparallaxing concepts are like software tools for your brain.

They allow us to conveniently visualize and analyze the parts of a system or process.

Two main steps to understanding a sytem

When trying to understand what a system does, whether is is simple or complex, there are two main steps.

The first step is understanding the component parts of the system, both in relative isolation and in the context of connected or related parts . A general term for the component parts is [idea] while a general term for any two connected parts is [relationship].

The second step is noticing what happens within the system while it is working. This is where we notice change as it is transmitted from one idea to another. A general term for the change that is transmitted between two connected ideas is [signal]. You could also think of this as energy or information.

Where the component view helps us to see how the different ideas connect and relate to each other, the system (or signal) view is where we see what happens within the system while it is actually working.

Two ways of viewing any system

When trying to understand what a system does, or how it does what it does, there are two complimentary views required for understanding the system.

One is the component view. (This may also be termed the architectural view). This is the view of the system that allows us to take it apart and put it back together again.

The other is the system view or signal view. This is the view of the system as it is working.

Each of these have their own associated building blocks.

The component view: Ideas and Relationships

Where [ideas] are the individual component parts that represent the potential for change, [relationships] are the conceptual building blocks that provide a context for the transmission of change.

Relationships are where the potential for change is actually realized.

Both of these are part of the component view.

The system view: signals (aka change or information)

A signal is what is transmitted in one direction or another between two connected ideas. It is the change, or information that transmitted from one part of a relationship to another.

We can look at signals in the signal or system view.

If we look at any relationship, we can look at it from the point of view of the ideas that make it up.

We can also look at it while change (or information or a clearly define signal) is transmitted between its component ideas.

When dealing with mechanical systems, Another term that may be used is event.

Generally, the component view is is the simpler of the two views because for a lot of systems, this is where we can take them apart (and put them back together again).

The signal view tends to be more time consuming and difficult to learn because we have often have to imagine what is happening within the system while it is actually working.

Making the system view easier to assimilate (more palatable)

To make the elements of a signal view easier to learn, we can look at or define a sequence of relationships as a set of related ideas through which a particular signal propagates.

If we look at a system as a network, the idea here is that we can look at a single route through the system.

An analogy is a connect-the-dots picture where we connect all dots with a single continuous line (that doesn't cross itself).

We can then learn the system view as the sum of all possible signal pathways.

Obviously, the larger the system, the harder it can be to learn all possible possible components (ideas) as well as its signal pathways.

And so, a sensible approach is to break a system down into clearly defined sub systems.

Working within the limits of short term memory

One reason for breaking a system down into smaller subsystems is that we as humans have a very limited short term memory. Studying smaller sub systems, particularly when first learning a system, makes it easier to gain an understanding of the system by understanding the parts that make it up.

Generally, we can learn these smaller sub systems so that they become a part of mid term and then eventually long term (procedural) memory.

After this initial learning of a system, it then becomes possible to break the system down in different ways. We thus build on and improve (and change) the initial model of understanding.

Viewing a system in imaginary space

As we build up a mental model of a system, we can play with it in our consciousness, if you like in “imaginary space.” Based on this mental model, we can then see how to make changes to the system based on clearly defined objectives. We can also fault find a bit easier.

Choosing the level of detail

Note that even with this “modular” approach, it may take some time to learn a new system. And so one possible approach when breaking a system down is to choose the level of breakdown. How detailed do we go? In addition, do we need to learn the whole system or only a part of it?

When breaking a system down, in terms of what scale, one question we can ask is how detailed do we need to go? If the idea is to fix a particular problem, we can adjust the scale to make it easier to isolate the problem.

When fixing a problem, another approach is to focus on the part of the systerm that contains the problem. This is where we might choose to learn only the part of the system relevant to solving the problem.

If you are going to be working with a system constantly, it may be helpful to learn the whole system ahead of time. This saves time when solving problems. Instead of learning the system and then figuring out the problem, you can use your understanding of the system to help figure out the problem.


Another approach when choosing the scale of differentiation is modularity. It may be possible to pick a scale that makes it easier to re-use the system's building blocks in other contexts.

Using this approach may make learning subsequent systems easier because we can re-use building blocks, modules, from other systems that we've already learned.

And that's actually one reason for specifying components such as ideas, relationships and signals. They make it easier to detect similarities between systems. And they make it easier to re-use aspects of mental models.

What these components can do is make it easier to abstract a system. It's a form of working from first principles, but instead of just breaking systems down in the component view, it allows us to break them down in the signal view also.

Note that when learning particular systems, it may not always be helpful or useful to use the terminology used here.

That being said, one reason for learning this abstracting terminology is that when dealing with a problem in a particular system, we can use it to more easily change our point of view or level of detail.

It may help us step beyond our usual bias's or blind spots. Put another way, it may make it easier for us to re-define the box that we think within with regards to any system.

Published: 2022 05 05
Defining ideas, relationships (and change) for better understanding, problem solving and experiences