Projects - Cooper Morgan

Each of these is a short write-up on a project, what it does, how I built it, and what I learned. This "mini blog post"

TINRS — Terrain Implicit Neural Representation screenshot

TINRS — Terrain Implicit Neural Representation

Sep 2025 - Present

As a part of my graduate research, I'm replacing the traditional terrain rendering pipeline with neural networks. Instead of decoding massive elevation tiles at runtime, TINRS trains compact models (~0.5-1MB) that the GPU evaluates directly via Vulkan compute shaders. I went through about 6+ architectures before landing on multi-resolution feature grids: 30× compression over raw data, with accuracy within the source data's own measurement noise. The Zig viewer hits 20,000+ FPS on desktop and 300 FPS on a Raspberry Pi 5. Paper in progress.

Python PyTorch Zig Vulkan
WWU Schedule Optimizer screenshot

Jan 2024 - Present

After experiencing frustration using my school's course scheduler, I decided to attempt to make my own as a part of WWU's ACM club. Over two years of prototyping, refinement, and maintenance have created this full-stack web application that serves up to 1,000+ monthly students. The system features a high-performance Go backend with concurrent web scraping, bitmask-based conflict detection, and a TypeScript/React frontend with real-time filtering and calendar visualization. This project has been heavily advertised to students, and we have used their feedback to improve the system.

Go TypeScript React SQLite Docker
Adversarial DNS Exfiltration Framework screenshot

Adversarial DNS Exfiltration Framework

Jul 2025 - Present

My main graduate research: a modular framework for DNS exfiltration research. It includes an RL agent that learns encoding strategies, an LSTM timing model that mimics real traffic patterns, and Stegatetra, a steganographic encoding I designed that hit 0% detection across every detector we threw at it. Stegatetra encodes data through which queries get sent, rather than what's in them. Accepted at ACNS 2026.

Python PyTorch Linux
Status
Merged
Commits
3
Files
window.c, waylanddrv.h
Component
winewayland
Affected
Hunt: Showdown (CryEngine)

Mar 2026 - Apr 2026

While trying to play Hunt: Showdown on Linux with Wayland, the display froze whenever the game launched. I dug into the Wine Wayland driver and found it was sending incorrect xdg_toplevel state transitions when CryEngine fake-minimizes during startup. This froze the Vulkan present due to a missing feature in the winewayland driver. Wrote a test program, filed Bug 59577, and landed a three-commit fix! I'm hoping that this can lead me into making more FOSS contributions.

C Linux Wayland
Autonomous Light-Seeking Crazyflie screenshot

Autonomous Light-Seeking Crazyflie

Jan 2026 - Mar 2026

A team project for our robotics course where we trained a DQN agent to autonomously seek a light source while avoiding obstacles on a Bitcraze Crazyflie 2.1+ nano drone. We trained in Webots simulation using Stable Baselines 3, then deployed the model on-device via ONNX on the drone's GAP8 RISC-V chip. The drone uses an AI-Deck camera for brightness-based bearing detection and a MultiRanger deck with 5 ToF sensors for obstacle avoidance, all within a 29g takeoff weight budget.

The image is from an early training run where the drone kept flying straight at a person when the light source was out a glass wall.

Python PyTorch Raspberry Pi
Vulkan Synthetic Vision System screenshot

Vulkan Synthetic Vision System

Mar 2024 - Jun 2025

For my undergraduate research, I spearheaded the development of a high-performance visualization system built for Raspberry Pi 5 using Go and Vulkan. I created a concurrent chunk system to handle large NASA datasets. The system is designed to be modular, allowing for easy integration of new data sources and visualization techniques. We are hoping to have this implemented in hobbyist aircrafts to save some lives.

Go Vulkan Raspberry PiConcurrency
KPL Linter screenshot

Jan 2025 - June 2025

This project is a linter and syntax highlighter for KPL (Kernel Programming Language), designed to enhance the experience for students who are forced to use this... language. After being disappointed with the syntax highlighting and little to no support for KPL in VSCode, I decided to create my own extension. I also spent way too much time on the linter and syntax highlighter for the "blitz assembly" language that KPL compiles to.

KPL Linter CI/CDCompilers
Status
Completed
Stack
Django + React
Integration
Canvas LMS
Research
Faculty interviews
Deploy
DigitalOcean

Grado

March 2025 - June 2025

A web application to streamline grading workflows for instructors and TAs, featuring backend integration with Canvas LMS using Django and a responsive React frontend. Developed based on qualitative research with faculty about their grading processes. The applications didn't make it to any deployment. However, this extensively strengthened my skills by using Python and Django for backend development.

Python Django TypeScript ReactRESTful API