Moving Collada I/O to Legacy Status

@aidan-j-rhoden for reference, could you mention the software names & versions that only support Collada?

Sure! The two Iā€™m aware of right now are Chief Architect and Studio.
Studio is a tool used for designing Lego sets, and it can export to .stl and Collada. However, thatā€™s not critical at all, because there is an addon to import their own format.
Chief Architect is the more important one to me, as it can only export to .stl and Collada, and there is (currently) no I/O options for its own format.
However, neither of these are super critical for me, itā€™s more of a convenience. For Studio, I donā€™t even use Collada, except in the case of importing custom Legos, which Iā€™d be apt to design in Blender anyway.

Itā€™s an inconvenience, but if Collada I/O is removed, users could have a older version of Blender installed specifically for importing .dae files, saving the .blend file, then opening it in the newer Blender version of their choice, or re-export into a different format.

Although, that only properly handles the input part of Collada. Which may not be enough for some use cases.

3 Likes

The lego people have violated our license for years on end. Personally I think they should be disqualified from being taken into consideration how dropping collada may affect them for that reason alone.

1 Like

Oh, I hadnā€™t thought of that for some reason! That would work just fine for me, thanks!
Export is not a worry; I donā€™t ever use Collada for that.

Hi, another problem of removing this in the future is games like BeamNG.drive use the Collada file format for all of their 3D content in the game.

1 Like

@ideasman42

Our studio use DAE Collada daily because of a direct compatibility with Sketchup.
There are no that much file formats this software can handle relatively properly.

As far as I can see Sketchup also support export for FBX, OBJ, 3DS, STL, VRML. What makes you use Collada instead?

1 Like

Export from Blender to Sketchup requires Collada.
The best way to import from Sketchup to Blender is an addon because native Sketchup exporters (FBX, 3DS, etc) are also far away from being good.
Also, AFAIK, the addon is windows only.

1 Like

@LazyDodo @mont29 wrt OpenCollada security issues, I have remembered that a year ago I did not only ā€œthink about itā€, but actually played around with removing stale/unused/pointless dependencies from the OpenCollada project, and fixed it up to build with modern compilers. It was here: Comparing KhronosGroup:main...aras-p:master Ā· KhronosGroup/OpenCOLLADA Ā· GitHub and from what I remember I did these things:

  • Fix VS2022 build,
  • Removed things not needed for Blender (3dsmax/maya plugins, validator, Ogre3D converters, G3D browser, etc.)
  • Remove usages of PCRE completely (it was only ever used for trivial string splitting),
  • Remove embedded expat, Cg, lib3ds, zlib, zziplib libraries,
  • Some other cleanup.

So if someone strongly still needs Collada, and/or the fact that upstream has known security issues in the libraries it embeds is a problem (particularly for Blender LTS), we could consider switching to ā€œmy forkā€. The upstream project is dead for all practical purposes.

13 Likes

Iā€™d happily switch over to your fork as it alleviates all my concerns!

2 Likes

@LazyDodo ok letā€™s do this! I just updated embedded libxml2 in there from the one of year 2008 to the latest version too. Blender build does not use the embedded version anyway, so not directly relevant.

3 Likes

downside: we seemingly have no test coverage at all for this IO format, did some manual fiddling with it by manually exporting / importing the default cube, it seems unhappy with every file i try to feed it so looks like something broke along the way (but havenā€™t looked with a debugger yet)

+-- Collada Import parameters------
| input file      : C:\Users\ray\Documents\untitled.dae
| use units       : no
| custom normals  : yes
| autoconnect     : no
+-- Armature Import parameters ----
| find bone chains: no
| min chain len   : 0
| fix orientation : no
| keep bind info  : no
Warning: Call `save()` to make sure that changes persist in all cases.
I/O warning : failed to load external entity "//C:Users/ray/Documents/untitled.dae"
File access (Error): Critical error: ERROR_COULD_NOT_OPEN_FILE Additional: \\C:Users\ray\Documents\untitled.dae
The Collada import has been forced to stop.
Please fix the reported error and then try again.COLLADAFW::Root::loadDocument() returned false on 1st pass
+----------------------------------
| Collada Import : FAIL
+----------------------------------

@LazyDodo Iā€™ll figure it out and will continue discussion on that PR

This indeed sounds like a good solution for the ā€˜legacyā€™ period. Hopefully it wonā€™t require too much work!

Just to understand plans a bit better. The work Aras is doing for OpenCOLLADA does not affect deprecation and removal of the format in the future?

No, the only goal of switching to Arasā€™s fork of OpenCOLLADA is to get a code that is slightly better to maintain than the original repo (as in, having less CVEā€™s, and being buildable in modern OS ecosystems).

Ideally, this will allow us to respect our compatibility rules (for once!) and actually remove collada from Blender in 5.0. But the decision about when to do that removal (4.5LTS or 5.0) is still not final.

2 Likes