Projects are shown at their real stage of progress — working prototype or
in-progress build — not as finished products.
RepVision
Working Prototype
A computer vision system that automates exercise classification and repetition
counting from video input, eliminating the need for manual tracking and
establishing a foundation for future enhancements such as form evaluation.
- OpenCV
- YOLOv11 (classification)
- YOLOv11-Pose (keypoints)
- Python
An end-to-end exercise analysis pipeline combining OpenCV for video frame
extraction and preprocessing, YOLOv11 for exercise classification, and
YOLOv11-Pose for keypoint detection and angle calculations. Currently being
extended to implement rep counting across all classified exercise types.
View on GitHub ↗
AI Receptionist — Voice Booking Demo
Working Prototype
A browser-based AI voice receptionist that answers scheduling questions, books
real appointments, and hands owners a same-tool staff assistant — no telephony
required to demo it.
- FastAPI + WebSocket voice loop
- Claude Messages API (tool use)
- SQLite
- Whisper / Deepgram (STT)
- Piper / Kokoro / ElevenLabs (TTS)
- FastMCP staff tools
Answers natural-language availability questions, books an appointment end to
end with a spoken confirmation, handles mid-conversation corrections, and
exposes the same booking logic to Claude Desktop via MCP so an owner can ask
"who hasn't confirmed this week?" as a daily tool.
CPA RAG Assistant — Document-Grounded Q&A
In progress
A retrieval-augmented assistant for a CPA firm's internal documents, built
around the part that actually matters for a firm to trust it: guardrails,
access control, and citations — not retrieval alone.
- ChromaDB (embedded vector store)
- Custom chunking / retrieval pipeline
- Claude or Groq (togglable LLM)
- Role-based access filtering
- pytest
Answers questions grounded in a firm's own documents with citations back to the
source, refuses to answer when retrieval confidence is too low instead of
guessing, and filters retrieved content by the asking user's role.