@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.
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.
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.
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?
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.
@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.
Iād happily switch over to your fork as it alleviates all my concerns!
@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.
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.
I can totally understand the reasoning behind this decision.
Some data points Iād like to throw in for consideration though:
- Collada files are easily available at the Sketchup Warehouse, were it is the only other format than native .skp for downloading. (I know that there is a plugin to import Sketchup files.)
- Professional CAD/BIM software like Archicad can only import .dae so having this as an export option from Blender is relevant to me.
- Last but not least Collada is very important for Robotics. It is the backbone of the URDF format. If we remove the support Blender will become uninteresting for those folks.
Thanks for the input. But unfortunately, from our side, the main issue remains: OpenCOLLADA library is totally unmaintained for years.
So if some community or industry still relies on this format and wants to keep it alive, they should either step-in and actively maintain its library, and/or propose an alternative I/O extension.
Again, the removal of Collada support in Blender is not planned until next year (4.5) at the soonest.
Might sound a bit off-topic, but I am curious how reliable the current status of Collada in Blender for the use-cases youāve mentioned. Do you actively use it, and it just work all the time, or does it have some quirks, etc?