Polls the GCP 2.0 live data API (configurable interval, default 5 min) and exposes the current Network Coherence value — plus a faithful recreation of the corru.observer GAD mechanic — via HTTP endpoints compatible with Prometheus and old gcpdot.com consumers.
In corru.observer, a fjortoft box is a device that in-universe can be used to measure GAD, which affects certain game mechanics. See also the transcripts.
The Global Consciousness Project (GCP) operates a worldwide network of hardware random number generators ("eggs"). Statistically, random numbers should be uniformly distributed. When the network shows unusual correlation — more coherent or less coherent than chance would predict — the deviation is measured and exposed as a live metric. The current project home is gcp2.net, led by the HeartMath Institute; background is also on Wikipedia and the Institute of Noetic Sciences. The old project homepages could be found at global-mind.org (archived) and gcpdot.com (archived, see below).
GAD (Global Ambient Dissonance) is a game mechanic in corru.observer by corru.works. It appears in the system management menu as an integer from -2 to 2 and affects rendering of Mindspike thoughtspaces — low GAD causes graphical degradation and opens normally-inaccessible paths; high GAD lowers music pitch in certain areas. The game originally fetched a live value from gcpdot.com to drive this mechanic; since gcpdot.com is defunct, so is the mechanic.
Fjortoft reconstructs GAD from gcp2.net's netvar metric by maintaining a local 24H sliding window and computing a percentile, which maps directly to the original GAD thresholds. See TECHNICAL.md for details on the API, the math, and the backfill strategy.
Source: github.com/SiteRelEnby/fjortoft
Requires a server admin to approve. Commands available after install:
/gad— current GAD level with raw state/fjortoft-gad— alias for/gad/gcpstatus— full network coherence detail/fjortoft-graph— 24H chart (raw state + GAD level); optionaltimezoneparameter accepts IANA names e.g.America/New_York,Europe/London(default: UTC)/fjortoft-status— bot and poller health
python3 gcp_poller.py # listens on :9101
python3 gcp_poller.py 8080 # custom port
python3 gcp_poller.py --versionPoller: no dependencies beyond the Python 3.12+ standard library.
Discord bot: requires discord.py. The /fjortoft-graph command additionally requires matplotlib. Install via:
pip install "fjortoft[discord]" # discord.py + matplotlibStartup: fetches color zones once (cached to zones_cache.json on subsequent runs), optionally backfills the 24H window from Prometheus or the GCP history API, then runs an initial poll. All API calls go through Cloudflare — set BACKFILL_DELAY if you're restarting frequently during development. See .env.example for all config options.
Full JSON snapshot:
{
"version": "0.1.0",
"netvar": 94.05,
"percentile": 62.3,
"raw_state": 0.6230000,
"gad": 0,
"gad_estimated": false,
"gad_description": "coherent",
"label": "Normal",
"color": "#e200e2",
"updated_at": 1775710364.5,
"window_size": 287,
"window_oldest": 1775624000.0,
"stale": false,
"poll_count": 7,
"poll_errors": 0
}Prometheus text format (pull model). Metrics exposed:
| Metric | Type | Description |
|---|---|---|
gcp_network_coherence_netvar |
gauge | Raw netvar value |
gcp_network_coherence_percentile |
gauge | Percentile within past 24H (0–100) |
gcp_network_coherence_raw_state |
gauge | Normalized coherence (0–1), equivalent to old gcpdot p-value |
gcp_network_coherence_gad |
gauge | GAD level (-2 to 2) |
gcp_network_coherence_gad_estimated |
gauge | 1 if GAD is from a partial window (still backfilling) |
gcp_network_coherence_window_entries |
gauge | Number of data points in the 24H sliding window |
gcp_network_coherence_stale |
gauge | 1 if last poll > 2× interval ago |
gcp_network_coherence_last_updated_seconds |
gauge | Unix timestamp of last poll |
gcp_network_coherence_poll_total |
counter | Successful polls since start |
gcp_network_coherence_poll_errors_total |
counter | Failed polls since start |
gcp_network_coherence_info |
gauge | Labels: label, color, gad_description |
Prometheus scrape config:
scrape_configs:
- job_name: gcp_coherence
static_configs:
- targets: ['localhost:9101']
scrape_interval: 60s # no point scraping faster than POLL_INTERVAL (default 5 min)Bare uppercase hex color string (e.g. E200E2). Drop-in replacement for the old gcpdot.com/gcpindex.php?small=1 response format that the quartzjer gist and similar consumers expected. Returns gray (CDCDCD) when data is stale.
SVG colored circle in the current zone color. Embeddable directly as an image — scales to any size via CSS or the width attribute:
<img src="https://your-instance/dot.svg" width="64">Hovering shows a tooltip with the current GAD level, description, raw state, and zone label. Returns a gray circle with a stale indicator tooltip when data is unavailable.
Last N readings from the 24H sliding window as JSON. Each entry includes timestamp, netvar, percentile, raw_state, and gad. Default N is 288 (24H at 5-min intervals); max 1440.
Import grafana_dashboard.json from this repo. You'll be prompted to select your Prometheus datasource on import. The dashboard includes:
- Current netvar (gauge panel with gcp2.net color zones)
- Current GAD level (stat panel, color-coded -2 to 2)
- Current percentile and raw state (gauges, 0–100 and 0–1)
- Stale data indicator
- 24H netvar time series with zone threshold bands
- 24H GAD time series
- Global Consciousness Project — current main site
- GCP live data page
- Global Consciousness Project — Wikipedia
- GCP — Institute of Noetic Sciences
- corru.observer — game that uses GAD
- corru.observer wiki — Mindspike — GAD conversion table source
- gcpdot.com — original GCP dot (defunct)
- quartzjer/gcpdot node wrapper — old gcpindex.php color mapping reference
