1. What I was trying to achieve and the problem I was trying to solve. Trying to understand Maya's architecture and take advantage of it. Various 3D object related UIs are tedious to implement and often is easier to use an industry standard UI for user friendliness. Also, other tedious tasks that can be easily done in Maya can be simplified to reduce the time and effort needed in research. ex. creating a video file of a processed motion. In Maya, you can just render it to a avi file. Otherwise, you have to find video capture s/w (might even need h/w), capture it, encode it, etc. 2. Description of my results. What did I actually achieve. 1) I was able to create several commands that does the intended tasks in Maya. 1. Loading a BVH 2. Load foot plant information 3. Do foot skate solving using the the information gained from above 2) I was able to create a Maya Locator object that represent a foot plant and can be interactively modified using Maya's UI 3) I was able to create a Maya Dependency Node that and verify the possibilities of interactive motion processing 4) I was able to create a simple Maya manipulator that enables me to add my own type of graphic interface to Maya if needed 3. A discussion of the methods. How did I do it? What parts did I implement, what did I "borrow"? What algorithms/methods did I use? For BVH loading, I made some modification to a BVH loading script from the web. Using Maya's Visual Studio .net Solution creator, project settings are simplified. It also sets up the debug environment that lets you debug your plugin. The Maya Developer's Documenetations and its samples were major sources of information on figuring out how to do things 4. What did I learn from doing this? I learned the underlying architecture of Maya while getting more familiar about how to do things in Maya. Also in software engineering terms, it showed how a well though out expandable and dynamic architecture looks like. Also learned MEL, which can greatly simplify various tasks. 5. A self-evaluation. I'm happy about the results of this project. The level of insight on how things work in Maya and how it can be used for various purposes to speed up and simplify motion research. Also successfully integrating motion processing code used outside of Maya shows it definitly is possible to lower the starting implementation time barrier for motion related projects. It also is more easier to receive artist opinions since artists are more willing to try using a Maya plug-in than a custom software. What pulled me back is the limited information on how to deal with plugs. I couldn't find a way to connect Point3 objects like the entire translation of an object to another node. Also the exact conditions on when an attribute is evaluated through a plug isn't clearly documented and required a lot of trial and error. For future advice, try to implement commands in MEL and other computationally heavy motion processing in C/C++. The launch time of Maya can be pretty prohibative for frequent changes. (Creating a script to unload/reload is better) Also understanding that simly changing an objects transformation doesn't directly change its keyframe could save a lot of time. 6. What will you do the same/differently next time? If I were to do it again, I will make all the command plugins in MEL and move all the computationally heavy motion processing to C++. I will also limit the affected motion time interval by the change of a single plant to obtain an interactive processing rate. Thus, enabling me to see the results of moving around a plant location or changing its start and end time while seeing how it ends up immediately. 7. Comment on how this project will affect your choice of what to do next. This project will affect me to do my nexts projects inside of Maya so I can use a very professionally designed architecture that is easy to extend. But understanding Maya better won't be the focus of my next project. This was just an integration problem that would teach me how to free myself from various tedious UI implementation tasks in the future. The next project would be a more motion graph related project since this is what I was trying to do in the first place.