Projects
Here are some of the projects I'm working on or completed:
Sprite Editor Implementation & Team Collaboration
University of Utah - Kahlert School of Computing
Spring 2025
- Developed a Qt-based sprite editor with core pixel art functionality including drawing tools, layer management, and color palettes using C++.
- Implemented opacity controls with linear interpolation for smooth transitions and pixel-skipping behavior at lower opacity values.
- Created onion skinning functionality to display semi-transparent previous/next frames as reference for animation work.
- Designed an auto-save system with configurable intervals and crash recovery capabilities.
- Developed polygon fill tool that automatically detects closed shapes and fills the interior when drawing returns to starting point.
- Built dynamic canvas resizing tool with anchor point selection and content-aware scaling options.
- Implemented layer visibility toggles with keyboard shortcuts for rapid workflow switching.
- Created custom .ssp file format with JSON serialization/deserialization for efficient sprite storage.
- Designed and enforced team coding standards through comprehensive style guide documentation.
- Optimized rendering performance to maintain 60 FPS during complex editing operations.
Technologies Used: Qt Framework, C++17, GitHub Actions, JSON, MVC Architecture, Multi-threading
Simon Memory Game – Built with Qt Framework
University of Utah – Kahlert School of Computing
Spring 2025
- Developed an interactive two-button Simon memory game using the Qt framework, emphasizing a clean Model-View separation via Qt's signals and slots.
- Engineered a robust game logic class by inheriting from
QObject
, handling sequence generation, input validation, and increasing difficulty. - Designed responsive UI animations for seamless button flashing, incorporating progressive speed increases.
- Applied Qt StyleSheets to dynamically reflect button states (idle, pressed, flashing) and overall game status, enhancing user experience.
- Integrated a smooth, animated progress bar that updates in real time as the player inputs the sequence.
- Built a comprehensive game state system: UI controls disable during computer turns and "Game Over" states are clearly indicated visually.
- Used Qt Designer for UI layout, maintaining a clean separation between UI code and custom application logic.
Technologies: Qt 6, C++17, Signals & Slots, QTimer, Model-View Architecture, GitHub Collaboration
Architecture Overview: Strict separation between the Model (game logic) and the View (UI). Communication is handled solely through Qt signals and slots. The Model generates and validates the sequence, while the View displays visuals and collects input — never manipulating the game state directly.
Asynchronous Networking Library & Chat Application
University of Utah - Kahlert School of Computing
Fall 2024
- Designed and implemented a general-purpose asynchronous networking library in C# to support text-based communication, enabling seamless client-server interactions for a chat application and future game projects.
- Developed a multi-threaded chat server capable of handling multiple clients concurrently, broadcasting messages to all connected users, and dynamically assigning usernames to clients upon connection.
- Ensured thread safety and race condition prevention by implementing proper synchronization techniques in the server and networking library.
- Integrated logging functionality to monitor and debug server and client activities, ensuring proper error handling and system traceability.
- Collaborated with a partner using pair programming and GitHub for version control, following Agile practices to deliver the project iteratively.
- Utilized TcpClient/TcpListener APIs to build a robust networking infrastructure, abstracting low-level details for ease of use in higher-level applications.
Technologies Used: C#, .NET, TcpClient/TcpListener, Multi-threading, Concurrency, Logging, GitHub
Spreadsheet Application with GUI
University of Utah - Kahlert School of Computing
Fall 2024
- Designed and implemented a fully functional spreadsheet application with a Blazor-based GUI, enabling users to input data, formulas, and perform calculations in real-time.
- Integrated the Model-View-Controller (MVC) architecture to separate the spreadsheet logic (Model) from the GUI (View) and user interactions (Controller), ensuring maintainability and scalability.
- Developed features such as cell selection, formula evaluation, and dynamic updates for dependent cells, ensuring accurate and efficient spreadsheet functionality.
- Implemented file I/O operations to save and load spreadsheets in JSON format, including error handling for invalid file inputs.
- Added advanced features such as keyboard navigation, cell highlighting for formula dependencies, and a warning system for unsaved changes, enhancing user experience.
- Collaborated with a partner using pair programming and GitHub for version control, following Agile practices to deliver the project iteratively.
- Conducted code reviews and documented design decisions, challenges, and time tracking in the project README.
Technologies Used: Blazor, C#, .NET, MVC Architecture, JSON, GitHub, Pair Programming
Snake Game Client Development
University of Utah - Kahlert School of Computing
Fall 2024
- Developed a Blazor-based GUI client for a networked Snake game, enabling real-time interaction with a server to display game state and send player commands.
- Implemented client-server communication using a custom protocol, including JSON serialization/deserialization for game objects (snakes, walls, power-ups).
- Designed and structured the application using MVC architecture, ensuring separation of concerns and maintainability.
- Utilized multi-threading and concurrency to handle real-time updates and user inputs while avoiding race conditions.
- Collaborated with a partner using pair programming and GitHub for version control, following Agile practices to deliver the project iteratively.
- Enhanced user experience by creating a visually appealing GUI with custom graphics, animations, and a heads-up display (HUD) for player stats.
- Debugged and optimized the client to maintain a consistent frame rate of 50+ FPS while handling server updates.
Technologies Used: Blazor, C#, .NET 8, JSON, MVC Architecture, GitHub, Multi-threading, Concurrency
Halo Energy Sword 3D Model
Digital Arts Class
Fall 2024
- Designed and modeled the iconic Energy Sword from the Halo franchise using Autodesk Maya, focusing on accuracy and attention to detail.
- Created the sword's hilt and energy blades using polygonal modeling techniques, ensuring clean topology and proper scaling.
- Applied materials and textures to replicate the metallic finish of the hilt and the glowing, translucent effect of the energy blades.
- Utilized emissive materials and strategic lighting to enhance the futuristic glow of the sword, rendering the final model with Arnold for a polished look.
- Overcame challenges in balancing realism with the game's stylized aesthetic, particularly in achieving the glowing energy effect for the blades.
- Demonstrated creativity and technical skill by translating a 2D game asset into a fully realized 3D model.
Technologies Used: Autodesk Maya, Arnold Renderer, 3D Modeling, Texturing, Lighting
Game Project
- One of my projects that I am working on is slowly working out the start to my game development with a 2D platformer that I am making with my buddies. This should update as the game is in production, but here is some art for the game that I have made so far.
