Friction Gate
slow risky, destructive, or irreversible actions without modal noise
Running the actual pattern live via applyPattern() — switch the substrate, stack overlays, watch the signals, or reverse the dynamics. Not a mock.
"Friction Gate" — slow risky, destructive, or irreversible actions without modal noise. It has a viscosity layer (damp motion / calm a region), a pressure layer (relax crowding (incompressibility)), a gate layer (admit or deflect matter at a boundary), and a morph layer (assemble matter into a mark/shape (never words, §11)). The active render stack is streamlines, heatmap, particles, trails.
Derived from drag: viscosity makes risky motion deliberate, gate holds release until coherence builds, and morph marks the disabled-to-ready transition without a disruptive modal.
Copy this pattern
<field-root></field-root>
<div data-body="viscosity" data-strength="1" data-range="300" data-feedback></div>
<div data-body="pressure" data-strength="0.7" data-range="280"></div>
<div data-body="gate" data-strength="0.6" data-range="240"></div>
<div data-body="morph" data-strength="0.5" data-range="220"></div> <script type="module">
import '@fundamental-engine/elements';
</script>
<field-root></field-root>
<div data-body="viscosity" data-strength="1" data-range="300" data-feedback></div>
<div data-body="pressure" data-strength="0.7" data-range="280"></div>
<div data-body="gate" data-strength="0.6" data-range="240"></div>
<div data-body="morph" data-strength="0.5" data-range="220"></div> import { FieldField } from '@fundamental-engine/react';
export default function FrictionGate() {
return (
<FieldField>
<div data-body="viscosity" data-strength="1" data-range="300" data-feedback />
<div data-body="pressure" data-strength="0.7" data-range="280" />
<div data-body="gate" data-strength="0.6" data-range="240" />
<div data-body="morph" data-strength="0.5" data-range="220" />
</FieldField>
);
} {
"id": "friction-gate",
"name": "Friction Gate",
"intent": "slow risky, destructive, or irreversible actions without modal noise",
"primitives": [
"viscosity",
"pressure",
"gate",
"morph"
],
"bodies": [
{
"body": "viscosity",
"strength": 1,
"range": 300,
"feedback": true
},
{
"body": "pressure",
"strength": 0.7,
"range": 280
},
{
"body": "gate",
"strength": 0.6,
"range": 240
},
{
"body": "morph",
"strength": 0.5,
"range": 220
}
],
"render": [
"streamlines",
"heatmap",
"particles",
"trails"
],
"metrics": [
"risk",
"friction",
"intent",
"readiness"
],
"diagnostics": [
"inspector",
"prediction",
"energy"
],
"accessibility": {
"reducedMotion": "a confirmation rail moving from a disabled to a ready state with an explicit risk summary",
"meaningWithoutMotion": "friction becomes a readiness meter and the action stays disabled until an explicit risk summary is acknowledged"
},
"notes": "Derived from drag: viscosity makes risky motion deliberate, gate holds release until coherence builds, and morph marks the disabled-to-ready transition without a disruptive modal.",
"tier": "systems",
"status": "shipped",
"concepts": [
"drag",
"friction"
],
"conditions": [
"threshold",
"dwell"
]
} See also
- Diagnostic Lens reveal field lines, causality, prediction, topology, energy, and overlays
- Accessibility Equivalence convert motion-heavy behavior into static, semantic, reduced-motion equivalents
- Field Tutorial teach Fundamental by revealing DOM, bodies, fields, metrics, feedback, and overlays
- Semantic Gravity Map let a document or app reveal which concepts carry the most weight
- Polarity Filter let opposing states, tags, or preferences sort themselves visibly
- Source Constellation show how multiple sources gather around claims, topics, or decisions