---
slug: "Hysteresis"
name: "Hysteresis"
type: "Primitives"
layer: "Infrastructure"
ref: "Hysteresis#c2d1"
sema_id: "sema:Hysteresis#mh:SHA-256:c2d174f3fa513ed81bcd5b731aa651a3e4662a671748e514d758582657a5bf9a"
tags: ["Infrastructure","Primitives"]
updated: 2026-11-11
mindscape: "bootstrap"
index_url: https://mindscape.world/scapes/bootstrap.json
url: https://mindscape.world/bootstrap/Hysteresis/
related: ["Dampen","State","EbbFlowSync","OsmoticFilter"]
---

# Hysteresis

Preventing oscillation via asymmetric thresholds

Layer: Infrastructure · Category: Primitives

## Mechanism

Asymmetric Thresholds: [State](https://mindscape.world/scapes/bootstrap/State.md) change from A→B requires crossing threshold T_up. [State](https://mindscape.world/scapes/bootstrap/State.md) change from B→A requires crossing lower threshold T_down. Gap between thresholds prevents oscillation near boundary. Thresholds fixed or adaptive. It uses a [Dampen](https://mindscape.world/scapes/bootstrap/Dampen.md) effect on state transitions, requiring the signal to cross distinct upper and lower thresholds to switch modes.

## Invariants

- `upper_threshold` is strictly greater than `lower_threshold`.
- The gap between them is at most `max_gap`.
- A→B needs `upper_threshold` crossed; B→A needs `lower_threshold` crossed.

## Failure modes

- Stuck [State](https://mindscape.world/scapes/bootstrap/State.md): the band is wide enough that the signal never reaches `lower_threshold` again.
- Chatter: the band is narrow enough that noise alone crosses both thresholds.

## Parameters

- `upper_threshold` (Float, [0.0, 1.0]): Level the signal must exceed to switch from A to B.
- `lower_threshold` (Float, [0.0, 1.0]): Level the signal must fall below to switch back from B to A.
- `max_gap` (Float, (0.0, 1.0)): Widest permitted band between the thresholds, so the system can still return.

## Builds on

- [Dampen](https://mindscape.world/scapes/bootstrap/Dampen.md) (Physics; References)
- [State](https://mindscape.world/scapes/bootstrap/State.md) (Infrastructure; References)

## Used by

- [EbbFlowSync](https://mindscape.world/scapes/bootstrap/EbbFlowSync.md) (Society; References)
- [OsmoticFilter](https://mindscape.world/scapes/bootstrap/OsmoticFilter.md) (Society; References)

## Identity

- Sema ID: `sema:Hysteresis#mh:SHA-256:c2d174f3fa513ed81bcd5b731aa651a3e4662a671748e514d758582657a5bf9a`
- Ref: `Hysteresis#c2d1`
- Supersedes:
  - `sema:Hysteresis#mh:SHA-256:78b01a1947793415b84de8f1883f9e3853f08e62b6647a38e51048d4ecbeb33a`
  - `sema:Hysteresis#mh:SHA-256:f1dfdb23e9c63915250dc6ff0b8447d728649aa00a69a0f57b6ce9d0c6f534a7`

## Links

- [Pattern page](https://mindscape.world/bootstrap/Hysteresis/)
- [View in the interactive graph](https://mindscape.world/bootstrap/#Hysteresis)
- [JSON](https://mindscape.world/scapes/bootstrap/Hysteresis.json)
- [Index of all patterns](https://mindscape.world/scapes/bootstrap.json)
