{
  "node": {
    "id": "block:native-normal-random",
    "type": "Block",
    "label": "Normal random source",
    "properties": {
      "id": "native-normal-random",
      "name": "Normal random source",
      "kind": "studio",
      "summary": "Produces reproducible Box–Muller Gaussian samples and holds them at the declared sample period.",
      "behavior": "z = sqrt(−2 ln(r₁)) × cos(2πr₂). y = mean + standard deviation × z.",
      "ports": [
        {
          "name": "out0",
          "direction": "output",
          "unit": "1",
          "description": "Signal; real scalar.",
          "shape": [],
          "elementType": "real"
        }
      ],
      "parameters": [
        {
          "key": "sampleTimeS",
          "label": "Sample period",
          "unit": "s",
          "default": 0.1,
          "min": 0,
          "description": "Positive interval between sample instants. Values are held between samples."
        },
        {
          "key": "params[0]",
          "label": "Seed (1–4294967295)",
          "unit": "1",
          "default": 1,
          "description": "Configured value for Seed (1–4294967295)."
        },
        {
          "key": "params[1]",
          "label": "Mean",
          "unit": "1",
          "default": 0,
          "description": "Configured value for Mean."
        },
        {
          "key": "params[2]",
          "label": "Standard deviation",
          "unit": "1",
          "default": 1,
          "description": "Configured value for Standard deviation."
        }
      ],
      "equations": [
        "z = sqrt(−2 ln(r₁)) × cos(2πr₂)",
        "y = mean + standard deviation × z"
      ],
      "example": {
        "title": "Normal random source — worked example",
        "text": "Use the configured source parameters. Signal at 0 s = 4.376933234944767.",
        "url": "https://design.lemonergy.com/cosim.html?example=block-native-normal-random",
        "label": "Open Studio example",
        "inputs": [],
        "checks": [
          {
            "port": "out0",
            "label": "Signal",
            "atS": 0,
            "value": 4.376933234944767,
            "unit": "1",
            "tolerance": 1e-10
          }
        ]
      },
      "limits": [
        "Gaussian samples use the xorshift32 sequence and the cosine Box–Muller transform. This is not a power-spectral-density-normalized band-limited noise block."
      ],
      "references": [
        "marsaglia-xorshift-2003",
        "box-muller-1958"
      ],
      "caseIds": [
        "native-native-normal-random"
      ],
      "availability": {
        "status": "released",
        "label": "Available in Lemonergy Studio",
        "detail": "The bundled example is available in the production release verified on 28 October 2026. The parameters and examples here are synthetic teaching fixtures, not a characterized cell or a validated operating limit."
      },
      "evidence": [
        "docs/glossary/native-block-verification.json"
      ],
      "sourceRepository": "Lemonergy Studio public contract",
      "sourceRevision": "verification-2026-10-27",
      "exampleTraces": [
        {
          "id": "native-normal-random",
          "url": "https://lemonergy.com/learn/glossary/api/traces/native-normal-random.json?v=6f01925a5757",
          "title": "Normal random source recorded example",
          "exampleId": "block-native-normal-random",
          "source": "Executed synthetic Lemonergy Studio example",
          "recordedOn": "2026-10-28",
          "points": 11,
          "channels": 1,
          "omittedChannels": 0,
          "interpolation": "step",
          "solver": {
            "method": "dormand-prince-45",
            "reason": "no-continuous-states"
          }
        }
      ],
      "type": "native-normal-random",
      "implementationId": "native-normal-random",
      "url": "https://lemonergy.com/learn/glossary/blocks/native-normal-random/",
      "documentationUrl": "https://lemonergy.com/learn/glossary/blocks/native-normal-random/",
      "sourceFile": "block-library.json",
      "reviewed": "2026-10-27",
      "releaseEvidence": {
        "environment": "production",
        "status": "verified",
        "revision": "e76cadfc203e15eb41f3478d8b1044a5b851953d",
        "verifiedOn": "2026-10-28",
        "exampleUrls": [
          "https://design.lemonergy.com/cosim.html?example=block-native-normal-random"
        ]
      }
    }
  },
  "incoming": [
    {
      "id": "edge:usesBlock/native-native-normal-random/0",
      "type": "usesBlock",
      "source": "workflow:native-native-normal-random",
      "target": "block:native-normal-random",
      "properties": {
        "sourceFile": "wiki-blocks.json",
        "position": 0,
        "name": "Normal random source",
        "type": "native-normal-random",
        "role": "z = sqrt(−2 ln(r₁)) × cos(2πr₂). y = mean + standard deviation × z.",
        "settings": [
          "Use the block reference for settings and connections.",
          "Bundled example verified on the production release of 28 October 2026."
        ]
      }
    }
  ],
  "outgoing": [
    {
      "id": "edge:cites/block:native-normal-random/reference:box-muller-1958",
      "type": "cites",
      "source": "block:native-normal-random",
      "target": "reference:box-muller-1958",
      "properties": {
        "sourceFile": "block-library.json",
        "scope": "Scientific or mathematical background; implementation scope is stated by the block contract"
      }
    },
    {
      "id": "edge:cites/block:native-normal-random/reference:marsaglia-xorshift-2003",
      "type": "cites",
      "source": "block:native-normal-random",
      "target": "reference:marsaglia-xorshift-2003",
      "properties": {
        "sourceFile": "block-library.json",
        "scope": "Scientific or mathematical background; implementation scope is stated by the block contract"
      }
    }
  ],
  "neighbors": [
    {
      "id": "workflow:native-native-normal-random",
      "type": "Workflow",
      "label": "Normal random source — worked example",
      "properties": {
        "id": "native-native-normal-random",
        "title": "Normal random source — worked example",
        "kind": "studio",
        "summary": "Produces reproducible Box–Muller Gaussian samples and holds them at the declared sample period.",
        "steps": [
          "Review the interface, units and model limits.",
          "Open the Studio example and run its bundled model.",
          "Compare outputs with the numerical checks; change one input and run again."
        ],
        "example": "Use the configured source parameters. Signal at 0 s = 4.376933234944767.",
        "observe": "Inspect the output channels and checks on the block reference page.",
        "limits": "Gaussian samples use the xorshift32 sequence and the cosine Box–Muller transform. This is not a power-spectral-density-normalized band-limited noise block.",
        "url": "https://design.lemonergy.com/cosim.html?example=block-native-normal-random",
        "label": "Open Studio example",
        "evidence": [
          "docs/glossary/native-block-verification.json"
        ]
      }
    },
    {
      "id": "reference:box-muller-1958",
      "type": "Reference",
      "label": "A Note on the Generation of Random Normal Deviates",
      "properties": {
        "title": "A Note on the Generation of Random Normal Deviates",
        "authors": [
          "G. E. P. Box",
          "Mervin E. Muller"
        ],
        "year": 1958,
        "publisher": "The Annals of Mathematical Statistics, 29(2), 610–611",
        "url": "https://doi.org/10.1214/aoms/1177706645",
        "type": "Research article",
        "scope": "The mathematical transform from two independent uniform variates to a normal variate; software generator and seed conventions are defined separately.",
        "accessed": "2026-10-27"
      }
    },
    {
      "id": "reference:marsaglia-xorshift-2003",
      "type": "Reference",
      "label": "Xorshift RNGs",
      "properties": {
        "title": "Xorshift RNGs",
        "authors": [
          "George Marsaglia"
        ],
        "year": 2003,
        "publisher": "Journal of Statistical Software, 8(14)",
        "url": "https://www.jstatsoft.org/article/view/v008i14",
        "type": "Research article",
        "scope": "Xorshift random number generation; the exact 32-bit shifts and uniform scaling used here are specified by the Lemonergy contract.",
        "accessed": "2026-10-27"
      }
    }
  ]
}
