Code
Projects
This was an assignment to perform texture mapping on a Bezier curve. However, this project includes parts of previous assignments. Control points for the curve can be manipulated (moved on the x, y, and z axes), causing curve distortions; the lighting can be changed to either flat or Phong shading; the camera can be rotated and translated; and the perspective can be changed to orthogonal or perspective.
This project required the use of multiple light sources (which can be turned on/off), noise, and texture mapping. The model has one light turned on at program execution while a second light is turned off. This second light is not fixed, and can be moved around the model. The user can change the lighting to Phong or Gouraud shading, causing the Phong shading to perform texel texture mapping (looking like marble), and Gouraud shading rendering the model green (no texture mapping). The intent of this project was to generate textures based on noise.
This was my extra credit research project where I took an SMF model, duplicated it twice, performed cel (toon) shading on the model using four (4) intensity levels, and implemented a way to mark models as selected using the mouse. The user can select and unselect a model by just left-clicking on them. Subsequently, once the user makes the selection, the model color will change from either red, green, or blue, to dark gray.
This assignment required us to build a mock virtual memory manager containing a Translation Look-aside Buffer (TLB) and logic to handle paging. Its intent was to show how the computer might take memory from the backing store, load it into physical memory, then perform swapping if no more frames remain on phisical memory.
The first assignment dealt with performing depth-first search, bread-first search, and depth-limited search for solutions to a predefined 8-puzzle. With a given 8-puzzle, the only acceptable solution was to have row one contain "1 2 3", row two contain "4 5 6", and the final row to contain "7 8 X", where X is empty.
This particular project contains code for finding a solution to 4x4 sudoku for either horizontal/vertical/diagonal arrangements. The user can also attempt a 9x9 solution. Solutions are generated by traversing a tree structure and performing a match for the desired outcome.
This project utilizes graph planning and lisp to determine pathways for Shakey the robot to move between rooms and manipulate objects. The goal for Shakey can be defined through the shakey.pddl file. Shakey can move a box, climb up and down the box, move to different rooms, and turn lights on and off. Note that this graphplan takes a long time to execute.
This project contains code to get a chicken, fox, and seed from one shore to another shore. This classical problem uses a farmer, boat, chicken, seed, and fox as objects. The program generates two plans with the given constraints.
This project contains code to move files from one directory to another. The restrictions are that files can be owned by a process and cannot be moved if owned. Two types of moves can occur: single file moves, and multiple file moves by specifying a recursive move on a directory. Directories cannot be moved and remain stationary. If a file is owned by a process, it can be killed to release the resource for movement.
This was a coding project to generate a Qt application allowing a user to input only floating point values into a matrix. This program utilizes Qt 5.x and was created in a CentOS 7.x Linux OS. Instructions for compilation are included in the TGZ file.
This is a partially finished multithreaded TCP server. Inbound connections from clients are handled through a thread pool, where fifty connections can be made. Whenever a client makes a connection attempt, the server searches for an available thread to execute reads and writes from. If there are no available threads, then the server enters into an endless loop, waiting for a thread to become free. Ideally, a message would be sent back to the client, indicating that the connection was refused. However, this was not implemented.