← all patterns

Gravity applied

Availability Pressure

show schedule density, conflicts, and open space

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

"Availability Pressure" — show schedule density, conflicts, and open space. It has a gravity layer (universal attraction toward mass), a pressure layer (relax crowding (incompressibility)), a tether layer (bind matter to an anchor), a repel layer (carve a void / keep-clear region), and a memory layer (a decaying trail / hysteresis). The active render stack is heatmap, metaballs, particles.

Deadlines sink into gravitational wells and busy blocks raise pressure, while elastic events ride a tether (spring) — schedule density read as a gravity-and-pressure landscape.

Runtime tokens
gravity universal attraction toward masspressure relax crowding (incompressibility)tether bind matter to an anchorrepel carve a void / keep-clear regionmemory a decaying trail / hysteresis
Concepts
spring
Metrics
pressure computed every frame by the platform (proximity · engagement · relationships · age)availability a semantic lane — drive it with data-field-<metric> (or a domain model); without that its --field-<metric> stays inertconflict a semantic lane — drive it with data-field-<metric> (or a domain model); without that its --field-<metric> stays inertflexibility a semantic lane — drive it with data-field-<metric> (or a domain model); without that its --field-<metric> stays inert availability, conflict, flexibility are host-supplied lanes — drive them with data-field-<metric> (or a domain model); without that, their --field-* stays inert.
Diagnostics
contours potential causality
Render
heatmap · metaballs · particles
Reduced motion
density shading with conflict badges and open-space markers
Without motion
busy and open blocks read through density shading, conflict badges, and explicit open-space markers

Copy this pattern

<field-root></field-root>
  <div data-body="gravity" data-strength="1" data-range="380" data-feedback></div>
  <div data-body="pressure" data-strength="0.8" data-range="300"></div>
  <div data-body="tether" data-strength="0.6" data-range="280"></div>
  <div data-body="repel memory" data-strength="0.6" data-range="260"></div>

See also