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.

Metadata

Release files for noether-physics 0.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for noether-physics 0.1.2
File Size Uploaded Provenance
noether_physics-0.1.2.tar.gz 289.1 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for noether-physics 0.1.2
File Interpreter ABI Platform
noether_physics-0.1.2-py3-none-any.whl Python 3 none any Details

Total release size: 438.8 kB

Release files / noether_physics-0.1.2.tar.gz

Download URL noether_physics-0.1.2.tar.gz
Size 289.1 kB
Tags Source
SHA-256 checksum
How to use checksums
956ac810741de77c3cf5a7ca0a7f602d79f15b6d683d1681b57cb0b627f61c76
BLAKE2b-256 checksum
How to use checksums
3ac7291679e081cf36ed1e5b17f5b53374b346f2de56866aa4081db849c57dad
Upload date
Uploaded using Trusted Publishing?
What is 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}

Release files / noether_physics-0.1.2-py3-none-any.whl

Download URL noether_physics-0.1.2-py3-none-any.whl
Size 149.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7fe495d617aaff0bc63c78514b4a8c3f4a9b94d90f58b6c6d413c75dbd9c7882
BLAKE2b-256 checksum
How to use checksums
4da8291be25aac85ebea5bbc44294b3cacbad85107798110435ef31c7be3addb
Upload date
Uploaded using Trusted Publishing?
What is 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}

Security for noether-physics 0.1.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

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