Home

Chora

The Python Library for Place-Based Computing

Model place as experience, not just location

pip install chora-geo

⚑ Quick Example

from chora.core import *

# Create a platial graph
graph = PlatialGraph("City")
alice = Agent.individual("Alice")
park = SpatialExtent.from_point(-0.1, 51.5, "Park")

# Record an encounter
enc = Encounter(agent_id=alice.id, extent_id=park.id)
graph.add_node(enc)

# Derive familiarity over time
update_familiarity(graph, enc)
β†’ Full tutorial

πŸ“š Guides

πŸ”¬ Theoretical Foundation

Built on rigorous theory from GIScience, cognitive geography, and social physics:

  • Relational primacy β€” Places defined by relations, not coordinates
  • Encounter-centric β€” Atomic events as foundation
  • Temporal decay β€” Memory fades without reinforcement
  • Epistemic separation β€” Different agents, different places
β†’ Read the theory

πŸ› οΈ CLI Tool

# Load GPS data
chora load gpx trace.gpx --agent alice

# Derive familiarity
chora derive familiarity --agent alice

# Find routines
chora derive practices --agent alice

# Visualize
chora viz export --format d3 -o graph.html
β†’ CLI reference

πŸ” Vibe Search

Find places by semantic description using vector embeddings:

from chora.search import vibe_search

results = vibe_search(
graph,
"quiet peaceful park for reading"
)

# Returns: [(park, 0.87), (garden, 0.72), ...]
β†’ Learn vibe search

Built for the Platial Turn
Open Source β€’ MIT License β€’ GitHub