The research robot

We uncrated the research robot and had a chance for a first photo op. It's a Willow Garage PR2.

Advanced Software Paradigms Project Abstract

In my Advanced Software Paradigms course we have been tasked with developing a project that implements an API or framework in order to speed development. At the beginning of the course I found a teammate and we began discussing potential projects. He had leaned toward an application that used the Facebook API. Unfortunately, my partner dropped the course; however, I was ultimately freed to work on something a little more challenging and relevant to my interests and research. Instead, I have chosen to develop my own framework for a 3D game engine. Below is a copy of the accepted project proposal and the objectives that I have set for myself. I am now very excited about this project.

The objective of this project is to develop on a linux platform in c++ a portable 3D game engine framework. C++ has been chosen because it can render 3D graphics more smoothly and faster than a language such as Java and because it is portable. The hardware interface will be abstracted using SDL, Simple DirectMedia Layer, because SDL is native to many existing operating systems and the 3D graphics interface will be handled using OpenGL for the same reasons. The framework will abstract complex game engine architecture into an inuitive model borrowed from theatrical production concepts such as scenes, actors and props. Project development will be supported by UML modeling and will follow an evolutionary process where a fundamental 3D framework will be developed in phase 1, a first demonstrator based on a brick breaking game will be developed in phase 2 and a second demonstrator using a player controllable turret against attacking enemies will be developed in phase 3. Demonstrator development will generate and validate new requirements for the framework. Demonstrator 1 will require projectiles, collision detection and HUD and demonstrator 2 will require artificial intelligence. The demonstrators will act as guides for development of new phases or for future framework implementations.

I Got Next!

I have been standing around with my quarter up waiting for a response to my application to George Washington University. Today I was accepted into the GWU School of Engineering and Applied Sciences for study of Computer Science with my focus in Machine Intelligence and Cognition. I will be moving to the Washington metro after the holidays. Muhahaha.


I had lunch today with my mentor and we discussed me continuing on to grad school.  I have to admit that he made an effective and convincing pitch.  I found myself wishing that I was ten years younger.  Spending four years in concentrated study working on robotics, AI and computer simulation in Washington, DC would be an amazing opportunity and the type of work that I would really involve myself in.  Intellectually, it would be highly rewarding and at the end, I would have a very specialized but useful skill set for the modern market.  The downside is that I might price myself out of the job market in the process.  If I were younger, it would be an easy decision but right now it is a tough one.  I'm glad that I have afforded myself some time to rationalize my decision as it is not an easy one.  On the plus side, he did agree to act as a reference should I return to the commercial side of computing.  Hmm...

He is focusing work now on deformable bodies which is a real weak point in the industry.  Due to the complexity of working with non-convex hulls, deformable bodies are not really supported except through very clever smoke and mirror methods.  Usually a model is substituted with another prepared model that models the deformation.  Due to the infinite number of configurations for a deformable body, the time complexity of the algorithms and the problems with non-convex polyhedra, this area of research could be a game changer for the game industry.  It certainly would be a challenging area of research for myself.

Time has now morphed into my mortal enemy.

Matriculated -> Decision Time

I am happy to announce that I was awarded a Bachelors of Science in Computer Science from the University of Memphis this May.  My CS GPA was 3.9 and my overall GPA was a 3.25.

I have been encouraged by my instructors to continue on to graduate school.  My independent study mentor has asked me several times to consider following him to his new position.  I would be working toward a doctorate in robotics.  It is such a fantastic opportunity and I am very flattered by his invitation.  Unfortunately I am not twenty something anymore so that decision isn't so easy anymore.

What I really would like to do is explore employment opportunities available at the moment.  Part of the reason that I returned to earn my degree was an encounter with a Midway recruiter almost three years ago.  He approached me for a senior engineering position based upon my Monster resume.  I had, at the time, been entirely focused on the business that I was involved with and the skills necessary for the Midway position were not honed.  To be brutally honest, I had given up on a career with the game industry and I had basically committed to working in the software side of the construction industry.  I knew that lacking the degree pretty much disqualified me from any senior engineering position in the industry.  Having missed the chance to be "discovered", I resolved that I would just chase the dream instead.  So now is an opportunity for me to market myself rather than wait to be discovered.

From the Vault: Game Programming

In Spring of 09, I completed Introduction to Game Programming. In the process I had recorded several YouTube videos during development. I am embedding those videos here.

Continue reading ‘From the Vault: Game Programming’ »

Alice Cooper Comes to Mind

Today was the last day of class. Nine days until the end of exams. It's a good day. I haven't been accounting for this semester very well here. It has been much less geared towards actual programming and much more geared toward concepts and management within my CS curriculum and my other classes have been fairly demanding so I haven't had much relevant content to write about here.

Because I have so much more experience than the average senior CS student, my Capstone professor let me act as project manager for several of the teams. I have new-found respect for my former managers. Once the projects began, they were generally easy to sustain, but inception and elaboration were brutal. If this was a more realistic situation, I know release would be even more demanding. The experience was good and it gave me a lot of practical knowledge from a perspective that I really needed. Thank you Henrry.

I did continue my independent study this semester and we focused on generalized coordinate systems which is an extension of the ODE we worked on last semester. We chose to work from Computational Dynamics by Shabana and I have to admit that I don't like Shabana's mathematical notation at all. I mostly modified code from last semester, so there is also little to show on this subject which is why I haven't written about it. I would like to implement this another way to create a useful demo of the work but it may go on the back burner for now.
I have been working with Dr. Drumwright for the last two years and he is now leaving. I think the University really lost out on him and I hope that they can get talent like him in the future. He really cares about the intellectual growth of the students and doesn't see the work as a job but as a mission. He is a great teacher and George Washington will really benefit. Thank you Evan, you really challenged me.

I have been playing around with a conceptual prototype and it worked out so well that I had to render a bunch of images and post them in the pages. I may write a separate post about it later.

I hope you can see this…

I've been spending considerable time poking around in JOGL trying to get the automatic web deployment to work for me. I've been doing these projects on a platform no will likely see and trying to capture aspects of the work with tools like Jing, Fraps, YouTube and XVid to name a few. JOGL has the most promise to demonstrate OpenGL development on the web because of the advantage of a single codebase for multiple platforms. The price is that java just isn't a selfish enough environment to really allow the necessary control for optimal display of animations.

Continue reading ‘I hope you can see this…’ »

In which I brag a little

I'm not a person who exposes a lot of hubris. You would probably have to know me personally to understand and it is partly why I am a little uncomfortable posting excessively on a blog. I am going to make an exception here though because I am very satisfied with what I accomplished this term.

I took eighteen hours this semester in order to wrap up my degree as fast as possible. I had quit my job in May and took summer classes to get close enough to graduate in a year. I am now one term away from earning a Bachelors of Science in Computer Science from the University of Memphis assuming the negotiation of one transfer credit from another school shakes out in my favor. In that eighteen hours, I earned straight A's and made the Dean's List. I took Networking and Information Assurance, Software Engineering, Probability and Statistics, several other non-major courses and an independent study in computational dynamics.

It was a long term and thankfully I won't have to take such a load again. Next term I will be taking Models of Computation, Capstone, two more non-major courses and my adviser and I will continue with another independent study focusing on more computational dynamics particularly with respect to robotic articulation. I am looking forward to next term for many reasons but seeing the coming dawn following the long undergraduate night is the sweetest reason of all.

Conserving Rotation

The linear system was straightforward; however, there was significant problems debugging the rotational system. Initial tests had shown that there was degradation in the rotation so the spin would visibly decrease over time. The law of conservation of momentum, including angular momentum, dictates that the rate of a spinning body does not decrease unless some force is applied. In the perfect world of the simulation, there is only one force in effect, gravity, so the spin should not have shown any degradation.

The paper had proposed sending in data as an array because the ode should be able to solve any number of derivative calculations, but for some still unknown reason the array model was not producing the correct result. I spent weeks pouring over all the calculations and found no significant problems. I finally eliminated the array model and calculated the results with more complex data types and the rotational problems disappeared. I am still stumped as to what the problem was when calculating by individual parameters because mathematically the approach is not flawed.

While I would have preferred to match the paper exactly, I am just happy to have overcome the issues I encountered. I ended up studying ordinary differential equations a little too in depth, but there are significant benefits to the level of understanding I gained in the process. My adviser promised me that what follows qualifies as the "fun stuff". We shall see what can be accomplished before the end of the term. He did suggest continuing next term if things go well, so I hope that what we accomplished is well enough that we can continue.