An Oregon Trail-inspired journey simulation with Gemini 3 API dynamic events, built with modern Python tooling.
A pygame-based prototype demonstrating structured Gemini 3 integration with validation pipelines and fallback behavior.
Requirements:
- Gemini 3 API (
gemini-3-flash-previeworgemini-3-pro-preview) - Python 3.12+
- GEMINI_API_KEY environment variable (optional - fallback mode available)
Quick Start:
uv sync
export GEMINI_API_KEY='your-key-here' # Optional
conestogaSee docs/QUICKSTART.md for detailed instructions and controls.
- Executive Summary: Project vision, business value, and roadmap.
- Architecture: System design, diagrams (Context, Sequence, State), and component overview.
- Developer Guide: Setup, project structure, testing, and contribution workflows.
- DevOps Guide: Deployment to Cloud Run, CI/CD, and secrets management.
- Gemini 3 API Integration: Dynamic event generation using exclusively Gemini 3 models (preview APIs supported)
- Structured Event Generation: Schema-validated JSON outputs for deterministic gameplay
- Deterministic Simulation: Authoritative game state with invariant enforcement
- Validation Pipeline: Schema validation, item catalog checks, and safety filters with automatic fallback
- UV Package Management: Modern Python package manager for fast, reliable dependency resolution
- Ontology Management: RDF and OWL tools for semantic web applications (in
src/conestoga/) - GCP Integration: Google Cloud Storage client library
- Environment Management: Python-dotenv for configuration
- Development Tools: Makefile for common tasks
- Python 3.12+
- Gemini 3 API key (get one at Google AI Studio)
- UV package manager (recommended)
- Node.js (for npm packages, optional)
- 1Password CLI (optional, for secrets management)
- GCP CLI (optional, for Google Cloud operations)
pip install uvUsing the Makefile:
make install-devOr manually:
# Install Python dependencies
uv sync
# Install Node.js dependencies
npm installCopy the example environment file and configure your settings:
cp .env.example .env
# Edit .env with your configurationmake install- Install Python dependencies using UVmake install-dev- Install both Python and Node.js dependenciesmake clean- Remove build artifacts and cachesmake test- Run testsmake lint- Run lintersmake format- Format codemake run- Run the main application
- python-dotenv: Environment variable management
- rdflib: RDF library for working with semantic web data
- owlrl: OWL-RL and RDFS reasoning
- google-cloud-storage: Google Cloud Storage client
- @gotalabs/cc-sdd: Schema-driven development tools (install from GitHub)
To use Google Cloud Platform features:
-
Install the GCP CLI:
# Follow instructions at https://cloud.google.com/sdk/docs/install -
Authenticate:
gcloud auth application-default login
-
Set your project:
gcloud config set project YOUR_PROJECT_ID -
Configure environment variables in
.env:GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json GCP_PROJECT_ID=your-project-id GCS_BUCKET_NAME=your-bucket-name
For secrets management with 1Password:
-
Install 1Password CLI:
# Follow instructions at https://developer.1password.com/docs/cli/get-started -
Configure environment variables in
.env:OP_SERVICE_ACCOUNT_TOKEN=your-token # OR OP_CONNECT_HOST=your-host OP_CONNECT_TOKEN=your-token
This project includes tools for working with RDF and OWL ontologies:
- rdflib: Parse, manipulate, and serialize RDF graphs
- owlrl: Perform OWL-RL and RDFS reasoning
Example usage:
from rdflib import Graph
from dotenv import load_dotenv
# Load environment variables
load_dotenv()
# Create an RDF graph
g = Graph()
g.parse("your-ontology.ttl", format="turtle")
# Query the graph
for s, p, o in g:
print(f"{s} {p} {o}")make run
# or
uv run python main.pymake formatmake lintmake test- CI defaults to headless Pygame (
UI_HEADLESS=1orCI=1). To force a visible window locally, run withUI_HEADLESS=0.
conestoga/
โโโ .env.example # Environment variable template
โโโ .gitignore # Git ignore rules
โโโ .python-version # Python version specification
โโโ Makefile # Development task automation
โโโ main.py # Main application entry point
โโโ package.json # Node.js dependencies
โโโ pyproject.toml # Python project configuration
โโโ uv.lock # UV dependency lock file
โโโ README.md # This file
See LICENSE file for details.