Final Project: Center of Mass Skeletonizer

CPE 471 Winter 2020

Professor: Dr. Zoe Wood

Author: John Twedt

Overview:

My final project was focused on trying to "skeletonize" any 3D object for the purpose of comparison with other objects. Among the potential uses:

The video shows a lizard I dowloaded from turbosquid.com (link is below). The triangles represent successive iterations of finding the centers of mass in smaller and smaller regions. In total, there were eighteen passes for the lizard; (which has 104,635 vertices). Originally I was somewhat surprised that it took so many; I had expected somewhere around log2() passes. But it turns out that some regions are far more complex than others and others show a great deal of symmetry; factors such as these mean that the later iterations tend to be smaller (to the point that you can't even see them).

The arrows represent travel from one center of mass to another--in many cases, you'll see two splitting from one point (with their "bases" meeting). The bases are the point of origin, and the apex is the next com. The triangles are aligned to a perpendicular that is normal to the direction, and the base-length relationship uses the Golden Ratio.

Graphics Technologies:

This project was focused more on computational geometry and procedural object generation than on gameplay--which makes for a comparatively boring project (I know). However, all of this paves a path toward a better understaind of how graphics work. Through this project, I was able to deepen my understanding of:

While I later read about several better methods of deriving a "skeleton" from 3D objects, I'd opted to continue with my own version. While I knew it would not be nearly as effective as other proven methods, I believe that there will be other uses for this method, and I am in the process of determining their potential merit. If nothing else, I will certainly have gained more knowledge about other existing methods that are better.

Resources:

Dr. Wood has provided us with several tools to ease our journey; among them are:

Beyond that, much of what I have learned has come from watching youtube videos (I recommend 3Brown1Blue's channel for math), doing tutorials at learnopengl.com , trying to decipher Wikipedia pages, and perhaps the greatest fountain of knowledge--the one that draws from a torrent of foolish mistakes.

If you'd like to use the lizard for one of your projects, you can find it here. Make sure to rate it as a way of saying "thanks" to VyVera :)

If you are interested, here is a link to the last iteration of my final project proposal: pdf file