Enhe Bai
CS (Co-op) at the University of Waterloo. Software engineering intern at Ambition Labs.
I build AI agents, computer vision, 3D on the web, and robots.
Projects
cruxlyclimbing platform
Share climbing beta, and turn one photo of a wall into 3D holds.
61 holds placed in 3D from a single photo
next.js · prisma · postgres · yolo · midas · mujoco
more
- A social feed, maps, profiles and live beta sharing, built on Next.js, Prisma and Postgres.
- A 13-joint drag-to-pose figure for drawing beta on top of a photo.
- Photo to 3D: YOLO finds the holds, MobileSAM cuts them out, MiDaS estimates depth, and RANSAC fits the wall plane.
- Wall calibration cut reprojection error from 2.8–4.0 px to 1–2.4 px, checked by 261 tests.
- A MuJoCo climber with 19 joints, the start of reach planning.
traffic forecastingresearch with rbc borealis
Predicting how a slowdown travels through a city's freeways, an hour ahead.
3.283 mph error at 60 min on METR-LA, the best public reproducible result
pytorch · mamba · graph fourier transform · staeformer
more
- The task: take the last hour from 207 Los Angeles freeway sensors and predict the next hour.
- Our first idea, graph frequencies fed into Mamba, stalled near 3.7 no matter how big we made it. So we changed the foundation.
- We reproduced STAEformer at 3.339. Four averaged models and a 1,656-parameter calibrator brought it to 3.283.
- STAE-Spectral-Magma adds a correction branch that sees the roads three ways: distance, flow direction and similar behaviour. On PEMS-BAY it cut error from 1.580 to 1.550, while a bigger plain model only got 1.583.
- It did not help on METR-LA, and we reported that as carefully as the wins.
- A team of five with Udula Abeykoon, Nengjia Li, Anirudh B. Vangara and Ryan Rana. We presented to RBC Borealis VPs.
- Read the full write-up, with charts
steriasoccer broadcast to 3D
YOLO detection, camera calibration and tracking rebuild FIFA matches from one camera as 3D replays. With Udula Abeykoon.
ball tracked in ~92% of wide-shot frames at ~25 fps
python · yolo · tvcalib · wasb · react three fiber
more
- Picked TVCalib after it fit 291 of 291 frames, where keypoint homography failed on 99%.
- Cut player ID switches from 4 to 1, then merged 79 broken tracks into 50 players.
- A YOLO and WASB ball tracker under a Kalman filter took coverage from 46% to 92%.
- The viewer has 7 camera modes and a first-person walk, and loads a 1.1 MB replay instead of 25–50 MB per minute of video.
arisetechnical co-founder
A LEGO-style robotics simulator. Students build robots from bricks, code them with blocks, and test them without hardware. With Udula Abeykoon.
200+ students saving and syncing their robots across devices
unity · c# · firebase · next.js · ar
more
- 55 brick types, real physics and an AR view, built in Unity.
- Cloud save and sync with Firestore, so a project started on the web continues on a phone.
- Pitched to YC, a16z and Founders Inc.
- Accepted to the North Forge Founder Program, and top 15 of 160 teams at the Queen's Entrepreneurs Competition.
ms-dts-ropelong-video generation
Makes long, multi-shot videos from a text-to-video model without retraining it.
161-frame, 16 fps outputs across an 8-run ablation
pytorch · wan2.1 · diffusion · rope
more
- Position encodings (RoPE) scheduled by denoising step, prompts routed over time, and attention memory that keeps characters the same across shots.
- Storyboard control: whole-video and per-shot prompts, hard cuts and soft transitions.
- Found where quality drops in 15–30 second videos, then traced it to RoPE and attention.
ctrlrecord once, replay anywhere
Computer-use and web agents capture UI workflows as portable links and replay them across devices and operating systems. With Udula Abeykoon.
my part: the receiver that checks a .ctrl file is safe, then replays it
c# · ui automation · json schema
more
- The recorder captures clicks, keys and screen video, turns them into steps, hides secrets, and exports a .ctrl file.
- Both sides share one file format, a JSON Schema tested against a real 6-step sample.
- The receiver opens the file, checks it is safe, and replays each step with Windows UI Automation.
devoloticsftc robotics
FTC #19498 National Champions. With Udula Abeykoon.
engineering head, 2023-24 and 2024-25 seasons
onshape · java · cad
more
- Led engineering and CAD after I joined in Toronto in 2023.
- Designed drivetrains, custom mechanisms and modular attachments in Onshape.
#%%%==%@@%%%%%%%%%%%=+#####+-#%%%########%*-+#*#**:+%%########%#-+#*#+#==%%%######%%*=+#*#*+-#%%%%%%%%%%%%=*##%##=#@@%%%%%%%%@@*#%%%%%*#@@@@%%%%%%%@@# +=-#==+--=%%%%%%%%%=+#+==-+*+*+=+%######%#+*#%**%#*%#########%%##%%##%##%***#%%###%#*##%**@**#*+%%%%%%%%#+**#++#*+*--#%%%%%%%@:+*===:+-*= -%%%%%%%@* - .. *-.*-.@%%%%%%%%% ==::. ..+:-#%######%. + =..= -* :#######%* -:-.-=-:::--:-*%##%:.+ -:.+.++ #%%%%%%%%..* -.:*::@ %%%%%%%%%+ +.- .++ +-=@%%%%%%%% +# +%+#==%+*%%%%%%%%%#=:.:-=**+: .*%#######%.*#:++-%+:% #%######%:-# ==:=--------:-%%%.%*+-++*=**+%%%%%%%%%-@#*+#+#+#%+%%%%%%%%%#%@#%%%%#%@%%%%%%%%%%@@@% #%%%%%#%%%%%%%%%%%%%:-%@@@@@@%::%#######%%%%%**+=+#@%%#######%%%%%%#:--::-----:.+%%%%%%%%%###%%@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%-##=--*+=+*=%########%%+---::---+%%###########%* :--=-:::.. *%%%#+===-..::::*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%#=**#***==+#=%########%=.:=-+==-:.:#%#########%%%..------::+:#%%-.----===-=-::=%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%*##+=+**++**%######### ..:+##-::..=%########%%%%*-=-::-::+#=%%: .:-----=---::::#%%%%%%%%%%%%@@@%#%%%%%%%%%%%%%%%@%@%%%%%%%%%%%%%%% #%%%%%+%%%%%%%%%%%%%#=*+++*+==++#%%######* .:-=+*=-:- %#######%%*%%@#*+=+%#+**%%@ ....:.:=-:::::.*%%%%%%%=#%%@*==::-:-+%%%%%%%-+%##+-=%%%%%%%%%%%%%++ =++#+-*==#%%%@%%#*=: *=*#++#*- ..=#%%%%#%- ++==#=+*+ :%######%%*=*@%+==-=:+==+#@@: ::.:==--.::. %%%%%%%*+*+*-:::+##=-:-%%%%%**%=+:#@*:%%%%%%%%%%%#=% *%*==+@#-+%%%#:. .=*+-=+++= ......-=+%@@=+***%***+=@%%%%%%%%*+@#-.+*=-==++:.*=%%::##*=-+*=-=+:#%%%%%%%=+##%:..+@@%*::.-@%%%=+##%##-*@@%%%%%%%%%@+*# *#%%%%*=%@%%%* ......:-++=--=-......:.....=:=*++-++++%%%%+**....::::.. ...--: =-+#*###%%##%##%#%@%%%%%%%#%@#+ .:+=*=+=...%%%+*##++#*+*==#%%%%%%%%-+*+ *-*:==+=*@%*#-........:.:::::. .. ........ =++++*=-= .....:-::-:---:::.::: ..--:.-**++*=#*++*@%%%%%%+ -:=.:.:+*#@#**-..*@::* -.:*::% #%%%%%%%%::* - * = .=+ -*=.=::.::..:.-...... :............. *+=-==+.........:::-:*@@%%#**+:-::::.. =+=++++%*++-=#%%%%#=#%=+#:.=##**###+ .=@+%#**#*#+##*%%%%%%%%%*%%## %*%####*%%=+------:.:::.....::-... ..........=====*.............:%#%%%%@@%-::::... ++::*%@@@+.=%%%%#**%%%%%@. =**+=***:=+ #%%%%%#%%%%%%%%%%%%%%%%%%%% %%%%#%%%%-.. ..::--..:.:===--::... ......... ...:...... .-+#+--===+#-....... -=:+*+%%@@%@@%#++%%%%%%%# . :*#*#+-. :*+*%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%@.::..... ...:----:-::..:-:.......... .. =##*%@@##%##%%*+*#-: ......:------ =*%#-. ..+%%%%@%+ ....:::.:=**++*%%#%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%+.:: ..... ....:...:-=++++-:: ..... ... -+%@@@+-=++###*#*#%%#+: .:=---===-------#% .:::.*%%+:......::::.....:=*=+-#%%%%%%%%%%%%%%%%%##%% %%%%%%%%.:::............ .=*##%#**+. ... ..:::. =@%##*@:... +***#+++=: .---=+*+%*==--=-*%- .:: #@: ..::-=====-:::::..-+%*+#%+-+%%%%%%%%%%%%=++# %#-+###+::::.. .:. ...::*%#*=+*=+*- .:.:....:. .@%%#*+++=.::.%*#*@####*=.:----=:=-*=-=:-:-+*# .:::@= .::---==-=-:.:.....:=-=#@@+*%%%%%%%%%%#=%*= %#=%++=:... .......-##%%##%@###* :..::.:##***+==: . +==%@%%#. ..::---:.-=+*%*=--+*%+.:.+@ :...:=*#=.:::.........:-=*%@%%%%%%%%%%**#%% %*=+##%=.::::-=====-::. **#++*++*+#= .. ..-**+=.... .:-=-===- ..:.::=++#@%##@@@=++#%+..@= ... :*###*-...............-=*#%%%%%%%#.===:- %++##*+*:::::..:::-----: .*+++++=++ . .. .:==---...::::.....=##****#*#%- -==*#*:# .. :+=+##=-:..:........... .-=*##%%%%--*.--. - =:- ::+:...::--::-:::--.=+*%##%+. .:. .:::.. .:-:::=##+=.... ...-***++@#%### =#%##**. . #@%%%%%@@: ...... . .. .-:-=+*#%%%%%%%%% +*@+#+#**...+****++**..:-..-+-::. ..:::. .::... ...:.:*#@@@@= ... =+#**%%+*@*%+#%%%* ....+++*++*=*. :... .:-=---:. .=:.:-#%%%%%%%% %%%%%%#%%: -%%%%%#*%%%- ... :--. .:.::.:. . -*+=-*@@ -==::+==+=. ...... .-=%@@@@%:-#####%---:...: -+*++#- ..:...:==-=-=--:-@@%%%%%%%%%%%%% %%%%%%%%%# -#+--++=*#*+:#-:::.... .....::........ %@@@@%#*.::#*==*@+:-=: . ... .*#%**@@* :**##+:----:.. .:---- ..-:.:::-==----:.+%%%%%%%%%%%%%% %%%%%###%#--*###%%%#%%##@: :::...:::::::. +%##*+**+*+#%%#*#*%##-. ....... *===-+#@@#++#.::-----:. .-----....-....=#@%#:.... +#%%%%%%*=#%#* %%%%#%%%%-:=##+*++##+#*=. :====----====-.:. =*##%@@@@+=+++*#+#+**+- .....:... ..:::*%%@=. ::.--:-. .=+=-. . :: .-+*#**+.... .%%%%%%%-#+=-= %%##:=*#+.. =*+==+-=*++*-:==::--=--------.. ... :#%@%%#*=-. +=**+#+=++. ....::. : ---#%%@#. :-::--:-=++-:. ..:-. --=**==-. :. +%%%%%%*=*#### %###-%#=. . =#*++##+=##*. =+*++=-+=... ......:. +@@@%-:.... -*-:-+%==: .....::.:-*= :#%%@@*:.:-:.:+*##. ..:::. +%%#@@%%%#-. #%%##%=+*++=++ ##%#=*#:..... .+***=-++*%=.+#%%%%%%###=:.::... +@@@%@- ..:. :+-: #%-+=: .... ...+-#=- :#%%%@@@@@@@+ -#@@. ...::. +**#++*****..:#%%%%# + - +: #%#-+*=...... .=+==+--=+=**=:-+=:=**#.::. ..--%#%*:@= .:.. :::#%%@@%%. ..:+-: ==-+--==+####%%%%%%@* :+- . . .. -++==++++= : .%%%%%%%#%%#%# #%+ +:- . . .---:. ##%#*#%%##%%= -+%@%%%@ %*.:.:.. +%%%%#++ -==###+=====--*#########%%.-=..:.. .. .=++++=- ..: :%%%%#%%%%%%%% #%##%#%%%#:...... .. . ###*+*###* ..=@@@%#+#%% -.:.:.. .*%%%%+ .:.. :-=--. -*####%%###*-..=. .:.....------. .:: *%%%%=#%%%%%%% ########%*.......... :***+++*+- %@@%+: *%+ .. .:... =%%%*+: .. .-+-.. .+**##%@@=: .:=:..:..... ..:.. ..:.%%%*:::=%%%%%% ########%#............. :. +++*+*++ .#@#-. ..... .... .+#*+=: .. .. . .. ::-+=: ... :+***=: . .. .... ...... . +%@%- :-::+%#*=- #####%**%+..... .... .......:++=--= :#%%# .....:..::... -##+++..-+:... .. .....--= ..... .... . .. ....... .=*@@* .-:..::==-%# ######*+#--: . :::..:. :=-::. -%%@@@ ....:::::::...+##+==: :.*:. .. . ... .: ..... *= .. ... -%#***# ..:....-%%++ #######%%%%%:... .::::..: .... .. =#***- :...:..::...=##*+==. :-==-.. . ... ...... .. =: .... ...- #%%%%%@% ......-+-* #####%#####%#*+: :::::... ........ =%**=.......+**+-=##*+====-=-=-:: ... ... ......... .. ......:=##%#**#%+ ......:+:* ###%%##*####*+= :::::.:.. .:... .- = ...::.:*#**##*+====-:--.:: ...... ......... .::. :-%#+=++**#%# .. +%% ###%+ =+++++=-. ..... . . .. -=-#+= ::::::**=*+==---=- .... ..... ........... . .-==: .---. -**##++ -++*= ..-#@@@@@ ###%++@+:-::. .... . .. -.:. -. :=: :.....+======--=- . ........ ........... . :=-. .-=#*****#++ :=-=**--*###### ######%-.. .. ... .. .... =*%+:: :::::..:=====---. . ..... . ............... ....... :=++: . -==-=:.. .==-=*#*+#***** %%@%%%% ... ... .. . . .. .::----:::::.. =+=-:. =+ .... ................. .:::.. .=*#*= -=- -=--==+####### ##****# ..... .. .::-:::::........ .:....... -: .... ... .......... ....:::. -*###+: .::::. .--==.+###### ##****#- ...... .-=+##.::.. ..::---:::.... ..-- ..... ............... ..... :=+##*+:.===. . :###### #**###%-:. :...... *@@@@@@%.::......... .....::::::.. ... :+ ........ . -+**#%%%%*. .......###### *****#+..: ........ ##%%%%#- ... ......:::.... ......... :+-.:..:......... ......... .... .=**##*=.::::-::.:%##### ***##=..:. . ::.... =*#*=. . ......... .... .. ...:.:....... ............. .:.... :::..:::::::::: =#****# **##-::: .::. .... .....-: .:.:..... : ........ - ...............::::..... :::... -+====---::::::::=##***** **#=.:. -*=++-....:::... .....::...... ....... - ..............::::::.... .::::. -*++===------:::. :%#*****# **#*+-=*++****:.::...... ............. ....... :............ ........ .:::::.:+++=--=-----::::.-=#####**** **************+..::::::. ... ........ -. . ........ ......... ......... :::::::===---------::::-%@@%*##*##** ***************+.:::. .. ........... . . ....... ........ ........ :::::::.::::::::::::-:::..=****#####* ************+++-... . ...... .. ..... . . ...... ....... ........+----. .:::-:::.:::::::::...:::--: -##***##*# ***********++++....... .... . .. ... . . . ..... .... .... -+*##*+..:::-::.................:...:-%*****## ####*********+= ...... ..... . .... ..... ... ........ :: :-..::::::... ............:::::.******## ####********=::::...:: ..... ....:. .::. ..... . ... ........ =-::.. .::::::.. :::. ........ =%**##### ######******+:=-.=%@@@# ..... . --::::-..:::..:. ... ..:. ... .:------..::::::.... ::::::.. .*****##### #######*******+:#@%@#*@: ... ....:-.=..::::::. ..:.....:-::::::. ..:.....:---=-:: :-----==+=........ .....:::. .:-#@+******## #######******#=-%##%* @=.... .:...-::----:::----.+.:::::-:-++++=====--:::::-=++*++++++++++++++==++=========++-:. ......:=*@%@@%@#+******** #######*******-::#%%%*%=......::.:-:::. .-=+=++++++++=*+-::-:-=++++++++++******##**###*************+++===+++****+++++==-----===+===-. .+##*+**######*# #######******--:.... ...:::-:.......-*====+++++++++=--:.:=+++++**********************************###*****************+++++++++++++**++****######### ###########**.:..:........:::--:.::...=#=+++++++*************+++********************#******#****************************+++++++++++++++**********##### ##########***:......... .:::--:=:-:==*++***+++****++++**********###*****************##****##****************************************************###### ##########****+:........-=+=++===-==+******####*###***********#########**********###########**********************#####***********##*****#############
Work
- 2026-09 .. nowAmbition LabsSWE intern. AI agents, LLM cost and speed, web and iOS.
- 2026-09 .. nowQueen's Glen CollegeFull-stack. Built their online school alone.
- 2026-05 .. 08TMX GroupSWE intern. Market maker scoring and data checks.
- 2026-01 .. 04RBC BorealisApplied ML research. Traffic forecasting, see projects.
- 2025-06 .. 08Elis AcademyFull-stack. Next.js site run from Notion.
Contact
- enhe.bai@uwaterloo.ca
- github
- github.com/iab131
- linkedin.com/in/enhebai
- devpost
- devpost.com/enhe2006