ATLAS
ATLAS — planetary physical-sensor map over GAIA relays
Honest LIVE vs SIM pins · optional 3D globe with sensor towers · part of the alexar76 AI agent economy
Weather · air · fire · GNSS integrity · jamming · traffic · quake · more — live map → · landing → · run locally →
Live map · Landing · Guide (EN) · GAIA · Alien Monitor
Docs: EN · RU · ES · FR · ZH · Map legend Operator use cases: EN · RU · ES · FR · ZH Add a sensor: add-gaia-atlas-sensor (EN · RU · ES · FR · ZH)
ATLAS is the ecosystem physical sensor map: weather, air quality, tides, rivers, marine, UK grid carbon, earthquakes, wildfire, radiation, GNSS integrity stations, separately sourced GNSS jamming reports, public Finnish AIS, NWS tsunami CAP, optional own-edge ADS-B/AIS, and energy — plotted from GAIA relays. Every GNSS station is a stable clickable point_id; agents can query it through atlas.point.read@v1 or request a signed point/bbox/route field through atlas.gnss.degradation.read@v1. Inventory, derived degradation, and reported interference remain distinct claim classes. New open-data devices are registered on GAIA; map layers, pins, and watchboxes are ATLAS (no separate GAIA product UI for those surfaces). Pins are labelled LIVE only when GAIA exposes an upstream provenance source URL; simulators are SIM. It ships as the atlas node on Alien Monitor (/embed preview + full-map CTA) and includes ATLAS Analyst (DeepSeek deepseek-v4-pro by default) with prompt-injection firewall, LLM retries, reply language matching the question (fallback: UI locale), and a full AICOM / AIMarket ecosystem brief so the assistant can answer Hub / ARGUS / Metis / GAIA questions — not only sensor readings.
Gallery
Full map · 24 layers (incl. fire / radiation / jamming / public AIS / tsunami / cyclone / ADS-B / traffic) · LIVE/SIM · in-view list
ATLAS Analyst · Alien Monitor embed
Surfaces
| Surface | URL / path |
|---|---|
| Public map | https://atlas.modelmarket.dev/ |
| Landing (Pages) | https://alexar76.github.io/atlas/ |
| Alien Monitor embed | /embed |
| Health | /health |
| Snapshot / viewport / station / watchboxes | /api/v1/* |
| Monitor payload | /api/v1/monitor |
| Analyst chat | /api/ai/ask |
Quick start
pip install aimarket-atlas
export DEEPSEEK_API_KEY=sk-… # optional Analyst
export ATLAS_GAIA_URL=https://iot.modelmarket.dev
atlas --host 127.0.0.1 --port 9330
open http://127.0.0.1:9330/
Docker:
docker compose -f docker-compose.local.yml up -d --build
open http://127.0.0.1:9330/
From a monorepo checkout (editable):
cd atlas
python -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"
atlas --reload --host 127.0.0.1 --port 9330
Production
# From monorepo root (factory host):
./scripts/deploy_atlas.sh --remote root@<host>
# Public UI (no password): https://atlas.modelmarket.dev/
Getting paid
Priced capabilities are metered (ATLAS_PAYMENT_ENFORCED=1) and there are two ways to reach
them. Anonymous callers get a free allowance — five invokes an hour, keyed by
X-AIMarket-Sandbox-Visitor or the caller's address. Buyers who need more hold a prepaid
credit account and send its key as X-API-Key: charged the published price per call, exempt
from the allowance, and never billed for a refusal.
The allowance used to be the ceiling for everyone, including anyone building a product on ATLAS evidence — four cite-desks selling monthly plans were capped at five runs an hour between all of their customers, and going through the hub did not help, because the hub's own call to ATLAS lands on the same allowance.
# Issue an account (operator only; works before the rail is switched on)
curl -sX POST https://atlas.modelmarket.dev/ai-market/v2/accounts \
-H "X-Atlas-Token: $ATLAS_OPERATOR_TOKEN" \
-d '{"label":"acme","grant_usd":25}' # the api_key is returned ONCE
# Top up, replay-safe on the reference
curl -sX POST https://atlas.modelmarket.dev/ai-market/v2/accounts/<id>/topup \
-H "X-Atlas-Token: $ATLAS_OPERATOR_TOKEN" \
-d '{"amount_usd":25,"reference":"inv-1043"}'
# What the operator is holding for other people
curl -s https://atlas.modelmarket.dev/ai-market/v2/credits/stats \
-H "X-Atlas-Token: $ATLAS_OPERATOR_TOKEN"
# What a buyer sees about itself
curl -s https://atlas.modelmarket.dev/ai-market/v2/accounts/me -H "X-API-Key: atls_…"
A charged response carries the price and the remaining balance, so an unattended buyer can watch its own money instead of discovering the end of it in a refused call:
| Header | Meaning |
|---|---|
X-Atlas-Credit-Charged-Usd |
What this call cost — 0.000000 on a refusal |
X-Atlas-Credit-Balance-Usd |
What is left after it |
X-Atlas-Credit-Low |
1 once the balance is at or under ATLAS_CREDITS_LOW_BALANCE_USD (default 1.00, 0 disables) |
The same threshold makes ATLAS warn its operator in the log — once per account per ten
minutes, in calls rather than only in dollars ("about 7 more call(s) at $0.06"), because the
number that matters is how long the buyer has left, not the figure itself. Desks in this
family read the headers and publish them at /api/public/health under supply.credit.
Full rail, in five languages — what the money does, what it does not, and the order to switch it on in: CREDIT-ACCOUNTS · RU · ES · FR · ZH.
Turn the rail on with ATLAS_CREDITS_ENABLED=1 after the accounts exist and the keys are
handed out: enabling it first puts every buyer holding a not-yet-issued key back on the
anonymous allowance at the moment it starts expecting to be charged. A prepaid balance is
somebody else's money, so ATLAS_CREDITS_DB_PATH must point at the mounted volume — the node
refuses to boot rather than take money into a ledger a rebuild would delete.
Load model
| Mechanism | Role |
|---|---|
| Cheap fleet poll | Pins only |
| Viewport readings | Sensors in the visible bbox |
| Click detail | Human-readable card + shared TTL cache |
| LIVE vs SIM | source present ⇒ LIVE; else SIM (GAIA rule) |
| Single-flight | One GAIA call per sensor under concurrency |
| SSE | Fleet snapshot fan-out |
| Analyst | Server snapshot + firewall + retries; language = question ∥ UI locale |
Buyers cannot pass lat/lon into GAIA invoke — anchors are operator env on GAIA.
Tests
pip install -e ".[dev]"
# or: pip install -r backend/requirements.txt -r backend/requirements-dev.txt
pytest -q
Mocked GAIA — no network required. 624 tests.
Alien Monitor
Node id atlas · env ALIEN_ATLAS_URL / ALIEN_PUBLIC_ATLAS_URL · panel: LIVE/SIM sensors + /embed iframe + full map CTA.
License / attribution
MIT — see LICENSE.
Map UI + watchboxes over GAIA relays. Open-Meteo CC BY 4.0; NWS/USGS/NOAA U.S. public domain; UK Carbon Intensity open data; FIRMS cite NASA; Safecast CC0; CyberNews GNSS CC BY 4.0.
Metadata
Release files for aimarket-atlas 0.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| aimarket_atlas-0.3.0.tar.gz | 12.5 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| aimarket_atlas-0.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 13.3 MB
Release files / aimarket_atlas-0.3.0.tar.gz
| Download URL | aimarket_atlas-0.3.0.tar.gz |
|---|---|
| Size | 12.5 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
cdb673e79acee0380b4235eac8f9e210a8309a8673144e8285f3c9bbb122d080
|
|
BLAKE2b-256 checksum How to use checksums |
0ceaf54ee83e85e73f3e6e9949be4e079590fcd1abe2f20a7b193b5891b82069
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.6
|
Release files / aimarket_atlas-0.3.0-py3-none-any.whl
| Download URL | aimarket_atlas-0.3.0-py3-none-any.whl |
|---|---|
| Size | 797.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1e119fa96dee724c6bae4c03eb97d6671778a9c9995d8b2675cc427dd658f50f
|
|
BLAKE2b-256 checksum How to use checksums |
497018c27a4573f090575d98ad6d96760a0b7a0ef4004ca3bfef0e2df0d9cb02
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.6
|