Shlok Bam's portfolio

السجل الرسمي الذكاء الاصطناعي والوكلاء

Ask about Shlok Bam, AI engineer: projects, experience, skills, patents. Live, read-only.

التثبيت

أضف هذا إلى إعدادات MCP في عميلك (Claude Desktop: claude_desktop_config.json، وCursor: ‏.cursor/mcp.json، ويستخدم VS Code وغيره الصيغة نفسها «mcpServers»).

Remote (streamable-http)
Claude Code
claude mcp add --transport http shlok-bam-s-portfolio 'https://shlokbam.in/mcp'
إعداد JSON (Claude Desktop وCursor وVS Code)
{
    "mcpServers": {
        "shlok-bam-s-portfolio": {
            "type": "http",
            "url": "https://shlokbam.in/mcp"
        }
    }
}

التوثيق

مأخوذ من ملف README للمشروع على GitHub ويُحدَّث أسبوعيًا. تفتح الروابط على GitHub.

المحتويات
  1. Shlok Bam — Portfolio
  2. ✦ What's inside
  3. 📸 Pages
  4. 🏗️ Architecture
  5. 🧰 Stack
  6. 📁 Structure
  7. 🚀 Run it locally
  8. 📬 Say hi

Shlok Bam — Portfolio

AI / Generative AI engineer · Pune, India

A portfolio that behaves like the work it shows: real neural nets, gradient descent and self-attention running live behind every page, an AI assistant trained on my résumé, and a small arcade at the end.


✦ What's inside

🧠 Live AI on every page

Each page header runs a small, real computation on a canvas: not a looping video, but the actual maths.

PageRuns live
HomeFeed-forward net, tanh forward pass; input follows your pointer
Aboutk-means over a skill-embedding space, re-fit every 10 s
WorkGradient descent with momentum on a 2-D loss surface
JourneyTrain / validation loss curve, years as epochs
Recognition3×3 Sobel convolution scanning a pixel strip
CommunityMessage passing over a k-NN graph
WritingNext-token sampling with attention arcs
Case studyThe DailyDiff agent pipeline, step by step
💬 Ask my AI

A portfolio assistant that knows everything on the site, served by FastAPI and Groq.

  • The question is tokenised live as you type, with token ids.
  • A causal self-attention heatmap of your question renders behind it.
  • Replies stream in, and a small network "thinks" while waiting.
  • It falls back across models when one is rate-limited, and has prepared answers if the API is asleep.
🕹️ The arcade

Four tiny games, all built for the contact page. Best scores stay on your device.

GameWhat you do
Stack pitGrab, throw and stack my 30 tools as physical pills (matter-js, lazy-loaded)
Bug smashA 30-second reflex test
MemoryMatch the tech logos
Typing sprintType code one-liners against the clock
✨ And the small things
  • Live data: LeetCode, CodeChef and GitHub numbers, plus a hover peek with a 26-week contribution heatmap.
  • A multilingual hello that cycles every second, a live IST clock to the second, and a scramble-text logo.
  • Recognition page: patents and awards as stamped, tilting cards.
  • Journey page: a route that draws itself as you scroll, from 2010 to now.
  • Work page: horizontally scrolling flagships, and a project index with rich hover previews.
  • Dark and light themes, chosen before first paint so there's no flash.
  • Smooth scroll with Lenis, scroll-driven CSS animations in Chromium and a JS fallback elsewhere, and full reduced-motion support.

📸 Pages

About: k-means over a skill-embedding space Work: gradient descent with momentum

Journey: a training run, years as epochs Recognition: a Sobel convolution scanning pixels

Designed down to 320 px wide


🏗️ Architecture

flowchart LR
  V([Visitor]) -->|shlokbam.in| VC

  subgraph VC [Vercel · static, prerendered]
    direction TB
    R[React 18 + Vite<br/>9 pages rendered to HTML]
  end

  subgraph RD [Render · FastAPI]
    direction TB
    API["/api/chat · /api/stats<br/>/api/availability · /api/health"]
    OLD["old v1 address<br/>301 → shlokbam.in"]
  end

  R -->|chat, live stats| API
  R -->|contact form| W3[Web3Forms]
  API --> GQ[Groq LLMs]
  API --> CP[LeetCode · CodeChef · GitHub]
  R -.-> GA[Google Analytics]
  • The site is static. Every route is prerendered to real HTML at build time, with its own title, description, canonical URL, Open Graph tags and JSON-LD. It loads instantly from Vercel's CDN, even while the API sleeps.
  • The API is small. FastAPI handles the assistant (system prompt built from the site's own content, read from /portfolio.json; see knowledge.py), cached coding stats and a health check. It also redirects the old Render address to the new domain and retires v1's service worker.
  • The contact form posts straight from the browser to Web3Forms, with a honeypot field for bots.

🧰 Stack

LayerTools
Front endReact 18, React Router 6, Vite 5, Lenis, matter-js, simple-icons, hand-written CSS (no UI kit)
RenderingVite SSR build + a prerender script → static HTML, sitemap, robots.txt and a real 404
VisualsCanvas 2D scenes, CSS animation-timeline, container-query units, @property animations
Back endPython 3.11, FastAPI, httpx, Groq (OpenAI-compatible API)
HostingVercel (site) · Render (API) · GoDaddy DNS → shlokbam.in
FontsArchivo, JetBrains Mono, Instrument Serif, Mrs Saint Delafield, all self-hosted

📁 Structure

.
├── v2/
│   ├── frontend/                 → Vercel (root directory: v2/frontend)
│   │   ├── src/
│   │   │   ├── pages/            one component + stylesheet per page
│   │   │   ├── components/       Layout, AskAI, ChatWidget, Arcade, SkillPit, ProfilePeek, …
│   │   │   │   └── arcade/       Bug smash, Memory, Typing sprint
│   │   │   ├── lib/scenes/       the live AI canvases (nn, embed, gd, attention, cv, …)
│   │   │   ├── content/          everything the site says, as data (published as /portfolio.json)
│   │   │   ├── routes.jsx        the route list (one chunk per page)
│   │   │   └── seo.js            per-page titles, descriptions, structured data
│   │   ├── public/static/        résumé, certificates, patents, photos (+ WebP copies in opt/)
│   │   └── scripts/              prerender.mjs, resize-images.sh
│   ├── backend/                  → Render (root directory: v2/backend)
│   │   ├── main.py               API, stats fetchers, redirects
│   │   └── knowledge.py          the assistant's rules; facts come from the content
│   └── README.md                 developer notes
└── docs/screens/                 the images in this README

🚀 Run it locally

# 1. API: reads GROQ_API_KEY and WEB3FORMS_ACCESS_KEY from the repo-root .env
cd v2/backend
python3.11 -m venv .venv && .venv/bin/pip install -r requirements.txt
.venv/bin/uvicorn main:app --reload --port 8000

# 2. Site: proxies /api to :8000
cd v2/frontend
npm install
npm run dev          # http://localhost:5173
CommandWhat it does
npm run buildBuilds the app, prerenders every page and writes the sitemap and 404
npm run previewServes dist/ the way Vercel does

Deployment settings for Render and Vercel are in v2/README.md.


📬 Say hi

shlokbam.in · LinkedIn · GitHub · X · shlokbam19103@gmail.com

Designed and built by Shlok Bam. Earlier version: Flask (v1), kept in this repo's git history.

الأسئلة الشائعة

ما هو Shlok Bam's portfolio؟

Ask about Shlok Bam, AI engineer: projects, experience, skills, patents. Live, read-only.

كيف أثبّت Shlok Bam's portfolio؟

يعمل كخادم بعيد. في Claude Code: claude mcp add --transport http shlok-bam-s-portfolio 'https://shlokbam.in/mcp'. وفي العملاء الآخرين، الصق إعداد JSON من هذه الصفحة في إعدادات MCP الخاصة بهم.

هل يحتاج Shlok Bam's portfolio إلى مفتاح API؟

لا يذكر إدراجه في السجل أي مفتاح أو سر إلزامي. قد تتطلب بعض الميزات حسابًا لدى الخدمة التي يتصل بها.

هل Shlok Bam's portfolio مفتوح المصدر؟

شيفرته علنية على GitHub، لكن المستودع لا يعلن ترخيصًا قياسيًا.

من يصون Shlok Bam's portfolio؟

ينشره shlokbam. يدرجه AI.tn لكنه لا يصونه ولا يوصي به.

من سجل MCP الرسمي. الإدراج ليس توصية: راجع شيفرة الخادم وصلاحياته قبل منحه الوصول إلى بياناتك.