Skip to content

Open Source Project for Animated COLLADA models in XNA 4

I finally got around to create an open source project from my COLLADA library. Even though the port to XNA 4.0 is technically not yet finished (still one bug that resulted in the port and a few missing render states).

Basically it’s working, though. So I thought I might as well publish it now, rather than wait for ever to make it “perfect” and then never do it anyway.

I struggled to find an approriate name but settled with “Open Model Implementation for XNA”. Because that’s what it is: An alternative implementation of a Model class for XNA including content importer and processor.

You can find the project over at

There’s still much work to be done and even more that could be improved, I suppose. So I plan on keeping up the work. Maybe some day the project will find contributors.

In future I’d also like to make the library compatible with others. For example there are at least two XNA animation libraries at Codeplex. Wouldn’t it be cool if they worked with “my” models, too? That would at least spare me the work of implementing more advanced animation techniques that already have been implemented anyway.

6 replies »

  1. Hi, I just wanted to ask: how many bones does your library support. For instance, the skinned model sample works with 59 bones if I recall and the XNAnimation supports up to 80 (these are not for collada though).

  2. Hi there!

    Since currently there is only a software implementation for skinned mesh animation, meaning that all animation calculations are performed on the CPU rather than the GPU, it supports and arbitrary number of bones.

    Limitations in the number of bones are often introduced by so called Matrix Palette Skinning which uses shader registers for storing animation data. This however, can be circumvented by rendering the animated model in mutiple passes, drawing only individual parts of the model, which don’t exceed the number of available bones.

    There are also other animation techniques which are not limited in the number of bones by using textures or other mechanisms.

    But as I said above no GPU based animation technique has been implemented by me so far, since there are other problems to be addressed first. I plan to implement GPU skinning at some point, but since my time is currently limited, I cannot say when this will be the cast. Making the library more robust and fixing more rudimentary problems is my focus right now.

  3. Thanks for your quick reply.
    I find this interesting, I’ll take a closer look at your library.
    Have a good day.

  4. Hi again,

    I downloaded the project from codeplex, but when trying to open the project, I am being asked to enter some password in order to connect to codeplex. I click “cancel” and get to the project, which won’t debug… Do you have any idea about what I should do to run the project?

    Thanks in advance.

  5. Here is some update : even though the big project doesn’t debug, the “samplegame” project does. However, should I try to change the marcus model with one of my own, I get some error about “Ionics library” or something like that. The game still runs, though. There also that mention you made about a zip collada importer, I’m not sure whether we’re supposed to download it and include it in the project, or if it’s already done.
    This projects really interests me and from what I could experience, it might very well prove very helpful and resolve an issue I’ve been trying to overcome for a while.

  6. Hi!

    The codeplex credentials are only neccessary if you want to use TFS version control from Codeplex.

    Regarding the ionics zip library: It appears I’ve created a readme file with hints regarding this dependency, but I forgot to commit it. However, it’s mentioned in the quickstart (

    The ColladaViewer sample application uses Ionic’s DotNetZip ( library to extract compressed DAE files. All other libs / programs of this project don’t require it.
    So what you need to do is download the DotNetZip DLL from Codeplex, and add it to the references of the ColladaViewer project. When you got the Viewer running, you’ll be able to test your own Collada models by just dragging the DAE files onto the viewport or by using the “Open” file menu.

    Of course you can also just alter the hard coded paths in the samplegame project for loading your own models.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s


%d bloggers like this: