Skip to main content

NOETHER

A physics research assistant that shows its work.

Explains physics concepts with everyday analogies, dimension-checked equations, worked examples it recomputes, and simulations it actually runs. Answers questions from real arXiv papers with every sentence anchored to a verbatim span. Audits your own draft's bibliography for references that don't exist.

pip install noether-physics
noether explain decoherence

On 0.1.0 or 0.1.1? Upgrade. Those releases confirm fabricated references — the specific failure this tool exists to prevent. See CHANGELOG.md.


Read this before you trust it

This is a research-integrity tool, so its limits matter more than its features.

The verification gate checks that a quote is real. It does not check that the quote supports the claim. A claim can contradict its own citation and still pass. Demonstrated during development: a claim asserting "the experiment detected a nonzero neutron EDM at five sigma" was accepted while citing a passage reporting d_n = 0.0 ± 1.1 × 10⁻²⁶ e·cm — a null result. The quote was genuine, so the gate let it through. Closing that gap needs entailment checking, which needs a language model, and keeping the model outside the verifier is what makes the other guarantees meaningful. So every answer this tool emits ends by saying so, and you should read the quotes.

The reference resolver is now measured in both directions. It resolves 86.5% of real references and was fooled by 0 of 8 deliberately fabricated ones. That second number did not exist until a labelled benchmark was built for it — and the first run of that benchmark caught the resolver confirming 80% of fabrications, some at 0.95 confidence. Three defects were found and fixed. Eight fabrications is still a small sample: 0% means "fooled by none of eight", not "cannot be fooled".

It is small. 58 papers in the test corpus, 8 concepts in the explanation library, quantum coverage limited to two-level systems and one cavity mode. No PDF fallback, so roughly 9% of quant-ph papers (measured: 5 of 55) cannot be ingested at all.

docs/DEFERRED.md is the full account — every gap, with the measurement behind it. It is the honest document; this README is the summary.


Why it exists

2026 audits found a 17% phantom-citation rate in AI-assisted survey papers — references resolving to no digital object — and roughly 146,900 AI-generated fake citations across 2.5M papers in 2025. arXiv now bans authors who submit hallucinated references.

Physics has a structural advantage nobody exploits: arXiv distributes the actual LaTeX source. Equations arrive with their \labels, citations with their \cite keys, sections with their real structure — read, not guessed. Tools in other fields OCR PDFs because their domains have no source. Physics does.

What it does

Explains. Curated prose, not generated — then machine-checked. Every equation is parsed and dimension-checked; every worked example is recomputed and compared against its stored answer, so a typo in the library fails CI rather than teaching you a wrong number.

noether explain decoherence          # analogy, maths, worked example, live simulation
noether concepts                     # what the library covers

Simulates. Six models — pendulum, damped/driven oscillator, projectile with drag (SciPy); Rabi, decoherence, Jaynes-Cummings (QuTiP). Every run halves the step size and reports the drift, and where a closed form exists the numerics are compared against it automatically.

noether simulate rabi --params "detuning=6.28" --bloch
noether models

Checks equations. Undeclared symbols return unknown, never a guess — h is Planck's constant or a height, T a period or a temperature. unknown is not a pass.

noether eq 'T = 2 \pi \sqrt{\frac{L}{g}}' --units 'T=second,L=meter,g=meter/second**2' --vary 'L=0.1..2' --at 'g=9.81'

Reads papers. Ingests LaTeX source, so "equation 14" means the equation the authors numbered 14.

noether ingest 2001.11966
noether equations arXiv:2001.11966
noether find "vacuum Rabi oscillations"

Audits your draft. Resolves every \bibitem against arXiv, Crossref, OpenAlex and INSPIRE. Exits non-zero on unresolvable references or cite keys with no bibliography entry, so it works as a pre-commit hook.

noether audit path/to/your-paper.tex

Measured results

Run noether bench status yourself. As of the last run:

gate result threshold verdict
equations 100% (31/31) 90% pass
retrieval 83.3% (10/12) at top-3 of 58 papers 80% pass
citations 86.5% (32/37) 85% pass
resolver 0% false positives (0/8 fabrications) ≤10% pass

Read these with their scope attached. "Right paper in the top 3" over 58 papers is a real task; over 8 it was nearly free, and an earlier run reported a meaningless 100% because top_k exceeded the corpus size. The citation threshold is 85% rather than 100% because books, theses and pre-digital articles are genuinely not in any index — the residual failures on the nEDM letter are a 1954 Danish journal, a 1955 Pauli chapter and a 1982 Oxford book.

Use it from Claude

pip install "noether-physics[mcp]"
claude mcp add --scope user noether -- python -m noether.mcp_server

14 tools. Claude reasons and writes; NOETHER retrieves, checks and records. There is deliberately no write_answer tool — the component that can hallucinate is not the component that decides what ships.

Install

pip install noether-physics              # core
pip install "noether-physics[quantum]"   # + QuTiP simulations
pip install "noether-physics[mcp]"       # + MCP server

Python 3.12+. From source: uv venv && uv pip install -e ".[dev,quantum,mcp]", then uv run pytest (288 tests, no network — cassettes default to replay and a miss is an error, not a live fallback).

Terms

arXiv forbids bulk crawling. This fetches one paper at a time behind a 3-second interval and caches permanently, so a given paper is downloaded exactly once. Every source, its rate limit and its terms are declared in research/sources/source_registry.yaml; a source not in that file is not called.

No AI-generated imagery. Every figure is extracted from a real paper or rendered deterministically from code and data, and is tagged with which.

Licence

MIT — see LICENSE. Release history: CHANGELOG.md.

The name honours Emmy Noether. The PyPI distribution is noether-physics because noether belongs to an unrelated physical-units library; the command is noether either way.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

noether_physics-0.1.2.tar.gz (289.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

noether_physics-0.1.2-py3-none-any.whl (149.7 kB view details)

Uploaded Python 3

File details

Details for the file noether_physics-0.1.2.tar.gz.

File metadata

  • Download URL: noether_physics-0.1.2.tar.gz
  • Upload date:
  • Size: 289.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for noether_physics-0.1.2.tar.gz
Algorithm Hash digest
SHA256 956ac810741de77c3cf5a7ca0a7f602d79f15b6d683d1681b57cb0b627f61c76
MD5 24797430d07f5e4e570f29c4b813e686
BLAKE2b-256 3ac7291679e081cf36ed1e5b17f5b53374b346f2de56866aa4081db849c57dad

See more details on using hashes here.

File details

Details for the file noether_physics-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: noether_physics-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 149.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for noether_physics-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 7fe495d617aaff0bc63c78514b4a8c3f4a9b94d90f58b6c6d413c75dbd9c7882
MD5 8fbaa787315f6907117e5572a0c00334
BLAKE2b-256 4da8291be25aac85ebea5bbc44294b3cacbad85107798110435ef31c7be3addb

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.2 This release

2 files

0.1.1

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page