New Grad/Computer Scientist
Toronto, ON
November 10th, 2001
[after he barely gets back in bed, and his parents leave the room] Yep. I've said it before and I'll say it again. Life moves pretty fast. If you don't stop and look around once in a while, you could miss it.
— Ferris Bueller's Day Off, 1986Yesterday I had the opportunity to be an exhibitor at this year’s LevelUp Showcase. I was there showing off the game Shifting Perspective, which I have been working on as a developer since January in collaboration with students from OCAD University and the University of Toronto Music Department, as well as fellow Computer Science students. This was part of the course CSC404 (Introduction to Video Game Design), instructed by Professor Steve Engels.
Shifting Perspective is a Puzzle-Platformer, Adventure game where the player and their faithful fairy companion Ceru must use their magic... See Full Post
Since the summer of 2023, I have been involved in the University of Toronto Computer Poker Student Research Group (U of T CPRG) led by Juho Kim under the advisement of Dr. Michael Stumm. I am happy to share the project I have recently completed as part of this group: a CAPTCHA challenge based around poker hands.
This project was implemented using Django, making use of Juho Kim’s Pokerkit Python library to generate and validate poker hands. A random hand type will be generated and requested from the user, who must drag a... See Full Post
I recently had the opportunity to develop a web application for UNICEF in co-ordination with Evan Wheeler of the UNICEF Digital Centre of Excellence. I was chosen to work alongside six other University of Toronto students (as part of CSC301) to develop Flowy - a web application to assist UNICEF employees in sharing and finding message flows for their open-source platform RapidPro.
For context, a message flow is a configuration for RapidPro to operate automated SMS services. UNICEF uses these flows to co-ordinate thei... See Full Post
As part of the course CSC318 (The Design of Interactive Computational Media), I was part of a group of five developers (the others being Makan Dehizadeh, Samantha Fassnacht, Vedang Ashwin Naik, & Hanna Zeng) for a smartphone and smart watch app we dubbed Samaritan: Reward those that made your day.
Samaritan was motivated by the idea that the world is smaller than you think. Imagine you are on your way to a job interview when the contents of your bag spill out all over the sidewalk as you trip over a long-forgotten coffee cup. A helpful stranger comes along and helps you wrangle everything ... See Full Post
Last week I participated in CalgaryHacks 2022, the annual hackathon hosted by the University of Calgary. I was invited to participate by a friend who was putting together a team for the event, which I was happy to accept and proceeded to invite a friend of my own to round out our group of four.
The hackathon organizers provided a few topics of which each submission must address at least one. We selected the topic: Develop a tool to help people live a healthy lifestyle. Our application, Too Fit to Quit, aims to motivate its users to exercise by providing the functionality to customize their own wor... See Full Post
I’m happy to announce the release of my JavaScript library VisualsAplenty.js!
VisualsAplenty is an open-source JavaScript library intended to help web developers add fully animated data plots to their sites without hassle. With the simple inclusion of the VisualsAplenty JavaScript and CSS files into a webpage, you gain access to a range of data plotting tools. The three types of plots available in this first release are Bar Charts, Scatter Plots, and Pie Graphs, each coming with a range of customization features.
Please visit the VisualsAplenty sub-site to learn more and to see usage ex... See Full Post
I have some exciting news to share: I had a short story published in an anthology and it's being released today! It was a typical weekday, and I had just finished an online course tutorial when I saw the call for submissions for a drabble anthology called Beneath.
I had some spare time, so I thought I might as well give it a try, and here I am now talking about it! My thanks again go to Antonia at Ghost Orchid Press and all the other writers that submitted their work. I'm excited to read all the other stories!
Check out the GoodReads page via the button below if you're interested. My sto... See Full Post
I recently took part in UofTHacks VIII which is the University of Toronto's annual hackathon. Over the span of a month leading up to the hackathon, I was trying to figure out what to make. After being faced with the same annoyance time and time again, an idea came to me: I should make a program that allows for ease of tracking virtual meetings. Never again would I have to trudge through 15 different submenus in order to find the link to my Zoom lecture.
I decided to use Processing as I have in the past but in the Java mode as opposed to Python. This did present some challenges as I was not used to the di... See Full Post
In June 2019, I completed my favourite project to date: a recreation of the 1982 arcade game Dig Dug. Although I took some artistic liberties, I think the result turned out to be pretty faithful to the original game. Putting Object Oriented Programming to full use, I managed to create a game that is much more complex than my prior forays in a way that, when looking at the code, actually seems simpler.
The first level of my recreation is faithful to the original game. However, every subsequent level is randomly generated with four enemies spawning in a random 'hole' dug in the map. Like in the original, ... See Full Post
In early 2019, I was introduced to Object Oriented Programming and returned to Processing.py to test out my new powers. I decided to recreate the classic 1979 arcade game Asteroids themed after the asteroid evasion scene in Guardians of the Galaxy Vol. 2.
Unfortunately, I never completed the game. However, nearly all of the core features are already implemented: the asteroids split when hit, the player's ship experiences acceleration, points are assigned when asteroids are destroyed, and the player's lives d... See Full Post
In 2018, after getting back into working with the Arduino Uno via my KITT project, I decided to go bigger. At the time, I was into playing VRChat, a game where avatars can be imported in via 3-D models. This sparked my interest in 3-D modelling again, which, combined with my recent KITT project, prompted me to create a 3-D scanner.
I used the supplies available to me at my high school to build it, mostly using parts from Vex Robotics kits a... See Full Post
In 2018, I returned back to working with Arduino boards. For my second proper project, I made a recreation of KITT's scanner lights from the '80s show Knight Rider.
In the series, the scanner is depicted by red light that moves from side to side on the grill of main character Michael Knight's car (named KITT). To recreate this, I used an Arduino Uno, five red LEDS, a 10 kΩ resistor, 10 kΩ potentiometer, and five 330 Ω resistors.
I designed the lights to be toggled on or off by a push of a power button. As well, the speed of the 'movement' of the light could be controlled by a dial (the potentio... See Full Post
After I had finally learned about functions in late 2017/early 2018, I decided to make an arcade game taking place in the Star Wars universe (because of Episode VIII's release at the time).
The game takes the form of a shooter. Taking place just prior to the events of The Empire Strikes Back, the Millennium Falcon must destroy the incoming TIE fighters as they attempt to penetrate the shield surrounding the Rebel base on Hoth.
Unlike my prior games, Defenders of Hoth stores high scores in a file, allowing them to be conserved between play sessions instead of resetting each time. I made ... See Full Post
After backing JazzNESs on Kickstarter in 2017, I was inspired to make my third official Processing.py project: a bouncing animation (à la a DVD player's sleep screen) themed after my favourite game on the album: Galaga.
I created a simple edge-detection program that caused the player's ship from Galaga to bounce off the left and right sides of the screen, then a... See Full Post
In May/June 2017, after experimenting with Processing.py through GreenBot, I finally made my first proper game. What I dubbed 'The Fretboard Connection' is a rhythm game inspired by the likes of Guitar Hero and Rock Band.
The game is not too complex at its heart. The descending notes are activated by well-timed corresponding key presses that award points. The whammy bar (the shift key), as in Guitar Hero, can be pressed along with the correct key to charge the whammy meter. Once the meter is full, it can be activated to award bonus points for successful... See Full Post
My first major creation after I started learning Python was an interactive robot I named GreenBot.
Using Processing's Python mode, I was able to make him move around the screen at speeds controlled by the user, have him warp to the other side of the play area (à la Pac-Man), and have customization.
As well, I experimented with adding sound, resulting in the speed changes playing a higher/lower pitch sound when pressed based on the speed as well as a sound for when the style is changed.
This project helped... See Full Post
Around the time I started learning how to program, I meddled with 3-D modelling. Although I did not continue pursuing this skill, I did make one model that I was quite proud of: an R2-D2 keychain.
Even though I'm sure it has been done better by others, feel free to mess around with the model if you are so inclined. However, if you are tempted to print it, I'm not sure if it will be structurally sound, so please take that into account.
... See Full Post
Back when I was 14 in 2016, I completed my first coding project, which was an alarm clock. Although it does not amount to much when compared to my ability now, I am proud of what I was able to accomplish with so little experience.
The clock was made with an Arduino Uno, along with a compatible LCD, potentiometer, and buzzer/piezo.
A time can be set in the clock's code specifying when the alarm will go off, which it will continue to do for 15 minutes (a long time, I know, but my track record for waking up on time is not the best).
While the original build was housed in a wooden case, it ... See Full Post
Upcoming Event:
No Events Scheduled