All Projects

Tiny Society AI preview

Tiny Society AI

  • A full-stack multi-agent social simulation built with Next.js, FastAPI with Server-Sent Events, a Python generative-agents engine, an in-memory world store, and optional Supabase saves with JWT auth.
  • A daily tick loop runs the generative-agents lifecycle, agents observe, retrieve memories, reflect, plan, act, and shift stances, with reasoning concurrent via asyncio.gather but mutations applied sequentially for deterministic state.
  • A consequence layer maps LLM social intents to calibrated affinity bids so the model never writes relationship numbers, giving social state inertia where romance and alliances require mutual signal and rivalry can be one-sided.
  • A softmax agent selector bounds LLM cost, scored memory retrieval and subjective perception drive information-asymmetric feeds, and a stance-based engine aggregates topic means, uncertainty, and pivotal days into a computed forecast.
LaunchPilot preview

LaunchPilot

  • LaunchPilot is a two-time winning project at Hack Canada 2026 built to move a product from initial brief and codebase context into a supervised launch workflow.
  • The stack combines a Next.js App Router frontend, FastAPI backend, SQLAlchemy, Alembic, and Postgres for project state, approvals, activity, and stage outputs.
  • The agent layer uses Backboard-backed research, positioning, and execution agents with persistent threads and memory snapshots so each stage can reuse structured context from prior runs.
  • It ingests project brief and GitHub context, maps competitors and pain points, generates ICP and messaging options, builds a 7-day execution plan with KPIs, and prepares personalized outreach batches for approval before send.
FactorAtlas preview

FactorAtlas

  • A full-stack portfolio intelligence platform built with Next.js, TypeScript, Tailwind CSS, shadcn/ui, Recharts, FastAPI, SQLAlchemy, Pydantic, PostgreSQL, and Docker Compose.
  • It computes deterministic portfolio metrics like annualized volatility, beta, Sharpe ratio, and correlation matrices using pandas, numpy, scipy, statsmodels, and networkx.
  • The architecture is split into modular portfolio, market data, quant, graph, and AI services that support real-time yfinance ingestion, event relevance scoring, and scenario stress testing.
  • AI prompts are grounded in structured analytics for traceable explanations, while caching, async endpoints, and type-safe contracts address performance and integration complexity at the current scaffold stage.
Discrete-Time Markov Chain for Market Regime Forecasting preview

Discrete-Time Markov Chain for Market Regime Forecasting

  • A modular Python application that models daily equity return regimes (down/flat/up) using a first-order Markov chain and forecasts next-day state probabilities from historical price data.
  • It takes and cleans CSV data, computes returns, discretizes regimes, builds a row-normalized transition matrix, and outputs conditional next-state probabilities based on the observed regime.
  • Includes a CLI report tool, a Flask dashboard with threshold tuning and Monte Carlo simulation, plus unit tests for transition/state logic.
Heat Mapping $5,000+ Thefts Around UTSG preview

Heat Mapping $5,000+ Thefts Around UTSG

  • I got my stuff stolen at the Athletic Centre at UofT and almost lost most of my valuables, so I decided to make a project on theft around UTSG.
  • A full-stack crime intelligence web app that maps Toronto Police theft-over-$5,000 incidents around the UofT St. George campus.
  • It runs a Python/FastAPI pipeline that filters records by campus geospatial boundaries, normalizes data in SQLite, and serves a clean API.
  • Includes a Next.js/TypeScript frontend with an interactive OpenStreetMap heatmap, live summary metrics, and incident sample tables.
Stochastic Risk Modeling: Gambler's Ruin Simulation preview

Stochastic Risk Modeling: Gambler's Ruin Simulation

  • Built a Gambler's Ruin simulation platform in Python that combines Monte Carlo experimentation with closed-form probability analysis.
  • It validates stochastic outcomes against theory and is organized as a reusable package (simulation, analytics, visualization, cli, and webapp).
  • It supports up to 100k trials per run with both command-line and interactive web workflows using Flask and Streamlit.
  • I implemented convergence diagnostics, empirical-theoretical error tracking, and an interactive Plotly dashboard for reproducible analysis.