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.1.tar.gz (170.0 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.1-py3-none-any.whl (127.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: wu_forensics-1.0.1.tar.gz
  • Upload date:
  • Size: 170.0 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.1.tar.gz
Algorithm Hash digest
SHA256 c4d4e85d6a774b5aa14c2a55766911d517abb9f56145815e7fcffee18cba0327
MD5 e2b1e3812b1fe1c2bc4ced546bebffb4
BLAKE2b-256 1f0a580ab4fa7e8b803f37a7e7cd8cecf7947b7339effa44180b40ce874e1493

See more details on using hashes here.

File details

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

File metadata

  • Download URL: wu_forensics-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 127.2 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 2e2fca572dbed5d7a2b7de0561fbaba741a3d66dd7acd5d90f114055f30fea13
MD5 5f69dce2bb75e3256e57c67394947a9e
BLAKE2b-256 5f994dbbee7e6adff2bfa9d2f84aca37263c38ae3beac5d469873ab9e9603909

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