February 16th, 2014

This week I met up with Norm to discuss my project.  I originally just wanted to check in with his to see if my project was reasonable and my timeline for the project made sense.  However, during our meeting, we wound up narrowing the scope of the project and changing around my schedule.  Now I won't be skinning the mannequin to show muscle definition, instead I'm going to work on a fk and ik to work with both spherical and polygonal joint limits and on a correction/recovery algorithm that will move any joints back within their limit if they go out of range.  The hope is that by focusing on these pieces I'll have something demo-able for each review and a clean, finished product by the final review.

Additionally, I worked on getting a partial woody character loaded from a Maya OBJ file.  The decision to focus on this first came from the idea that having a woody character loaded into the scene would give me a multiple object character to test selection and fk on.  Loading a file took longer than expected, however, because in order to test or run my loader code, I needed to setup a server. I chose to use Node.js and Connect (a middleware framework for Node) to setup my server because I just needed to be able to load my static index page with the server.  Because creating a server meant I could no longer host my page off of A Small Orange (where I host my personal website), I decided to push my code up to Heroku.  This is where I struggled for a while.  Once I was able to get Heroku to recognize that I was pushing a Node app -- I forgot that I needed a package.json file describing which versions of Node and Connect were being used -- I couldn't seem to get the Heroku page to load and show anything.  After a lot of looking in the wrong direction and thinking the problem was coming from sending the HTML file, I realized that I had forgotten to set my port to be 8080 locally OR the Port env variable defined by Heroku when I pushed it to production  (face palm.)  Once my server was set up and functional, I was able to go back to my OBJ loader.  I initially created an OBJ file for a multiple object character from Maya and was able to get it to load into my scene successfully.  However, it appeared to group as a single mesh, instead of being multiple objects.  So I exported each object from Maya as separate OBJ files and loaded them in individually. This seemed to work successfully.

I also started working on getting object selection working properly.  I used this demo as reference, and plan on breaking down the code more fully to better understand what it's doing and why.  Object selection seemed to work somewhat when I first started working with the OBJ loader.  When I loaded in the OBJ file containing multiple objects, I was able to click on the a part of the mesh and drag it around the screen.  However, it would move all of the objects together as one, instead of as separate pieces.  I plan on trouble shooting this more next week, and am going to look into Three.js's built in raycaster more so I can get a better understanding of how it works.

For next week, I plan on: (1) getting selection working properly, (2) starting a rough version of fk for character, (3) setting up really rough UI to aid in showing off my project in the alpha review, and (4) cleaning up my code, breaking it into different js files and separating out concerns to make it more readable (as it is a bit of a mess right now).