Inspiration

A file can have a valid hash and still leave out an important observation. That is a practical problem when reviewing environmental claims: checking that a file is internally consistent does not tell an editor whether the relevant evidence was included.

I built AfterPlume around one question: can a climate journalist check a bounded methane statement, preserve the reasoning behind a decision, and give another reader enough information to replay the review?

What it does

AfterPlume turns a methane statement into a traceable evidence review.

A reviewer finds a source in a map and searchable catalogue of 4,211 UNEP MARS sources, enters a statement and optional document reference, and confirms its type and date interval. The app checks every matching source-assigned observation in the pinned archive, then presents a bounded finding and the original records.

The reviewer can correct or narrow the statement, retain it with an explanation, or exclude it from their report. Drafts and completed reviews persist on the device. A JSON packet preserves the statement, observations, policy, finding and human response for replay. A separate readable report opens offline and can be printed to PDF.

The signature demonstration removes one observation and rebuilds the finding and hash. File integrity still passes. Source completeness fails when the packet is replayed against the full source snapshot.

The walkthrough statement is hypothetical. Its three matching observations are real records for source AZE_S_010, from two sensors. AfterPlume does not infer physical repair or sustained cessation from these detections.

How I built it

The application uses React, TypeScript and Vite, deployed as static assets on Vercel. Browser workers handle the original source archive and optional local MiniLM sentence embeddings. The embeddings suggest a claim type and rank cited guidance; a human confirms the type. Fixed, versioned rules determine the evidence finding. Keyword assistance keeps the review available if the model cannot load.

The pinned UNEP IMEO MARS snapshot contains 30,319 plume records. SHA-256 checks identify the exact original archive. Review packets use canonical JSON and a reproducible digest. Browser and command-line verifiers reconstruct the expected records and finding from the trusted snapshot instead of accepting the packet's included rows as complete.

An optional nonfinancial Solidity registry implements owner authorization, sequential revisions, exact predecessor digests, authorized reviewer acknowledgements and terminal withdrawal. Actual transactions were tested on a local, resettable EVM. A public-chain deployment is not configured, and a recorded local receipt is not a scientific certification.

I built this as a solo project with AI coding assistance during development. The application's optional inference runs locally in the browser; its evidence decisions do not depend on a hosted generative-AI API.

Challenges I ran into

The hardest part was preserving the limits of the evidence. Detection-only data cannot establish continuous coverage or zero emissions. Missing quantification must still count as a detection, and exact provider source assignments and calendar-date boundaries must be retained.

Another challenge was portability: a recipient must be able to detect an omitted record even after an edited packet has been rehashed. The solution is to replay the complete source selection and policy result against the pinned original archive.

I also worked on practical resilience: model-loading fallback, saved-work recovery, rejection of modified saved evidence, stale-request handling and layouts down to 320 pixels.

Accomplishments

  • The full workflow works: source selection, statement review, human decision, saved work, export, import and source replay.
  • The omission-and-rehash test produces an inspectable MATCH/MISMATCH result using actual verification.
  • The release passed 65 unit tests, 19 local EVM contract tests and 19 browser acceptance stories, including a run against the public application.
  • A small authored guidance-retrieval holdout ranked the expected note first for 16 of 18 hybrid queries, compared with 14 of 18 for BM25. This measures guidance retrieval only, not methane detection, fraud accuracy or user outcomes.

What I learned

Integrity, evidence completeness and scientific truth are separate questions. Hashing answers one of them; source replay addresses another within a defined dataset. A useful review also needs clear dates, visible uncertainty and a human decision that stays attached to the original statement.

Adoption and climate relevance

The initial target user is a climate journalist; editors, researchers and environmental organizations can inspect the exported review. A journalist can start without an account, paid API or wallet, then share a packet with an editor who replays it independently of the author's browser state.

The intended climate contribution is more inspectable environmental reporting. No avoided emissions or investigation-time savings have been measured. Static hosting and browser-local processing keep the current workflow inexpensive; additional coverage would require explicitly versioned snapshots and suitable data rights. Browser storage is local, with file exports for sharing and backup.

What's next

The next validation step is practitioner testing of claim wording and the evidence handoff. The pilot protocol is prepared, but no independent practitioner pilot has been conducted. Further work could add responsibly versioned snapshots, appropriate field evidence and a public testnet registry deployment if free test-token access is available.

Data attribution: UNEP IMEO MARS, snapshot captured 12 October 2026. The project preserves the provider's separate noncommercial data notices and share-alike terms for adapted fixtures. See DATA_LICENSE.md in the public repository. Code is MIT; the local model is Apache-2.0. This prototype does not establish facility ownership, regulatory compliance, physical mitigation or zero emissions.

Built With

Share this project:

Updates

Submission history