Any causal invariant system always ultimately has a unique causal graph. The graph can be found by analyzing any possible evolution for the system, with any updating scheme—though for visualization purposes, it is usually useful to use an updating scheme where as much happens as possible at each step.

The trivial causal invariant rule *A* *A* starting from A has causal graph:

Starting from a string of 10 As it has causal graph:

*A* AA has a causal graph starting from A that is a binary tree

which can also be rendered:

The rule

starting from A gives a “two-step binary tree” with nodes at level *t*:

One does not have to go beyond rules involving just a single element (all of which are causal invariant) to find a range of causal graph structures. For example, here are all the forms obtained by rules allowing up to 6 instances of a single element A, with initial condition AA:

A notable case is the rule:

Shown in layered form, the first few steps give:

After a few more steps, this can be rendered as:

Running the underlying substitution system AA AAA updating as much as possible at each step (the StringReplace scheme), one gets strings with successive lengths

which follow the recurrence:

Other rules of the form *A*^{p} *A*^{q} for non-commensurate *p* and *q* give similar results, analogous to tessellations in hyperbolic space:

Rules that involve multiple replacements can give similar behavior even starting from a single A:

Rules just containing only As cannot progressively grow to produce ordinary tilings. One can get these with the “sorting rule”

which when started with 20 BAs yields:

There are also rules which “grow” grid-like tilings. For example, the rule

starting from a single A produces

which is equivalent to a square grid:

There is also a simple rule that generates essentially a hexagonal grid:

Other forms of causal graphs produced by simple causal invariant substitution systems include (starting from A, AB or ABA):

When rules terminate they yield finite causal graphs. But these can often be quite complicated. For example, the rule

started from strings consisting of from 1 to 6 As yields the following finite causal graphs:

With a string of 50 As, the rule gives the finite causal graph:

Compared to the hypergraphs we studied in previous sections, or even the multiway graphs from earlier in this section, the causal graphs here may seem to have rather simple structures. But there is a good reason for this. While there can be many updating events in the evolution of a string substitution system, all of them are in a sense arranged on the same one-dimensional structure that is the underlying string. And since the updating rules we consider involve strings of limited length, there is inevitably a linear ordering to the events along the string. This greatly simplifies the possible forms of causal graphs that can occur, for example requiring them always to remain planar. In the next section, we will see that for our hypergraph-based models—which have no simplifying underlying structure—causal graphs can be considerably more complex.