← all patterns

Gravity systems

Ambient Tutor

teach the interface quietly based on hesitation, return, and attention

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

"Ambient Tutor" — teach the interface quietly based on hesitation, return, and attention. It has a memory layer (a decaying trail / hysteresis), a gravity layer (universal attraction toward mass), a propagate layer (travelling waves through the medium), and a link layer (ropes / cloth between neighbours). The active render stack is heatmap, trails, particles, links.

Memory watches hesitation and repeated returns while gravity gives the right explanation subtle priority near the point of need; propagate and link carry help to related controls.

Runtime tokens
memory a decaying trail / hysteresisgravity universal attraction toward masspropagate travelling waves through the mediumlink ropes / cloth between neighbours
Metrics
hesitation a semantic lane — drive it with data-field-<metric> (or a domain model); without that its --field-<metric> stays inertreturn a semantic lane — drive it with data-field-<metric> (or a domain model); without that its --field-<metric> stays inerthelpfulness a semantic lane — drive it with data-field-<metric> (or a domain model); without that its --field-<metric> stays inertattention computed every frame by the platform (proximity · engagement · relationships · age) hesitation, return, helpfulness are host-supplied lanes — drive them with data-field-<metric> (or a domain model); without that, their --field-* stays inert.
Diagnostics
heatmap causality inspector
Conditions
dwell return
Render
heatmap · trails · particles · links
Reduced motion
contextual tips with a help rail and related-explanation markers
Without motion
help surfaces as a contextual tip near the point of need with a list of related explanations

Copy this pattern

<field-root></field-root>
  <div data-body="memory" data-strength="1" data-range="300" data-feedback></div>
  <div data-body="gravity" data-strength="0.7" data-range="360"></div>
  <div data-body="propagate" data-strength="0.5" data-range="320"></div>
  <div data-body="link" data-strength="0.6" data-range="280"></div>

See also