I'm a sophomore at River Islands High School, dual-enrolled at San Joaquin Delta College. I specialize in the integration of AI and machine learning into engineering disciplines — mechatronics and aerospace in particular — along with the mathematics, simulation, and control that has to hold underneath for that integration to mean anything.
I like problems that stay interesting after the first correct answer: Is this number real, or is my instrument lying to me? Which assumption breaks first? What does the system do the moment it does? That's why I work where ML meets hardware. A model that scores well on a benchmark and a model you would trust to run a physical system are not the same object, and the distance between them is where the engineering actually lives.
┌─[ RUNTIME ]──────────────────────────────────────────────────┐
│ status █ online — open to research collaborations │
│ location Lathrop, California │
│ grade sophomore · River Islands HS · class of 2029 │
│ transcripts 4.86 weighted (HS) · 4.0 unweighted (college) │
│ labs MIT · UC Santa Cruz · Lumiere Education │
├─[ FOCUS ALLOCATION ]─────────────────────────────────────────┤
│ robot learning ███████████████████░░░░░ MIT · UCSC │
│ mathematics ███████████████░░░░░░░░░ AIME · USACO │
│ systems & web ████████████░░░░░░░░░░░░ TS · WebGL │
│ hardware & CAD ████████████████░░░░░░░░ FTC · VEX │
│ curiosity ████████████████████████ uncapped │
└──────────────────────────────────────────────────────────────┘
active objective ▸ fault-recovery-quadruped-rl
name: Vyom Aggarwal
pronouns: he/him
age: 15
role: student researcher, robot learning
thesis: a policy that has never seen failure has no response to it
interests:
- teaching robots to make decisions under things going wrong
- mathematics, for its own sake
- the seam between those two, which is where the research lives
open_to: [research collaborations, ML internships, arguments about math]Note
I'm a sophomore in high school. Everything below is real, reproducible, and linked — please check it.
Member of the Computer Science and Artificial Intelligence Laboratory, assisting the development of a system that changes the way data can be visualized. The interesting part of the problem sits underneath the interface: what a system has to compute, and how it has to represent what it knows, before a person can look at the result and see something they couldn't see before.
Machine learning applications in robotics, and what it actually takes to move them into the real world. My current project asks whether a quadruped can recover its gait after an actuator or sensor fault by learning a small correction online — without retraining the policy underneath. So far the work has been as much about building trustworthy measurement as building the method: the first substantive result was discovering that the recovery criterion was crediting recoveries that never happened.
Conducting an independent research project under the mentorship of Fernanda-Maria Lugo-Bolanos of Brown University. I was accepted into the program with a merit-based scholarship for a revolutionary research idea proposal video. In this project, I am currently investigating whether a skin lesion classifier trained on the ISIC dataset relies genuinely on actual lesion features or inadvertently keys off confounding artifacts like surgical ink marks, rulers, and hair.
UC Santa Cruz · AIEA Lab
Can a small correction module, updated during execution, restore a quadruped's gait after a hardware fault — without retraining the policy underneath?
flowchart LR
OBS["observation<br/><b>34-dim</b>"] --> PI["π_base<br/>PPO · <b>frozen</b><br/>5 seeds · gait-gated"]
OBS --> RES["residual Δa<br/><i>updated online</i>"]
PI --> SUM(("+"))
RES -.-> SUM
SUM --> ACT["action<br/><b>12-dim</b> · 60 Hz"]
ACT --> ENV["PyBullet quadruped<br/>12 joints · 240 Hz physics"]
ENV --> OBS
FAULT["⚠ fault injected<br/>@ step 200"] --> ENV
classDef core fill:#1f6feb,stroke:#58a6ff,stroke-width:1px,color:#ffffff
classDef wip fill:#7c3aed,stroke:#a78bfa,stroke-width:1px,color:#ffffff,stroke-dasharray:4 3
classDef env fill:#0f766e,stroke:#2dd4bf,stroke-width:1px,color:#ffffff
classDef bad fill:#b91c1c,stroke:#f87171,stroke-width:1px,color:#ffffff
class OBS,PI,ACT,SUM core
class RES wip
class ENV env
class FAULT bad
The seized joint stays seized. The residual redistributes the gait around it:
Measured against two bounds — no adaptation (Baseline A) and full retraining (Baseline B).
timeline
title Roles Throughout My Career
2023 : Troop Guide, Boy Scouts of America
2024 : Founded Apex STEM
2025 : Dual enrollment at San Joaquin Delta College
: AMC 8 prep book — TMAS Academy
: Captain, FTC Team 36541
: Treasurer + programming & CAD, VEX 95330Z
: President, RIHS Math Club
2026 : Research Fellow, Lumiere Education
: Director, Binary Tree
: Student Researcher, MIT CSAIL
: Student Researcher, UC Santa Cruz AIEA Lab
: USACO Silver division
| Languages | |
| ML & research | |
| Web & systems | |
| Mechatronics & CAD | |
| Writing |
flowchart TD
Q["a question worth asking"] --> A["build the smallest apparatus<br/>that could answer it"]
A --> N["run it — get a number"]
N --> D{"distrust<br/>the number"}
D -->|instrument broken| F["fix the instrument"]
F --> N
D -->|instrument sound| R["a result I can defend"]
R --> B["find the assumption<br/>that would break it"]
B --> Q
classDef step fill:#1f6feb,stroke:#58a6ff,stroke-width:1px,color:#ffffff
classDef check fill:#7c3aed,stroke:#a78bfa,stroke-width:1px,color:#ffffff
classDef fix fill:#b45309,stroke:#fbbf24,stroke-width:1px,color:#ffffff
classDef win fill:#0f766e,stroke:#2dd4bf,stroke-width:1px,color:#ffffff
class Q,A,N,B step
class D check
class F fix
class R win
