How to convert DAE to STL
- Drop the .dae or .kmz fileA COLLADA document is plain XML, so the reader parses it directly in the tab. A .kmz is unzipped first and its embedded model loaded. Nothing is uploaded and there is no account step.
- The reader applies unit and axisThe asset block declares the source unit and whether the scene is Y-up or Z-up. The loader converts the unit to metres and rotates a Z-up scene into the pipeline's Y-up convention before any geometry is touched, which is why the preview matches the source orientation.
- Flatten the sceneNode transforms, instances and geometry are resolved into world space. Multiple objects become one triangle list; materials, effects, cameras and animation are discarded because STL has nowhere to store them.
- Set the output scaleMetre-based geometry written into a unitless STL will be read as millimetres by every slicer. Use the scale control to multiply by 1000 for real-world-sized models, or scale on import in the slicer.
- Download and sliceThe result is binary STL: an 80-byte header, a 32-bit facet count and 50 bytes per triangle. Check the bounding box, then let the slicer report holes and non-manifold edges before printing.
What happens when COLLADA becomes STL
An XML scene, not a mesh file
A .dae document is a small database: libraries for geometries, materials, effects, cameras, lights and animations, tied together by a visual scene graph of nodes and instances. A single geometry can be instanced several times with different transforms, so the scene's triangle count is not the sum of its geometry libraries. Converting to STL means evaluating that graph and writing out the resulting triangles in world space. Instancing is expanded, so a part reused twenty times contributes twenty copies to the mesh.
Units and axes are the useful part of the format
COLLADA is one of the few mesh formats that states its scale: the asset block carries a unit with a meter conversion factor, and files from metric CAD tools often declare millimetres. It also declares an up axis, and Z-up is common outside game engines. The reader uses both declarations, converting to metres and rotating Z-up scenes into the Y-up convention. That is more care than most converters take, and it still cannot help STL, which has neither field.
External textures never resolve
COLLADA images are references to files beside the model. A browser cannot read a directory the user did not select, so those references fail and the preview falls back to material base colours. Geometry is unaffected. Since STL carries no texture coordinates or images, the exported mesh is the same whether the textures were found or not.
Materials, effects and animation are dropped
The material and effect libraries describe shading for a renderer, including diffuse, specular and transparency values. Animations live in samplers and channel targets. None of it has a destination in an STL, whose entire per-facet payload is a normal and three vertices. The conversion is therefore a snapshot of the loaded scene in its rest state, flattened and unshaded.
DAE vs STL
| COLLADA .dae source | Binary STL output | |
|---|---|---|
| Encoding | XML document with libraries | Binary facet stream |
| Scene structure | Node graph, instances, cameras, lights | One merged triangle list |
| Units | Declared in the asset block | None |
| Up axis | Declared Y_UP or Z_UP | Unspecified |
| Materials | Effects, shaders and texture references | None |
| Animation | Samplers and channels | One static pose |
| Instancing | One geometry reused by many nodes | Expanded into duplicate triangles |
| Purpose | Scene exchange between DCC tools | Slicer input |
Supported formats
| Format | Read | Write | Notes |
|---|---|---|---|
| STEP (.step .stp) | Yes | – | ISO 10303 B-rep, AP203 / AP214 / AP242 |
| IGES (.iges .igs) | Yes | – | Entity-based surfaces, up to 5.3 |
| BREP (.brep) | Yes | – | OpenCascade native B-rep |
| STL (.stl) | Yes | Yes | Binary and ASCII triangles, no units |
| OBJ (.obj) | Yes | Yes | v / vn / f records; .mtl references ignored |
| PLY (.ply) | Yes | Yes | Binary position and normal arrays |
| GLB / glTF (.glb .gltf) | Yes | Yes | glTF 2.0, binary or JSON with data URI |
| 3MF (.3mf) | Yes | Yes | OPC/ZIP package, declares millimetres |
| FBX (.fbx) | Yes | – | Binary and ASCII, static mesh only |
| DAE (.dae) | Yes | Yes | Collada scene graph is flattened |
| 3DS (.3ds) | Yes | – | Legacy chunk-based 3D Studio format |
| AMF (.amf) | Yes | – | XML, ZIP-compressed packages supported |
| USDZ (.usdz) | Yes | Yes | ZIP containing a USD stage |
Known limitations and why a conversion can fail
Textures referenced by relative path
Images beside the model cannot be read from a single dropped file. The preview loses its maps, though geometry and base colours survive. This is cosmetic for STL output and worth remembering before judging the conversion by the preview alone.
Very large scenes exhaust memory
XML parsing and the expanded instance graph both cost memory. A scene with heavy instancing can produce far more triangles than its geometry libraries suggest, and a browser tab has a finite WebAssembly address space. Export a sub-scene, or reduce mesh density in the authoring tool.
Non-manifold and single-sided geometry carries over
COLLADA does not require closed solids. Architectural models in particular are often made of open planes and zero-thickness walls. The conversion reproduces that faithfully; a slicer will then refuse the file or silently repair it. That is a modelling issue rather than a converter defect.
One file per run
The workspace converts one document at a time. There is no batch queue in the browser build, so a folder of .dae exports means one run each.
Frequently asked questions
Can I convert on this page itself?
No. This page is the reference for the DAE to STL path, and the conversion itself runs in the workspace that the button above opens, with both formats already selected. Your file is read in that browser tab and the download is written locally, so there is no upload stage in either place. Keeping the documentation and the engine on separate addresses lets file support and detail levels change behind one workspace without breaking the page you are reading.
Why is my SketchUp model the wrong size in the slicer?
Because COLLADA and STL disagree about what a number means, and the conversion resolves the first half only. A .dae declares its unit in the asset block, and the reader converts the scene to metres before it reaches the exporter. STL declares nothing, and slicers read its numbers as millimetres. A model authored in metres therefore lands in the slicer a thousand times too small. Multiply by 1000 with the workspace scale control, or set the correct import unit in the slicer and check a known dimension.
Does the converter respect the COLLADA up axis?
Yes at load time. COLLADA lets a file declare Y_UP or Z_UP, and SketchUp and many CAD tools write Z_UP while game-oriented tools write Y_UP. The reader rotates a Z-up scene into the Y-up convention used by the rest of the pipeline, so the preview is consistent regardless of the source. STL then declares no axis at all, and slicers lay parts on the XY plane, so a Z-up model may still need a rotation in the slicer after conversion.
Why are the textures missing in the preview?
Because a .dae references its images as separate files, often in a textures folder next to the model, and a browser file picker only provides the one file you drop. The geometry, materials and scene structure still load, but the referenced images cannot be resolved, so surfaces render with their base colours instead of the intended maps. This affects only the preview; an STL has no texture channel, so the exported mesh is identical either way.
Can I convert a .kmz file here?
Yes. A KMZ is a zipped KML package that can contain a COLLADA model, and the reader recognises that variant and loads its scene. It behaves exactly like the equivalent .dae once opened, including the unit and axis handling. A plain KML with placemarks and no model geometry has nothing to convert and will produce no mesh.
What happens to the scene hierarchy and materials?
Both are dropped at the export stage. COLLADA nodes, instances, materials, effects and animations are meaningful in a renderer and have no place in an STL facet record. The exporter flattens every instance into world coordinates and concatenates the triangles, so separately named parts become one shell. Materials and per-face colours disappear entirely because the binary STL facet has no material field.
Is a DAE from Blender or Maya compatible?
Normally yes. Both exporters write COLLADA 1.4 or 1.5 XML with a scene node tree and standard geometry elements, which is what this reader parses. The usual practical caveats apply: very dense meshes can exhaust tab memory, and non-manifold or single-sided geometry converts faithfully but may not slice. If the file is enormous, export the part you need rather than the whole scene.
References
Related converters
All converters
Last updated: