I’m recently trying to import collda files with C++ on Android, and I’m trying to work with opencollada. Can this tool be used on Android?

Or is there any alternative? I’ve tried Assimp, however, it lead to serious memory leak as mentioned in https://github.com/assimp/assimp/issues/2182

Can this tool be used on Android?

You are free to try it :slight_smile:

Or is there any alternative?

There are some old libraries like FCOLLADA but most of them are abandoned. @Mick P. is working on COLLADA-DOM, you can ask status of project to him.

I’m also working on a library called AssetKit (https://github.com/recp/assetkit) which is actually what you are looking for, but it is not finished. I did not work on it a few months or maybe more. I do not have enough time these days but I’ll finish it. Currently it can load glTF 2.0 files too, except skin/morph animations (this is what I’m working on). Basic animations (transforms) are working. It is not ready to use for now.

As another alternative, some render libraries or render/game engines can load COLLADA files, maybe you could use their interface to load COLLADA? If this is not an option for you then you could try to build OpenCOLLADA for Android, it could work.

If there is a memory leak in Assimp, maybe you could try to fix that?


AFAIK, FBX SDK can load COLLADA files, maybe it can also work on Android I don’t know. If Autodesk’s proprietary license is not an issue for you, you could try it.

New COLLADA-DOM is very futuristic, but unfortunately requires a very good (fast) template compiler, and understanding of precompiled-headers. It has a large feature set, but is technically a work in progress for the time being. It’s still very useful.

Thank you for help! So Collada Dom would work on Android ? Another question, does Collada Dom support blend shape(morph)? It’s a very important function to me.

      • Updated - - -

Thank you for your adivice ! Maybe I’ll try to build OpenCOLLADA on Android, has anyone successfully built that before?

COLLADA-DOM is a system for making heterogeneous containers (like std::vector) out of XML Schema documents. The core library can be used without containers, and can be very lightweight that way. It’s not OpenCOLLADA, and it only has a few features that have to do with COLLADA, like SID facilities, but is otherwise more like XML for C++. There is a COLLADA viewer that uses it to implement a reference implementation of COLLADA, that includes morph animations…

Even though later COLLADA deprecated morph animations on a technicality. I prefer the original way, and I think it’s better because it doesn’t require any third-party extensions. The technicality was that the array/accessor elements (I forget their name) is supposed to be constant conceptually, and so the morph weights cannot be animated, since they are in one of those arrays, and also as I recall SIDREFs into these arrays are nonstandard, but the SIDREF systems has many problems that require amending to be functional.

COLLADA is a ******* child, so I think the only people who should rightly be interested in it is noncommercial people looking for a standard storage medium for 3D content. It’s easier for us to begin with COLLADA as an HTML like standard than make one from whole cloth. The moneyed commercial sector moved on, and lost interest after AutoDesk monopolized all 3D content creation.