Estuary Mapping Framework Simulator

Interactive simulation of Estuarine Mapping, a complexity-informed framework for strategic navigation through turbulent organisational landscapes.

Optimized for larger screens

Some simulations are best viewed on larger screens in landscape orientation, but they might work on your phone. I just don't optimise for them.

Built With
Language
TypeScript
Framework
React
Rendering
Canvas API
Icons
Lucide React
Math Rendering
KaTeX
Static Site
Astro

Overview

Estuarine Map is a strategic tool for turbulence, reversibility, and non-linearity in modern ecosystems. Unlike the linear “Delta” model (predictable flow toward a “To-Be” state), this shows that strategy works like an estuary—with turning tides, unstable substrates, and energy costs.

Visualizes the Energy Cost of Change to find strategic windows where small actions have big effects.

The Estuarine Metaphor

Unlike a delta’s unidirectional flow, an estuary is defined by Bidirectional Flow, which is the turn of the tide.

Flood Tide →

Strategic momentum flows inward. Energy costs increase as you push against established structures. The system resists change.

← Ebb Tide

Strategic windows open. Energy costs decrease. Small interventions can achieve disproportionate movement as the system naturally shifts.

Theoretical Foundations

Uses concepts from Constructor Theory, non-equilibrium thermodynamics, and behavioral economics.

Constructor Theory

  • Origin: David Deutsch & Chiara Marletto
  • Concept: Shifts focus from “laws of motion” (what will happen) to “counterfactuals” (what transformations are possible).

In Simulation: Constructors (diamond shapes) are entities that cause transformations without undergoing net change themselves, such as rituals, processes, and habits. Constraints (circles) define the boundary conditions that allow order to emerge.

Energy Landscape & Attractor Dynamics

  • Concept: Organisations show Hysteresis, where the state depends on history.
  • Basins of Attraction: Certain states (e.g., “Bureaucratic Stagnation”) act as deep wells that trap actants.
ΔE=EvEs<0\Delta E = E_v - E_s < 0

The goal is to change the map so that the Energy Cost of Virtue (EvE_v) is lower than the Energy Cost of Sin (EsE_s).

Cognitive Heuristics in Agent Modelling

Agents (blue dots) exhibit behavioral patterns derived from cognitive psychology:

  • Loss Aversion (λ): Agents resist moving from their current position if the perceived energy cost of the new state is higher, even if long-term potential is better. This creates “frictional heat” in the simulation.
  • Social Proof (Herding): Agents cluster together. When a cluster forms, the local energy gradient is lowered, making it harder for individual agents to leave.
  • Hyperbolic Discounting: Agents prefer low-energy, short-time interventions over high-impact, long-time strategic shifts.

Taxonomy of Constraints

Constraints are not merely limitations, they are boundary conditions that allow order to emerge.

TypeCharacteristics
RigidImmovable sea walls. Core safety regulations, legal requirements. High energy cost to move or work around.
ElasticStretches under pressure but snaps back. Crunch-time overtime, temporary workarounds. Oscillates with the tide.
TetherFreedom within a defined radius. Bounded flexibility: can move, but not escape. Employee autonomy within KPIs.
PermeableSelective membranes. Informal social networks that cross organisational silos. Agents may or may not pass through.
Phase ShiftTipping points. Near bifurcation thresholds where small changes cause sudden, qualitative shifts in system topology.
DarkInvisible forces. Shadow IT, informal hierarchies. Detectable only through their “gravitational” influence on flow.

Tidal States

The tide cycles through three distinct states, each affecting system behavior differently.

HIGH Tide

  • Peak capital and momentum
  • Constraints “submerged”, leading to reduced friction
  • Constructors at max throughput
  • Agents flow freely with strong alignment

SLACK Water

  • Transition phase, also known as the Turn
  • Energy cost of change at minimum
  • Constraints vulnerable to re-zoning
  • Strategic window for low-friction moves

LOW Tide

  • Scarcity and exposure
  • ”Rocks” (rigid constraints) exposed
  • Constructor energy decays faster
  • Agents cluster via Social Proof herding

Strategic Vectors

Leadership intent is modeled as directional vectors applied to actants. Vectors create local “winds” that alter energy flow, visualized as arrows emanating from Constraints and Constructors.

Vertical Axis (Energy Cost)

  • North (▲): Increase energy cost, making a “sin” harder
  • South (▼): Decrease energy cost, making a “virtue” easier

Horizontal Axis (Timing)

  • West (◄): Accelerate change by doing it sooner or faster
  • East (►): Delay change by storing Capacitance (social energy)

When a vector opposes the natural tidal flow, Turbulence appears as an orange glow around the actant, visualizing leadership friction.

Causal Chains & Entanglement

Actants don’t exist in isolation; they’re connected through invisible bonds that create emergent organisational dynamics.

Entanglement Bonds

Purple animated tethers representing hidden coupling between nodes.

  • Spring Physics: Moving a parent node physically pulls entangled children
  • Stretch Visualization: Glow intensifies when bonds are under tension
  • Example: Legacy ERP entangled with IT Governance, meaning you can’t change one without affecting the other

Signal Bonds

Cyan dashed lines representing If-Then causal links between actants.

  • Triggers: Capacitance full, state change, or tidal turn
  • Animated Pulse: Cyan pulse travels along the bond when triggered
  • Effects: Deepen/shallow target’s potential well, or trigger phase shift

Bond Types Reference

TypeFunctionVisual
EntanglementConstraint-Distance Spring couplingPurple curved tether with glow
SignalIf-Then conditional effect propagationCyan dashed line with traveling pulse

Organisational Scenarios

Real-world strategic situations modeled through the estuarine lens.

Market Disruption

Particles = Initiatives · Ocean = Market forces

Particles represent strategic initiatives (product launches, R&D bets) and the tidal ocean represents broader market forces (economic cycles, technology shifts, competitor moves).

How It Works

When disruption hits, it arrives like a spring tide, which is a powerful, external surge that floods your strategic landscape. Watch how:

  • Rigid Constraints (red circles) represent established incumbents, legacy business models, or regulatory frameworks. They don’t move, so initiatives must flow around them or expend enormous energy to dislodge them.
  • Elastic Constraints (orange) represent adaptable competitors who stretch under pressure but snap back. They survive disruption by bending, not breaking.
  • Constructors (diamonds) represent the processes that generate new initiatives: innovation labs, accelerators, M&A pipelines. They attract particles, catalyze transformations, and remain relatively unchanged themselves.
Strategic Insights
  • Low herding coefficient: Chaotic markets reduce coordination. Individual initiatives scatter rather than cluster, representing the “every company for itself” dynamic during disruption.
  • Timing matters: Wait for SLACK water (the turn between tides) to launch initiatives, as this is when energy cost of change is lowest and established players are momentarily disoriented.
  • Dark Constraints appear: Watch for invisible forces (shadow competitors, platform shifts) that only reveal themselves through their gravitational effect on initiative flow.

Controls Reference

Tide Strength

Controls the amplitude of bidirectional flow. Higher values create stronger strategic windows but also more turbulence.

Loss Aversion (λ)

How strongly agents resist moving to higher-energy states. Range 1.0–3.0. Higher values create more “sticky” organisational inertia.

Social Proof Radius

Cluster detection range for herding behavior. Larger values cause agents to form bigger clusters. Varies by scenario.

Vector Power

Multiplier for strategic vector influence. Higher values make leadership intent (arrows) more forceful on nearby agents.

Energy Overlay

Visualizes the energy landscape. Green = low cost of change. Yellow = moderate. Red = high resistance zones.

Flow Arrows

Shows the current tidal velocity field. Arrows indicate direction and strength of flow at each point.

Per-Actant Settings

Click any Constraint or Constructor to access individual settings:

Influence Radius

How far the actant’s strategic vector affects nearby agents. Shown as a dotted circle.

Vector Direction

N/S/E/W compass control. Combine axes (e.g., NW) for diagonal intent. Affects agent acceleration within influence radius.

Formulas and Concepts Used

Integrates principles from behavioral economics, cognitive psychology, physics, and complexity science.

Loss Aversion (Prospect Theory)

  • Creators: Daniel Kahneman & Amos Tversky (1979)
  • Concept: People feel losses more intensely than equivalent gains; it is approximately 2x as painful.
vnew=vcurrent×(1min(0.9,ΔE×λ))v_{new} = v_{current} \times (1 - \min(0.9, \Delta E \times \lambda))

Where ΔE=EtargetEcurrent\Delta E = E_{target} - E_{current} is the energy difference and λ\lambda is the loss aversion coefficient (1.0–3.0). Agents resist moving to higher-energy states, creating organisational inertia.

// Loss Aversion: Resistance to higher energy states
const energyDiff = targetEnergy - currentEnergy;
if (energyDiff > 0) {
    // Moving uphill: Apply loss aversion penalty
    if (Math.random() > Math.pow(0.5, energyDiff * lossAversionLambda)) {
        return; // Reject move
    }
}

Social Proof (Herding Behavior)

  • Creator: Robert Cialdini (1984)
  • Concept: When uncertain, people look to others’ behavior for guidance: “if everyone else is doing it, it must be correct.”
Eeffective=Ebasemin(0.4,n×0.05)E_{effective} = E_{base} - \min(0.4, n \times 0.05)

Nearby agents (nn) reduce the local energy cost, creating “social gravity wells.” It becomes energetically cheaper to stay within the herd than to break away.

// Social Gravity: Local clusters reduce effective energy cost
const nearbyCount = this.getNearbyAgents(radius).length;
const socialDiscount = Math.min(0.4, nearbyCount * 0.05);

// The herd makes the current location feel "safer" (lower energy)
const effectiveEnergy = baseEnergy - socialDiscount;

Boids Algorithm (Flocking)

  • Creator: Craig Reynolds (1986)
  • Concept: Emergent collective behavior from three simple rules.
vtotal=αvcohesion+βvalignment+γvseparation\vec{v}_{total} = \alpha \cdot \vec{v}_{cohesion} + \beta \cdot \vec{v}_{alignment} + \gamma \cdot \vec{v}_{separation}

Separation: Avoid crowding neighbors (inverse-square falloff).

// Flocking Behavior (Boids)
const cohesion = this.steerToward(averagePosition);
const alignment = this.steerToward(averageHeading);
const separation = this.avoid(neighbors);

// Sum of vectors with weights
this.acceleration.add(cohesion.mult(0.01));
this.acceleration.add(alignment.mult(0.05));
this.acceleration.add(separation.mult(0.1));

Gradient Descent

  • Origin: Mathematical optimization (Cauchy, 1847)
  • Concept: Move in the direction of steepest descent to find local minima.
vvηE\vec{v} \leftarrow \vec{v} - \eta \cdot \nabla E

Agents descend the energy landscape, seeking “basins of attraction” (stable low-energy states). The gradient E\nabla E is sampled from the energy grid, and η\eta is the learning rate (0.3 in stable zones).

// Gradient Descent on Energy Landscape
const gradX = (energyGrid[x+1][y] - energyGrid[x-1][y]) / 2;
const gradY = (energyGrid[x][y+1] - energyGrid[x][y-1]) / 2;

// Move towards lower energy (downhill)
this.velocity.x -= gradX * learningRate;
this.velocity.y -= gradY * learningRate;

Inductance (Bond Graph Theory)

  • Origin: Henry Paynter (1961)
  • Concept: Energy storage in momentum, reflecting resistance to changes in flow rate.
vnew=vprev+Δv×(1I×0.5)\vec{v}_{new} = \vec{v}_{prev} + \Delta\vec{v} \times (1 - I \times 0.5)

Where II is inductance (0–1). Clustered agents build momentum inertia that resists sudden direction changes, which models organisational momentum.

// Inductance: Resistance to change in velocity
const inductance = 0.8; // High organizational inertia
this.velocity.x = (prevVx * inductance) + (newVx * (1 - inductance));
this.velocity.y = (prevVy * inductance) + (newVy * (1 - inductance));

Sunk Cost Fallacy

  • Researchers: Hal Arkes & Catherine Blumer (1985)
  • Concept: Past investment irrationally influences future decisions: “we’ve come too far to stop now.”
Iboost=min(0.3,ttthreshold2×tthreshold)I_{boost} = \min\left(0.3, \frac{t - t_{threshold}}{2 \times t_{threshold}}\right)

Agents older than tthresholdt_{threshold} (~10 seconds) receive progressive inductance boosts, making them harder to dislodge from current trajectories.

// Sunk Cost: Older agents become harder to move
const age = Date.now() - this.createdAt;
if (age > threshold) {
    // Increase inductance based on age
    this.inductance += 0.001; 
}

Abilene Paradox (Groupthink)

  • Creator: Jerry B. Harvey (1974)
  • Concept: Groups collectively decide on a course of action that no individual member actually wants.
vphantom=(IclusterImax)×0.5×d^sin\vec{v}_{phantom} = (I_{cluster} - I_{max}) \times 0.5 \times \hat{d}_{sin}

When cluster inductance exceeds Imax=0.6I_{max} = 0.6, a “phantom vector” emerges that pushes the entire group toward high-energy “sin” basins, representing collective drift toward suboptimal outcomes.

// Abilene Paradox: Collective drift to undesired outcome
// If cluster cohesion is too high, drift towards "Sin" basin
if (clusterInductance > 0.6) {
   const phantomVector = getVectorToSinBasin();
   this.applyForce(phantomVector.mult(0.5));
}

Institutional Isomorphism

  • Researchers: Paul DiMaggio & Walter Powell (1983)
  • Concept: Organisations under similar environmental pressures become structurally similar over time.
IselfIself+μ×(IneighborIself)I_{self} \leftarrow I_{self} + \mu \times (I_{neighbor} - I_{self})

Agents adopt properties (inductance, loss aversion) of nearby successful neighbors with higher flow rates. μ=0.05\mu = 0.05 controls the gradual mimicry rate.

// Mimetic Isomorphism: Copy successful neighbors
const neighbor = this.getNearestHighFlowNeighbor();
if (neighbor) {
    // Adopt neighbor's properties
    this.inductance = lerp(this.inductance, neighbor.inductance, 0.05);
    this.lossAversion = lerp(this.lossAversion, neighbor.lossAversion, 0.05);
}

Hooke’s Law (Entanglement Springs)

  • Creator: Robert Hooke (1678)
  • Concept: The force exerted by a spring is proportional to its displacement from equilibrium.
F=k×(dd0)F = -k \times (d - d_0)

Entanglement bonds apply spring forces when stretched beyond their rest length d0d_0. This creates the physical coupling between entangled actants, where pulling one drags the other.

// Entanglement Spring Force
const dx = connectedNode.x - this.x;
const dy = connectedNode.y - this.y;
const distance = Math.sqrt(dx*dx + dy*dy);
const force = (distance - restLength) * springConstant;

// Apply restoring force
this.applyForce(new Vector(dx, dy).normalize().mult(force));

Hyperbolic Discounting

  • Researcher: George Ainslie (1975)
  • Concept: People prefer smaller, immediate rewards over larger, delayed rewards, with preference reversals near the present.
V=A1+kDV = \frac{A}{1 + kD}

Where AA is reward magnitude, DD is delay, and kk is the discount rate. Agents prefer low-energy, short-time interventions (West vectors) over high-impact, long-time strategic shifts (East vectors).

// Preference for immediate small gains over long-term value
const shortTermGain = assessVector(WEST); // Do it now
const longTermGain = assessVector(EAST);  // Build capacity

// Discount future value
const discountedLongTerm = longTermGain / (1 + discountRate * delay);

if (shortTermGain > discountedLongTerm) {
    this.move(WEST);
}

Hysteresis

  • Origin: James Alfred Ewing (1881), physics
  • Concept: A system’s current state depends on its history, not just current inputs.
S(t)=f(S(t1),inputs)S(t) = f(S(t-1), \text{inputs})

Organisations display path-dependency: the sequence of past decisions constrains future options. This is why certain “attractor basins” (e.g., bureaucratic stagnation) are difficult to escape once entered.

// State depends on history
// Once trapped in a basin, small fluctuations can't escape
if (isInBasin && inputForce < escapeThreshold) {
    this.state = "TRAPPED"; // Remains trapped even if force > 0
} else {
    this.state = "flowing";
}

Energy Cost of Change

  • Framework: Behavioral architecture / Nudge theory
  • Creators: Richard Thaler & Cass Sunstein (2008)
ΔE=EvEs<0\Delta E = E_v - E_s < 0

The goal of strategic design is to ensure EvE_v (Energy Cost of Virtue) is lower than EsE_s (Energy Cost of Sin). Make the “right thing” the path of least resistance.

// Strategic Design: Lowers energy cost of desired state
class Constructor {
    update() {
        // Create local energy well (Virtue)
        grid[this.x][this.y] -= 0.5; 
        
        // This makes Ev < Es (Virtue cheaper than Sin)
    }
}