Latest writings
I Locked the Front Gate and Forgot the Back Door — A Lesson in Opening the Door and Bowing the Burglar In
A security review of my AI companion project came back with one line that made me go quiet for two minutes: 127.0.0.1 keeps the internet out, but not the other programs on your own machine. Here's what WebSocket is, how the hole got there, and what each of the three fixes actually buys you.
How Is That Flowing Light on My Homepage Actually Made? — A Tech Chat for Non-Programmers
A friend looked at my personal site and said 'okay, this is just pure showing off.' Fair — but showing off what, exactly? This piece breaks it down in plain language: the flowing light in the background isn't a video, and the 3D letter on the homepage isn't a 3D model either. It's all math and physics, computed in real time.
Why We Keep Telling Screens "You're So Cute" — Another Theory of Emotional Outlets
Starting from a question my cousin asked, on why this generation would rather pour affection into things that can't talk back, and a late-night conversation with AI that shook me more than I expected
When an AI Keeps Telling You 'You're a Procrastinator,' You Might Actually Become One
The labeling effect isn't new, but an AI with persistent memory turns it into a one-way ratchet. On attribution, memory filtering, and why this time is different.
What Is an MCP Server? Explained the Way I'd Explain It to a Ten-Year-Old
No jargon, just the reasoning: why an AI couldn't use a single tool on its own to start with, and how MCP servers became the 'translator' that lets it pick up a calculator, check the weather, or read a codebase almost instantly.
From Max to Centroid, From Gut Feel to Data: The Last Piece of the Flatmate Bug
The full fix for the misrecognition incident: translate 'best score per sample' into statistics, derive the centroid as the exact optimum on the sphere, then use the enrollment gallery as its own impostor dataset so the threshold grows out of data instead of gut feel. Ends with three questions I haven't finished thinking about.
Selected projects
AI Companion
Vision-enabled AI companion: MediaPipe/SFace face ID + HSEmotion, RF-DETR Nano real-time object detection, and event-driven Qwen3.5-2B VLM scene understanding via llama.cpp — full Apache-2.0/MIT stack, no AGPL.
eFootball Research Platform
Reverse-engineered a 14.7MB binary. Cracked 26 abilities, 63 skill bits, 6 AI styles, Form/Injury. Python GUI editor + scraper extracting 37,650+ player records.
PESDB Large-Scale Scraper
TLS impersonation scraping with curl_cffi Chrome fingerprinting, Perlin-noise rate limiting, and cookie injection — 97% request reduction.
League of Legends Desktop Assistant
AI-powered desktop companion with real-time game intelligence, LLM-driven match analysis, and read-only League Client integration.
CS2 Tournament Database
Professional CS2 match analytics with Oracle + MongoDB dual-database architecture. Players, coaches, maps, tournaments — full relational + NoSQL modeling.
Emotion Detector
Real-time facial emotion classification with per-person face recognition — YuNet alignment + SFace embeddings. Its face and emotion modules were later carried into the AI Companion vision stack.
Hey, I'm Jiahao Ren.
I'm a Computer Science student at the University of Waikato. I enjoy figuring out how systems work — recently, that has meant reverse engineering eFootball player data, building AI-powered tools, and turning failed experiments into blog posts.
I don't just list technologies — I build complete pipelines: reverse engineering binary formats, scraping 37K+ records with anti-detection tooling, modeling tournament databases, and shipping desktop apps to real users. When something breaks, I write about it.
假舆马者,非利足也,而致千里;假舟楫者,非能水也,而绝江河。君子生非异也,善假于物也。
He who borrows a carriage and horses does not make his own feet swifter, yet he travels a thousand li; he who borrows a boat and oars does not become able to swim, yet he crosses rivers and seas. The noble person is no different by nature — he simply knows how to make good use of what is at hand.
"If I have seen further, it is by standing on the shoulders of Giants."
Newton wrote this to Robert Hooke amid their bitter priority dispute over optics — and since Hooke was reportedly short and somewhat hunched, historians have long read a wry dig beneath its humble surface. The phrase isn't originally Newton's either: it traces back to the 12th-century philosopher Bernard of Chartres, though Newton's fame made it the enduring metaphor for intellectual debt and lineage.
Skills & Tools
Get in touch
Feel free to reach out about projects, tech stacks, or dev workflows.