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-0.1.0.tar.gz (169.7 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-0.1.0-py3-none-any.whl (126.8 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for wu_forensics-0.1.0.tar.gz
Algorithm Hash digest
SHA256 a6c2baf577bc5668dad35e1bf87c74438f6944feaecc72db8f65fd83878952a9
MD5 3db81725808ec0ae169950eb559560fc
BLAKE2b-256 dd7e216bcdd0808ec5860582c30eee54e9e53cd5ea8e7059fc73653fc1817853

See more details on using hashes here.

File details

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

File metadata

  • Download URL: wu_forensics-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 126.8 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-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a51356565f840795e38d4f4f0984796c67c5feeeece8c738e3b83ddcd0f0e50d
MD5 425cd25f53c8220c3a067587de38091c
BLAKE2b-256 32b38dc9aebe8659262938015b14c43121cdbf70a4cc9f7f1fcffbb2c1c46233

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