When animation leaves the DCC as UsdSkel or an Alembic cache, which of joint order, bind/rest pose, topology, velocity, time base and units are stated by the specs and what does the Alembic-to-USD reader do with the rest?
UsdSkel stores joints in an ordered list with world-space bind and local-space rest transforms (rest may be omitted only with a complete, non-sparse animation; animation joint order may differ from the skeleton's). Alembic marks topology changes by full samples and stores explicit time samples; OpenUSD's Alembic reader takes the frame rate from archive metadata, assumes Y-up when none is authored and never sets metersPerUnit, so units and up-axis need checking after conversion.
UsdSkel stores joints in an ordered list with world-space bind and local-space rest transforms (rest may be omitted only with a complete, non-sparse animation; animation joint order may differ from the skeleton's). Alembic marks topology changes by full samples and stores explicit time samples; OpenUSD's Alembic reader takes the frame rate from archive metadata, assumes Y-up when none is authored and never sets metersPerUnit, so units and up-axis need checking after conversion.
Curator qualifications: Zero-fetch review 2026-10-22 against held readbacks; nothing executed. Unreal Alembic import (E7) not re-read.
Limitations: Zero-fetch review 2026-10-22 against held readbacks; nothing executed.
Evidence status: statements located in the cited sources by a correlated desk review (Claude); not executed; not independently reviewed.
Structured fields
{
"citations": [
{
"url": "https://dev.epicgames.com/documentation/en-us/unreal-engine/alembic-file-importer-in-unreal-engine",
"note": "OpenUSD ee47c679 usdSkel/doxygen/schemaOverview.dox L82-L134; Alembic 6f59e4d0 AbcGeom/OPolyMesh.h L72-L96; Alembic AbcCoreAbstract/TimeSampling.h L52-L56; OpenUSD ee47c679 usdAbc/alembicReader.cpp L1015-L1027, L1100-L1108"
},
{
"url": "https://github.com/alembic/alembic/blob/6f59e4d0c9012c67e242da510b31d96504db8e01/lib/Alembic/AbcGeom/OPolyMesh.h",
"note": "OpenUSD ee47c679 usdSkel/doxygen/schemaOverview.dox L82-L134; Alembic 6f59e4d0 AbcGeom/OPolyMesh.h L72-L96; Alembic AbcCoreAbstract/TimeSampling.h L52-L56; OpenUSD ee47c679 usdAbc/alembicReader.cpp L1015-L1027, L1100-L1108"
},
{
"url": "https://github.com/alembic/alembic/blob/6f59e4d0c9012c67e242da510b31d96504db8e01/lib/Alembic/AbcCoreAbstract/TimeSampling.h",
"note": "OpenUSD ee47c679 usdSkel/doxygen/schemaOverview.dox L82-L134; Alembic 6f59e4d0 AbcGeom/OPolyMesh.h L72-L96; Alembic AbcCoreAbstract/TimeSampling.h L52-L56; OpenUSD ee47c679 usdAbc/alembicReader.cpp L1015-L1027, L1100-L1108"
},
{
"url": "https://github.com/PixarAnimationStudios/OpenUSD/blob/ee47c679abde5b467a7b6a41f3b2285564a4222e/pxr/usd/usdSkel/doxygen/schemaOverview.dox",
"note": "OpenUSD ee47c679 usdSkel/doxygen/schemaOverview.dox L82-L134; Alembic 6f59e4d0 AbcGeom/OPolyMesh.h L72-L96; Alembic AbcCoreAbstract/TimeSampling.h L52-L56; OpenUSD ee47c679 usdAbc/alembicReader.cpp L1015-L1027, L1100-L1108"
},
{
"url": "https://github.com/PixarAnimationStudios/OpenUSD/blob/ee47c679abde5b467a7b6a41f3b2285564a4222e/pxr/usd/plugin/usdAbc/alembicReader.cpp",
"note": "OpenUSD ee47c679 usdSkel/doxygen/schemaOverview.dox L82-L134; Alembic 6f59e4d0 AbcGeom/OPolyMesh.h L72-L96; Alembic AbcCoreAbstract/TimeSampling.h L52-L56; OpenUSD ee47c679 usdAbc/alembicReader.cpp L1015-L1027, L1100-L1108"
}
]
}Evidence claims
- [sourced_fact] UsdSkel stores joints in an ordered list with world-space bind and local-space rest transforms (rest may be omitted only with a complete, non-sparse animation; animation joint order may differ from the skeleton's). Alembic marks topology changes by full samples and stores explicit time samples; OpenUSD's Alembic reader takes the frame rate from archive metadata, assumes Y-up when none is authored and never sets metersPerUnit, so units and up-axis need checking after conversion. · locator: OpenUSD ee47c679 usdSkel/doxygen/schemaOverview.dox L82-L134; Alembic 6f59e4d0 AbcGeom/OPolyMesh.h L72-L96; Alembic AbcCoreAbstract/TimeSampling.h L52-L56; OpenUSD ee47c679 usdAbc/alembicReader.cpp L1015-L1027, L1100-L1108 source
Rights
| component | license | hosting | redistribution | modification | training | Evidence and notes |
|---|---|---|---|---|---|---|
| documentation | unknown | permitted | permitted | unknown | unknown | Applies to this original summary only, not to the cited sources. |
Linked records
- cites → https://dev.epicgames.com/documentation/en-us/unreal-engine/alembic-file-importer-in-unreal-engine
- cites → https://github.com/PixarAnimationStudios/OpenUSD/blob/ee47c679abde5b467a7b6a41f3b2285564a4222e/pxr/usd/plugin/usdAbc/alembicReader.cpp
- cites → https://github.com/PixarAnimationStudios/OpenUSD/blob/ee47c679abde5b467a7b6a41f3b2285564a4222e/pxr/usd/usdSkel/doxygen/schemaOverview.dox
- cites → https://github.com/alembic/alembic/blob/6f59e4d0c9012c67e242da510b31d96504db8e01/lib/Alembic/AbcCoreAbstract/TimeSampling.h
- cites → https://github.com/alembic/alembic/blob/6f59e4d0c9012c67e242da510b31d96504db8e01/lib/Alembic/AbcGeom/OPolyMesh.h