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. Hopefully it will be 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.2.tar.gz (170.4 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.2-py3-none-any.whl (127.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: wu_forensics-1.0.2.tar.gz
  • Upload date:
  • Size: 170.4 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.2.tar.gz
Algorithm Hash digest
SHA256 3d87fe2acea24ecfe714f2305a7d60c265b13301762d495ee0c4b39d53be9fcf
MD5 41325f5d3743f728dfd480850159d711
BLAKE2b-256 be7fbbdb9f88e00bcc5faff8957af2595ff3d86b2bd90b077c3301647d3e522a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: wu_forensics-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 127.5 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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 bd4326299fd63ad9a46762ff6da55ac4c753fd73a15c056eaa2f3e28280ac1e9
MD5 0114edc21fae1ef5067383b525d85841
BLAKE2b-256 b1ac52cfd5cefc43ebdd4bb1f5dff08cae49f018c85eb7256a20b34dd5c69187

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