Site Introduction
Links are surrounded by brackets. The type of bracket conveys the following:
| Link Target |
Internal | External |
Content Author | Me | [Square] | {Curly} |
Other | - | (Round) |
Articles
Publications
The Dimension of Sparse Random Graph Orders
(presentation)
{arXiv preprint}
May 2024 - Aug 2024
- Coauthored paper during undergraduate research assistantship under professor Jane Gao
Projects
WIP - 4D Raytracing Pathtracer
| C++
[devlog]
July 2025
- Final project for the CS 488 graphics course at the University of Waterloo
Rigid-body Particle Simulation
| C++
[gif]
[gif]
July 2025
- Created for the CS 488 graphics course at the University of Waterloo
- Simulated gravity, spherical constraints, and collision physics for rigid body particles
Software Rasterizer
| C++
[png]
[png]
June 2025
- Created for the CS 488 graphics course at the University of Waterloo
- Recreated the whole rasterization process on the CPU, including perspective transformation, triangle rasterization, depth buffering, and perspective correct interpolation
Software Raytracer
| C++
[png]
[png]
[png]
[png]
May 2025 - June 2025
- Created for the CS 488 graphics course at the University of Waterloo
- Implemented the Möller–Trumbore algorithm for fast ray-triangle intersection
- Programmed Lambertian diffuse, specular refraction, and specular reflection behaviour, and support for spherical environment mapping
Software Raycaster
| JavaScript
[web]
{Github}
Sep 2024 - Oct 2024
- Implemented a software based raycasting algorithm with vanilla JavaScript where parameters and the scene can be manipulated
Renovating the Labyrinth
| JavaScript
[web]
{itch.io}
{Github}
Oct 2024
- Solo submission made in 72 hours with vanilla JavaScript on an HTML canvas for the UW Game Dev Club's fall 2024 game jam; voted winner of the technical achievement award
- Built a real time optimized ray caster with ordered Bayer matrix dithering
- Programmed 2D rigid body collision behaviour and a randomized Prim's algorithm for map generation
Bloom
| Godot
{itch.io}
{Github}
May 2024 - Jun 2024
- Team submission made in 72 hours with Godot for the UW Game Dev Club's spring 2024 game jam
- Implemented colour mixing, screen wrapping, movement, and flower spawning mechanics
Interplanetary File Explorer
| Go, Python, JavaScript
{web}
{Github}
{Devpost}
Jan 2023
- Visual file explorer of an IPFS written in Golang, Python, and JavaScript for the 2023 UofTHacks X hackathon; winner of the Estuary sponsor prize
- Created vector embeddings for files in the Estuary IPFS using Co:here’s NLP embeddings on file headers
- Performed principal component analysis of the vector embeddings to reduce dimensionality and be displayed interactively in 3D space with Three.js
Prognosing IPF
| Python
[CWSF paper]
Dec 2020 - Jun 2021
- Several machine learning models written to predict the deterioration of the condition of the lungs over time for patients of Idiopathic Pulmonary Fibrosis (IPF) and give a level of confidence in the prediction
- Implemented an auto-encoder, linear regression, dense neural network, and bayesian model in order to accurately predict future lung capacity and give a confidence value using initial lung capacity data, age, sex, smoking status, and more
- Obtained a Laplace Log Likelihood score of −6.9 (much better than the baseline −8.1) with σ ≈ 200mL
Presentations
Dimension of Posets and Random Graph Orders
@ University of Waterloo
1st Aug 2024
- Presentation of work completed during research term under Jane Gao
Streams and Lazy Evaluation
@ Webber Academy Programming Club
[notes]
13th Oct 2023
- An introduction to simulating infinite lists with streams and their manipulation
On the Catalan Numbers
@ Webber Academy Math Society
[notes]
11th Oct 2023
- A derivation of the closed formula for the Catalan Numbers and examples of well known problems where the Catalan Numbers appear
Introductory Combinatory Logic
@ Webber Academy Math Society
11th Oct 2022
- Introduction to combinatory logic; showing numbers and operations on numbers can be expressed as combinators
Lectures & Lessons
High School Math Competition Lessons
Summer 2023
- [divisibilty tricks] Divisibility, modular arithmetic, and deriving divisibility tricks
- [writing solutions] Tips for writing readable proofs
- [pigeonhole principle] The pigeonhole and generalized pigeonhole principles
- [series and products] Telescoping series, common series, and term grouping strategies
- [intro geometry] Basic triangle facts, and effects of transformations on geometric objects
- [number bases & induction] Number bases, (strong) induction, and an example from the KJMO
- [points in a triangle] Involving (circum|in|ex|ortho)centers and centroids
- [cyclic quadrilaterals] Power of a point, Ptolemy's theorem, and Brahmagupta's formula
Formal Education
Waterloo Undergraduate Degree
: Bachelors of Computer Science
Term |
Courses |
F ’22 |
MATH 145 |
MATH 147 |
CS 145 |
ENGL 109 |
PHYS 121 |
|
|
W ’23 |
MATH 146 |
MATH 148 |
CS 146 |
CS 136L |
ENGL 108B |
PHYS 122 |
PD 1 |
S ’23 |
COOP 1 |
PD 11 |
|
|
|
|
|
F ’23 |
MATH 245 |
MATH 247 |
STAT 240 |
CS 245E |
CS 246E |
|
|
W ’24 |
MATH 249 |
STAT 241 |
CO 255 |
CS 240 |
CS 241 |
|
|
S ’24 |
COOP 2 |
PD 10 |
CS 251 |
|
|
|
|
F ’24 |
CS 350 |
CS 341 |
CS 370 |
PHYS 256 |
FINE 100 |
|
|
W ’25 |
COOP 3 |
PD 6 |
|
|
|
|
|
S ’25 |
CS 475 |
CS 480 |
CS 488 |
|
|
|
|
Academic Self-Learning
I am still going through entries ending with &.
Operating Systems
- Operating Systems: Three Easy Pieces by Remzi H. and Andrea C. Arpaci-Dusseau (book)
Formal Logic & Programming Theory
- The Symmetric Interaction Calculus by Victor Maia (article)
- Concurrency in Go by Katherine Cox-Buday [notes]
- To Mock a Mockingbird by Raymond Smullyan
- Learn You a Haskell for Great Good! by Miran Lipovača (book)
Machine Learning, Probability, & Statistics
- Essential Statistics for Data Science by Mu Zhu
Geometry & Graphics
- Projective Geometric Algebra Illuminated by Eric Lengyel &
- Ray Tracing in One Weekend by Peter Shirley, Trevor David Black, Steve Hollasch (book)
- Computer Graphics from Scratch by Gabriel Gambetta (book)
- University of Utah CS 4600 (lectures) (assignments)
- Raycasting Series by Lode Vandevenne (lesson)
Consumed Media
Stars indicate my rating and tags are organized as follows.
- Media form: <book>, <manga>, <poem>, <film>, <serial>, <performance>, <anime>, <animation>.
- Language of Content: <en>, <es>, <ru>.
- Jul 10 2025 Ranma ½ (2024) by Takahashi Rumiko <anime> <en> ****
- Jul 06 2025 KPop Demon Hunters by Chris Appelhans and Maggie Kang <film> <animation> <en> ***
- Jul 05 2025 Surf's Up by Ash Brandon and Chris Buck <film> <animation> <en> ****
- Jul 03 2025 Sinners by Ryan Coogler <film> <en> ***
- Jun 29 2025 Echoes by Koji Narita <manga> <en> ***
- Jun 28 2025 The Amaxing Digital Circus Episode 5 by Glitch <animation> <en> ***
- Jun 28 2025 Hunter×Hunter 2011 by Madhouse Studios <anime> <en> ****
- Feb 23 2025 La Receta de la Felicidad by Deepak Chopra <book> <es> ****
- Feb 15 2025 Ночь, улится, фонар, аптека by Александр Блок <poem> <ru> ***
- Feb 12 2025 Сама Дура <serial> <ru> ***
- Feb 03 2025 Insomniacs after School by Makoto Ojiro <manga> <en> **
- Feb 01 2025 Giselle by the National Ballet of Canada <performance> ***
- Jan 25 2025 Ёжик в тумане by Yuri Norstein and Soyuzmultfilm <film> <ru> ***
- Jan 21 2025 the life-changing magic of tidying up - the Japanese art of decluttering and organizing by Marie Kondo <book> <en> ****
- Dec 31 2024 Braiding Sweetgrass by Robin Wall Kimmerer <book> <en> *****
Interesting Sites
Mathematics
Computer Science
Search Engines
- (Qwant) Private search engine with independent search indexing
- (wiby.me) Search engine for personalized webpages and sites for hobbyists
- (searXNG) Free metasearch engine (accumulates results from multiple engines)
Games
File Sharing
Miscellanous