Every fact is sourced.
No fact arrives anonymous. Each one names the feed it came from, when it was measured, and how confident that source is. If your app acts on a Pointmoon fact, it can show exactly where the fact came from.
pointmoon · apache-2.0
Pointmoon reads a location’s live conditions and returns each fact with its source, its timestamp, how long it stays good, and a confidence score. When the data won’t hold, it returns silence with a reason instead of a guess. Language models are strong with words and weak on the physical world. Pointmoon is the part that actually knows what’s happening at a place.
Sourced, time-stamped, or silent.
The problem
A model will tell you it’s 18 degrees and partly cloudy at a place it has never queried. It sounds right. There’s no source, no timestamp, no way to check it, and the model can’t tell you which of its facts it made up.
That’s fine for a chat reply. It’s not fine when your app acts on it: planning someone’s day outdoors, advising on field conditions, deciding a window is right to be outside. A wrong fact becomes a wrong action.
The fix isn’t a smarter model. It’s giving the model a live feed of real conditions where every fact says where it came from, how fresh it is, and what’s simply unknown.
What it does
You send a latitude and longitude, or a place name like “Boston.” Pointmoon returns what’s actually happening there right now, pulled live from real sources: weather, air quality, sun and moon and daylight, recent wildlife nearby, and what’s in season. Every value comes with its source, the time it was measured, and how sure that source is.
No fact arrives anonymous. Each one names the feed it came from, when it was measured, and how confident that source is. If your app acts on a Pointmoon fact, it can show exactly where the fact came from.
Each fact says how long it stays good. Stale data is not passed off as current. Once a fact’s window is up, Pointmoon stops repeating it instead of handing you an old reading as a fresh one.
When the data is too thin, too old, or too uncertain, Pointmoon returns silence with a reason instead of a confident guess. The promise is not that it always has an answer. It is that it never gives you a wrong one.
One read, many signals
A single request returns eight kinds of signal for the same moment: time, place, season, weather, sky, life (recent wildlife and what’s in season), history, and water. That includes things like UV, sun position, moon phase and days to full, daylight length, and air quality, each as its own sourced fact. You don’t stitch six APIs together and line up their timestamps.
Some signals are thin in much of the world. Place detail and water data are often silent, and Pointmoon marks them silent rather than inventing them. You get what the data can actually stand behind.
Why you’d use it
If your app or agent does anything with the physical world, it can’t trust the model to know it. Pointmoon is the part that actually knows, so what your app says about a place is real and you can point to where each fact came from. When the data isn’t solid, Pointmoon returns nothing for that fact rather than a guess, so your app never repeats something made up.
The proof
The best proof isn’t a number on this page, it’s the live read. The /now page shows the real current conditions for your location, every value stamped with its source, its freshness, and its confidence, and every signal the data can’t back shown as silence with a reason. It’s the product, working, on your screen.
Pointmoon ships with a benchmark you can re-run, across six locations picked to stress it: a data-rich city, a coast, a high latitude, a sparse spot, a source mid-outage, and a deliberately fake coordinate. Across all six, every answer was either sourced and fresh, or an honest silence. Never a confident wrong answer.
Without grounding
Ask a bare model for the temperature, sky, and wind and it gives you confident numbers. No source, no timestamp. Made up, and impossible to tell apart from a real reading.
With Pointmoon
The same model answers from real facts, or says plainly what it can’t confirm. Same model, same question. One invents the world, the other reports it.
How it compares to a weather API
Pointmoon isn’t competing with the feeds. It sits on top of them and adds what they leave out: where each fact came from, how fresh it is, how sure it is, and the discipline to stay quiet when it doesn’t know. There’s a backup weather source, a bounded worst-case response time, and an honest fallback when the live sources go dark. It degrades and tells you. It doesn’t hang.
Built to be called
Pointmoon is Apache-2.0 and made to be called by software. Reach it over plain HTTP at /api/moon?audience=facts, or add it as an MCP tool (field_truth) that any MCP client can call. A model can use it from the schema alone. The live /now read uses the same endpoint.
The exact request, the response shape, and the MCP setup are all in the docs: the quickstart to make your first call, the API reference for the contract, and the MCP server guide to wire it as a tool.
If your app only ever talks, you may not need this. If it acts, you need to know which of its facts are real. See the live read for any location, then wire it in with one call.
Sourced, time-stamped, or silent.