Using COLLADA with a free library

Using COLLADA with a free library

I am the creator of a free physics library that had been active for a little over three years.
It had gained some popularity amount Indies and hobbies developers.
The problem is that with the popularity I am experiencing a new set of problems that I was not considering.
The library is not open source and because of this the user base is more interested is getting results from the library than in fixing it or learning how to make physics engine from it. So not all of the users have the same degree of experiences on basic Newtonian physics and they made errors when setting scenes of complex configurations.
At first it was easy to help them to solve these problems, but it is not always possible.

I came to the conclusion that what it is needed is some kind of data format exchange so people can save and load scenes with problems.
I can come up with my own proprietary format, but I was thinking that if I was going to do that I may as well use a standardized one, so that is is also possible to import and export scenes from the popular modelling packages.

I was reading the COLLADA 1.4.1 specification pfd file and I believe that my library supports 100% of the functionality and surpasses it(at least the physics specifications), but I could not find anywhere if it said that format is free or public domain. And it is not clear to me in the website if it says that or not.

My question is if the COLLADA format can be used by any third party physics library for free? Or it this is like those licenses where you have to release the source code if you use it.

Thank you very much

Collada is used by many closed-source applications, e.g. games and Google Earth, so it should be safe for you to use Collada.

Hi Julio,

COLLADA format is free to use, and the COLLADA-DOM API/parser too. It depends on LibXML. LibXML is MIT license (which allows closed source/commercial) and COLLADA-DOM has a liberal license too:

  1. Redistribution in Object Form
    If You redistribute copies of the Software, modifications or derivatives thereof in Object Form only (as incorporated into finished goods, i.e. end user applications) then You will not have a duty to include any copies of the code, this License, copyright notices, other attributions or documentation.

By the way, please check out Bullet’s COLLADA importer/exporter, it might save you some time. I recommend using COLLADA-DOM.

See ColladaDemo.cpp as part of the Bullet physics engine source code.

If you want extension to COLLADA physics, let me know!

Maybe I did not explained very clear. I am taking about the file specification not the Collada SDK (Fcollada or DOM I think)

I know that for compatibility the best way to go is by using the SDKs, but I find then to large and conversome for what especially is a file format.

My idea is to write a parser that can read and write exact copies of COLLADA file, so I can distribute as open source utility that people using me library can compile with zero external dependency. No even XML or STL (nothing against those tools)

So my problem is not the code it the actual grammar of the COLLADA format that I am
Speaking of.

Say for example somebody is making a complex articulated body
A model like this: … er28yf.jpg

This model is quite complex, to make without and authoring tool. But on the other hand making an authoring tool is beyond the scope of what I am doing.

However supposedly packages like 3dsMax, Maya, XSI can export and import scenes in COLLADA format, if I have a utility that can read and write the same format I do not really have to white a tools, nor I would have to white pluggings, and yet my users will be able to exploit the engine functionality to its full potencial by using their favorite tools as long as it is capable to deal with Collada files.

So again my question is if the Collada Grammars and tokens are of free domain of are they under some license that prevents people form written customs parcels.

You can write your own parser and exporter for COLLADA.

COLLADA physics support provides you a nice toolchain for Maya, Max, XSI, Blender etc. That’s one of the motivations of my involvement!

Ageia’s John Ratcliff did a similar task for his CreateDynamics tools, which I demonstrated last week at SIGGRAPH doing roundtrip with Bullet physics import/export. He uses just 4000 lines of code, rather then then 150.000 lines used in COLLADA-DOM+libxml :wink:


Use of the COLLADA specification and schema is royalty and cost free as are all of the Khronos API.

This information needs to be more widely publicized I think!

Thank you, that was what I was looking for.
I started writing my converter, and I think I made some headway already (it seems easier that I was expecting).
I am not planning make the more complex, the fastest or more versatile Collada converter, so I do not really care how many lines of code it takes me to write it, nor I want this or any other file format to be a feature of my engine. I just want to make a converter utility using a subset of the Collada functionality so that I and other people can use it to share content from my engine. Up until now I have been doing that by code samples but with the increasing complexity this method is very tedious, and also many people have difficulties studding other people code style.
So I think that a format like Collada will really help people on how to use the technology in the more effective ways. It will also expose weak points of the engine.

I cannot really write plug-in for commercial packages like Max, Maya or SXI (because I do not own any of then) and I cannot white plug in for the free ones like blender bceause of the airtight licenses (I do not know if it supports plug-in architecture) So that leaves me with the only option of writing contentt into a public domain format that can be loaded by any of those packages.
As it turns out the converters for max do supports any of the physics elements of Collada.

Anyway Thank you for the info
when I have some result I post again.

I have two questions

-have any body noticed or care that Fcollada files exported from Max using the later FCollada exporter, when loaded again do not show the wire frame mode?
I thought this was an option of something that I did not know, but asked to few artist coworkers if they could make it so the loaded file show in wire frame, and all of then said they had never seen that before.

-I noticed that Blender can no load Collada files exported from 3dsMax, but 3dsMax can load Collada files exported from Blender 1.4 exporter? My impression was that at least on simple geometries (vertex list index list) they should be compatibles. But for some reason Blender imported 1.4 or 1.3 cannot load this files.

There is a new Forum on the Feelingsoftware website to report such problems:

-I noticed that Blender can no load Collada files exported from 3dsMax, but 3dsMax can load Collada files exported from Blender 1.4 exporter? My impression was that at least on simple geometries (vertex list index list) they should be compatibles. But for some reason Blender imported 1.4 or 1.3 cannot load this files.

Make sure you use the latest ColladaBlender exporter (see link below).
Best to report this to the ColladaBlender developer on their Bugtracker:
(and attach a violating 3DS MAX exported .dae file, because they might not have a MAX license to reproduce).

Notice that conformance testing is work-in-progress.