← all patterns

Gravity operational

Consensus Well

let agreement gather around stable options or decisions

Running the actual pattern live via applyPattern() — switch the substrate, stack overlays, watch the signals, or reverse the dynamics. Not a mock.

"Consensus Well" — let agreement gather around stable options or decisions. It has a gravity layer (universal attraction toward mass), a cohesion layer (flocking — pull toward neighbours), a link layer (ropes / cloth between neighbours), a pressure layer (relax crowding (incompressibility)), and a memory layer (a decaying trail / hysteresis). The active render stack is metaballs, links, heatmap, particles.

Options that gather agreement gain mass and pull arguments into a single well; cohesion binds the supporters while pressure exposes fragile, contested consensus instead of false certainty (gravity gathering mass, the strong bind holding it).

Runtime tokens
gravity universal attraction toward masscohesion flocking — pull toward neighbourslink ropes / cloth between neighbourspressure relax crowding (incompressibility)memory a decaying trail / hysteresis
Concepts
consensus
Metrics
consensus a semantic lane — drive it with data-field-<metric> (or a domain model); without that its --field-<metric> stays inertcoherence computed every frame by the platform (proximity · engagement · relationships · age)support a semantic lane — drive it with data-field-<metric> (or a domain model); without that its --field-<metric> stays inerttension a semantic lane — drive it with data-field-<metric> (or a domain model); without that its --field-<metric> stays inert consensus, support, tension are host-supplied lanes — drive them with data-field-<metric> (or a domain model); without that, their --field-* stays inert.
Diagnostics
potential topology causality
Render
metaballs · links · heatmap · particles
Reduced motion
a support matrix with an agreement meter and dissent markers
Without motion
each option shows a numeric support count, a coherence label, and listed dissenting arguments

Copy this pattern

<field-root></field-root>
  <div data-body="gravity" data-strength="1.1" data-range="400" data-feedback></div>
  <div data-body="cohesion" data-strength="0.8" data-range="320"></div>
  <div data-body="link" data-strength="0.6" data-range="300"></div>
  <div data-body="pressure" data-strength="0.5" data-range="240"></div>
  <div data-body="memory" data-strength="0.4" data-range="260"></div>

See also