Skip to content

Latest commit

 

History

History
110 lines (82 loc) · 3.28 KB

File metadata and controls

110 lines (82 loc) · 3.28 KB

LIF Neuron (leakyIntegrateFire)

Category: Neural Network

Intended behavior

Leaky integrate-and-fire neuron: each Step adds Input to its membrane potential, which decays by Leak, then fires Spike and resets once Threshold is crossed. Enabled=false freezes the neuron (no integration, no spike).

Inputs

ID Label Type Unwired default
inTrigger Step trigger undefined
input Input number 0
enabled Enabled boolean true

Outputs

ID Label Type Default
spike Spike trigger undefined
potential Potential number undefined

Configuration defaults

{
  "potential": 0,
  "threshold": 1,
  "leak": 0.2,
  "resetValue": 0
}

Observed frontend behavior

This calls the production passive computation with the declared input/config defaults. Cached state, trigger execution and project wiring are separate.

{
  "kind": "passive-default-probe",
  "outputs": {
    "potential": 0
  }
}

Observed backend behavior

Offline production passive computation with the same declared defaults; no device or model service is invoked.

{
  "kind": "passive-default-probe",
  "outputs": {
    "potential": 0
  }
}

Current frontend implementation

Extracted production branches; helper calls and project execution context are defined in the referenced modules.

src/lib/execution-helpers.ts:297

case "leakyIntegrateFire":
      outputs.potential = Number(config.potential ?? 0);
      break;

src/lib/execution-helpers.ts:400

if (type === "leakyIntegrateFire" && inputs.enabled === false) {
    // Bypassed: the neuron is frozen — no leak, no integration, no spike.
    nextTriggerPort = null;
  }

src/lib/execution-helpers.ts:404

if (type === "leakyIntegrateFire") {
    const leak = Number(config.leak ?? 0.2);
    const threshold = Number(config.threshold ?? 1);
    const resetValue = Number(config.resetValue ?? 0);
    const input = Number(inputs.input ?? 0);
    const decayed = Number(config.potential ?? 0) * (1 - Math.min(Math.max(leak, 0), 1));
    const potential = decayed + input;
    const fired = potential >= threshold;
    updatedConfig = { ...config, potential: fired ? resetValue : potential };
    nextTriggerPort = fired ? "spike" : null;
  }

Implementation references

Verification limits

  • Default passive probe is an observation, not proof of all configurations, trigger behavior, or correctness. See ../NODE_RUNTIME_AUDIT.md and ../AUDIT_VALIDATION.md for test evidence.
  • Trigger inputs schedule actions; passive evaluation alone does not execute those actions. Wire a trigger source and test the full chain.
  • Enabled=false uses the runtime bypass mapping; bypass output can differ from the normal declared output type.

Source fingerprint: 7e9d192bd3a559a7c50253919867601ef02c311d61e859f7afb4cadcfa508430. Rebuild with npm run docs:index.