About Me:

A random pic of me

I will add more later but here are some basics:
  • Alumnus of Clemson University. My degree is a Bachelor of Science in Computer Science with an emphasis in Japanese. I decided to pursue Computer Science ever since the 10th grade when I decided to become a computer/console game programmer. I took almost every available interactive entertainment or graphics class while at Clemson. This includes (you can see more information on my 'Classes' page):
    • ray tracing in C - Undergraduate course where we implemented a ray tracer from scratch in C. The idea of the class was to develop an engine to render diffuse, specular highlights, ambient light against basic mathmatically defined objects such as spheres, planes, and cubes. A couple of us ended up adding reflective surfaces and textures.
    • advanced ray tracing in C - Graduate course where we quickly implemented a basic ray tracer like the one in the previous class, then went on to advanced topics such as soft shadows and glossy surfaces (via distributed ray tracing), a mountain terrain generator (created an .obj file to render with OpenGL), and Phong illumination. This was the hardest but one of the most fun classes I took.
    • project class on virtual reality - Our team consisted of 3 programmers and one artist, so we decided to focus on the technical side of the project. Our design was to implement a functional representation of M.C. Escher's House of Stairs. The most challenging part of the project was to correctly flip the camera matrix depending on which door you went through. Also, to prevent the issue of gravity, we installed handrails and stuck the camera to the floor. My focus was the collision detection. Since our environment was very detailed, I had our artist create a separate model with very simple polygons, and I used that model for collision detection while we used the high-res model for displaying. I also calculated the direction that the camera would "bounce off" the wall to give a more natural movement. Also, since we were using a VR headset, we had two render windows with two cameras at a fixed distance apart from each other.
  • My goal is to work as a software engineer with a technically challenging and interesting project. I am very interested in the technical side of ray tracing and game programming, especially how graphics engines render the environments. While in college I took Linear Algebra which got me more interested in the technical side of graphics. I also took two classes on ray tracing and this got me very interested in graphics. I recently rebuilt my C ray tracer using C++ and allowed it to output JPEG images directly rather than full-size PPM images files. I also have done some work with Android apps.
  • I currently work for Ariba, Inc. as a software consultant. My job involves Java, XML and some SQL (Oracle) design and development. Since I am in consulting, I do travel some as well. Although my job is designed to take place in a local Ariba office. Along with the development side of the job, I am also involved with project management. I was working on a small team (myself as the technical (implementation) consultant, and someone as the functional (design) consultant) for a large pharmaceutical company. There I learned a lot about the processes that are necessary when running a project. Recently I have been the sole person on a project, which required me to not only know our products from a technical perspective inside and out, but also needed me to update the team with progress and document every required step. Also within that project I was able to keep it on schedule to the week due despite testing and technical hurdles along the way.

Brian Caines © 2017 BrianCaines.com