External Sources
CelesTrak
- Publishes orbital data for every tracked satellite
- Free, public, no key needed
- ~200 well-known satellites (visual group)
Fetched once. Refreshed every 6 hours.
server.js · port 7446
The Engine
Node.js · runs locally · never stops
TLE Parser
Reads orbital recipes, prepares math engine for each satellite.
Propagator
Computes where every satellite is right now. Runs every 15 seconds.
Hot Ring
30-slot circular memory, one per satellite. New data pushes old data out. Always current, always bounded.
Probe Engine
Every 90 seconds: picks a satellite, pulls its recent data, asks Gemini a question, streams the answer.
Inject / Ask
You pick a satellite and type your own question. Same pipeline, not counted in accuracy score.
Audit Ledger
Every probe logged to disk. Scores each answer: exact match, close, refused, or failed.
probe-ledger.jsonl
probe-errors.jsonl
tle-cache.txt
Your Browser · port 8765
live.html
- Globe map · 150 satellites
- Conversation feed · probes + answers
- Stats bar · events, uptime, probes
- Inject panel · ask your own question
- Accuracy modal · click the accuracy card
Receives all updates over SSE (live wire, no page reload).
TLE
Orbital recipe card. A two-line text format that encodes exactly how a satellite orbits - inclination, speed, shape of orbit. Feed it to SGP4 math and you get a position.
SGP4 / Propagation
The orbital math. Given a TLE and a time, compute where the satellite is. No GPS needed - pure physics. Run it every 15 seconds and you have a live position stream.
Hot Ring
30-slot circular memory. Every satellite has its own ring. New position pushes the oldest out. Always exactly 30 events. Never grows. Memory footprint is constant forever.
Evidence Packet
The minimum data needed to answer a question. Typically 4-6 lines. Timestamp, satellite name, lat, lon, altitude, speed, heading. This is what Gemini sees.
EDR - Searchless Retrieval
The novel part. Every RAG system builds an index and runs a search. This system does neither. It asks: "which events are within 600 seconds of the target?" That's arithmetic, not search. That's the patent.
SSE
Live wire. Server-Sent Events. The server pushes updates to your browser every 15 seconds without the browser asking. Satellite positions, probe results, stats - all arrive automatically.
Scored vs. Unscored
Auto probes are scored. Your questions are not. Accuracy numbers only come from automated probes where the system knows the right answer in advance. Questions you inject go through the same pipeline but don't affect the score.
Audit Ledger
The receipts. Every probe written to probe-ledger.jsonl. Failures go to probe-errors.jsonl. Click the Accuracy card in the browser to see the summary.
visual TLE group
The ~200 brightest, most recognizable satellites. ISS, Tiangong, weather satellites, navigation birds. Chosen because they have real names and are explainable to a room. Not all 10,000 active satellites.