{"schemaVersion":2,"name":"Ethan Cai's project portfolio","description":"Selected research, software tools, games, source repositories, papers, and live demos.","url":"https://ethancai.com","author":{"name":"Ethan Cai","description":"EECS student at UC Berkeley. Some things I care about: verified AI, applied AI (mostly in healthcare), model training, reinforcement learning, trying new food, and chatting it up with cool people :)","location":"Berkeley, CA","availability":"Looking for Summer 2027 internships in ML, software engineering, or product management. Also open to part-time roles during the school year.","now":["Researching verified AI for drones at UC Berkeley's Seshia Lab","Consulting for Freshworks on AI coding-assistant usage analytics, with Generative AI at Berkeley","Post-training LLMs to write more reliable clinical summaries at UCSF's Sohn Lab"],"email":"ethan_cai@berkeley.edu","github":"https://github.com/vitgruib","linkedin":"https://www.linkedin.com/in/ethan-cai-25a775314/","resumePdf":"https://ethancai.com/Ethan_Cai_Resume.pdf","resumeText":"https://ethancai.com/resume.md"},"projects":[{"slug":"metabolomics-pasc","name":"Metabolomics-Based ML Diagnostics of PASC","description":"Machine learning pipeline for diagnosing Post-Acute Sequelae of SARS-CoV-2 Infection (Long COVID) using metabolomic data. A proof of concept that molecular descriptors calculated using E-Dragon can work to build assay-agnostic diagnostic algorithms with disease differentiating power. Differentiates PASC from 4 of the 5 PASC-similar diseases tested (ME/CFS, Lyme disease, POTS, and IBS), with only fibromyalgia proving indistinguishable. First-author paper published in Metabolites.","category":"research","technologies":["Python","Machine Learning","Bioinformatics"],"highlight":"First-author paper in Metabolites · 0.899 AUC-ROC","organization":"UC San Diego / San Diego Supercomputer Center","started":"2024-05","ended":"2025-12","ongoing":false,"dates":"May 2024 – Dec 2025","repository":"https://github.com/Ethanc143/Metabolomics-Based-Machine-Learning-Diagnostics-of-Post-Acute-Sequelae-of-SARS-CoV-2-Infection","paper":"https://www.mdpi.com/2218-1989/15/12/801","image":"https://ethancai.com/projects/metabolomics-pasc.png","page":"https://ethancai.com/projects/metabolomics-pasc"},{"slug":"sipacl","name":"Prioritized Level Replay in RL Driving Environments","description":"Demonstrates that prioritized level replay, an automated curriculum learning method for RL, improves PPO performance in highway driving scenarios with reactive traffic. Scenes are sampled from Scenic scenario specifications into MetaDrive, scored by positive value loss, and resampled by rank. In a controlled 30-seed comparison, PLR-trained agents beat the unmodified PPO baseline in 21 of 30 seeds (sign test, p < 0.05).","category":"research","technologies":["Python","Reinforcement Learning","PPO","Autonomous Driving"],"organization":"UC Santa Cruz","started":"2025-05","ended":"2026-06","ongoing":false,"dates":"May 2025 – Jun 2026","repository":"https://github.com/vitgruib/SIPACL","image":"https://ethancai.com/projects/sipacl.png","page":"https://ethancai.com/projects/sipacl"},{"slug":"attrpred","name":"Do Face Embeddings Predict Attractiveness?","description":"Benchmarked 11 face-embedding families (deep identity CNNs, classical methods, CLIP, DINOv2) against 3 human attractiveness-rating datasets totaling ~7,800 rated faces, using frozen embeddings and ridge regression. Found that embeddings trained to capture identity did consistently worse at predicting attractiveness than those that were not, pointing to a tradeoff between pose invariance and attractiveness predictivity. CLIP led every dataset (r = 0.94 on SCUT-FBP5500), while Fisherface—the most aggressively identity-separating method tested—finished last at a mean r = 0.32.","category":"research","technologies":["Python","PyTorch","scikit-learn","Computer Vision"],"organization":"Independent research","started":"2026-06","ended":"2026-08","ongoing":false,"dates":"Jun 2026 – Aug 2026","repository":"https://github.com/vitgruib/AttrPred","image":"https://ethancai.com/projects/attrpred.png","page":"https://ethancai.com/projects/attrpred"},{"slug":"vigil","name":"Vigil","description":"Grand prize (Bright Data track), Talk to Users Hackathon (SF Tech Week 2026), built in 12 hours. Checks an investment adviser's website, blog, and third-party pages for marketing that may break the SEC Marketing Rule, quotes each flag for human review, and drafts rewrites for approval. Led the project and built its two-pass, cross-referenced inference pipeline and an eval suite drawn partly from 12 real SEC enforcement orders. On 125 eval cases: F1 0.97 with 4 false flags, vs. 0.57 and 111 for a single-prompt LLM.","category":"tools","technologies":["Python","TypeScript","LLMs","Bright Data"],"highlight":"Grand prize (Bright Data track) · F1 0.97 vs. 0.57 for a single-prompt LLM","organization":"Talk to Users Hackathon, SF Tech Week","started":"2026-10","ended":"2026-10","ongoing":false,"dates":"Oct 2026","repository":"https://github.com/jadenvv/Vigil","liveDemo":"https://marketing-rule-watch-a0747dd2.base44.app/","image":"https://ethancai.com/projects/vigil.png","page":"https://ethancai.com/projects/vigil"},{"slug":"grant-test-auto","name":"Grant Test Auto","description":"Built at Cal Hacks 13.0 for the Hyphenate track, after our PI talked at lab meeting about how much of his time goes to keeping funding instead of research. Since 2025, a grant can be canceled, restored by a court, and still not pay a cent, and the official records don't agree on which is true. On top of that, every purchase has to clear obscure funding rules, like no supplies bought in a grant's last 90 days, and someone has to check all of it by hand, constantly. Grant Test Auto automates that grunt work. It sits between a lab's researchers and its grant office: researchers ask for things in plain words, agents check each request and invoice against the grant's real balance and every spending rule, and one human grant manager approves each one with the reasons in front of them. \"Awarded,\" \"restored\" and \"paid\" are three different facts, so a court order alone doesn't unfreeze a grant; only money actually arriving does. Claude reads and explains but never decides, since the rules live in the database where no model can talk its way past them. Worked on the backend, feature ideation and market research. Tested only on real cases: caught 38 of 38 freezes on 37 NIH grants and flagged 28 of 28 unallowable items from real audits.","category":"tools","technologies":["TypeScript","SpacetimeDB","React","Claude","Apify"],"organization":"Cal Hacks 13.0","started":"2026-10","ended":"2026-10","ongoing":false,"dates":"Oct 2026","repository":"https://github.com/vitgruib/CalHacks13.0","liveDemo":"https://calhacks130.vercel.app","image":"https://ethancai.com/projects/grant-test-auto.png","page":"https://ethancai.com/projects/grant-test-auto"},{"slug":"anchor-lines","name":"Anchor Lines","description":"Google AI-powered document intelligence app that transforms dense financial-aid documents and syllabi into clear, decision-ready summaries. Every insight stays anchored to the original source, with direct citations that make claims easy to trace and verify through a sleek, modern interface designed to support an expanding range of document types.","category":"tools","technologies":["TypeScript","Next.js","Gemini"],"started":"2026-07","ended":"2026-08","ongoing":false,"dates":"Jul 2026 – Aug 2026","repository":"https://github.com/vitgruib/Anchor-Line","image":"https://ethancai.com/projects/anchor-line.png","page":"https://ethancai.com/projects/anchor-lines"},{"slug":"human-benchmark-3d","name":"Human Benchmark 3D","description":"Virtual reality edition of classic block-tapping memory tests utilizing blocks of various heights. Uses Firebase to record user performance and provide comparative feedback to other users of the same age bracket. Downloaded over 1,800 times on SideQuest.","category":"tools","technologies":["C#","Unity","VR","Firebase"],"highlight":"1,800+ downloads on SideQuest","started":"2025-05","ended":"2026-05","ongoing":false,"dates":"May 2025 – May 2026","repository":"https://github.com/Ethanc143/Human-Benchmark-3D","liveDemo":"https://sidequestvr.com/app/45060/vr-memory-test","image":"https://ethancai.com/projects/human-benchmark-3d.png","page":"https://ethancai.com/projects/human-benchmark-3d"},{"slug":"shambo","name":"Shambo","description":"Featured five-star extension on the Chrome Web Store. Blocks distracting sites and auto-closes tabs, with support for custom subpaths. Utilizes psychology (optionally) to fight procrastination by leaving snarky comments each time users try to open unproductive sites on their custom blocklist.","category":"tools","technologies":["JavaScript","Chrome Extensions"],"started":"2026-05","ended":"2026-07","ongoing":false,"dates":"May 2026 – Jul 2026","repository":"https://github.com/vitgruib/shambo","liveDemo":"https://chromewebstore.google.com/detail/shambo-%E2%80%94-website-blocker/nnjocfponpkmpkldmkfalljmacbbjkao","image":"https://ethancai.com/projects/shambo.png","page":"https://ethancai.com/projects/shambo"},{"slug":"todo","name":"Toto Simple","description":"Five-star Chrome Web Store extension designed around minimizing friction, with proactive reminders, one-click snoozing, urgent-task flags, and cloud sync. Originally built around AI task organization, but it made everything cluttered. Kept as a dear lesson that AI doesn't belong in everything.","category":"tools","technologies":["TypeScript","React","Chrome Extensions"],"started":"2026-05","ended":"2026-08","ongoing":false,"dates":"May 2026 – Aug 2026","repository":"https://github.com/vitgruib/todo","liveDemo":"https://chromewebstore.google.com/detail/toto-simple-todo-due-remi/glnmgmemmaedcgmnbbipllpfikpnmbjl","image":"https://ethancai.com/projects/toto-simple.png","page":"https://ethancai.com/projects/todo"},{"slug":"dads","name":"DADS: Distraction-Aware Driving Simulator","description":"Winning submission to the Games for Change Game Jam in the 'Own the Road' category. A driving game that warns about the dangers of distracted driving by making users contend with simulated distractions while they try to drive safely on the road. Features summaries of risky driving caused by distracted driving.","category":"funsies","technologies":["C#","Unity"],"started":"2024","ended":"2024","ongoing":false,"dates":"2024","repository":"https://github.com/Ethanc143/gamejam","liveDemo":"https://kyozen1.itch.io/dads-distraction-aware-driving-simulator","image":"https://ethancai.com/projects/dads.png","page":"https://ethancai.com/projects/dads"},{"slug":"party-box","name":"Party Box","description":"Most party game apps are ruined by forced ads and paywalled categories. Party Box bundles party games such as charades and imposter into one app without any content restrictions. It runs offline on Android, and in any browser on a phone or laptop with no signup or install: just a link.","category":"funsies","technologies":["Kotlin","Android","JavaScript"],"started":"2025-11","ended":"2026-02","ongoing":false,"dates":"Nov 2025 – Feb 2026","repository":"https://github.com/vitgruib/spider-party","liveDemo":"https://vitgruib.github.io/spider-party/","googlePlay":"https://play.google.com/store/apps/details?id=com.vitgrub.passandplaypartygames","image":"https://ethancai.com/projects/party-box.png","page":"https://ethancai.com/projects/party-box"}]}