DAE — Signpost, Y_UP declared
The same signpost as COLLADA with `<up_axis>Y_UP</up_axis>` and `<unit meter="1" name="metre"/>` in its asset block. Unlike glTF, OBJ and STL, COLLADA states its convention — so an importer that still gets the orientation wrong has no excuse.
Interactive preview rendered from the equivalent glTF (signpost-y-up.glb); drag to orbit. Download the file above for the DAE original.
Specifications
- Format
- COLLADA 1.4.1
- Up Axis
- Y_UP
- Unit Meter
- 1
- Unit Name
- metre
- Declares Axis
- true
- Vertices
- 144
- Triangles
- 48
Testing contract
Expected to pass- Scenario
- Import into a Y-up application and check whether the declared up_axis was honoured.
- Expected result
- Upright with no correction; the file declares Y_UP and the coordinates agree with it
What is a .dae file?
COLLADA (.dae, Digital Asset Exchange) is an XML-based 3D interchange format for meshes, materials, scenes, and animation. It was a common exchange format between DCC tools and early WebGL/AR pipelines.
How to use this file
Use an example .dae file to test COLLADA importers, XML 3D parsing, and DAE-to-glTF/OBJ conversion.
How to use this file for testing
“DAE — Signpost, Y_UP declared” is a deterministic Novus Examples fixture for Conversion testing, Metadata testing, Mesh processing QA. The same content exported across many formats and linked as a group, so you can convert one and diff against the expected twin.
Documented properties for this file: COLLADA 1.4.1. Compare results against paired or grouped companions on this page when present (clean↔damaged, searchable↔scanned, or format twins) so scores stay reproducible across runs.
Download the file once, keep the path stable in CI or local scripts, and treat the spec table as the contract: dimensions, seeds, field lists, and roles are intentional. Corrupt or invalid samples are labelled as such — expect parsers to fail loudly rather than silently accept them.
3D and CAD fixtures carry one small, documented solid or scene. Convert and inspect against the known geometry, units, and structure; format twins let you diff interchange fidelity, and the 3D viewer previews the actual mesh.
Code examples
import trimesh # pip install trimesh
mesh = trimesh.load("signpost-y-up.dae")
print(mesh.bounds, mesh.faces.shape)Related files
- glbGLB — Signpost authored in CentimetresA 1.12 m signpost with its coordinates written in centimetres — so this file's numbers read up to 112. glTF has no unit field: the spec simply says metres, which means a wrongly-scaled export is indistinguishable from a genuinely enormous model until something is measured.

- glbGLB — Signpost authored in MetresA 1.12 m signpost with its coordinates written in metres — so this file's numbers read up to 1.12. glTF has no unit field: the spec simply says metres, which means a wrongly-scaled export is indistinguishable from a genuinely enormous model until something is measured.

- glbGLB — Signpost authored in MillimetresA 1.12 m signpost with its coordinates written in millimetres — so this file's numbers read up to 1120. glTF has no unit field: the spec simply says metres, which means a wrongly-scaled export is indistinguishable from a genuinely enormous model until something is measured.

- glbGLB — Signpost, Z-upThe same signpost authored +Z up — what a Blender or 3ds Max glTF export produces when the axis conversion is skipped. glTF has no field in which to declare this, so the file is indistinguishable from a model that genuinely lies on its back, and every conformant viewer will show it that way.

- objOBJ — Signpost authored in MetresThe same signpost as OBJ with coordinates in metres. OBJ has no unit record of any kind, so the two OBJ files in this group are byte-different and semantically identical — the ambiguity that every OBJ import dialog's scale box exists to resolve.

- objOBJ — Signpost authored in MillimetresThe same signpost as OBJ with coordinates in millimetres. OBJ has no unit record of any kind, so the two OBJ files in this group are byte-different and semantically identical — the ambiguity that every OBJ import dialog's scale box exists to resolve.

Generated by generation/models_p7.py. Free for any use, no attribution required — license.