June 22, 2025

Kautos Event Generator

Status

Completed

Core Components

  • Backend: Python + Claude Integration
    • Fetches structured data from Notion via API
    • Filters nearby events based on year, location, and polity
    • Sends prompt + context to Claude to generate lore-rich summaries
  • Database: Notion as CMS
    • Uses linked Notion tables for events, locations, cultures, and factions
    • Fully relational setup mimics a knowledge graph with zero overhead
    • Clean filtering and tag logic for fast contextual lookups
  • Frontend: Streamlit UI
    • Simple interface for selecting generation type (new, complete, echo)
    • Tunable parameters for temporal and geopolitical context
    • One-click prompt execution, with outputs ready for review or edit
  • Lore Completion Modes
    • Generate New Event: Uses regional + temporal context to add missing moments
    • Complete Existing: Fills in blank event descriptions with tone-matching prose
    • Echo/Similar: Creates parallel or reactive events based on an existing one (e.g. aftermaths, reprisals)
  • ⚖️ Contextual Filters
    • Pulls nearby events within a set year delta
    • Prioritizes location, involved cultures/empires, and shared tags
    • Allows dynamic adjustment of filter aggressiveness

Project Details

Premise:
What began as an attempt to log a single border skirmish evolved into a full-fledged lore-generation platform when I discovered that World Anvil’s best timeline feature (Chronicles) wasn’t accessible via their API. Frustrated by brittle UIs and manual data entry, I built my own event generation engine—combining Notion’s relational database interface, Claude’s generative storytelling, and Streamlit’s lightweight front-end—to create a timeline tool designed specifically for worldbuilders who think in patterns, not paragraphs.

Why it mattered:
Most worldbuilding tools treat timelines like static lists or visual toys. But in a myth-rich, historically layered world like Kautos, I needed something dynamic: a content engine that could pull in cultural, temporal, and geographic context, then co-author new historical entries with accuracy and tone fidelity. This project gave me control over my conworld’s narrative arc, reducing friction while amplifying consistency and creativity. It also showed me that tooling, when personal, becomes part of the mythmaking process itself.

What I tried:
I wired up a Python backend to pull structured data from Notion, apply intelligent filters (e.g. same region, related polities, nearby decades), and send context-aware prompts to Claude via API. I wrapped the whole thing in a Streamlit UI, allowing me to trigger different types of event creation (new, complete, or echo-style), customize context granularity, and review or regenerate outputs in real time. The result: a system that helps me flesh out Kautos’ history not by brute force, but by intelligent collaboration with my own data.