Skip to content

zjbthomas/Portfolio

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

56 Commits
 
 

Repository files navigation

Portfolio

Junbin Zhang (Thomas), Ph.D.
LinkedIn

Welcome to my project showcase!
This repository serves as a central hub for exploring the 🎮games, 🔬research projects, 🛠️scripts, and 🌐websites I have developed.

🎮 Toy Arcade (Games)

A collection of fun games I have built.

Game Code Demo Description Highlighted Features Tech Stack
DukeChess code play ♟️ Digital adaptation of the chess-inspired board game The Duke - AI opponent
- Cross-platform multiplayer support (desktop & web)
- Docker image available for easy deployment
Desktop:
Godot
Front-end:
React JavaScript
Back-end:
Java Node.js Socket.IO Redis
Containerization:
Docker
MemoryDungeon code play 👾 Roguelike twist on the memory game - AI opponent
- Heroes with unique abilities
- Gacha mechanics
Front-end (desktop):
Godot Qt
Back-end:
Node.js Redis
LinkWord code 🔤 Lightweight Chinese word-chain game Python

ℹ️ If any of the demo links above do not work, please create an issue so I can take a look.

⤴️ back to top

🔬 Research Corner

A selection of my most meaningful research projects.

Google Scholar

PhD
MASc

🔍 Image Forensics

Pixel-frequency Hybrid Approaches

  • Shallow- & Deep-fake Images Localization
    paper arXiv code
    UperNet Vision Mamba GNN ONNX
    A deep learning method 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.
    • An ONNX model converted from the original Python implementation is provided here, with custom functions implemented to support the conversion.

Frequency-domain Approaches

  • Frequency-based AI-generated Images Detection
    paper code demo
    AWS ONNX MCP
    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.
    • A live demo is available here, with a backend running on AWS (API Gateway, Lambda, and S3) and the model exported to ONNX for efficient inference.
    • A Model Context Protocol (MCP) Server is implemented here as a Tool written in TypeScript, enabling LLMs to invoke the model for inference.
  • Frequency-based AI-generated Images Attribution
    paper code
    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
    paper code
    VAE
    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
    paper code
    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
    paper code
    Android
    A comparative study of Android static taint analysis tools (FlowDroid, Amandroid, and DroidSafe), evaluating their effectiveness and limitations using standardized benchmarks.

    • We built UBCBench, a benchmark suite for evaluating Android static taint analysis tools.
    • Bug fixes and improvements were merged by their original authors (details here).
  • Android OAuth Vulnerability Analysis
    report code
    A course project that investigates security risks in Android applications using the OAuth protocol.

  • Android Password Leakage Detection
    report code
    A course project that detects potential password leakage in Android applications using the FlowDroid framework, an Android static analysis tool.

🖼️ Image Generation

  • TMO GAN
    paper code
    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)
    paper
    Unity OpenVR OpenGL
    A novel subjective evaluation method 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
    paper
    HEVC
    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
    report
    Android Arduino
    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

🛠️ Toy Workshop (Scripts)

Handy scripts I have crafted to make life easier.

🤖 MCP Servers

  • Steam Review Summary
    code
    An MCP server that analyzes and summarizes Steam game reviews, allowing LLMs to query review sentiment and generate concise summaries.

🐵 Tampermonkey Userscripts (JavaScript)

  • Steam Wishlist Language Highlighter
    code
    GitHub Actions Google Chrome Extension
    Highlights games in a user's Steam wishlist that lack support for specific languages.

    • Language information is retrieved using a Python script here as a GitHub Actions workflow.
    • A Google Chrome extension version is also available here.
  • Arknights YiTuLiu Store Optimizer
    code
    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
    code
    Simplifies the process of booking road tests on the Insurance Corporation of British Columbia (ICBC) website.

🐍 Python Scripts

  • Steam Online Status Checker
    code
    GitHub Actions
    A tool using GitHub Actions to automatically monitor the status of a Steam user and send updates via Telegram messages.

  • PRTS Scraper
    code
    A lightweight script to scrape Arknights skill icons using MediaWiki APIs.
    These icons can later be used to train AI image generators to produce new icons.

💻 Code Contributions

  • web-clipper
    code
    Google Chrome Extension
    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 was merged by the original author.

⤴️ back to top

🌐 Website Creations

Websites I have built or contributed to.

  • University of British Columbia, Digital Multimedia Lab
    live
    Hugo Blox
    I designed and currently maintain the website for my Ph.D. research lab, built on the Hugo Blox 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
    live
    jQuery
    My personal website built with HTML and jQuery.
    🌈 Refresh the page to see dynamically changing background colors!

  • BC Liquor Store Explorer
    demo code
    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


🧭 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

About

Welcome to my project showcase! This repository serves as a central hub for exploring the 🎮games, 🔬research projects, 🛠️scripts, and 🌐websites I have developed.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages