Thursday, June 15, 2017

animal3D: Minimal 3D Animation Framework

minimal + animation = animal

I am ashamed to say that I have never written a development blog before.  The fact that I consider myself a game engine programmer makes this even more shocking.  For the past 5 years I have written about one framework per year, with purposes ranging from 3D math, to 3D graphics, to teaching tools.
This summer I am preparing to build yet another custom game development framework, with the primary purpose of giving my students support and a solid starting point for my upcoming course, Advanced Animation Programming.  After much internal deliberation and several Google searches, I have decided on the name animal3D, which is a portmanteau of "minimal" and "animal" (and sounds kinda cool).  I even went as far as making a logo!
I envision something that C/C++ programmers would want to use to prototype and build data structures and algorithms for 2D and 3D computer animation.  It sounds complex, but I want to try to keep it simple (stupid), hence the minimal bit.  I am allotting myself exactly 5 weeks, starting in July, to build enough 3D graphics utilities to facilitate rapid development of 3D animation algorithms using the C programming language.  I don't expect a full-fledged game engine, just enough to build demos and teach my students some animation programming.  The teaching part is key; naturally it will not be feature-complete, but that doesn't mean it won't ever be.

Animation Programming

This has been one of my core interests since I first learned what it was.  In my course I am to teach traditional 2D and 3D animation algorithms and techniques, such as sprites, forward kinematics, speed control, animation blending and more.  Some of the advanced topics will include inverse kinematics, tuning animation and locomotion, layers and whatever else I can think of.  I also plan on delving into the mathematics required in the field, namely the quaternions, which I have heard are in high demand these days, and I happen to know quite a bit about.  I am still toying around with the course design itself, but I'll be sure to share when I figure it out.

Graphics & Other Utilities

Since animation and graphics are so heavily intertwined, I plan to build some core graphics and application tools so that development using animal3D can be mostly focused on the animation part.  Some of the things on my current to-do list are procedural geometry, windowing, high-precision timing and threading, all from scratch.

To be continued...

The purpose of this post is mainly been to get the ball rolling.  More to come in July when I actually start coding the framework!

No comments:

Post a Comment