Are we the only civilisation in the mapped universe? Nobody can know — but this tool gives an honest probability with an uncertainty interval, both for the Milky Way and for the whole observable universe.
It runs a Monte Carlo simulation over the Drake Equation, but instead of plugging in seven made-up numbers, every factor is a distribution grounded in current (2024–2026) astrobiology and exoplanet science, with sources cited in the output. The deeply-uncertain biological factors span many orders of magnitude — which is exactly why the answer is a probability, not a yes/no. This follows the method of Sandberg, Drexler & Ord, Dissolving the Fermi Paradox (2018, arXiv:1806.02404).
Live, real-world grounding comes from the NASA Exoplanet Archive (keyless, free), with a bundled offline snapshot so it always runs. No API key, no runtime AI calls.
python -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"
arewealone # full run with live NASA data
arewealone --preset optimistic # biophilic / long-lived scenario
arewealone --preset pessimistic # Rare-Earth / short-lived scenario
arewealone --tune # interactively set your own assumptions, then run
arewealone --offline # use the bundled snapshot
arewealone --trials 500000 # more trials = smoother estimate
arewealone --json # machine-readable output
arewealone --seed 7 # reproducible run--preset optimistic and --preset pessimistic shift the uncertain factors (ne,
fl, fi, fc, L) to a named scenario, leaving the observationally-constrained R* and fp
alone. They stack with --tune (preset first, then refine). The spread is dramatic
and honest:
| Scenario | Alone in Milky Way | Alone in observable universe |
|---|---|---|
| Optimistic | ~0.000002% | ~0% |
| Default | ~68% | ~0.016% |
| Pessimistic | ~100% | ~0.6% |
Even the fully pessimistic Rare-Earth view leaves only ~0.6% odds of being alone in the whole observable universe — with ~10²² stars, someone almost certainly exists.
arewealone --tune walks you through each Drake factor, showing its cited default
range, and lets you override it — press Enter to keep the default, type one number to
pin a factor, or two numbers for a range:
fl — fraction of habitable planets where life appears
default: 1e-06 to 1 (log-uniform)
new value, range (low high), or Enter to keep:
> 0.01 1
✓ set f_l = 0.01 to 1
Prompts go to stderr, so --tune --json still emits clean JSON. Optimistic life/
intelligence assumptions (e.g. fl 0.01–1, fi 0.1–1) drop P(alone in the Milky
Way) from ~68% to ~17% — the estimate is honestly sensitive to what you believe.
- P(alone in the Milky Way) and P(alone in the observable universe), each with the share of simulated scenarios in which we'd expect to be the only ones.
- The expected number of detectable civilisations (90% range) for both scopes.
- A log-scale histogram of the civilisation count.
- A sensitivity breakdown naming which factors swing the answer most.
- A plain-English verdict, the live data used, and a source for every parameter.
data.py live NASA Exoplanet Archive stats (offline fallback)
parameters.py cited Drake-factor distributions ← the scientific core
simulate.py pure Monte Carlo engine (deterministic given a seed)
tune.py interactive 'tune your own assumptions' mode (--tune)
report.py terminal / JSON formatting + verdict
main.py CLI
The simulation draws each factor per trial, computes N = R*·fp·ne·fl·fi·fc·L, and
treats exp(-N) as the probability of an empty galaxy. Averaging over trials folds
the uncertainty into a single honest probability. The universe figure scales by total
star count (not galaxy count, to avoid overcounting dwarf galaxies).
pytestThis is an estimate, not an answer. "Alone" means zero other detectable civilisations; the anthropic correction for our own existence matters only when N≈1 and is deliberately left uncorrected. The point is a defensible probability that is honest about everything we don't yet know.