-
Notifications
You must be signed in to change notification settings - Fork 0
singularity atlas.stub
id: singularity-atlas name: The Singularity Atlas repo_path: ~/Documents/sw30labs/repos/singularity-atlas remote_url: https://github.com/sw30labs/singularity-atlas.git primary_language: Python framework: LangGraph + FastAPI + Neo4j (local Ollama, optional) category: agentic-frameworks stacks: [langgraph, agentic, rag, cli] ingested: 2026-08-22 last_commit_date: 2026-08-19
A local situational-awareness dashboard for the AI build-out. The news of models, fabs, capital, robots and launches does not arrive as one story; the Atlas fuses those public feeds into a 3D globe, eight live vectors, a composite Singularity Index, and a daily brief — "so you can watch the approach in one place instead of fourteen tabs." v0.1.0, Apache-2.0. No API keys, no account, nothing uploaded.
- Globe — datacenters, fabs, labs and launch pads (plus upcoming launches), geolocated AI signals, and co-mention flow arcs, on globe.gl.
- Eight vector panels — Capability · Compute · Capital · Embodiment · Agency · Security · Space · Culture.
- Singularity Index — composite 0–100 with eight sub-indices, a sparkline, and a Stross epoch dial (Slow Takeoff → Point of Inflexion → Singularity) counting down to 2045.
- Convergence radar — entities crossing ≥2 streams within 72 hours, clickable to a constellation view.
- The Daily Loop — today's edition written on-machine by qwen3 via Ollama, or by heuristics when the model is down.
- Loop Archive — Innermost Loop editions kept current from the author's public Substack feed, seeded into the graph and full-text searchable.
singularity_atlas/ (~2,700 lines) over Neo4j, served by FastAPI/uvicorn with a vanilla-JS
frontend in web/:
-
innermost_loop.py(413) andloop_archive.py(185) /loop_sync.py(191) — archive ingestion, daily feed sync, and search. -
store.py(371) — the Neo4j layer;pipeline.py(322) — the LangGraph ingest cycle. -
feeds.py(292) — public feed fetchers, smoke-testable as a module. -
taxonomy.py(230),scoring.py(106) — vector classification and index computation. -
config.py(196) — single config surface: feeds, vector weights, epoch years, globe site catalog, ports, model name. Env overridesATLAS_PORT,ATLAS_NEO4J_URI,ATLAS_NEO4J_PASSWORD,ATLAS_MODEL,OLLAMA_HOST. -
scheduler.py(83) — APScheduler, in-process.
Scheduling is deliberately in-process: ingest runs every 15 minutes inside the dashboard
process via APScheduler, not cron, so it stops when uvicorn does. POST /api/ingest forces a
cycle, POST /api/brief/regenerate re-synthesizes the day's edition, POST /api/archive/sync
pulls the feed immediately. /api/feeds reports per-feed health (last fetch, item count,
errors); /api/state.loop_sync reports when the archive feed was last checked.
The LLM is optional by construction — every panel falls back to heuristics when Ollama is
offline. setup_and_run.sh is the canonical entry point (--setup-only, --no-tests,
--sync); it runs one ingest before serving so the dashboard is not empty on first paint, and
clears a stale instance holding the port, since a forgotten dashboard keeps ingesting in the
background.
The repo draws an explicit boundary the other repos here do not need. Apache-2.0 covers
repository code only. ref/ is gitignored and never redistributed: a local Accelerando
(Charles Stross, CC BY-NC-ND 2.5) and a local Innermost Loop archive (Dr. Alex
Wissner-Gross, all rights reserved) may sit on a developer's machine but do not ship. The
2026-08-19 commit — the tip of this ingest — is titled "Stop publishing Accelerando; keep the
local copy gitignored." A fresh clone therefore starts with an empty archive until the daily
sync populates data/loop_issues/ from the public feed (latest 20 editions). NOTICE records
the full attribution.
apscheduler ≥3.11.3, fastapi ≥0.141.1, feedparser ≥6.0.14, httpx ≥0.28.1, langgraph ≥1.2.11,
neo4j ≥6.2.0, pydantic ≥2.13.4, uvicorn[standard] ≥0.52.3. Python ≥3.12, built with uv_build
and managed by uv (uv.lock committed). Neo4j runs from docker-compose.yml on :7476 /
bolt :7689. Dashboard on :8055.
No CI workflows. 12 pytest modules under tests/ with a conftest.py and an integration
marker for tests needing the Neo4j container (skipped otherwise); addopts = "-q".
- wiki-vs-rag — the org's other retrieval-shaped experiment over a curated corpus
- loopscope — the other August 2026 addition to this category; both are local dashboards over a running process
- gitnexus-fleet — the other graph-database project here (KuzuDB rather than Neo4j)
- Tags: [python, langgraph, rag, cli, fastapi, llm, local-inference]