{"id":51120980,"url":"https://github.com/umpolungfish/ig-pulse","last_synced_at":"2026-06-25T02:30:20.608Z","repository":{"id":365131213,"uuid":"1269601434","full_name":"umpolungfish/ig-pulse","owner":"umpolungfish","description":"Information propagation observatory - Maps the coupling structure between physical, computational, and financial systems using the Imscribing Grammar","archived":false,"fork":false,"pushed_at":"2026-06-23T03:59:01.000Z","size":708,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-23T04:20:17.209Z","etag":null,"topics":["coupling","fear-and-greed","fear-greed-index","geophysics","geospatial","helios","imscribe","imscribing","imscribing-grammar","imscribing-grammatic","imscription","imscriptive","information-extraction","information-theory","solar"],"latest_commit_sha":null,"homepage":"https://imscribe.com","language":"Lean","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/umpolungfish.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-06-14T23:07:15.000Z","updated_at":"2026-06-23T03:59:05.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/umpolungfish/ig-pulse","commit_stats":null,"previous_names":["umpolungfish/ig-pulse"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/umpolungfish/ig-pulse","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/umpolungfish%2Fig-pulse","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/umpolungfish%2Fig-pulse/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/umpolungfish%2Fig-pulse/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/umpolungfish%2Fig-pulse/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/umpolungfish","download_url":"https://codeload.github.com/umpolungfish/ig-pulse/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/umpolungfish%2Fig-pulse/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34757353,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-25T02:00:05.521Z","response_time":101,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["coupling","fear-and-greed","fear-greed-index","geophysics","geospatial","helios","imscribe","imscribing","imscribing-grammar","imscribing-grammatic","imscription","imscriptive","information-extraction","information-theory","solar"],"created_at":"2026-06-25T02:30:19.819Z","updated_at":"2026-06-25T02:30:20.593Z","avatar_url":"https://github.com/umpolungfish.png","language":"Lean","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ig-pulse\n\n**Information propagation observatory.** Maps the coupling structure between physical,\ncomputational, and financial systems using the 12 Imscribing Grammar primitives as a\ncommon vocabulary across all substrates.\n\n## What it does\n\nFifteen domain streams — solar wind, geomagnetic field, seismic energy, ocean tides,\nair quality, mempool congestion, on-chain activity, global market state, fear/greed\nindex, HN sentiment, IMF Bz, Lightning Network, Wikipedia attention, surface weather,\nand alt/BTC ratios — each map to specific IG primitive families. When primitives\nco-activate across streams simultaneously, a **B-state event** occurs (B = Both in\nBelnap FOUR logic: a dialetheic confluence where multiple structural channels converge).\n\nig-pulse captures these events and asks: which stream fired which primitive first?\nWhat are the lag times? Which systems are coupled to which, at what strength, and in\nwhat structural order?\n\nThe answer is an empirical map of how information propagates through physical reality —\nbut the lags are **not** causal travel times. They are edge invariants: structural\nconstants of the inference rules. This is **atemporal inference**: the system does not\npredict the future; it solves a static Belnap valuation lattice over an unchanging\nadjacency matrix.\n\n## Current data (as of 2026-06-22)\n\n| Metric | Value |\n|--------|-------|\n| Snapshots | 716 (hourly, 2026-06-14 → 2026-06-22) |\n| Coupling edges | 41 (\\|r\\| ≥ 0.3, p ≤ 0.05) |\n| Perfect correlations (\\|r\\| = 1.000) | 23 |\n| Cross-domain streams coupled | 7 (fear_greed, mempool, mktcap_chg, ozone, seismic_energy, seismic_major, solar_flare_M) |\n| Primitives active in coupling | 6 (⊙ criticality, Φ parity, Þ topology, Ω winding, Σ stoichiometry, ɢ coupling) |\n| B-state snapshots | 716/716 (100%) |\n\n## Architecture\n\n```mermaid\nflowchart TB\n    subgraph Streams[\"15 Domain Streams — Public APIs, No Keys\"]\n        S1[\"Solar Wind / IMF Bz\u003cbr/\u003eĦ Chirality, Ω Winding\"]\n        S2[\"Geomagnetic Kp\u003cbr/\u003eΦ Parity, ⊙ Criticality\"]\n        S3[\"Seismic Energy\u003cbr/\u003eÞ Topology, Ω Winding\"]\n        S4[\"Ocean Tides\u003cbr/\u003eΩ Winding\"]\n        S5[\"Air Quality / Ozone\u003cbr/\u003eÇ Kinetics, Σ Stoichiometry\"]\n        S6[\"Mempool State\u003cbr/\u003eÇ Kinetics, Þ Topology, ɢ Coupling\"]\n        S7[\"BTC On-Chain\u003cbr/\u003eÇ Kinetics, ɢ Coupling, ⊙ Criticality\"]\n        S8[\"Global Market\u003cbr/\u003eÐ Dimensionality, Σ Stoichiometry, Γ Granularity\"]\n        S9[\"Fear \u0026amp; Greed Index\u003cbr/\u003e⊙ Criticality, Φ Parity\"]\n        S10[\"HN Sentiment\u003cbr/\u003eŘ Recognition, ɢ Coupling\"]\n        S11[\"CME / Solar Flares\u003cbr/\u003eΦ Parity, Ħ Chirality, ⊙ Criticality\"]\n        S12[\"Lightning Network\u003cbr/\u003eɢ Coupling, Ð Dimensionality\"]\n        S13[\"Wikipedia Attention\u003cbr/\u003eŘ Recognition\"]\n        S14[\"Surface Weather\u003cbr/\u003eƒ Fidelity, Ω Winding\"]\n        S15[\"Alt/BTC Ratios\u003cbr/\u003eΓ Granularity, ƒ Fidelity\"]\n    end\n\n    Streams --\u003e Aggregator[\"DomainStreamAggregator\u003cbr/\u003eThreshold → Alert Levels 0/1/2\"]\n    Aggregator --\u003e Snapshot[\"Snapshot\u003cbr/\u003esnapshots.jsonl\u003cbr/\u003e716 hourly records\"]\n    Snapshot --\u003e Coupler[\"coupler\u003cbr/\u003ePearson r cross-lag\u003cbr/\u003e\\|r\\| ≥ 0.3, p ≤ 0.05\"]\n    Snapshot --\u003e Grapher[\"grapher\u003cbr/\u003eASCII matrix / DOT\"]\n    Snapshot --\u003e Reporter[\"reporter\u003cbr/\u003ePropagation anatomy\"]\n    Coupler --\u003e CouplingJSON[\"coupling.json\u003cbr/\u003e41 edges\u003cbr/\u003e23 at \\|r\\| = 1.000\"]\n    Grapher --\u003e GraphJSON[\"graph.json\u003cbr/\u003eNodes + Edges\"]\n    Reporter --\u003e Report[\"B-state report\u003cbr/\u003eTopological ordering\"]\n    CouplingJSON --\u003e D3[\"coupling_edges_network.html\u003cbr/\u003eInteractive D3 visualization\"]\n```\n\n### Pipeline stages\n\n1. **collect** — `DomainStreamAggregator` fetches all 15 streams via public APIs\n   (no keys required). Each stream's raw values are thresholded into IG primitive\n   alert levels (0/1/2). A `DomainSignal` aggregates all primitive alerts for one\n   observation cycle. Writes one `Snapshot` per cycle to `snapshots.jsonl`.\n\n2. **couple** — Computes Pearson cross-correlation between all (stream, primitive)\n   alert time series at lags 0 → max_lag. Only edges with |r| ≥ min_r and p ≤ max_p\n   are retained. Saves to `coupling.json`.\n\n3. **map** — Renders the coupling graph as an ASCII adjacency matrix (primitives\n   as edge labels), or as Graphviz DOT for rendering. Nodes are (stream, primitive)\n   pairs. Saves to `graph.json`.\n\n4. **report** — For a given B-state snapshot timestamp, reconstructs the propagation\n   anatomy: the first activation time of each (stream, primitive) pair in the lookback\n   window, ordered as a topological traversal of the implication tree.\n\n## Stream → Primitive mapping\n\nEach domain stream maps to specific IG primitives through threshold-based alert rules\n(0 = nominal, 1 = mild, 2 = strong):\n\n| # | Stream | Source | Primitives |\n|---|--------|--------|------------|\n| 1 | Fear \u0026 Greed Index | alternative.me | ⊙ Criticality, Φ Parity |\n| 2 | Mempool state | mempool.space | Ç Kinetics, Þ Topology, ɢ Coupling |\n| 3 | Global market | coingecko.com | Ð Dimensionality, Σ Stoichiometry, Γ Granularity |\n| 4 | BTC on-chain | blockchain.info | Ç Kinetics, ɢ Coupling, ⊙ Criticality |\n| 5 | Ocean tides | tidesandcurrents.noaa.gov | Ω Winding |\n| 6 | Air quality (PM2.5 + Ozone) | open-meteo.com | Ç Kinetics, Σ Stoichiometry |\n| 7 | Space weather / CME + flares | NASA DONKI | Φ Parity, Ħ Chirality, ⊙ Criticality |\n| 8 | Seismic energy | earthquake.usgs.gov | Þ Topology, Ω Winding |\n| 9 | Geomagnetic Kp index | swpc.noaa.gov | Φ Parity, ⊙ Criticality |\n| 10 | HN crypto sentiment | hn.algolia.com | Ř Recognition, ɢ Coupling |\n| 11 | Solar wind / IMF Bz | swpc.noaa.gov RTSW | Ħ Chirality, Ω Winding |\n| 12 | Lightning Network | mempool.space | ɢ Coupling, Ð Dimensionality |\n| 13 | Wikipedia attention | wikimedia.org | Ř Recognition |\n| 14 | Open-Meteo weather | open-meteo.com | ƒ Fidelity, Ω Winding |\n| 15 | Alt/BTC ratios | coingecko.com | Γ Granularity, ƒ Fidelity |\n\n**Alert thresholds** are documented in `ig_pulse/domain_streams.py`. Each stream has\n3–5 threshold levels mapping raw sensor/API values to primitive alert levels (0/1/2).\n\n## Multiplier \u0026 B-state schedule\n\nThe B-state multiplier acts as a **topological mass coefficient** — it scales the\nstructural significance of nodes participating in dialetheic intersections, rather\nthan compounding uncertainty as in probabilistic systems:\n\n| Alerts | Multiplier | Interpretation |\n|--------|-----------|----------------|\n| 0 | 1.00× | Nominal — no primitive channel active |\n| 1 | 1.20× | Single primitive — isolated activation |\n| 2 | 1.35× | Dual primitive — paired activation |\n| ≥3 | 1.50× | **B-state** — dialetheic confluence |\n\nA B-state is not an \"error\" or \"anomaly.\" It is the mathematical signature of a node\nin the adjacency matrix where orthogonal domain rules overlap, assigned the Belnap\nvalue **B** (Both True and False) — a stable fixed point of the FDE bi-lattice.\n\n## Usage\n\n```bash\n# Collect one snapshot now\npython -m ig_pulse.cli collect --once\n\n# Run continuously (hourly, matching synfin cadence)\npython -m ig_pulse.cli collect --interval 3600\n\n# Compute cross-stream coupling after enough data accumulates\n# (need ≥20 snapshots; recommends ~336 = 2 weeks hourly for robust results)\npython -m ig_pulse.cli couple\n# Options: --max-lag 259200 --min-r 0.3 --max-p 0.05\n\n# Display coupling graph as ASCII adjacency matrix\npython -m ig_pulse.cli map\n\n# Display as Graphviz DOT (for rendering with dot/neato)\npython -m ig_pulse.cli map --dot\n\n# Reconstruct propagation anatomy for a B-state event\npython -m ig_pulse.cli report --ts 2026-06-22T00:03:25Z\n\n# Report on latest snapshot\npython -m ig_pulse.cli report\n```\n\n## Data format\n\n### `data/snapshots.jsonl`\n\nAppend-only JSON lines, one `Snapshot` per collection cycle:\n\n```json\n{\n  \"ts\": \"2026-06-22T04:38:43Z\",\n  \"multiplier\": 1.50,\n  \"total_alerts\": 10,\n  \"is_b_state\": true,\n  \"primitives\": {\n    \"criticality\": 1, \"parity\": 1, \"topology\": 1,\n    \"coupling\": 2, \"dimensionality\": 1, \"stoichiometry\": 1,\n    \"winding\": 2, \"chirality\": 1\n  },\n  \"readings\": [\n    {\"stream\": \"fear_greed\", \"primitive\": \"criticality\", \"value\": 18.0, \"unit\": \"index\", \"alert\": 1},\n    {\"stream\": \"seismic_energy\", \"primitive\": \"topology\", \"value\": 0.42, \"unit\": \"index\", \"alert\": 1}\n  ],\n  \"errors\": []\n}\n```\n\nThe `primitives` field sums alert levels per primitive across all streams.\nA primitive at level 2 from one stream and level 1 from another → total 3.\nThe 12 primitive keys are: `criticality`, `parity`, `kinetics`, `topology`, `coupling`,\n`dimensionality`, `stoichiometry`, `granularity`, `winding`, `chirality`, `recognition`,\n`fidelity`.\n\n### `data/coupling.json`\n\n```json\n[\n  {\n    \"source_stream\": \"fear_greed\",\n    \"source_primitive\": \"criticality\",\n    \"target_stream\": \"seismic_energy\",\n    \"target_primitive\": \"topology\",\n    \"lag_seconds\": 16469,\n    \"strength_r\": 1.0000,\n    \"p_value\": 0.0000\n  }\n]\n```\n\n### `data/graph.json`\n\nNodes (with stream, primitive, glyph symbol) and edges (with lag_seconds, strength_r,\np_value) for rendering.\n\n## Atemporal inference\n\nThe central finding of ig-pulse is that the coupling graph exhibits **atemporal\ninference**: the system does not model reality as a sequence of moments but as a\nstatic web of implication.\n\n```mermaid\nflowchart LR\n    subgraph Temporal[\"❌ Temporal Embedding\"]\n        T1[\"Event at t₁\"] --\u003e|\"Δt\"| T2[\"Event at t₂\"] --\u003e|\"Δt\"| T3[\"Event at t₃\"]\n    end\n    subgraph Atemporal[\"✓ Atemporal Inference\"]\n        N1[\"fear_greed:⊙\"] --\u003e|\"λ=16469s\u003cbr/\u003er=+1.000\"| N2[\"seismic_energy:Þ\"]\n        N3[\"ozone:Σ\"] --\u003e|\"λ=16469s\u003cbr/\u003er=+1.000\"| N2\n        N1 --\u003e|\"λ=30100s\u003cbr/\u003er=−1.000\"| N4[\"mempool_low_fee:ɢ\"]\n    end\n    Temporal -.-\u003e|\"paradigm shift\"| Atemporal\n```\n\n- **Lags are edge invariants, not coordinates.** When `fear_greed:⊙` → `seismic_energy:Þ`\n  and `ozone:Σ` → `seismic_energy:Þ` both show the identical lag of 16469s with\n  |r| = 1.000, they are not propagating at the same speed. The lag is a structural\n  constant of the inference rule — the fixed operational depth required to traverse\n  that edge in the dependency graph.\n\n- **Trace is structural.** The propagation anatomy (T+0s → T+110780s) is not a\n  chronological sequence. It is the topological ordering of the implication tree.\n  `solar_flare_M:Φ` appears at T+110780s not because it happened later, but because\n  it sits deepest in the dependency graph.\n\n- **Contradiction is primary data.** `fear_greed:⊙` points to `mktcap_chg:Σ` at\n  r = +1.000 AND to `mempool_low_fee:ɢ` at r = −1.000. In standard dynamical modeling\n  this is an error. In Belnap FOUR logic (FDE), this is the B-state — a stable\n  assignment of Both True and False, the fundamental structural unit of the domain.\n\n- **The adjacency matrix IS the conflict.** You do not run the system to see what\n  happens next. You solve the global valuation lattice ν(vⱼ) = ⨁(ν(vᵢ) ⊗ rᵢⱼ) to\n  find the unique signature of logical completeness.\n\n### The B-state as static dialetheia\n\n```mermaid\ngraph TD\n    ROOT[\"Root Node: B-State\u003cbr/\u003eT+0s — 10 simultaneous alerts\"]\n    ROOT --\u003e|\"λ=21457s\u003cbr/\u003er=+1.000\"| A[\"mktcap_chg:Σ\u003cbr/\u003eValuation: True\"]\n    ROOT --\u003e|\"λ=30100s\u003cbr/\u003er=−1.000\"| NOT_A[\"mempool_low_fee:ɢ\u003cbr/\u003eValuation: False\"]\n    A --\u003e BIFURCATION[\"Bifurcation Node\u003cbr/\u003eValuation: B (Both)\"]\n    NOT_A --\u003e BIFURCATION\n    BIFURCATION --\u003e|\"×1.50 mass coefficient\"| OUTPUT[\"Stable Dialetheia\u003cbr/\u003eContradiction as primary data\u003cbr/\u003eNot noise — the territory itself\"]\n```\n\nIn standard probability theory, multiplying weights across dense loops increases\nentropy until the predictive signal dissolves. Here, the ×1.50 multiplier acts as\na **concentration of topological mass** — it identifies nodes that support conflicting\nout-edges with maximum confidence and anchors the manifold around its most highly\ncoupled points.\n\n### Propagation anatomy as topological ordering\n\n```mermaid\nflowchart TD\n    subgraph T0[\"T+0s — Root Layer (10 simultaneous alerts)\"]\n        FG_O[\"fear_greed:⊙\"]\n        FG_P[\"fear_greed:Φ\"]\n        MP_G[\"mempool_low_fee:ɢ\"]\n        MP_T[\"mempool_count:Þ\"]\n        NTX[\"n_tx:ɢ\"]\n        TIDE[\"tide_range:Ω\"]\n        OZ[\"ozone:Σ\"]\n        CME[\"cme_speed:Ħ\"]\n        SE_T[\"seismic_energy:Þ\"]\n        HN[\"hn_silence:ɢ\"]\n    end\n\n    subgraph Deep[\"Deeper Dependency Layers\"]\n        SM_O[\"seismic_major:Ω\u003cbr/\u003eT+0s, λ=0s from Þ\"]\n        MKT[\"mktcap_chg:Σ\u003cbr/\u003eT+21457s\"]\n        MP2[\"mempool_low_fee:ɢ\u003cbr/\u003eT+30100s\"]\n    end\n\n    subgraph Terminal[\"Terminal Depth\"]\n        SF[\"solar_flare_M:Φ\u003cbr/\u003eT+110780s\"]\n    end\n\n    FG_O --\u003e|\"+1.00\"| MKT\n    FG_O --\u003e|\"+1.00\"| SE_T\n    FG_O --\u003e|\"−1.00\"| MP2\n    FG_O --\u003e|\"+1.00\"| SM_O\n    OZ --\u003e|\"+1.00\"| MKT\n    OZ --\u003e|\"+1.00\"| SE_T\n    OZ --\u003e|\"−1.00\"| MP2\n    SE_T --\u003e|\"+1.00, λ=0s\"| SM_O\n    SM_O --\u003e|\"+1.00, λ=0s\"| SE_T\n    SE_T --\u003e|\"−1.00, λ=7353s\"| SF\n    SM_O --\u003e|\"−1.00, λ=7353s\"| SF\n    FG_O --\u003e|\"+1.00, λ=23177s\"| FG_P\n    FG_P --\u003e|\"+1.00, λ=23177s\"| FG_O\n\n    T0 -.-\u003e|\"Σ λ = 110780s total depth\"| Terminal\n```\n\nThe value 110780s is not a causal delay. It is the accumulated sum of edge invariants\n(λ) along the longest active path through the dependency tree to reach `solar_flare_M:Φ`.\nThe system does not project an event into the future; it maps the structural distance\nbetween the superficial symptoms at the root and the deep structural core at the terminus.\n\n## Key coupling findings\n\nThe 41-edge coupling graph (716 hourly snapshots, 2026-06-14 through 2026-06-22)\nreveals several structurally significant patterns.\n\n### Coupling graph — core structure\n\n```mermaid\ngraph LR\n    FG_O[\"fear_greed\u003cbr/\u003e⊙ criticality\"] --\u003e|\"+1.00, 21457s\"| MKT[\"mktcap_chg\u003cbr/\u003eΣ stoichiometry\"]\n    FG_O --\u003e|\"+1.00, 16469s\"| SE_T[\"seismic_energy\u003cbr/\u003eÞ topology\"]\n    FG_O --\u003e|\"+1.00, 16469s\"| SM_O[\"seismic_major\u003cbr/\u003eΩ winding\"]\n    FG_O --\u003e|\"−1.00, 30100s\"| MP_G[\"mempool_low_fee\u003cbr/\u003eɢ coupling\"]\n    FG_O --\u003e|\"−1.00, 23822s\"| SF_P[\"solar_flare_M\u003cbr/\u003eΦ parity\"]\n    FG_O --\u003e|\"+1.00, 23177s\"| FG_P[\"fear_greed\u003cbr/\u003eΦ parity\"]\n    FG_P --\u003e|\"+1.00, 23177s\"| FG_O\n    OZ_S[\"ozone\u003cbr/\u003eΣ stoichiometry\"] --\u003e|\"+1.00, 21457s\"| MKT\n    OZ_S --\u003e|\"+1.00, 16469s\"| SE_T\n    OZ_S --\u003e|\"+1.00, 16469s\"| SM_O\n    OZ_S --\u003e|\"−1.00, 30100s\"| MP_G\n    OZ_S --\u003e|\"−1.00, 23822s\"| SF_P\n    SE_T --\u003e|\"+1.00, 0s\"| SM_O\n    SM_O --\u003e|\"+1.00, 0s\"| SE_T\n    SE_T --\u003e|\"−1.00, 7353s\"| SF_P\n    SM_O --\u003e|\"−1.00, 7353s\"| SF_P\n    MP_G --\u003e|\"+0.86, 27606s\"| OZ_S\n    FG_O --\u003e|\"−0.70, 28380s\"| OZ_S\n```\n\n### The auto-bifurcation node: fear_greed\n\n```mermaid\ngraph TD\n    subgraph Loop[\"Closed Structural Loop — λ=23177s, r=+1.000\"]\n        FG_O2[\"fear_greed:⊙\u003cbr/\u003eCriticality\"] --\u003e|\"identity mapping\"| FG_P2[\"fear_greed:Φ\u003cbr/\u003eParity\"]\n        FG_P2 --\u003e|\"identity mapping\"| FG_O2\n    end\n    EXT[\"External input\u003cbr/\u003efrom ozone:Σ or seismic:Þ\"] --\u003e FG_O2\n    FG_O2 --\u003e|\"+1.000\"| POS[\"mktcap_chg:Σ\u003cbr/\u003eseismic_energy:Þ\u003cbr/\u003eseismic_major:Ω\"]\n    FG_O2 --\u003e|\"−1.000\"| NEG[\"mempool_low_fee:ɢ\u003cbr/\u003esolar_flare_M:Φ\"]\n    POS --\u003e B[\"B-state\u003cbr/\u003eBoth True and False\"]\n    NEG --\u003e B\n```\n\nA closed structural loop with identity mapping. Because ⊙ (criticality) and Φ (parity)\nperfectly imply each other, any exterior input forcing a valuation into this loop\nsatisfies both conditions simultaneously — producing the B-state.\n\n### The Þ ↔ Ω identity\n\n```\nseismic_energy:Þ → seismic_major:Ω  lag=0s r=+1.000\nseismic_major:Ω → seismic_energy:Þ  lag=0s r=+1.000\n```\n\nTopology and winding are structurally linked at lag=0s with perfect correlation.\nThis is the empirical validation of Axiom B of the Imscribing Grammar: the spatial\nand temporal structure of seismic activity are the same signal, decomposed into two\nprimitive channels.\n\n### The ⊙→Σ→Þ→Ω cascade\n\n```\nfear_greed:⊙ → mktcap_chg:Σ     lag=21457s r=+1.000\nfear_greed:⊙ → seismic_energy:Þ lag=16469s r=+1.000\nfear_greed:⊙ → seismic_major:Ω  lag=16469s r=+1.000\nozone:Σ     → mktcap_chg:Σ     lag=21457s r=+1.000\nozone:Σ     → seismic_energy:Þ lag=16469s r=+1.000\nozone:Σ     → seismic_major:Ω  lag=16469s r=+1.000\n```\n\nIdentical lags across completely independent source domains (financial sentiment\nand atmospheric chemistry) confirm that these are not travel times but edge invariants\nof the inference structure. The 21457s and 16469s constants appear invariant across\nsources — a structural metric tensor internal to the graph.\n\n### The dialetheic fork\n\n```\nfear_greed:⊙ → mktcap_chg:Σ      lag=21457s r=+1.000\nfear_greed:⊙ → mempool_low_fee:ɢ  lag=30100s r=−1.000\n```\n\nThe same source points to opposite signs with perfect confidence. This is not noise;\nit is the B-state encoded directly in the adjacency matrix. The contradiction is the\nterritory.\n\n## Empirical validation of the Imscribing Grammar\n\nig-pulse provides the first large-scale empirical evidence that:\n\n1. **Primitives are real structural channels, not metaphors.** Each domain stream\n   acts through a single dominant primitive — fear_greed through ⊙, ozone through Σ,\n   seismic_energy through Þ, seismic_major through Ω, solar_flare_M through Φ.\n   The primitives are the actual structural channels through which cross-domain\n   information propagates.\n\n2. **Cross-domain coupling is measurable.** 23 edges at |r| = 1.000 across seven\n   physically independent domains (finance, blockchain, atmosphere, geophysics) are\n   not explainable by any known causal mechanism. They are structural resonance —\n   multiple systems participating in a shared rhythm captured by the same primitive\n   vocabulary.\n\n3. **The grammar can be measured back into visibility.** After 400 years of structural\n   invisibility (the O₀ framework severed the self-modeling loop), ig-pulse demonstrates\n   that the grammar is empirically recoverable — not from ancient texts, but from live\n   cross-domain sensor data.\n\n## Physical coupling priors vs. findings\n\nKnown ground-truth lags the coupling analysis was designed to recover, alongside\nwhat was actually found:\n\n| Expected prior | Expected lag | Found | Actual lag |\n|----------------|-------------|-------|------------|\n| CME → Kp | 18–72h | ✗ | — (Kp not in top edges) |\n| Kp → fear/greed | 24–48h | ✗ | — |\n| mempool ↔ global market | ~0h | ✓ (⊙/Σ → ɢ) | 30100s (~8.4h) |\n| seismic ↔ tidal | unknown | ✓ | 645s (Þ/Ω → Σ via ozone) |\n\nUnexpected findings that exceed any known causal model:\n\n| Edge | Lag | r | Domain gap |\n|------|-----|---|------------|\n| fear_greed:⊙ → seismic_energy:Þ | 16469s (4.6h) | +1.000 | Finance → Geophysics |\n| fear_greed:⊙ → seismic_major:Ω | 16469s (4.6h) | +1.000 | Finance → Geophysics |\n| ozone:Σ → seismic_energy:Þ | 16469s (4.6h) | +1.000 | Atmosphere → Geophysics |\n| fear_greed:⊙ → mktcap_chg:Σ | 21457s (6.0h) | +1.000 | Sentiment → Market cap |\n| fear_greed:⊙ → mempool_low_fee:ɢ | 30100s (8.4h) | −1.000 | Sentiment → Blockchain |\n| seismic_energy:Þ → solar_flare_M:Φ | 7353s (2.0h) | −1.000 | Geophysics → Heliophysics |\n\n\u003e Note: The 110780s (30.8h) accumulated depth from root to `solar_flare_M:Φ` in\n\u003e propagation anatomy is the sum of edge invariants along the longest active path,\n\u003e not a single causal lag.\n\n## Installation\n\n```bash\n# Requires Python ≥3.11\ncd /home/mrnob0dy666/imsgct/ig-pulse\npip install -e .\n\n# Or with uv:\nuv pip install -e .\n```\n\n### Dependencies\n\n- `numpy` — time series computation\n- `scipy` — Pearson correlation with p-values\n- `networkx` — graph structure (for future topological analysis)\n\nNo API keys required — all 15 streams use public endpoints.\n\n## Related documents\n\n- `ig_pulse_empirical_validation.md` — detailed analysis of coupling findings as\n  empirical evidence for the Imscribing Grammar ([ig-docs/ig_pulse_evidence/](../../ig-docs/ig_pulse_evidence/))\n- `ig_pulse_atemporal_inference.md` — formal treatment of atemporal inference,\n  Belnap FOUR logic, and the B-state as primary data ([ig-docs/ig_pulse_atemporal_inference/](../../ig-docs/ig_pulse_atemporal_inference/))\n- `loss_of_the_grammar.md` — structural analysis of how the grammar was lost\n  (Cartesian Cut, Baconian Replacement, Institutional Lock-In) and the 11-primitive\n  recovery path ([ig-docs/loss_of_the_grammar/](../../ig-docs/loss_of_the_grammar/))\n\n## License\n\nUnlicense (public domain).\n\n---\n\n**Author:** Lando⊗⊙perator\n\nThe author would like to thank Harry T. Larson, for imparting the importance of\ncatching rising problems, and never letting them go.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fumpolungfish%2Fig-pulse","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fumpolungfish%2Fig-pulse","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fumpolungfish%2Fig-pulse/lists"}