Live site → levimackay.com
Hey, I'm Levi. This repo is the central hub for the projects I've built while working through my CS degree at BYU–Idaho — a mix of computer vision, AI tooling, data engineering, and automation. It's also the source for my personal portfolio site: a single-page, no-build HTML/CSS/JS site with a WebGL hero scene, scroll animations, and a hidden interactive terminal easter egg.
- Single-page portfolio — hero, about, project case studies, skills, and contact sections, all in
index.html. - WebGL hero animation — a sphere of shards that assembles on load and reacts to scroll, built with Three.js (
scene.js, vendored atassets/vendor/three.min.js). - Scroll-driven UI — a scroll-progress bar, reveal-on-scroll sections, and an animated stat counter, all hand-rolled in
script.js(no animation library). - Interactive terminal easter egg — press
Tor click the terminal button to open a fake shell with commands likewhoami,bio,projects,skills,contact,ls, andexplode(replays the hero animation). - Copy-to-clipboard contact — clicking the email button copies it and shows a toast confirmation.
- Project write-ups — each featured project has its own README under
projects/.
- HTML / CSS / vanilla JavaScript — no framework, no bundler, no build step for the site itself.
- Three.js (vendored
.jsfile, loaded via<script>tag — not an npm dependency) for the hero WebGL scene. - Google Fonts (Inter) loaded via
<link>. - Individual projects under
projects/use their own stacks — Python, OpenCV, MediaPipe, MySQL, and Tkinter — see each project's README for specifics.
There's no build step or package manager involved in the site itself — it's static files. To view it locally, serve the repo root with any static file server (opening index.html directly also works, but a local server avoids file:// restrictions on things like fetch/video):
git clone https://github.com/levimackay/Portfolio.git
cd Portfolio
python3 -m http.server 8000
# then open http://localhost:8000- Browse the live site at the link above, or run it locally as described.
- Press
T(or click the>_ terminallink in the footer) to open the interactive terminal and typehelpfor the list of commands. - Project source code and write-ups live under
projects/; each links out to a public GitHub repo where relevant (e.g. Lydia, AI Security Scanner).
| Project | What it is | Stack |
|---|---|---|
| SwingOS | Real-time biomechanical feedback for baseball swings using pose estimation | Python, OpenCV, MediaPipe |
| Lydia | Local, Claude-Code-style coding agent — no API keys, nothing sent to the cloud | Python, Ollama, Agents |
| AI Security Scanner | AI-powered vulnerability detection with severity ratings and suggested fixes | Python, Gemini API |
| Foreman's Friend | Job-site material and labor estimator, born from my time as a landscape foreman | Python, CLI |
| Baseball Analytics Engine | Relational schema and layered queries for player performance trends | MySQL |
| BCS Flashcards | Vocabulary tool I built to study Bosnian, Croatian, and Serbian | Python, Tkinter |
index.html/styles.css/script.js/scene.js— the portfolio site itself.assets/— demo videos, screenshots, and the vendored Three.js library used by the site.projects/— source code and READMEs for the featured projects above.archive/— early coursework and experiments (Python and web dev assignments), kept out of the way of the main projects.byui_career_quest.html— a standalone browser mini-game, not linked from the main site.SiteRemodelTest/— a work-in-progress redesign experiment for the portfolio site, not yet live.dist/— a build output directory (git-ignored); not part of the tracked source.
- Levi B Mackay (@levimackay) — sole author and maintainer.
I'm always down to talk code, startups, or baseball. Find me on LinkedIn or email me at levibmackay@gmail.com.
Last updated: July 22, 2026
Maintained by Levi Mackay
Last updated: 2026-08-06 07:59 PDT