rehan@khalil: ~/portfolio
whoami~/about
$ whoami

Rehan Khalil

AI Engineer — Computer Vision & NLP

Hey, I'm Rehan. I'm based in Karachi, and I got into AI because I liked the idea of teaching a machine to actually understand something text, images, whatever. Most of my time goes into computer vision and NLP projects, but I also freelance in web and app development on the side while I work toward doing AI full-time. I'd rather show you what I've built than talk myself up, so scroll down.

currently building: Grocery Shop Platform
projects~/projects
$ ls -la ./projects
modelixir/ deployed
final year project · full-stack AI

Browser-based AI platform: text-to-3D generation, an interior design module, and a virtual try-on system built on a custom CV pipeline. Solo build, solo deploy.

modules: 3|build: solo|stack: Three.js, Flask, Firebase
modelixir_demo.livelive embed
architecture.svgsystem overview
Browser UI Flask API Tripo3D / IDM-VTON Firebase + R2 storage
read case study

Problem: Wanted a single platform combining generative 3D, room design, and virtual try-on — tools that normally live in separate apps.

Approach: Built three independent modules on a shared Three.js viewer, connected to separate model backends (Tripo3D for generation, custom MediaPipe masking for try-on).

Result: Fully deployed platform, solo-built end to end, presented as final year project.

./open --fullscreen →
urdu-ocr-pipeline/ trained
computer vision · nlp

TrOCR for recognition + NLLB for translation, wrapped in a simple upload-and-translate interface. Turns scanned Urdu documents into readable English, trained and run locally.

models chained: 2|run: local
urdu_OCR.PNGscreenshot
Urdu OCR + Translation interface
urdu_OCR.mp4screen recording
ocr_pipeline.logsample run
$ python run_ocr.py --input scan_014.jpg [1/3] loading TrOCR weights... [2/3] running character recognition... [3/3] translating (ur → en) via NLLB... ✓ done. output written to scan_014_translated.txt
docmind/ deployed
retrieval · privacy

Fully local multi-user RAG system with a chat-style query interface and per-document access control. Flask, ChromaDB, Llama 3.2 via Ollama.

access control: per-document|run: local only
Doc_Mind.PNGscreenshot
DocMind chat interface
Docmind.mp4screen recording
architecture.svgsystem overview
Chat UI Flask + Auth ChromaDB Llama 3.2
docmind.sessionsample run
$ ./query.sh --user rehan --q "summarize Q3 notes" checking access scope for user: rehan... 3 documents authorized, 2 restricted (skipped) ✓ answer generated from 3 authorized sources
read case study

Problem: Teams wanted a RAG assistant without sending private documents to a third-party API.

Approach: Built a fully local pipeline (ChromaDB + Ollama) with per-document access rules so restricted files never enter another user's context.

Result: A working multi-user system where access control is enforced at retrieval time, not just at the UI layer.

skills.txt~/stack
$ cat skills.txt
ml/cvPyTorch · OpenCV · Hugging Face · MediaPipe · TrOCR · PaddleOCR████████░░ 90%
backendPython · Flask · Firebase · Node.js███████░░░ 80%
frontendReact · Three.js · JavaScript███████░░░ 75%
infraRailway · Cloudflare · Docker██████░░░░ 70%
contact.sh~/contact
$ ./contact.sh
$