Skip to content

Aperture

License Python TypeScript Tauri React FastAPI SQLite Status

An OSINT analytical reasoning environment that treats analyst reasoning as a first-class data type.

Overview

Aperture is a desktop application for structured open-source intelligence investigations. Unlike existing OSINT tools that focus on data collection or entity visualization, Aperture captures the analyst's reasoning process — hypotheses, evidence evaluation, confidence assessments, and the logical chains connecting raw sources to analytical conclusions.

Every investigation in Aperture is a portable, reproducible, shareable artifact. The reasoning graph is the core data structure: a directed acyclic graph where hypotheses, evidence, and analytical judgments are distinct node types with mandatory provenance chains. Spatiotemporal indexing is native, enabling proximity-based queries across investigation evidence.

Aperture is built for OSINT practitioners and researchers who need defensible, auditable analytical work products.

Key Concepts

  • Reasoning graph — Hypotheses, evidence, and conclusions connected by typed edges (supports, contradicts, derives-from, supersedes) in a directed acyclic graph
  • Provenance chains — Every assertion traces back through the reasoning chain to raw sources with timestamps, source hashes, and confidence scores
  • Investigation artifacts — Self-contained SQLite files that capture the complete investigation state, reproducible and version-controllable
  • Spatiotemporal indexing — Native geographic and temporal awareness, enabling queries like "what evidence in this investigation occurred within 5km and 48 hours of event X?"
  • Plugin ecosystem — Python-based collectors, enrichers, and analyzers that extend Aperture's capabilities without modifying the core

Architecture

Aperture is a three-layer desktop application:

Layer Technology Responsibility
Desktop shell Tauri 2.x (Rust) Window management, file system, sidecar lifecycle
Frontend React + TypeScript Investigation canvas, timeline, evidence panels
Engine Python + FastAPI Reasoning graph, spatial indexing, storage, plugins

The Python engine runs as a sidecar process, communicating with the Tauri frontend via FastAPI on localhost. Investigations are stored as portable SQLite files with SpatiaLite extensions.

Getting Started

Prerequisites

  • Python 3.11+
  • Node.js 20 LTS
  • Rust (stable toolchain)
  • Tauri CLI 2.x

Installation

# TODO: Installation instructions will be added as the project matures

Usage

# TODO: Usage examples will be added as the project matures

Roadmap

v0.1 — Foundation

  • Reasoning graph engine (hypothesis → evidence → conclusion DAG)
  • Investigation canvas UI (spatial node editor)
  • Spatiotemporal engine (geo + time indexing on evidence)

v0.2 — Provenance & Plugins

  • Evidence provenance chain (source attribution, confidence scoring)
  • Plugin system (Python collectors/enrichers/analyzers)

v0.3 — Sharing & Export

  • Export/sharing (portable investigation artifacts, PDF reports)
  • Investigation diffing and forking

Contributing

See CONTRIBUTING.md for guidelines.

This project follows a Code of Conduct. By participating, you agree to uphold its standards.

Security

See SECURITY.md for reporting vulnerabilities.

Support

See SUPPORT.md for how to get help.

License

Apache License 2.0 — see LICENSE for details.

Acknowledgments

Aperture is built on the shoulders of the OSINT community's collective tradecraft, the structured analytical techniques pioneered by Richards Heuer and the CIA's Directorate of Intelligence, and the open-source geospatial ecosystem.

About

No description, website, or topics provided.

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages