|
Current Research Interests ![]() Robotics - Visual Homing My current field of study for my masters thesis is robotics, specifically the area of visual homing. Given panoramic images of a goal and current locations, we attempt to compute the home vector to the goal image using pure visual data. More details on this project can be found in the paper "Homing in Scale Space", under publications. Feature Detection - Scale Invariant Feature Transforms As a sub topic of my masters research I am very interested in the topic of image feature detection, specifically using the Scale Invariant Feature Transform. These robust keypoints have made not only my research possible, but have been used in projects such as Microsoft's Photosynth in order to produce breathtaking results in image matching. SIFT Features can also be used for more advanced topics such as 3D scene reconstruction, image database search, and others. Algorithms for Constructing Combinatorial Designs For the past several years I have been working part time with Dr. Nabil Shalaby on algorithms for constructing and enumerating combinatorial designs, namely Skolem and Generalized Skolem-type sequences. Computer Graphics / Vision / Image Processing Having done research in the areas of robotic vision as well as 3D visualization programming, I have becoming interested in many aspects of computer vision as well as image processing. Several of my research positions, as well as my masters research have included topics which overlap all of these areas, and I hope to persue further research in these areas in the future. Past Research Interests The following are a few of the research projects I was involved in while I was working with the Earth Science (GeoPhysics) department at Memorial University of Newfoundland. Topics they covered include: computer graphics, image processions, gui development, HCI, high performance computing, numerical methods, and file/memory optimization. 3D Data Visualization - Seismic Cube - Screenshot A tool written in OpenGL for the efficient, multiple layer viewing of large volumes of 3D seismic data. Users can step through data time series, zoom in, rotate, or cut through the model in order to produce any view necessary. Special consideration was taken to the reading of very large data sets up to several gigabytes. GeoPhysical RayTracing Tool - JRay - Screenshot A tool which allowed for the creation of layered seismic data sets. Users could set the layer velocity of various layers as well as the virtual receiver and seismic activity locations. All ray computations were then computed and delivered to the user in graphical form, as well as spreadsheet data. Seismic Data Point Picking - Screenshot A tool for the automatic reading, and displaying of 2D seismic data. Given a start and end point, the program would automatically pick seismic peaks which could be output either as visual or spreadsheet data. Video Game Programming Since I can remember I've always loved video games. Since I've learned to program I've made a few games in my spare time. Here are some brief descriptions along with screenshots of some games I have created. Chromanode - Screenshot Chromanode is a graph based puzzle game in which a set of nodes are each colored different colors, connected to other nodes via edges. Clicking on a node changes the color of all adjacent nodes in the graph. The goal of the game is to make all of the nodes the same color. You can play the game as well as find instructions @ www.chromanode.com. Air Hockey - Screenshot An air hockey game written in OpenGL which can be played by 2 players using 2 mice on the same computer. Players hit the puck by moving the mouse and score goals on the opponent's net. Code available upon request. Bored Ball - Screenshot Players use the keyboard in order to jump their balls into the air, collecting gold coins for points. The longer you stay in the air, the more power you drain. Players must return to the ground in order to recharge their power meter. Fenga - Screenshot A 3D OpenGL simulation of the game 'fenga' normally player with fingers. Players take turns adding the sum of one of their own stacks to the sum of an opponent's stack (or their own). A stack resets to zero if it sums five or more. Players may split a single stack into two if it contains an even number of balls. The first player to make their opponent have two stacks of zero wins. The Pimp Mobile - Screenshot A car simulation in which you must drive around collecting rings. 2 players, the first to collect 10 rings wins. If you hit an obstacle, you lose a ring. Created for Computer Science 4751. |