George Jackson Bifurcation Model

The George Jackson model describes how economic crisis routes consciousness toward either class solidarity or national identity (fascism), depending on the presence of solidarity networks.

Named after the revolutionary theorist George Jackson, this model captures a critical insight: material conditions alone do not determine revolutionary outcomes—organizational infrastructure matters.

Theoretical Foundation

When wages fall and material conditions deteriorate, agitation energy increases. But where does this energy go?

Without SOLIDARITY edges:

Energy routes toward national/racial identity → Fascism (+1 ideology)

With SOLIDARITY edges:

Energy routes toward class consciousness → Revolution (-1 ideology)

This creates a bifurcation in ideological space:

        flowchart TB
    A[Agitation Energy] --> B{SOLIDARITY<br/>Edge Present?}
    B -->|No| C[FASCISM<br/>+ideology +1.0]
    B -->|Yes| D[REVOLUTION<br/>-ideology -1.0]
    C --> E[National/Racial<br/>Identity]
    D --> F[Class<br/>Consciousness]
    

The Ideology Axis

Babylon models ideology on a continuous scale:

Ideology Scale

Value

Meaning

-1.0

Revolutionary class consciousness

0.0

Apolitical / acquiescent

+1.0

National/racial identity (fascism)

The scale represents not moral value but organizational allegiance:

  • Negative values → International proletarian solidarity

  • Positive values → National/imperial identification

Consciousness Drift Formula

Consciousness drift is calculated each tick:

\[\Delta I = k \cdot A \cdot D\]

Where:

  • \(\Delta I\) = Change in ideology

  • \(k\) = Drift sensitivity coefficient (from GameDefines)

  • \(A\) = Agitation level (from material conditions)

  • \(D\) = Direction (+1 or -1, determined by SOLIDARITY presence)

Agitation Level:

Agitation increases when:

  • Wages fall below subsistence

  • Wealth declines over time

  • Imperial rent extraction intensifies

Direction Determination:

def determine_direction(class_node, graph):
    """Determine ideological direction from solidarity network."""
    solidarity_edges = [
        e for e in graph.edges(class_node)
        if graph.edges[e]["edge_type"] == EdgeType.SOLIDARITY
    ]
    if solidarity_edges:
        return -1  # Class consciousness
    else:
        return +1  # National identity

Empirical Validation

The George Jackson model has been validated through parameter sweep analysis with the following findings:

Key Parameter: solidarity_decay_base

Sweep Results

Decay Rate

Outcome

Ideology Range

0.90

Revolution (tick ~30)

[-1.0, -0.8]

0.95

Stalemate

[-0.5, 0.5]

0.99

Fascism (tick ~50)

[0.8, 1.0]

The solidarity decay rate determines whether class networks persist long enough to route agitation toward revolution.

Historical Parallel

The model captures the historical pattern observed by George Jackson and other revolutionary theorists:

  1. Weimar Germany (1929-1933) - Economic crisis (wages fell) - Weak KPD solidarity networks - Agitation routed → National Socialism

  2. Russia (1905-1917) - Economic crisis (wages fell) - Strong Bolshevik organizational networks - Agitation routed → October Revolution

  3. USA (2008-2016) - Economic crisis (wages stagnated) - Weak labor/socialist networks - Agitation routed → Trump/MAGA nationalism

Implementation

The bifurcation logic is implemented in the ConsciousnessSystem:

# src/babylon/engine/systems/ideology.py

class ConsciousnessSystem:
    def process(self, graph, services, context):
        for node_id, data in graph.nodes(data=True):
            if data.get("_node_type") != "social_class":
                continue

            # Calculate agitation from material conditions
            agitation = self._calculate_agitation(node_id, data, graph)

            # Determine direction from solidarity network
            direction = self._determine_direction(node_id, graph)

            # Apply consciousness drift
            drift = self.drift_sensitivity * agitation * direction
            new_ideology = clamp(data["ideology"] + drift, -1.0, 1.0)

            graph.nodes[node_id]["ideology"] = new_ideology

Key Parameters

The following GameDefines parameters control bifurcation behavior:

Configuration Parameters

Parameter

Default

Effect

consciousness.drift_sensitivity_k

0.1

How fast ideology changes

consciousness.agitation_threshold

0.3

Minimum agitation to trigger drift

solidarity.decay_base

0.95

How fast SOLIDARITY edges decay

solidarity.transmission_rate

0.1

How fast consciousness spreads

Strategic Implications

For revolutionary movements in the simulation:

  1. Build SOLIDARITY edges early Without organizational infrastructure, crisis will route to fascism.

  2. Maintain solidarity networks Higher decay rates favor fascism; strong networks favor revolution.

  3. Crisis is necessary but not sufficient Material degradation creates agitation, but organization determines its direction.

See Also