Saturday, September 28, 2013

Week 8 : Projects

It has been another busy week in Grad school.

This week I started my Computer Vision Project, an application to determine how beautiful one is based of the Greek Ratio phi. To start am using Haar cascades to locate facial features. Once I have the right facial values I intend to run an algorithm to look for the Golden Ratio.  Phi is thought to be a ratio of beauty, it was used when constructing the Parthenon and many Greek sculptures of the Classical and Hellenistic periods. So if this is true I should be able to find evidence of phi in faces of movie stars.

To go along with that project I have started a paper in my Cyber forensics course focused on security for video games. So far all the academic papers I have read deal with building a taxonomy, while the developer articles deal with implementing authentication and encryption .

This is on top of the normal work load, which has been interesting. We have learned how to acquire IP addresses for websites and will start port scanning next week in forensics class. In computer vision we are doing feature recognition and corner detection. Who would have thought so much interesting information can be learned by running an matrix over an image. I am really enjoying image processing feel free to check out my work as it develops HERE 

Well I still need to work on my Unity Planner and grade some Java projects, so I better get to it, otherwise I'll have no weekend.

Have a great day and see you in
Thirty-Three weeks

Anthony

 

Saturday, September 21, 2013

Week 7 : Planning

It was another busy week, which is why this post is coming late in the week. I wanted to talk about my graduate project, but before we delve deep into it I will use this post to describe what a Planner is.

My project is integrating a Planner into Unity. A Planner is an system that takes a set of axioms, operators and tasks to accomplish a goal. The result is a plan which consist of several actions that need to take place in order to accomplish the goal.

Traditionally game AI design focus on the state machine to control the AI agent's behavior. However state machines are fragile because they depend heavily on the game design. If the design changes, the state machine has to change which may result in some unpredictable behavior. It makes maintenance and code reuse very cumbersome for the AI programmer.

Planners on the other hand are different. The planner and the game engine will have a mapping from the planner's primitive tasks to actions in the game engine; such as 'go to object' or 'pick up object'. These actions can be reused in many products which permits code reuse. Similarly once a planner and game engine can communicate, the planner can use the game state for the axioms it needs to develop a plan which the game engine receives and executes. The only thing that needs to be re-coded is the operators for the plan.

Operators are the rules for forming the plan. Once the AI programmer has a working system they can focus on the Agent's behavior by changing the operators. If a new feature is requested the programmer simply considers what game state information is needed, if any, and works to incorporate the features into the planner's operators.

The greatest part about planners is the opportunity for unpredictable plans. Unlike the state machine where the agent must go through a series of steps to accomplish a goal, an agent's plan might deviate. This unpredictable behavior is more in keeping with human behavior, which makes the experience more enjoyable for the users.

Now you have the basics of planner technology, there are plenty of books on planners, I encourage you to read more on it if this is new to you. We will revisit this topic in later posts.

See you in Thirty Four Weeks.

AR

Saturday, September 14, 2013

Week 6 : Convolution

Just a short a sweet post this week, school is in full swing.

I wanted to say that I did a Canny edge detector, which means I had to do Gaussian blur, and develop a convolution algorithm. I am very proud of myself, I can finally take those crazy formulas and translate them to code. It seems last years intense math studies have paid off.


Until next week

See you in thirty five weeks


Friday, September 6, 2013

Week 5 : Education


 I would like to talk education, I was originally trained as an artist and for the next twelve years I taught myself programming. I was lucky to be apprenticed by Paul Dana, President/Owner/Programming Guru of Plastic Games. Paul has been programming for 30 years, he was passionate about computer graphics before they were common vernacular. Paul taught me a lot about software engineering and debugging, particularly debugging. We work well together, how else could we release outstanding attractions for the Disney Theme parks.

As I became more engrossed in programming it became clear to me that I was missing some engineering concepts, particularly Calculus and Physics. One of my personal goals when returning to school for my masters was to fill in the gaps in my education. Over the years I had collected the Game Programming Gems and AI Game Programming Wisdom Series. Although I attempted to read them I but could never understand them.Once I returned to school I revisited my library and began reading them along with my studies. I was shocked to find that all the software principals Paul had taught me were being preached in these books. Sure there were concepts I was not quite aware of but I 'put a pin' in them and kept reading. As  Calc 3 concluded it became clear that those topics that I had 'pinned' were part of the fundamentals of Calculus. While many students were learning something for a test I was learning something that could be applied directly to my work, it was inspiring.



Graduate school has provided me a wealth of topics to use in future work. In this post lets look at data and databases,  most undergraduates should know about databases upon graduation, but many are unaware of how the database engine works, or how it recovers when it breaks. Sure undergrads know about SQL and ACID databases, but what of BASE databases? Cloud computing is just a fancy term for providing ways to store and operate on data remotely. Do you store it in a datastore (BASE), a cloud SQL service (ACID) what are the cost associated with each? Games are recording a wealth of data for each product. What does that data really mean? Perhaps using semantic technology can help. Certainly you need to extract nuggets of knowledge through clustering, apiori or correlation. While most undergraduates are learning one of these topics as a graduate student we are expected to know them all.

We will pick up this discussion in later posts.

Finally, I was able to get another TellTaler to LinkIn with me, thank you!

See you in Thirty Six Weeks!