Humanoid Uniform-format Modeler / ANimator

Daniel D. Marino

Faculty Advisor: Dr. Norman Badler


HUMAN is a software API for creating 3D humanoid models, written in C# for the Managed DirectX platform. Unlike many sophisticated modeling systems already available, HUMAN is a procedural API. The system functions on top of a Render3D, a Managed DirectX library I had previously written and continue to update as necessary. The HUMAN system has a simple interface taking in relatively few and easily understood parameters to its constructors and setters, such as proportions of various limbs, skin color, height, and an interpolation between three generic body types: obese, toned, and thin. A model can generally be created from its parameters in a second or less. Fitting with the procedural nature of the system, a model is not saved to a file once it is generated, but is ready to be rendered with a few simple function calls. Its parameter set does have the capability of being saved. The intention is that during the loading phase of a game using the system, models can be quickly and efficiently generated in RAM, and so require no hard disk space. Developers who wish to create a game that plays directly from a CD without being installed, therefore having limited storage space, should find this especially useful. Similarly, developers create games which can be played online without being downloaded, therefore having limited bandwith, will find useful as well (all that need be passed to the client is the .exe file, and a few kilobytes of model parameter data).

All models created share the same skeletal structure (with the exception of user-defined additional joints). This, coupled with the fact that animations are stored by joint angles instead of positions, means that any animation can be applied to almost any model. The detail level of the models is not intended to be photorealistic, but to be convincing enough for the purposes of most independent games. The HUMAN system supports loading animations from external files of a HUMAN-specific but human-readable format.

The HUMAN system is designed for the developer who does not wish to spend all his resources designing and tweaking models, or hiring an expensive team of artists, but rather to focus on improving the gameplay and quality of his creation.

Paper | Poster