Open Source Contribution
Contributed to
@loaders.gl
• Added support for an alternative triangular mesh generation technique (Delatin) as an option for the terrain loader
delatin
Canadian Fires
Visualizing historical Canadian fires from 1930-2021 and predicting future fires in Ontario
• Visualizing historical Canadian fires with Deck.gl
• Natural language search with NLTK
• Predicting future Ontario fires with XBGoost Regression
• Flask and SQLite for backend
canadian-fires
NUXT Google Maps
A Vue Google Maps demo showcasing google maps & map search
• Tech Stack: Nuxt.js, Google Cloud Platform
vue-google-maps
Takcarly
(Available on the App Store)
A two in one app for taking care of elderly
• Caretakers can set events, schedule, remind & push custom notification events to the elderly that they are taking care of
https://laijackylai-storage-4ba35e5623621-main.s3.ap-southeast-1.amazonaws.com/public/takcarly/takcarly_1.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=ASIATMK7W5GUZLLHAJRU%2F20250403%2Fap-southeast-1%2Fs3%2Faws4_request&X-Amz-Date=20250403T024129Z&X-Amz-Expires=900&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEHsaDmFwLXNvdXRoZWFzdC0xIkcwRQIgR39%2FrVmINlHtQNKvDdNpt0taPlPhDjEaFljbEc4fO1sCIQDFWouM0Uh3cy4g%2BDJEz8fKK7UaKDsVYj%2FNMdBZQapTVyq8BQjk%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F8BEAMaDDIzMjY2NTgzNTk0NSIMXLn%2FZXeQfU7jyLlVKpAFTUzGahoL6kjgXDpCt2a%2BR35jN9frqaNc%2BkSkPWzvIW%2BxAQNmdd9XenX74wsWusEk6UM4IKazO%2BROmlRGknbCPusx%2FpvYm0IpEX3U%2BJSm0Fs1NCf8tR5QJkocqTF6v6rDgvNRf9lX%2BT6WbEbCDmYsqcKoV%2BeegKqtH4gTHojToL5%2Bv%2BOUcAjSLd1aPNI4NTsWxlUYtZWo2vjnZ0YQBWPfRr9qeH3tawMebVxqBZ8pCAb%2FCXvkY4YFUog1%2FGoQbzAoCkNq%2FRrS0Wuz%2B1JA5C8G%2FmKWWOM5al1SNnxeQzIxLgBhtgaSlGMq6PSKr8AV71teDK%2BtbEOTa0bbfBXfFSYnwUyhDmO0RiOytuX3dD6PF6nyKtpyTIa70qvNIqPel5YBVWoUBJ34oKPcrtZW5O%2FnM%2BRICGe6Mww3n%2F0xBMFqJeGJVCFkhSqHcjcVrY66Enuw3qIurTF9FrCljlYr64ESZVwhlr1grBMYyebnd%2BXPm5gKS0HdgmjT%2Fid7dP5%2Fwk3628%2Ff3TIHjYQzdakCouh1WJdDWcr3KtBHzLd7EE6fAcg4wwhYO5TTxFsZULJslG10iIIxetWLR52H3d4AQabaeXXu84YmO15dFcuutzO8bRhWLmqqHIdm%2B8MsJAy26MhvIF5KSZjV0YZyoXLphAQ1xajkmjMlGokvHpbNKSj%2FVr%2BY%2F8w6KHA2KtOjJ1A6gYVgK%2BjPdb7Z2VGQYisUwSvyPPo9SjoAk6HLA4KnQcdvO%2BDcuZspqdJ0JrFdOH28rNQZyzb%2Faxxw5cXWcl6hNODDNMweveVzQOjchEPgDQegKc4UJV9199Kh2O041kun3ZHjEdqVmNvwGzAL2MHrGyeoQn9Mp88%2Fi%2Fc7OfBCiif863gw2eq3vwY65QI6muhHfNO6RYnmpsmpvstcUeej5pqtT4xRfDlwhMJdwZUepGPD601eyr9sXYHa9scMwvMxFnobLTv8b9l2cQYxXX2AJwjHQMOj7qF%2F%2FeA5a5M4k4AH97bhYUuIqSdrz43gCyNWQxsfSTMq7a%2FRU0RWZ8qAfu7TiRLBHjOZF9ctFffnXBBtwHxtu0jwDudU0DHKN9ni7%2FYQCNzemmC2pM%2Fg8zIhDRhzwa2R%2Fa1hOBEFtE%2F7uMGlJ%2B8kBptOoAzCfg7djbpgoWqlHbsdxmlm9qt0rT7UXeTaNOwSpuAE4mo1Vbwf%2Fp%2Fky93RX60GL5ixy0biC0ICubfSJEk5cUsxg0ySRlrwaSRXKCgbdVs2dx3qlT1YvU0i%2FR5dJx1WtlXHobZUjh728ivhtMzcg58fbVNCpAV4KWs3o%2BtsfLlwtQWFriuB2Q05S9z488S2%2BPJ5bJO1Q2twWYihoVoj7Wjk1ZOQVlmCm30%3D&X-Amz-Signature=f9bab7e0459c691ddfd9a36217dfef6690de9333470f752f90511897ba9b5f12&X-Amz-SignedHeaders=host&x-amz-user-agent=aws-sdk-js%2F3.6.4%20os%2Flinux%2F5.10.234-245.917.amzn2.x86_64%20lang%2Fjs%20md%2Fnodejs%2F16.20.2%20api%2Fs3%2F3.6.4%20exec-env%2FAWS_Lambda_nodejs16.x%20aws-amplify%2F5.3.3%20storage%2F2%20framework%2F102&x-id=GetObject
https://laijackylai-storage-4ba35e5623621-main.s3.ap-southeast-1.amazonaws.com/public/takcarly/takcarly_2.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=ASIATMK7W5GUZLLHAJRU%2F20250403%2Fap-southeast-1%2Fs3%2Faws4_request&X-Amz-Date=20250403T024129Z&X-Amz-Expires=900&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEHsaDmFwLXNvdXRoZWFzdC0xIkcwRQIgR39%2FrVmINlHtQNKvDdNpt0taPlPhDjEaFljbEc4fO1sCIQDFWouM0Uh3cy4g%2BDJEz8fKK7UaKDsVYj%2FNMdBZQapTVyq8BQjk%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F8BEAMaDDIzMjY2NTgzNTk0NSIMXLn%2FZXeQfU7jyLlVKpAFTUzGahoL6kjgXDpCt2a%2BR35jN9frqaNc%2BkSkPWzvIW%2BxAQNmdd9XenX74wsWusEk6UM4IKazO%2BROmlRGknbCPusx%2FpvYm0IpEX3U%2BJSm0Fs1NCf8tR5QJkocqTF6v6rDgvNRf9lX%2BT6WbEbCDmYsqcKoV%2BeegKqtH4gTHojToL5%2Bv%2BOUcAjSLd1aPNI4NTsWxlUYtZWo2vjnZ0YQBWPfRr9qeH3tawMebVxqBZ8pCAb%2FCXvkY4YFUog1%2FGoQbzAoCkNq%2FRrS0Wuz%2B1JA5C8G%2FmKWWOM5al1SNnxeQzIxLgBhtgaSlGMq6PSKr8AV71teDK%2BtbEOTa0bbfBXfFSYnwUyhDmO0RiOytuX3dD6PF6nyKtpyTIa70qvNIqPel5YBVWoUBJ34oKPcrtZW5O%2FnM%2BRICGe6Mww3n%2F0xBMFqJeGJVCFkhSqHcjcVrY66Enuw3qIurTF9FrCljlYr64ESZVwhlr1grBMYyebnd%2BXPm5gKS0HdgmjT%2Fid7dP5%2Fwk3628%2Ff3TIHjYQzdakCouh1WJdDWcr3KtBHzLd7EE6fAcg4wwhYO5TTxFsZULJslG10iIIxetWLR52H3d4AQabaeXXu84YmO15dFcuutzO8bRhWLmqqHIdm%2B8MsJAy26MhvIF5KSZjV0YZyoXLphAQ1xajkmjMlGokvHpbNKSj%2FVr%2BY%2F8w6KHA2KtOjJ1A6gYVgK%2BjPdb7Z2VGQYisUwSvyPPo9SjoAk6HLA4KnQcdvO%2BDcuZspqdJ0JrFdOH28rNQZyzb%2Faxxw5cXWcl6hNODDNMweveVzQOjchEPgDQegKc4UJV9199Kh2O041kun3ZHjEdqVmNvwGzAL2MHrGyeoQn9Mp88%2Fi%2Fc7OfBCiif863gw2eq3vwY65QI6muhHfNO6RYnmpsmpvstcUeej5pqtT4xRfDlwhMJdwZUepGPD601eyr9sXYHa9scMwvMxFnobLTv8b9l2cQYxXX2AJwjHQMOj7qF%2F%2FeA5a5M4k4AH97bhYUuIqSdrz43gCyNWQxsfSTMq7a%2FRU0RWZ8qAfu7TiRLBHjOZF9ctFffnXBBtwHxtu0jwDudU0DHKN9ni7%2FYQCNzemmC2pM%2Fg8zIhDRhzwa2R%2Fa1hOBEFtE%2F7uMGlJ%2B8kBptOoAzCfg7djbpgoWqlHbsdxmlm9qt0rT7UXeTaNOwSpuAE4mo1Vbwf%2Fp%2Fky93RX60GL5ixy0biC0ICubfSJEk5cUsxg0ySRlrwaSRXKCgbdVs2dx3qlT1YvU0i%2FR5dJx1WtlXHobZUjh728ivhtMzcg58fbVNCpAV4KWs3o%2BtsfLlwtQWFriuB2Q05S9z488S2%2BPJ5bJO1Q2twWYihoVoj7Wjk1ZOQVlmCm30%3D&X-Amz-Signature=2457f4723e553cfc45d9542857afdc95098f835f2291608144a056303e1afb12&X-Amz-SignedHeaders=host&x-amz-user-agent=aws-sdk-js%2F3.6.4%20os%2Flinux%2F5.10.234-245.917.amzn2.x86_64%20lang%2Fjs%20md%2Fnodejs%2F16.20.2%20api%2Fs3%2F3.6.4%20exec-env%2FAWS_Lambda_nodejs16.x%20aws-amplify%2F5.3.3%20storage%2F2%20framework%2F102&x-id=GetObject
https://laijackylai-storage-4ba35e5623621-main.s3.ap-southeast-1.amazonaws.com/public/takcarly/takcarly_3.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=ASIATMK7W5GUZLLHAJRU%2F20250403%2Fap-southeast-1%2Fs3%2Faws4_request&X-Amz-Date=20250403T024129Z&X-Amz-Expires=900&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEHsaDmFwLXNvdXRoZWFzdC0xIkcwRQIgR39%2FrVmINlHtQNKvDdNpt0taPlPhDjEaFljbEc4fO1sCIQDFWouM0Uh3cy4g%2BDJEz8fKK7UaKDsVYj%2FNMdBZQapTVyq8BQjk%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F8BEAMaDDIzMjY2NTgzNTk0NSIMXLn%2FZXeQfU7jyLlVKpAFTUzGahoL6kjgXDpCt2a%2BR35jN9frqaNc%2BkSkPWzvIW%2BxAQNmdd9XenX74wsWusEk6UM4IKazO%2BROmlRGknbCPusx%2FpvYm0IpEX3U%2BJSm0Fs1NCf8tR5QJkocqTF6v6rDgvNRf9lX%2BT6WbEbCDmYsqcKoV%2BeegKqtH4gTHojToL5%2Bv%2BOUcAjSLd1aPNI4NTsWxlUYtZWo2vjnZ0YQBWPfRr9qeH3tawMebVxqBZ8pCAb%2FCXvkY4YFUog1%2FGoQbzAoCkNq%2FRrS0Wuz%2B1JA5C8G%2FmKWWOM5al1SNnxeQzIxLgBhtgaSlGMq6PSKr8AV71teDK%2BtbEOTa0bbfBXfFSYnwUyhDmO0RiOytuX3dD6PF6nyKtpyTIa70qvNIqPel5YBVWoUBJ34oKPcrtZW5O%2FnM%2BRICGe6Mww3n%2F0xBMFqJeGJVCFkhSqHcjcVrY66Enuw3qIurTF9FrCljlYr64ESZVwhlr1grBMYyebnd%2BXPm5gKS0HdgmjT%2Fid7dP5%2Fwk3628%2Ff3TIHjYQzdakCouh1WJdDWcr3KtBHzLd7EE6fAcg4wwhYO5TTxFsZULJslG10iIIxetWLR52H3d4AQabaeXXu84YmO15dFcuutzO8bRhWLmqqHIdm%2B8MsJAy26MhvIF5KSZjV0YZyoXLphAQ1xajkmjMlGokvHpbNKSj%2FVr%2BY%2F8w6KHA2KtOjJ1A6gYVgK%2BjPdb7Z2VGQYisUwSvyPPo9SjoAk6HLA4KnQcdvO%2BDcuZspqdJ0JrFdOH28rNQZyzb%2Faxxw5cXWcl6hNODDNMweveVzQOjchEPgDQegKc4UJV9199Kh2O041kun3ZHjEdqVmNvwGzAL2MHrGyeoQn9Mp88%2Fi%2Fc7OfBCiif863gw2eq3vwY65QI6muhHfNO6RYnmpsmpvstcUeej5pqtT4xRfDlwhMJdwZUepGPD601eyr9sXYHa9scMwvMxFnobLTv8b9l2cQYxXX2AJwjHQMOj7qF%2F%2FeA5a5M4k4AH97bhYUuIqSdrz43gCyNWQxsfSTMq7a%2FRU0RWZ8qAfu7TiRLBHjOZF9ctFffnXBBtwHxtu0jwDudU0DHKN9ni7%2FYQCNzemmC2pM%2Fg8zIhDRhzwa2R%2Fa1hOBEFtE%2F7uMGlJ%2B8kBptOoAzCfg7djbpgoWqlHbsdxmlm9qt0rT7UXeTaNOwSpuAE4mo1Vbwf%2Fp%2Fky93RX60GL5ixy0biC0ICubfSJEk5cUsxg0ySRlrwaSRXKCgbdVs2dx3qlT1YvU0i%2FR5dJx1WtlXHobZUjh728ivhtMzcg58fbVNCpAV4KWs3o%2BtsfLlwtQWFriuB2Q05S9z488S2%2BPJ5bJO1Q2twWYihoVoj7Wjk1ZOQVlmCm30%3D&X-Amz-Signature=9cbb17ca95fbedb6ce71b63834a22c1726cb1278f582b8688bd3ae11c29f74df&X-Amz-SignedHeaders=host&x-amz-user-agent=aws-sdk-js%2F3.6.4%20os%2Flinux%2F5.10.234-245.917.amzn2.x86_64%20lang%2Fjs%20md%2Fnodejs%2F16.20.2%20api%2Fs3%2F3.6.4%20exec-env%2FAWS_Lambda_nodejs16.x%20aws-amplify%2F5.3.3%20storage%2F2%20framework%2F102&x-id=GetObject
Senior Design Project
3D Tidal and Cloud Visualization System
The Tech Stack
Data Processing:
• 3D Terrain (hkdsm)
pythonLogogithubLogo
• Tidal Data (hktides)
pythonLogogithubLogo
• Radar Data (hkradar)
pythonLogogithubLogo
Frontend:
• React.js (hkterrain)
reactLogogithubLogo
Technical Report: