Otoom home page


CauseF splash screen


CauseF manual (version 3.5)


System requirements and installation

Win 7 and upwards, 32-bit (not tested on 64-bit systems). Freeware.

Download causef35setup.zip and extract causef35setup.exe. Run the file and follow the prompts.

Please check Disclaimer and legal notices → Digital environments.

Table of contents


Menus and settings - Main window and Grid

Examples of scenarios - Grid

Menus and scenarios - Spheres

Menus and scenarios - Planets       <<<   new

Contact and bug report, credits


CauseF is designed to illustrate the nature of cause and effect relationships in complex, dynamic systems.

Whereas in linear systems there is an identifiable cause pointing to some particular effect, or an effect is observed which can be traced more or less easily to some particular cause, in complex, dynamic systems such an approach is virtually impossible.

See The mechanics of chaos: a primer for the human mind for the underlying reasons in terms of chaos and its ramifications; and how this relates to human activity systems, The 10 axioms of Society.

For example, in the Grid section CauseF features a display grid which contains elements, each one representing an entity that sends and/or receives 'energy packets', units that determine the activation level of each element. There are 10 activation levels: 0 - none, and 1 to 9 with 9 being the maximum.

There are two types of elements: sources (can only send, their activation levels are always at 9), and general elements (can send and/or receive, their activation levels are subject to change).

Hence sources have an unlimited supply of energy, that is they can send all the time, and the rest (from now on referred to simply as 'elements') have only as much energy as they were able to receive from some source or another element.

The system continues to cycle until it is stopped (see Menus and settings) and during each cycle the following happens:

- the grid is traversed from top-left to bottom-right through all the units, and each unit is checked whether it is a source or a basic element;

- if it is a source, a further unit is selected randomly from the rest and it is tested whether it is not a source and if so, whether its activation level is below 9 (if already at maximum it cannot receive any more);

- if reception is possible an energy packet of one unit is sent to that element; the activation level of the source remains at 9, and the activation level of the element is incremented by 1;

- if the step-by-step selection process during the cycle has identified an element and not a source, that element is tested whether its activation level is above 0; if it is not it cannot send and is discarded for that cycle; if it is, a target is selected as before and it is tested (ie, source or not, if not whether the activation level is appropriate);

- if the activation level is appropriate, a packet is sent and the sender has its activation level decremented by 1 and the recipient has its activation level incremented by 1.

The random selection process for sources and elements uses a sample range depending on the probability percentage set by the user (see Menus and settings). A probability of 100% means the range is equal to the number of elements, a lesser percentage uses a range momentarily extended beyond the number of elements. For example, a 50% probability means the number range has been increased to double its size and the random number is selected from that pool, thereby giving the result a 50% chance of being one of the units in the grid.

This type of process means that, (a) there are sources which can send all the time but their effectiveness can be compromised by their probability levels, and (b) there are targets which may or may not be able to send and/or receive due to their activation levels (that is, after having come 'into contact' with a source or another element) but which also can be compromised due to their probability levels.

As a result at each cycle there are numerous cause and effect relationships, all of which contribute to the overall state of the system. However, none of them can be identified under a linear approach because all of them are subject to multiple influences along the way.

While in theory it would be possible to halt the system, trace its entire history from the very beginning to identify which unit did what at any subsequent step, and by doing so ascertain the current action for each unit in terms of what it is in relation to any other unit, in practice it cannot be done. The system cannot be halted in the real, its actions are too manifold to capture at any time period, and the randomness of the selection process (which is a simulation of an even larger activity scope representing the environment within which such a real counterpart would operate) ensures any effective observation from the outside is impossible.

However, what can be ascertained are the outcomes in terms of the probability ranges (provided they can be identified in the first place) as they relate to the members of the system.

In complex, dynamic systems the outcomes can therefore be identified with high accuracy and low precision, the accuracy being a function of the identifiable probability levels.

high accuracy low precision  low accuracy high precision
High accuracy and low precision (left) and low accuracy and high precision (right)
From: Accuracy and precision, Wikipedia, http://en.wikipedia.org/wiki/Accuracy_and_precision

To put that another way, when it comes to specific outcomes, the degree of accuracy is inversely proportional to the size of the system's event space (the scope across which the system is being observed); in terms of such a system's performance patterns however, the degree of accuracy is directly proportional to the size of the system's event space.

One example would be the weather. The longer the time periods involved, the more accurate the forecast can be in terms of probable outcomes as patterns, but a specific event is virtually impossible to predict (such as rain at a certain place, a particular wind speed, etc). The smaller the event space (eg, standing at a certain spot over the next hour) the more accurate the prediction would be (for example, will it rain during the next few minutes). On the other hand, during a weather pattern representing a low pressure system for example, predictions can be made as to the likelihood of certain phenomena occurring which pertain to low pressure systems. And on a larger scale still, the likelihood of snow falling during summer is very low indeed (although it again depends on the overall set of probabilities defined by such parameters as latitude and elevation). For more comments on the behaviour see Examples of scenarios → Summary.

In the case of CauseF, using the same parameter settings will give different results every time (ascertainable through the cycle limits, see Menus and settings), but there will be a pattern in terms of the probability envelopes defined by the parameters.

CauseF also allows the user to observe the effects of self-adjusting probability levels, percentages that change as a consequence of outcomes during the cycles (see Menus and settings).

Sources and elements can be grouped into regions with their own specific probability levels as well as their own self-adjustment properties.

The grid can contain as many units as the computer's memory allows, although the cycle times increase with higher numbers. For example, using around 700,000 units the time taken for each cycle would be just around 35 seconds on an 8-core 3.5GHz machine. The maximum number of sources is set at Total number of units - 10.


© Martin Wurzinger - see Terms of Use