Alwyn Tong's Personal Portfolio
Hello!
I am Alwyn Tong, a 
computer engineering student.
game developer.
UI/UX designer.
programmer.
tinkerer.
creator.
robotics designer.
power user.
photographer.
lifeguard.
computer engineering student.
game developer.
UI/UX designer.
programmer.
tinkerer.
creator.
robotics designer.
power user.
photographer.
lifeguard.
Aspiring Computer Engineering student at the University of Toronto, and was an AI & Machine Learning Hardware Engineering Intern at Qualcomm. Recognized on the Dean's Honour List with a 3.85 GPA. Enthusiastic about digital electronics, robotics, software development, and UI/UX design. Currently based out of Vancouver and Toronto.
Project Documentation and Details → About Me →MediPath
2024/04/30
Tap For More Details
2D Minecraft Nios II
2024/04/09
Tap For More Details
FPGA Retro Console
2023/12/20
Tap For More Details
TTC Navigator
2023/10/25
Tap For More Details
Numpad Keyboard
2023/08/16
Tap For More Details
Dynamic Paddle
2023/06/25
Tap For More Details
Circle Serenity
2023/01/21
Tap For More Details
MediPath
2024/04/30
Tap For More Details
2D Minecraft Nios II
2024/04/09
Tap For More Details
FPGA Retro Console
2023/12/20
Tap For More Details
TTC Navigator
2023/10/25
Tap For More Details
Numpad Keyboard
2023/08/16
Tap For More Details
Dynamic Paddle
2023/06/25
Tap For More Details
Circle Serenity
2023/01/21
Tap For More Details
About Alwyn Tong
Greetings! I'm Alwyn, a driven Computer Engineering student at the University of Toronto, exploring the realms of technology and innovation.
Skills
My expertise lies in:
Programming
Proficient in C++, Java, Dart, Verilog, HTML, CSS, and Javascript, with a knack for crafting efficient code and innovative solutions. No matter the language, problem solving prevails.
Project Management
Skilled in leading diverse teams, honed through successful endeavors in robotics, app development, PCB design, and game programming.
UI/UX Design
Proficient in Figma, Flutter and web design, transforming ideas into intuitive and user-friendly designs. Products that are eye catching and satisfying to use.
Hobbies & Interests
When not immersed in code or circuits, you'll find me:
Exploring Art
Whether it is pixel art, photography or origami, I enjoy creating intricate pieces that blend creativity and technology to express unique stories.
Researching and Learning
Delving into a myriad of YouTube documentaries and internet resources, constantly expanding my knowledge across various domains.
Swimming Enthusiast
Embracing the tranquility of the water, I find solace and inspiration in swimming, an activity which brings peace and balance to my life.
Embarking on Adventures
From bouldering to exploring the great outdoors, I seek the calm and grand nature of the wilderness from mountains to lakes.
Contact Alwyn Tong
Feel free to reach out to me if you have any requests or would simply like to chat.
Github
@alwyn-t
Itch.io
@alwynT
@alwyn-tong
Youtube
@alwyntong
@alwyn.archives
MediPath
Meet the MediPath
An intuitive and responsive emergency response routing and mapping application or GIS (geographic information system). Dedicated to Canadian ambulance drivers, this product supports live traffic data, highly optimized routing algorithms, clean UI and animations. Built using C++, OpenStreetMaps data and the EZGL library (Cario and GTK handler).
Tools Used
Features
- Clean and intuitive user interface with a navigation panel, animated routes and dynamic health care icons
- Efficient and effective routing algorithms including A* routing, multi point travelling courier routing (involves the following steps: multi dijkstra, greedy algorithm and simulated annealing + permutations)
- Highly optimized performance with frustum culling, multi threading routing and custom build data structures to minimize access time and reduce computations
Development Skills
- Leading a development team
- UI / UX design (graphic design)
- Agile project development
2D Minecraft on Nios II
Meet the 2D Minecraft game
The game Minecraft is known for its immersive gameplay and unique rendering techniques. Here, we bring the same game into 2 dimensions and onto the Nios II processor. The player can traverse the world, placing and breaking blocks to build structures. Being built for the Nios II processor, this game explores the intricacies of low level programming, the compute limitations and the difference between hardware and software.
Github RepositoryTools Used
Features
- Procedurally generated world spanning 16 chunks of 64 blocks x 128 blocks.
- Fully implemented sprint, sneak and jumping movement system.
- Simultaneous mouse and keyboard inputs through the PS/2 protocol.
- Complete sound effect and particle system.
- Health and item system with a health bar and a tool bar.
Development Skills
- Bare metal programming
- Pixel art
- Game design and optimization
FPGA Retro Console
Meet the FPGA Retro Console
Stemming from a fascination of retro consoles including the SNES and ATARI game systems, this project replicates the low level hardware based game consoles. Built using the DE1-SoC FPGA board, the console supports an SVGA output and PS/2 input. Additionally, a configured ROM memory for tile sprites and sub set of ASCII characters, a sprite system, a hardware physics engine, SDRAM with clock domain crossing (CDC) and double video buffering, and much more. Games provided include the classic pong game and the chrome dino game (offline dinosaur game). Full documentation, including detailed descriptions of standards are provided on the Github repository.
Github RepositoryTools Used
Features
- ROM memory for hard assets including the ASCII character set.
- Sprite system with a 15 bit RGB value and 1 bit alpha value allowing for overlapping of sprites.
- A simple and a complex hardware based physics engine for low latency and realistic gameplay.
- SVGA protocol output with full 800x600 resolution at 60Hz.
- Double video buffering to prevent screen tearing and to give a cleaner output signal.
- SDRAM to give enough capacity for the double video buffering at 800x600, 60Hz resolution.
- PS2 keyboard inputs for user control.
Development Skills
- Hardware design
- Game design and optimization
- Well established protocols and standards
TTC Navigator
Meet the TTC Navigator
A mobile transit app dedicated to the Toronto Transit Commission (TTC) focused on displaying information about station connections between different routes and stations on bus, streetcar and subway routes. This app does not try to compete with existing transit apps like Apple Maps and Google Maps but rather is intended for transportation enthusiasts who want to see how the system is connected.
Tools Used
Features
- Station search allows browsing of nearby stations, of which the next 3 vehicles in each direction and for each route is listed
- Station map allows viewing of all stations and their associated vehicle types can be found via the station map
- Route map visualizes the streetcar and subway routes in the London tube map style
- Route search allows searching of all bus, streetcar and subway routes and their respective station list
- Settings gives users extreme customizability of the apps' behaviour and visual aesthetics
Development Skills
- Graphics design (UI/UX)
- Programming
- API networking
Numpad Keyboard
Meet the Numpad Keyboard
For those who value the typing experience, this generically named numpad keyboard project aims to bring a clean and compact mechanical keyboard. With multiple layouts built in and a small footprint, the PCB gives a great base to create a full mechanical numpad keyboard or a mechanical multifunction pad. Additionally, the board comes with hot swap sockets and VIA / QMK capabilities.
Tools Used
Features
- Multiple layout options using a stacked 2U or 2 x 1U
- Reprogrammable ATmega32u4 microchip using QMK and VIA software
- Kailh hot-swap sockets allow for quick interchanging of mechanical key switches
Development Skills
- Circuit design
- User input analysis
- Board assembly and soldering
Dynamic Paddle
Meet the Dynamic Paddle
A short skill based game, created as a challenge to build a game using on vanilla HTML, CSS and Javascript. It is your task to keep the ball from falling below the screen using only a paddle to continually bounce the ball. Remember, to use the walls to your advantage and the higher you hit it, the harder it is to catch it.
Dynamic Paddle WebpageTools Used
Features
- Realistic physics coupled with the dynamic paddle creates fast paced gameplay which is challenging
- Simplistic styling allows for ease of use while looking aesthetically pleasing
- Frame rate compensation ensures that weaker computer systems can have a similar experience
- Lost focus detection makes sure that users who drag the cursor offscreen or switch tabs, the game is paused
Development Skills
- Game design.
- Web design.
- Javascript programming language.
- Graphics design (UI/UX).
Circle Serenity
Meet the Circle Serenity game
Circle Serenity is a short and relaxing game. The main objective is: pop circles for as long as possible. In combination with the in depth colour theme customizablility, and the sound effect and music engine; Circle Serenity provides a zen-like focus and stress-free enjoyment.
Circle Serenity Itch.io PageTools Used
Features
- Simple gameplay loop allows for an intuitive and simple learning curve
- Colour themes provides a comfortable viewing experience while being aesthetically pleasing
- Lofi music creates a relaxing atmosphere that is both refreshing and calming
- Window focus detection and lag detection prevents unintentional interference from gameplay
Development Skills
- Gameplay design principles.
- UI/UX design principles.