https://github.com/zjbthomas/portfolio
Welcome to my project showcase! This repository serves as a central hub for exploring the 🎮games, 🛠️scripts, 🔬research projects, and 🌐websites I have developed.
https://github.com/zjbthomas/portfolio
Last synced: 4 months ago
JSON representation
Welcome to my project showcase! This repository serves as a central hub for exploring the 🎮games, 🛠️scripts, 🔬research projects, and 🌐websites I have developed.
- Host: GitHub
- URL: https://github.com/zjbthomas/portfolio
- Owner: zjbthomas
- Created: 2025-09-28T04:09:21.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2025-10-28T19:24:14.000Z (8 months ago)
- Last Synced: 2025-10-28T21:23:37.873Z (8 months ago)
- Homepage:
- Size: 12.7 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Portfolio
*Junbin Zhang (Thomas), Ph.D.*
[](https://www.linkedin.com/in/junbinzhang/)
Welcome to my project showcase!
This repository serves as a central hub for exploring the 🎮[**games**](#-toy-arcade-games), 🔬[**research projects**](#-research-corner), 🛠️[**scripts**](#%EF%B8%8F-toy-workshop-scripts), and 🌐[**websites**](#-website-creations) I have developed.
## 🎮 Toy Arcade (Games)
***A collection of fun games I have built.***
| Game | Code | Demo | Description | Highlighted Features | Tech Stack |
| - | - | - | - | - | - |
| **DukeChess** | [](https://github.com/zjbthomas/DukeChess) | [](https://dexaint.itch.io/dukechess) | ♟️ Digital adaptation of the chess-inspired board game *The Duke* | - AI opponent
- Cross-platform multiplayer support (desktop & web) | Desktop:

Front-end:
 
Back-end:
  -333333?style=flat&logo=socket.io&logoColor=white)  |
| **MemoryDungeon** | [](https://github.com/zjbthomas/MemoryDungeon) | [](http://memorydungeon.junbinzhang.com) | 👾 Roguelike twist on the memory game | - AI opponent
- Heroes with unique abilities
- Gacha mechanics | Front-end (desktop):
 -333333?style=flat&logo=qt&logoColor=41cd52)
Back-end:
  |
| **LinkWord** | [](https://github.com/zjbthomas/LinkWord) | | 🔤 Lightweight Chinese word-chain game | |  |
> ℹ️ If any of the demo links above do not work, please **[create an issue](../../issues)** so I can take a look.
[⤴️ *back to top*](#portfolio)
## 🔬 Research Corner
***A selection of my most meaningful research projects.***
[](https://scholar.google.ca/citations?user=KJKRoyEAAAAJ)
[](https://dx.doi.org/10.14288/1.0450146)
[](https://dx.doi.org/10.14288/1.0392613)
### 🤖 Image Forensics
#### *Pixel-frequency Hybrid Approaches*
- **Shallow- & Deep-fake Images Localization**
[-8b1a1a?style=flat)](https://ieeexplore.ieee.org/document/10074246)
[](https://arxiv.org/abs/2601.02566)
[](https://github.com/zjbthomas/ShallowDeepFakesLocalization)



A deep learning solution that detects and localizes manipulated regions in both shallow- and deep-fake images.
- Built upon the **UperNet** semantic segmentation framework.
- A journal extension leveraging **Vision Mamba** and **Graph Neural Networks** is currently under review and available on [arXiv](https://arxiv.org/abs/2601.02566).
#### *Frequency-domain Approaches*
- **Frequency-based AI-generated Images Detection**
[](https://ieeexplore.ieee.org/abstract/document/10221905)
[](https://github.com/zjbthomas/FreqAIDetector)
A deep learning model that detects images generated by Stable Diffusion models using frequency-domain artifacts (>99% accuracy).
🏰 Disney images were used as a case study.
- **Frequency-based AI-generated Images Attribution**
[](https://ieeexplore.ieee.org/abstract/document/10855423)
[](https://github.com/zjbthomas/FreqGANAttribution)
A frequency-based network that attributes fake images to their source Generative Adversarial Network (GAN) architecture (>95% accuracy).
#### *Sensor-level Approaches*
- **AI-generated Images Detection Trained with Raw Images Only**
-8b1a1a?style=flat)
[](https://github.com/zjbthomas/BayerRealOnlyDetector)

A **Variational Autoencoder (VAE)**-based approach trained solely on real/raw images for detecting AI-generated content (~94% accuracy).
- **AI-generated Images Detection by Reconstructing Raw Images**
[](https://link.springer.com/chapter/10.1007/978-3-031-94962-3_2)
[](https://github.com/zjbthomas/BayerRecDetector)
A method that detects AI-generated images by reconstructing Bayer patterns and comparing statistical differences between real and fake images (~98% accuracy).
Notably, this method requires no deep learning.
### 📱 Mobile Security
- **Comparison of Android Static Taint Analyzers**
[](https://www.computer.org/csdl/journal/ts/2022/10/09529015/1wB2FS12ld6)
[](https://github.com/LinaQiu/UBCBench)

A comparative study of **Android** **static taint analysis** tools (*FlowDroid*, *Amandroid*, and *DroidSafe*), evaluating their effectiveness and limitations using standardized benchmarks.
- We built [**UBCBench**](https://github.com/LinaQiu/UBCBench), a benchmark suite for evaluating Android static taint analysis tools.
- Bug fixes and improvements were merged by their original authors (details [here](https://resess.github.io/artifacts/StaticTaint/ubcbench/#fixed-bugs)).
- **Android OAuth Vulnerability Analysis**
[](https://github.com/zjbthomas/OAuthUsage/blob/main/report.pdf)
[](https://github.com/zjbthomas/OAuthUsage)
A course project that investigates security risks in Android applications using the **OAuth** protocol.
- **Android Password Leakage Detection**
[](https://github.com/zjbthomas/EECE512/blob/master/report.pdf)
[](https://github.com/zjbthomas/EECE512)
A course project that detects potential password leakage in Android applications using the *FlowDroid* framework, an Android static analysis tool.
### 🖼️ Image Generation
- **TMO GAN**
[](https://ieeexplore.ieee.org/abstract/document/10074176)
[](https://github.com/zjbthomas/TMO-GAN)

A **GAN** designed to tone map high-quality 4K **High Dynamic Range (HDR)** images, significantly enhancing perceptual quality.
### 🥽 Virtual Reality
- **Subjective Evaluation of Foveated Image Quality in Head-mounted Displays (HMDs)**
[](https://sid.onlinelibrary.wiley.com/doi/abs/10.1002/sdtp.14152)



A novel subjective evaluation methodology for assessing the perceptual quality of foveated rendering in HMDs.
- Developed an interactive voting mechanism using controllers in **Unity** to collect subjective user ratings.
- Captured **eye-tracking** data via **OpenVR** and **OpenGL** and integrated it into the evaluation pipeline.
### 🎞️ Video Compression
- **Visual-Attention-Model-based HDR Video Compression**
-8b1a1a?style=flat)
-8aa399?style=flat)
A visual-attention-driven HDR video compression method that incorporates perceptual saliency into the adaptive Quantization Parameter (QP) assignment of the **High Efficiency Video Coding (HEVC)** standard.
### 🎯 Serious Games
- **BankPet**
[](https://courses.ece.ubc.ca/518/previous/hit2017W/papers/WuRangZhang.pdf)


A serious game–based banking application featuring a virtual character (🐱 *everyone loves cats!*) designed to help users develop better credit card and personal money management habits, validated through a user study.
[⤴️ *back to top*](#portfolio)
## 🛠️ Toy Workshop (Scripts)
***Handy scripts I have crafted to make life easier.***
### 🐵 Tampermonkey Userscripts (*JavaScript*)
- **Steam Wishlist Language Highlighter**
[](https://github.com/zjbthomas/Tampermonkey/tree/main/SteamLanguage)


Highlights games in a user's Steam wishlist that lack support for specific languages.
- Language information is retrieved using a **Python** script [here](https://github.com/zjbthomas/SteamOnlineChecker/blob/main/steam_language.py) as a **GitHub Actions** workflow.
- A Google Chrome extension version is also available [here](https://github.com/zjbthomas/LanguageInfo).
- **Arknights YiTuLiu Store Optimizer**
[](https://github.com/zjbthomas/Tampermonkey/blob/main/Arknights)
Annotates and 🏆**prioritizes** redeemed event resources on a popular third-party Arknights support site, helping players decide what to redeem first.
- **ICBC Road Test Helper**
[](https://github.com/zjbthomas/Tampermonkey/tree/main/ICBC)
Simplifies the process of booking road tests on the Insurance Corporation of British Columbia (ICBC) website.
### 🐍 *Python* Scripts
- **Steam Online Status Checker**
[](https://github.com/zjbthomas/SteamOnlineChecker)

A tool using **GitHub Actions** to automatically monitor the status of a Steam user and send updates via Telegram messages.
- **PRTS Scraper**
[](https://github.com/zjbthomas/PRTS-Scraper)
A lightweight script to scrape Arknights skill icons using MediaWiki APIs.
These icons can later be used to train AI image generators to create new ones.
### 💻 Code Contributions
- **web-clipper**
[](https://github.com/zjbthomas/web-clipper)

I contributed to this Google Chrome extension that supports webpage clipping for popular note-taking apps (e.g., OneNote, Notion) by adding support for OneNote note groups.
**The [pull request](https://github.com/webclipper/web-clipper/pull/950) was merged by the original author.**
[⤴️ *back to top*](#portfolio)
## 🌐 Website Creations
***Websites I have built or contributed to.***
- **University of British Columbia, Digital Multimedia Lab**
[](https://dml.ece.ubc.ca/)

I designed and currently maintain the website for my Ph.D. research lab, built on the [Hugo Blox](https://hugoblox.com/) framework.
I customized the framework to meet specific lab requirements:
- Publications are categorized into finer-grained types (e.g., conference papers, journal articles), and the search function was rewritten to work within each category.
- By adding new metadata to page elements, lab members can redirect to their own departmental web pages.
- Embedded website statistics by modifying the universal footer.
- **Personal Website**
[](https://people.ece.ubc.ca/~zjbthomas/)

My personal website built with **HTML** and **jQuery**.
🌈 *Refresh the page to see dynamically changing background colors!*
- **BC Liquor Store Explorer**
[](https://junbinzhang.shinyapps.io/junbinzhang-bcl/)
[](https://github.com/STAT545-UBC-hw-2018-19/hw08-zjbthomas)
A course project web app that allows users to explore BC Liquor products with filters such as price, type, and country.
- **Highlighted features**: interactive search and filtering, data visualization with Shiny.
- **Tech Stack**: R, Shiny
[⤴️ *back to top*](#portfolio)
---
## 🧭 In the End: Why This Portfolio?
This repository serves two purposes:
- It presents an organized overview of my work, making my projects easier to understand and explore for readers beyond individual repositories.
- It also functions as a centralized index of my GitHub projects for long-term organization and reference.
As projects naturally grow across multiple repositories and organizations, GitHub currently offers limited support for presenting them as a coherent body of work. This portfolio serves as a developer-maintained overview that improves **organization and discoverability**, addressing a gap in how evolving personal GitHub project collections are presented.
[⤴️ *back to top*](#portfolio)