[There will probably be more, but only when I have the time to add it]
I've done some thinking, and have at least some of the mathematical basis to support this idea, however actually implementing it (and modifying as necessary) is left as an exercise to any readers.
The signalling within TT is 2-aspect, and is based simply on the basis of "is there a train behind me?" If there is a train there, the signal is on. If no train, the signal is off.
Now, here is an idea for an N-aspect system (where N can be 2, 3, 4, or even 200 if you find that many degrees useful). Consider some tracks, which in thie case run from left to right.
For this, we require the concept of a route. A route is a path set from one point on a line to another. On a single straight line, there is only one possible route covering its entire length in one direction.
We introduce signals here, where the signals are red where there is more than one possible route in the block following. This counts equally for convergence and divergence. Assigning the value 0 to signals at danger, the rest of the signals are at aspect x+1, where x is the aspect value of the next signal down the line. In the following example, yellow represents aspect 1, and green is anything with an aspect >= 2.
As a train approaches, a route is set across the junction for the train in accordance with where it needs to go. Routes on the following diagram are represented by the blue lines. Remember that the track runs from left to right in each case.
Now, this is where the clever bit comes in. In TT, the maximum number of trains on a junction was always 1. If there was 1 train on a junction, all protecting sginals were on. If you sent more trains across to ignore the signals, the signal stayed on until the last of the trains left.
In a situation such as this, it is possible that the maximum number of concurrent routes is greater than 1, and such a system should allow for this. Example:
Here, there are two possible routes from each approach: stay on the same track, or change to the adjacent track. In each case, the signals are then off when a route is set, and on where none is set. However, when a route is set on one track for staying on that track, it is possible to set parallel route on the adjacent track. This is safe, assuming the drivers do as they're told. Of course, if you want to build in the option of random SPADs, then that might change things slightly
So, this method as illustrated is safe. Anyone care to demonstrate otherwise? Who knows, I might issue Knuthian cheques for genuine bugs
In all of this, remember that these do not have to be 2- or 3-aspect signals. If someone wants to try 4- or 6- aspect signals similar to those in the UK, those would be easily possible under this system (though the 6-aspect style requires approach control, which requires Rather More Work). So it is submitted for your pleasure, the joys of multiple-aspect signals.
available for use - PM for details.