Skip to main content

Epistemic media forensics toolkit - structured uncertainty for courts

Project description

Wu - Epistemic Media Forensics Toolkit

Detects manipulated media with structured uncertainty output suitable for court admissibility (Daubert standard).

Named after Chien-Shiung Wu (1912-1997), who disproved parity conservation and found asymmetries everyone assumed didn't exist.

Installation

pip install wu-forensics

Quick Start

# Analyze a photo
wu analyze suspicious_photo.jpg

# JSON output
wu analyze photo.jpg --json

# Batch analysis
wu batch *.jpg --output reports/

Python API

from wu import WuAnalyzer

analyzer = WuAnalyzer()
result = analyzer.analyze("photo.jpg")

print(result.overall)  # OverallAssessment.NO_ANOMALIES
print(result.to_json())

What Wu Detects (Phase 0)

Phase 0 focuses on metadata-only analysis with zero ML dependencies:

  • Device impossibilities: "iPhone 6 claiming 4K resolution" is physically impossible
  • Editing software signatures: Adobe Photoshop, FFmpeg, etc.
  • AI generation signatures: DALL-E, Midjourney, Stable Diffusion, Sora, etc.
  • Timestamp inconsistencies: Future dates, modification before capture
  • Stripped metadata: Intentionally removed EXIF data

Epistemic States

Unlike binary classifiers, Wu reports structured uncertainty:

State Meaning
CONSISTENT No anomalies detected (not proof of authenticity)
INCONSISTENT Clear contradictions found
SUSPICIOUS Anomalies that warrant investigation
UNCERTAIN Insufficient data for analysis

Court Admissibility

Wu is designed with the Daubert standard in mind:

  1. Testable methodology: Every finding is reproducible
  2. Known error rates: Confidence levels are explicit
  3. Peer review: Academic citations throughout
  4. General acceptance: Based on EXIF standards (JEITA CP-3451C)

References

  • Wu, C.S. et al. (1957). Experimental Test of Parity Conservation in Beta Decay. Physical Review, 105(4), 1413-1415.
  • Farid, H. (2016). Photo Forensics. MIT Press.
  • JEITA CP-3451C (Exif 2.32 specification)
  • Daubert v. Merrell Dow Pharmaceuticals, 509 U.S. 579 (1993)

License

MIT

Project details


Download files

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

Source Distribution

wu_forensics-1.0.0.tar.gz (169.9 kB view details)

Uploaded Source

Built Distribution

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

wu_forensics-1.0.0-py3-none-any.whl (127.1 kB view details)

Uploaded Python 3

File details

Details for the file wu_forensics-1.0.0.tar.gz.

File metadata

  • Download URL: wu_forensics-1.0.0.tar.gz
  • Upload date:
  • Size: 169.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for wu_forensics-1.0.0.tar.gz
Algorithm Hash digest
SHA256 f5937a70354147a875def7f8c0c5b92e7dbbc0b2574a9c87ccedcf0aee25173c
MD5 d89afa5cebcdf471f273887001ae4185
BLAKE2b-256 1f70a3f5511a9d0f96509d890f285bb764040e8cc378bc53b4b1190ef1d5fa90

See more details on using hashes here.

File details

Details for the file wu_forensics-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: wu_forensics-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 127.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for wu_forensics-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 854d351708f07c739f752d12fcba743802fab98cf5649166db196daeb7703601
MD5 aaee1094fece918ebebf641bd833f83e
BLAKE2b-256 e3ce2eb16a3619546e484f539b46ceb1dcd5997cdda21a9e0f4eef992ceb5ff3

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page