Basilisk is a 3D engine package for Python that can create visualizations, simulations, and video games from the comfort and ease of Python. Basilisk is designed for quick and effortless development, providing a powerful backend engine that supports larger-scale projects without requiring extensive setup. The engine automatically handles all graphics and physics for you, making it easy to get projects running, with the option to inject your own custom functionality if desired for more advanced control. Basilisk was originally programmed entirely in Python and GLSL, taking advantage of ModernGL for GPU-accelerated rendering. Currently, we are working to rewrite Basilisk in C++ to allow for greater control over system resources, improved optimization, and faster physics calculations, making the engine more capable for demanding projects. I am primarily responsible for the graphics programming aspect of the engine. I have implemented highly optimized batched rendering, capable of handling millions of objects efficiently. I also implemented physically based rendering based on Disney’s BSDF, as outlined in 2012 by Brent Burley, which allows materials and lighting to interact realistically.
Minecraft Python Edition is a Minecraft clone programmed entirely in Python and GLSL using ModernGL. It includes a simplex-based world generation system with biomes, caves, trees, and ores, as well as the Minecraft inventory and crafting system, complete with a crafting table and furnace. The game also uses a simple flood-fill lighting system with ambient occlusion, which adds to the visual depth and overall feel of the game. Much of the development was focused on optimizing the chunk meshing system and the flood-fill lighting. The chunk meshing system needed to account for optimal rendering, culling faces that are never visible, and the limitations of remeshing in Python. The lighting system was designed to only update areas affected by player actions, reducing the time spent computing lighting across the world.
For CSCE 312, Computer Organization, I designed a CPU in Logisim that implements a Y86 architecture. I contributed primarily to the instruction memory and memory fetch, the register file, and memory read/write components. I also implemented high-level component orchestration and timing. Using this CPU, I programmed several scripts in Y86 to demonstrate its capabilities, including arithmetic operations, memory management, and matrix multiplication.
Emulsion is a game made in 48 hours for Chillennium, the world’s largest in-person student-run game jam, where it earned 2nd place overall. It was programmed entirely using the Basilisk Engine. Emulsion is a first-person shooter where bullets reveal a rift to another parallel world. My main responsibility was writing shader code to handle the ability to view the other world through bullet shots. This required implementing multiple shaders, including shaders for each world bullet path shader depth testing shader final image combination shaders All of these worked together to create a single, seamless final image.
I created a lightweight neural network in Python using Numpy. Using calculus-based gradient backpropagation, the network was trained with the MNIST dataset to recognize handwritten numbers, achieving 95% accuracy. This project allowed me to explore both the mathematical foundations of neural networks and practical implementation.
The website you are currently visiting! The project demonstrates front-end development skills and attention to user interaction. The project demonstrates both front-end design skills and the ability to create interactive, user-friendly interfaces.
I am currently a researcher at iSTAR labs. iSTAR is a Texas A&M lab that focuses on resilient systems, cybersecurity, and artificial intelligence. My work has been mostly focused on the development and deployment of agentic AI in human-AI systems. I developed a framework for handling interactions between interactions between human and AI agents. The underlying architecture and exposed interface of the framework is inspired by the structure of MCP and Google's A2A. The main contribution of this framework is its ability to facilitate interactions and resolve conflicts between many agents in real time. We demonstrate the results of this framework in an image classification case study in which two agents must cooperate to classify a single image. Experimentation has shown that our framework leads to better overall results than either agent can achieve on their own. We plan to continue this research to get further results and even broader application.
I serve as the Vice President of The Texas A&M Game Development club (TAGD). Our organization gets students involved in making video games by teaching them the necessary skills, exposing them to industry professionals, and hosting game development events. Our biggest event is the TAGD Game Jam, in which students have the duration of the semester to make a game with a team of up to 5 of their peers. At the end of the semester, all the games are presented by the developers and judged by industry experts. As the Vice President, I am responsible for connecting with industry professionals to host talks, workshops, and judge the game jam. I also work closely with the President to organize weekly club meetings with a unique game development related activity each week. These activities include the basics of game design, brainstorming and Shark Tank style pitching, paper prototyping, game jam development updates, and many more. I also create any necessary proprietary software for events from a web app phone controller for realtime audience participation to an AI powered Judge Judy clone.
I operate audio on various sound platforms and program and execute lighting on the GrandMA2 and GrandMA3 systems. I coordinate with lead pastors, tech directors, and music directors to bring together many technical elements and demands into a cohesive service experience. I also program the lighting file on the GrandMA2 board for the student service, creating a dynamic show that still presents an easily-operated interface for student volunteers.