← all patterns

Gravity systems

Priority Tide

let importance rise and fall over time, workload, or context

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

"Priority Tide" — let importance rise and fall over time, workload, or context. It has a gravity layer (universal attraction toward mass), a morph layer (assemble matter into a mark/shape (never words, §11)), a memory layer (a decaying trail / hysteresis), a diffuse layer (spread a quantity over the medium), and a pressure layer (relax crowding (incompressibility)). The active render stack is heatmap, metaballs, particles, trails.

Gravity sets importance while the weak pulls of age and deadline make it tidal: morph and diffuse let priority rise and ebb so nothing stays permanently loud, and memory keeps the decay honest.

Runtime tokens
gravity universal attraction toward massmorph assemble matter into a mark/shape (never words, §11)memory a decaying trail / hysteresisdiffuse spread a quantity over the mediumpressure relax crowding (incompressibility)
Concepts
tide
Metrics
priority computed every frame by the platform (proximity · engagement · relationships · age)age a semantic lane — drive it with data-field-<metric> (or a domain model); without that its --field-<metric> stays inertdeadline a semantic lane — drive it with data-field-<metric> (or a domain model); without that its --field-<metric> stays inertdecay a semantic lane — drive it with data-field-<metric> (or a domain model); without that its --field-<metric> stays inert age, deadline, decay are host-supplied lanes — drive them with data-field-<metric> (or a domain model); without that, their --field-* stays inert.
Diagnostics
potential prediction heatmap
Render
heatmap · metaballs · particles · trails
Reduced motion
a priority ordering with aging badges and a deadline rail
Without motion
tidal importance becomes a re-sortable ranked list with explicit age and deadline values

Copy this pattern

<field-root></field-root>
  <div data-body="gravity" data-strength="1" data-range="400" data-feedback></div>
  <div data-body="morph" data-strength="0.6" data-range="280"></div>
  <div data-body="memory" data-strength="0.6" data-range="260"></div>
  <div data-body="diffuse" data-strength="0.5" data-range="300"></div>
  <div data-body="pressure" data-strength="0.6" data-range="320"></div>

See also