@aura3d/assets 1.0.6 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"browser-index.d.ts","sourceRoot":"","sources":["../../../../packages/assets/src/browser-index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"browser-index.d.ts","sourceRoot":"","sources":["../../../../packages/assets/src/browser-index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,YAAY,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtF,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,YAAY,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;AAC5E,YAAY,EACV,wBAAwB,EACxB,qBAAqB,EACrB,gCAAgC,EACjC,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,+BAA+B,EAAE,MAAM,yBAAyB,CAAC;AAC1E,YAAY,EACV,2BAA2B,EAC3B,uBAAuB,EACvB,gBAAgB,EAChB,wBAAwB,EACxB,yBAAyB,EACzB,wBAAwB,EACzB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAC1E,YAAY,EAAE,cAAc,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAClF,YAAY,EACV,SAAS,EACT,eAAe,EACf,8BAA8B,EAC9B,yBAAyB,EACzB,yBAAyB,EACzB,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,4BAA4B,EAC5B,qBAAqB,EACrB,gCAAgC,EAChC,iBAAiB,EACjB,iBAAiB,EACjB,wBAAwB,EACxB,+BAA+B,EAC/B,aAAa,EACb,2BAA2B,EAC3B,kBAAkB,EAClB,0CAA0C,EAC1C,uBAAuB,EACvB,gBAAgB,EAChB,cAAc,EACd,sBAAsB,EACtB,0BAA0B,EAC1B,aAAa,EACb,6BAA6B,EAC7B,gBAAgB,EAChB,iCAAiC,EACjC,2BAA2B,EAC3B,mBAAmB,EACnB,4BAA4B,EAC7B,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,YAAY,EACV,yBAAyB,EACzB,uBAAuB,EACvB,wBAAwB,EACxB,sBAAsB,EACtB,kBAAkB,EAClB,yBAAyB,EACzB,gCAAgC,EAChC,kBAAkB,EAClB,qBAAqB,EACtB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EACL,qCAAqC,EACrC,oCAAoC,EACpC,6BAA6B,EAC7B,uCAAuC,EACvC,sCAAsC,EACtC,sCAAsC,EACtC,8BAA8B,EAC9B,4BAA4B,EAC5B,uBAAuB,EACxB,MAAM,wBAAwB,CAAC;AAChC,YAAY,EACV,yBAAyB,EACzB,8BAA8B,EAC9B,0BAA0B,EAC1B,0BAA0B,EAC3B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,6BAA6B,EAAE,+BAA+B,EAAE,gCAAgC,EAAE,8BAA8B,EAAE,8BAA8B,EAAE,yBAAyB,EAAE,8BAA8B,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC1R,YAAY,EACV,uCAAuC,EACvC,wCAAwC,EACxC,6BAA6B,EAC7B,4BAA4B,EAC5B,6BAA6B,EAC7B,gCAAgC,EAChC,6BAA6B,EAC7B,mCAAmC,EACnC,sCAAsC,EACtC,wCAAwC,EACxC,8BAA8B,EAC9B,6BAA6B,EAC7B,+BAA+B,EAC/B,mCAAmC,EACnC,gCAAgC,EAChC,iCAAiC,EACjC,qCAAqC,EACrC,sCAAsC,EACtC,aAAa,EACb,0BAA0B,EAC3B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,wCAAwC,EACxC,2CAA2C,EAC3C,iCAAiC,EACjC,gDAAgD,EAChD,uCAAuC,EACvC,oDAAoD,EACpD,mCAAmC,EACnC,yBAAyB,EACzB,sBAAsB,EACvB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,gCAAgC,EAChC,4BAA4B,EAC5B,sCAAsC,EACvC,MAAM,+BAA+B,CAAC;AACvC,YAAY,EACV,0BAA0B,EAC1B,4BAA4B,EAC5B,kCAAkC,EAClC,kCAAkC,EACnC,MAAM,+BAA+B,CAAC;AACvC,YAAY,EACV,gBAAgB,EAChB,gBAAgB,EAChB,+BAA+B,EAC/B,6BAA6B,EAC7B,oCAAoC,EACpC,uCAAuC,EACvC,uBAAuB,EACvB,yBAAyB,EACzB,mBAAmB,EACnB,uBAAuB,EACvB,iBAAiB,EACjB,wBAAwB,EACzB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,YAAY,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,YAAY,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,EACL,6BAA6B,EAC7B,sBAAsB,EACtB,4BAA4B,EAC5B,0BAA0B,EAC3B,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,eAAe,EACf,uBAAuB,EACvB,mBAAmB,EACnB,eAAe,EACf,qBAAqB,EACrB,qBAAqB,EACrB,wBAAwB,EACxB,kBAAkB,EAClB,gBAAgB,EAChB,uBAAuB,EACvB,gBAAgB,EAChB,0BAA0B,EAC3B,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,8BAA8B,EAC/B,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,4BAA4B,EAC5B,wBAAwB,EACxB,6BAA6B,EAC7B,+BAA+B,EAC/B,wBAAwB,EACxB,8BAA8B,EAC9B,gCAAgC,EAChC,sCAAsC,EACvC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,iCAAiC,EACjC,6BAA6B,EAC7B,wCAAwC,EACxC,oCAAoC,EACrC,MAAM,4BAA4B,CAAC;AACpC,YAAY,EACV,6BAA6B,EAC7B,gCAAgC,EAChC,+BAA+B,EAC/B,yBAAyB,EACzB,4BAA4B,EAC5B,2BAA2B,EAC5B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,YAAY,EAAE,0BAA0B,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC9G,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,YAAY,EAAE,4BAA4B,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC7F,OAAO,EACL,kCAAkC,EAClC,gCAAgC,EACjC,MAAM,6CAA6C,CAAC;AACrD,YAAY,EACV,4BAA4B,EAC5B,2BAA2B,EAC3B,4BAA4B,EAC5B,mCAAmC,EACpC,MAAM,6CAA6C,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACrF,YAAY,EACV,kBAAkB,EAClB,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,EACtB,aAAa,EACb,qBAAqB,EACrB,eAAe,EACf,wBAAwB,EACzB,MAAM,2BAA2B,CAAC"}
@@ -7,11 +7,12 @@ export { AssetRegistry } from "./AssetRegistry.js";
7
7
  export { ImageLoader } from "./ImageLoader.js";
8
8
  export { createAssetBundleCacheEvidence } from "./AssetBundleCacheFixtures.js";
9
9
  export { createGLTFSceneAnalysisEvidence } from "./SceneAnalysisFixtures.js";
10
- export { GLTFLoader } from "./GLTFLoader.js";
10
+ export { GLTFLoader, normalizeSkinWeights } from "./GLTFLoader.js";
11
+ export { autoFitGLTFScene, computeAutoFitTransform } from "./GLTFAutoFit.js";
11
12
  export { inspectGLTFAsset } from "./AssetInspection.js";
12
13
  export { OBJLoader } from "./OBJLoader.js";
13
14
  export { GLTF_DECODER_REQUIRED_EXTENSION_NAMES, GLTF_DIAGNOSTIC_ONLY_EXTENSION_NAMES, GLTF_EXTENSION_SUPPORT_MATRIX, GLTF_PARSED_WITH_LIMITS_EXTENSION_NAMES, GLTF_REQUIRED_ACCEPTED_EXTENSION_NAMES, GLTF_RUNTIME_SUPPORTED_EXTENSION_NAMES, GLTF_SUPPORTED_EXTENSION_NAMES, evaluateGLTFExtensionSupport, getGLTFExtensionSupport } from "./GLTFExtensionSupport.js";
14
- export { createGLTFSceneAnimationMixer, createGLTFSceneAnimationRuntime, GLTFImportedSkeletonIKController, GLTFSceneAnimationCloneSampler, GLTFSceneAnimationMixerBinding, GLTFSceneAnimationRuntime, GLTFSceneMorphTargetController } from "./GLTFAnimationRuntime.js";
15
+ export { createGLTFSceneAnimationMixer, createGLTFSceneAnimationRuntime, GLTFImportedSkeletonIKController, GLTFSceneAnimationCloneSampler, GLTFSceneAnimationMixerBinding, GLTFSceneAnimationRuntime, GLTFSceneMorphTargetController, resolveGLTFClipName } from "./GLTFAnimationRuntime.js";
15
16
  export { DEFAULT_GLTF_RENDER_ENVIRONMENT_LIGHTING, DEFAULT_GLTF_HDR_STUDIO_PREVIEW_POSTPROCESS, DEFAULT_GLTF_STUDIO_PREVIEW_FRAME, DEFAULT_GLTF_STUDIO_PREVIEW_ENVIRONMENT_LIGHTING, DEFAULT_GLTF_STUDIO_PREVIEW_POSTPROCESS, createDefaultGLTFHdrStudioPreviewEnvironmentLighting, createGLTFRenderResourceDiagnostics, createGLTFRenderResources, createGLTFRenderSource } from "./GLTFRenderResources.js";
16
17
  export { applyCarConceptMaterialStability, carConceptMaterialVisualRole, carConceptMaterialRenderStateOverrides } from "./CarConceptMaterialStability.js";
17
18
  export { LoadContext } from "./LoadContext.js";
@@ -1 +1 @@
1
- {"version":3,"file":"browser-index.js","sourceRoot":"","sources":["../../../../packages/assets/src/browser-index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;AAM5E,OAAO,EAAE,+BAA+B,EAAE,MAAM,yBAAyB,CAAC;AAS1E,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAkC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAYrD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EACL,qCAAqC,EACrC,oCAAoC,EACpC,6BAA6B,EAC7B,uCAAuC,EACvC,sCAAsC,EACtC,sCAAsC,EACtC,8BAA8B,EAC9B,4BAA4B,EAC5B,uBAAuB,EACxB,MAAM,wBAAwB,CAAC;AAOhC,OAAO,EAAE,6BAA6B,EAAE,+BAA+B,EAAE,gCAAgC,EAAE,8BAA8B,EAAE,8BAA8B,EAAE,yBAAyB,EAAE,8BAA8B,EAAE,MAAM,wBAAwB,CAAC;AAqBrQ,OAAO,EACL,wCAAwC,EACxC,2CAA2C,EAC3C,iCAAiC,EACjC,gDAAgD,EAChD,uCAAuC,EACvC,oDAAoD,EACpD,mCAAmC,EACnC,yBAAyB,EACzB,sBAAsB,EACvB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,gCAAgC,EAChC,4BAA4B,EAC5B,sCAAsC,EACvC,MAAM,+BAA+B,CAAC;AAqBvC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EACL,6BAA6B,EAC7B,sBAAsB,EACtB,4BAA4B,EAC5B,0BAA0B,EAC3B,MAAM,eAAe,CAAC;AAevB,OAAO,EACL,8BAA8B,EAC/B,MAAM,sBAAsB,CAAC;AAW9B,OAAO,EACL,iCAAiC,EACjC,6BAA6B,EAC7B,wCAAwC,EACxC,oCAAoC,EACrC,MAAM,4BAA4B,CAAC;AASpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,OAAO,EACL,kCAAkC,EAClC,gCAAgC,EACjC,MAAM,6CAA6C,CAAC;AAOrD,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC"}
1
+ {"version":3,"file":"browser-index.js","sourceRoot":"","sources":["../../../../packages/assets/src/browser-index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;AAM5E,OAAO,EAAE,+BAA+B,EAAE,MAAM,yBAAyB,CAAC;AAS1E,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAoC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAYrD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EACL,qCAAqC,EACrC,oCAAoC,EACpC,6BAA6B,EAC7B,uCAAuC,EACvC,sCAAsC,EACtC,sCAAsC,EACtC,8BAA8B,EAC9B,4BAA4B,EAC5B,uBAAuB,EACxB,MAAM,wBAAwB,CAAC;AAOhC,OAAO,EAAE,6BAA6B,EAAE,+BAA+B,EAAE,gCAAgC,EAAE,8BAA8B,EAAE,8BAA8B,EAAE,yBAAyB,EAAE,8BAA8B,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAuB1R,OAAO,EACL,wCAAwC,EACxC,2CAA2C,EAC3C,iCAAiC,EACjC,gDAAgD,EAChD,uCAAuC,EACvC,oDAAoD,EACpD,mCAAmC,EACnC,yBAAyB,EACzB,sBAAsB,EACvB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,gCAAgC,EAChC,4BAA4B,EAC5B,sCAAsC,EACvC,MAAM,+BAA+B,CAAC;AAqBvC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EACL,6BAA6B,EAC7B,sBAAsB,EACtB,4BAA4B,EAC5B,0BAA0B,EAC3B,MAAM,eAAe,CAAC;AAevB,OAAO,EACL,8BAA8B,EAC/B,MAAM,sBAAsB,CAAC;AAW9B,OAAO,EACL,iCAAiC,EACjC,6BAA6B,EAC7B,wCAAwC,EACxC,oCAAoC,EACrC,MAAM,4BAA4B,CAAC;AASpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,OAAO,EACL,kCAAkC,EAClC,gCAAgC,EACjC,MAAM,6CAA6C,CAAC;AAOrD,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC"}
package/dist/index.d.ts CHANGED
@@ -9,8 +9,8 @@ export { inspectGLTFAsset } from "./AssetInspection";
9
9
  export type { GLTFAnimationInspection, GLTFAssetInspectionReport, GLTFDependencyInspection, GLTFMaterialInspection, GLTFMaterialTextureSlotInspection, GLTFMeshInspection, GLTFMorphTargetInspection, GLTFSceneHierarchyNodeInspection, GLTFSkinInspection, GLTFTextureInspection } from "./AssetInspection";
10
10
  export { GLTF_DECODER_REQUIRED_EXTENSION_NAMES, GLTF_DIAGNOSTIC_ONLY_EXTENSION_NAMES, GLTF_EXTENSION_SUPPORT_MATRIX, GLTF_PARSED_WITH_LIMITS_EXTENSION_NAMES, GLTF_REQUIRED_ACCEPTED_EXTENSION_NAMES, GLTF_RUNTIME_SUPPORTED_EXTENSION_NAMES, GLTF_SUPPORTED_EXTENSION_NAMES, evaluateGLTFExtensionSupport, getGLTFExtensionSupport } from "./GLTFExtensionSupport";
11
11
  export type { GLTFExtensionSupportEntry, GLTFExtensionSupportEvaluation, GLTFExtensionSupportFamily, GLTFExtensionSupportStatus } from "./GLTFExtensionSupport";
12
- export { createGLTFSceneAnimationMixer, createGLTFSceneAnimationRuntime, GLTFImportedSkeletonIKController, GLTFSceneAnimationCloneSampler, GLTFSceneAnimationMixerBinding, GLTFSceneAnimationRuntime, GLTFSceneMorphTargetController } from "./GLTFAnimationRuntime";
13
- export type { GLTFImportedSkeletonIKControllerOptions, GLTFImportedSkeletonIKControllerSnapshot, GLTFImportedSkeletonIKOptions, GLTFImportedSkeletonIKResult, GLTFSceneAnimationApplyResult, GLTFSceneAnimationActionSnapshot, GLTFSceneAnimationCloneSample, GLTFSceneAnimationCloneSampleResult, GLTFSceneAnimationCloneSamplerSnapshot, GLTFSceneAnimationClipBindingDiagnostics, GLTFSceneAnimationMixerOptions, GLTFSceneAnimationPlayOptions, GLTFSceneAnimationMixerSnapshot, GLTFSceneAnimationMixerUpdateResult, GLTFSceneAnimationRuntimeOptions, GLTFSceneAnimationRuntimeSnapshot, GLTFSceneMorphTargetControllerOptions, GLTFSceneMorphTargetControllerSnapshot } from "./GLTFAnimationRuntime";
12
+ export { createGLTFSceneAnimationMixer, createGLTFSceneAnimationRuntime, GLTFImportedSkeletonIKController, GLTFSceneAnimationCloneSampler, GLTFSceneAnimationMixerBinding, GLTFSceneAnimationRuntime, GLTFSceneMorphTargetController, resolveGLTFClipName } from "./GLTFAnimationRuntime";
13
+ export type { GLTFImportedSkeletonIKControllerOptions, GLTFImportedSkeletonIKControllerSnapshot, GLTFImportedSkeletonIKOptions, GLTFImportedSkeletonIKResult, GLTFSceneAnimationApplyResult, GLTFSceneAnimationClipSample, GLTFSceneAnimationClipBoneMask, GLTFSceneAnimationActionSnapshot, GLTFSceneAnimationCloneSample, GLTFSceneAnimationCloneSampleResult, GLTFSceneAnimationCloneSamplerSnapshot, GLTFSceneAnimationClipBindingDiagnostics, GLTFSceneAnimationMixerOptions, GLTFSceneAnimationPlayOptions, GLTFSceneAnimationMixerSnapshot, GLTFSceneAnimationMixerUpdateResult, GLTFSceneAnimationRuntimeOptions, GLTFSceneAnimationRuntimeSnapshot, GLTFSceneMorphTargetControllerOptions, GLTFSceneMorphTargetControllerSnapshot, GLTFScenePose, GLTFScenePoseBoneTransform } from "./GLTFAnimationRuntime";
14
14
  export { AssetHandle } from "./AssetHandle";
15
15
  export type { AssetHandleOptions, AssetHandleStatus } from "./AssetHandle";
16
16
  export { AssetLoadError } from "./AssetLoader";
@@ -45,10 +45,12 @@ export { applyCarConceptMaterialStability, carConceptMaterialVisualRole, carConc
45
45
  export type { CarConceptMaterialBaseline, CarConceptMaterialVisualRole, CarConceptMaterialStabilityOptions, CarConceptMaterialStabilityProfile } from "./CarConceptMaterialStability";
46
46
  export { ImageLoader } from "./ImageLoader";
47
47
  export type { ImageAsset } from "./ImageLoader";
48
- export { GLTFLoader } from "./GLTFLoader";
49
- export type { GLTFAsset, GLTFCameraAsset, GLTFClearcoatMaterialExtension, GLTFDracoDecodeDescriptor, GLTFDracoDecodedPrimitive, GLTFDracoDecoder, GLTFGeometryAsset, GLTFImageAsset, GLTFLightAsset, GLTFLoaderOptions, GLTFLoaderDiagnostics, GLTFMaterialAsset, GLTFMaterialVariantAsset, GLTFMaterialVariantMappingAsset, GLTFMeshAsset, GLTFMeshoptDecodeDescriptor, GLTFMeshoptDecoder, GLTFPBRSpecularGlossinessMaterialExtension, GLTFResolvedTextureInfo, GLTFSamplerAsset, GLTFSceneAsset, GLTFSceneCreateOptions, GLTFSheenMaterialExtension, GLTFSkinAsset, GLTFSpecularMaterialExtension, GLTFTextureAsset, GLTFTransmissionMaterialExtension, GLTFVolumeMaterialExtension, SerializedGLTFAsset } from "./GLTFLoader";
48
+ export { GLTFLoader, normalizeSkinWeights } from "./GLTFLoader";
49
+ export { autoFitGLTFScene, computeAutoFitTransform } from "./GLTFAutoFit";
50
+ export type { AutoFitOptions, AutoFitTransform, GLTFUpAxis } from "./GLTFAutoFit";
51
+ export type { GLTFAsset, GLTFCameraAsset, GLTFClearcoatMaterialExtension, GLTFDracoDecodeDescriptor, GLTFDracoDecodedPrimitive, GLTFDracoDecoder, GLTFGeometryAsset, GLTFImageAsset, GLTFLightAsset, GLTFLoaderOptions, GLTFLoaderDiagnostics, SkinWeightNormalizationStats, GLTFMaterialAsset, GLTFMaterialVariantAsset, GLTFMaterialVariantMappingAsset, GLTFMeshAsset, GLTFMeshoptDecodeDescriptor, GLTFMeshoptDecoder, GLTFPBRSpecularGlossinessMaterialExtension, GLTFResolvedTextureInfo, GLTFSamplerAsset, GLTFSceneAsset, GLTFSceneCreateOptions, GLTFSheenMaterialExtension, GLTFSkinAsset, GLTFSpecularMaterialExtension, GLTFTextureAsset, GLTFTransmissionMaterialExtension, GLTFVolumeMaterialExtension, SerializedGLTFAsset } from "./GLTFLoader";
50
52
  export { OBJLoader } from "./OBJLoader";
51
- export { DEFAULT_GLTF_RENDER_ENVIRONMENT_LIGHTING, DEFAULT_GLTF_HDR_STUDIO_PREVIEW_POSTPROCESS, DEFAULT_GLTF_STUDIO_PREVIEW_FRAME, DEFAULT_GLTF_STUDIO_PREVIEW_ENVIRONMENT_LIGHTING, DEFAULT_GLTF_STUDIO_PREVIEW_POSTPROCESS, createDefaultGLTFHdrStudioPreviewEnvironmentLighting, createGLTFRenderResourceDiagnostics, createGLTFRenderResources, createGLTFRenderSource } from "./GLTFRenderResources";
53
+ export { DEFAULT_GLTF_RENDER_ENVIRONMENT_LIGHTING, DEFAULT_GLTF_HDR_STUDIO_PREVIEW_POSTPROCESS, DEFAULT_GLTF_STUDIO_PREVIEW_FRAME, DEFAULT_GLTF_STUDIO_PREVIEW_ENVIRONMENT_LIGHTING, DEFAULT_GLTF_STUDIO_PREVIEW_POSTPROCESS, createDefaultGLTFHdrStudioPreviewEnvironmentLighting, createGLTFRenderResourceDiagnostics, createGLTFRenderResources, createGLTFRenderSource, renderStateForGLTFMaterial } from "./GLTFRenderResources";
52
54
  export type { DecodedGLTFImage, GLTFImageDecoder, GLTFMaterialRenderStateOverride, GLTFMaterialOverrideQuery, GLTFMaterialOverrideTarget, GLTFRenderableBinding, GLTFRenderResourceDiagnostics, GLTFRenderResourceDiagnosticsOptions, GLTFRenderResourceTextureSlotDiagnostic, GLTFRenderQualityPreset, GLTFRendererInput, GLTFRendererInputOptions, GLTFRenderResourceOptions, GLTFRenderSourceOptions, GLTFRenderResources } from "./GLTFRenderResources";
53
55
  export { createAssetRenderDefaults, DEFAULT_ASSET_RENDER_VIEWPORT } from "./AssetRenderDefaults";
54
56
  export type { AssetRenderDefaults, AssetRenderLightingPreset } from "./AssetRenderDefaults";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../packages/assets/src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../packages/assets/src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -4,7 +4,7 @@ export { createGLTFSceneAnalysisEvidence } from "./SceneAnalysisFixtures.js";
4
4
  export { AssetDependencyGraph } from "./AssetDependencyGraph.js";
5
5
  export { inspectGLTFAsset } from "./AssetInspection.js";
6
6
  export { GLTF_DECODER_REQUIRED_EXTENSION_NAMES, GLTF_DIAGNOSTIC_ONLY_EXTENSION_NAMES, GLTF_EXTENSION_SUPPORT_MATRIX, GLTF_PARSED_WITH_LIMITS_EXTENSION_NAMES, GLTF_REQUIRED_ACCEPTED_EXTENSION_NAMES, GLTF_RUNTIME_SUPPORTED_EXTENSION_NAMES, GLTF_SUPPORTED_EXTENSION_NAMES, evaluateGLTFExtensionSupport, getGLTFExtensionSupport } from "./GLTFExtensionSupport.js";
7
- export { createGLTFSceneAnimationMixer, createGLTFSceneAnimationRuntime, GLTFImportedSkeletonIKController, GLTFSceneAnimationCloneSampler, GLTFSceneAnimationMixerBinding, GLTFSceneAnimationRuntime, GLTFSceneMorphTargetController } from "./GLTFAnimationRuntime.js";
7
+ export { createGLTFSceneAnimationMixer, createGLTFSceneAnimationRuntime, GLTFImportedSkeletonIKController, GLTFSceneAnimationCloneSampler, GLTFSceneAnimationMixerBinding, GLTFSceneAnimationRuntime, GLTFSceneMorphTargetController, resolveGLTFClipName } from "./GLTFAnimationRuntime.js";
8
8
  export { AssetHandle } from "./AssetHandle.js";
9
9
  export { AssetLoadError } from "./AssetLoader.js";
10
10
  export { AssetManager } from "./AssetManager.js";
@@ -23,9 +23,10 @@ export { assertValidBlenderExportFixtureManifest, createBlenderExportValidationR
23
23
  export { createDracoDecoder, createMeshoptDecoder } from "./GLTFCompressionDecoders.js";
24
24
  export { applyCarConceptMaterialStability, carConceptMaterialVisualRole, carConceptMaterialRenderStateOverrides } from "./CarConceptMaterialStability.js";
25
25
  export { ImageLoader } from "./ImageLoader.js";
26
- export { GLTFLoader } from "./GLTFLoader.js";
26
+ export { GLTFLoader, normalizeSkinWeights } from "./GLTFLoader.js";
27
+ export { autoFitGLTFScene, computeAutoFitTransform } from "./GLTFAutoFit.js";
27
28
  export { OBJLoader } from "./OBJLoader.js";
28
- export { DEFAULT_GLTF_RENDER_ENVIRONMENT_LIGHTING, DEFAULT_GLTF_HDR_STUDIO_PREVIEW_POSTPROCESS, DEFAULT_GLTF_STUDIO_PREVIEW_FRAME, DEFAULT_GLTF_STUDIO_PREVIEW_ENVIRONMENT_LIGHTING, DEFAULT_GLTF_STUDIO_PREVIEW_POSTPROCESS, createDefaultGLTFHdrStudioPreviewEnvironmentLighting, createGLTFRenderResourceDiagnostics, createGLTFRenderResources, createGLTFRenderSource } from "./GLTFRenderResources.js";
29
+ export { DEFAULT_GLTF_RENDER_ENVIRONMENT_LIGHTING, DEFAULT_GLTF_HDR_STUDIO_PREVIEW_POSTPROCESS, DEFAULT_GLTF_STUDIO_PREVIEW_FRAME, DEFAULT_GLTF_STUDIO_PREVIEW_ENVIRONMENT_LIGHTING, DEFAULT_GLTF_STUDIO_PREVIEW_POSTPROCESS, createDefaultGLTFHdrStudioPreviewEnvironmentLighting, createGLTFRenderResourceDiagnostics, createGLTFRenderResources, createGLTFRenderSource, renderStateForGLTFMaterial } from "./GLTFRenderResources.js";
29
30
  export { createAssetRenderDefaults, DEFAULT_ASSET_RENDER_VIEWPORT } from "./AssetRenderDefaults.js";
30
31
  export { loadRenderableAsset } from "./loadRenderableAsset.js";
31
32
  export { createRenderableScene } from "./createRenderableScene.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/assets/src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/assets/src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aura3d/assets",
3
- "version": "1.0.6",
3
+ "version": "1.3.0",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": {
@@ -15,9 +15,9 @@
15
15
  "main": "./dist/index.js",
16
16
  "types": "./dist/index.d.ts",
17
17
  "dependencies": {
18
- "@aura3d/animation": "1.0.6",
19
- "@aura3d/rendering": "1.0.6",
20
- "@aura3d/scene": "1.0.6"
18
+ "@aura3d/animation": "workspace:*",
19
+ "@aura3d/rendering": "workspace:*",
20
+ "@aura3d/scene": "workspace:*"
21
21
  },
22
22
  "sideEffects": false
23
- }
23
+ }
@@ -8,11 +8,114 @@ export interface GLTFSceneAnimationRuntimeOptions {
8
8
  readonly asset?: Pick<GLTFAsset, "meshes" | "skins">;
9
9
  }
10
10
 
11
+ /**
12
+ * Synonym groups for fuzzy clip-name matching. Real catalog assets label the same
13
+ * motion wildly differently ("Loops" vs "Idle", "Take 001" vs "Run", "sprint" vs
14
+ * "run"). Each inner array is a set of interchangeable canonical tokens.
15
+ */
16
+ const GLTF_CLIP_SYNONYM_GROUPS: readonly (readonly string[])[] = [
17
+ ["idle", "static", "rest", "loops", "loop", "tpose", "t-pose", "bind"],
18
+ ["walk", "walking", "stroll"],
19
+ ["run", "running", "sprint", "jog"],
20
+ ["wave", "emote-yes", "emoteyes", "greet", "hello"],
21
+ ["jump", "jumping", "hop"],
22
+ ["attack", "punch", "hit", "strike"],
23
+ ["death", "die", "dead"]
24
+ ];
25
+
26
+ function normalizeClipToken(name: string): string {
27
+ return name.toLowerCase().replace(/[\s_.\-]+/g, "");
28
+ }
29
+
30
+ /**
31
+ * Resolve a requested clip name to the best available clip name.
32
+ *
33
+ * Matching order:
34
+ * 1. Exact case-insensitive (ignoring whitespace/underscores/dots/dashes).
35
+ * 2. Synonym-group match: the requested name and an available name belong to
36
+ * the same synonym group (e.g. "run" resolves to "Sprint").
37
+ * 3. Substring match in either direction (e.g. "walk" -> "WalkCycle").
38
+ * 4. Fallback to the first available clip.
39
+ *
40
+ * Returns `undefined` only when there are no available clips.
41
+ */
42
+ export function resolveGLTFClipName(
43
+ requested: string,
44
+ available: readonly string[]
45
+ ): string | undefined {
46
+ if (available.length === 0) return undefined;
47
+ const requestedToken = normalizeClipToken(requested);
48
+
49
+ for (const name of available) {
50
+ if (normalizeClipToken(name) === requestedToken) return name;
51
+ }
52
+
53
+ const requestedGroup = GLTF_CLIP_SYNONYM_GROUPS.find((group) => group.includes(requestedToken));
54
+ if (requestedGroup) {
55
+ for (const name of available) {
56
+ if (requestedGroup.includes(normalizeClipToken(name))) return name;
57
+ }
58
+ }
59
+
60
+ for (const name of available) {
61
+ const token = normalizeClipToken(name);
62
+ if (requestedToken.length > 0 && (token.includes(requestedToken) || requestedToken.includes(token))) {
63
+ return name;
64
+ }
65
+ }
66
+
67
+ return available[0];
68
+ }
69
+
70
+ export interface GLTFSceneAnimationClipBoneMask {
71
+ /** Only apply tracks whose node name matches one of these (substring match), if present. */
72
+ readonly include?: readonly string[];
73
+ /** Never apply tracks whose node name matches one of these (substring match). */
74
+ readonly exclude?: readonly string[];
75
+ }
76
+
11
77
  export interface GLTFSceneAnimationClipSample {
12
78
  readonly clipName: string;
13
79
  readonly time: number;
14
80
  readonly weight?: number;
15
81
  readonly additive?: boolean;
82
+ /**
83
+ * Optional per-clip bone mask for layered playback (e.g. an upper-body attack over a full-body
84
+ * locomotion base). When set, only matching node tracks from this clip are blended in. Default
85
+ * (undefined) applies the whole clip, preserving existing behavior.
86
+ */
87
+ readonly mask?: GLTFSceneAnimationClipBoneMask;
88
+ }
89
+
90
+ function clipMaskAllowsNode(mask: GLTFSceneAnimationClipBoneMask | undefined, nodeName: string): boolean {
91
+ if (!mask) return true;
92
+ if (mask.exclude && mask.exclude.some((entry) => nodeName.includes(entry))) return false;
93
+ if (mask.include && mask.include.length > 0) return mask.include.some((entry) => nodeName.includes(entry));
94
+ return true;
95
+ }
96
+
97
+ /**
98
+ * A single bone's local transform inside a {@link GLTFScenePose}. Components are plain tuples in
99
+ * glTF/scene convention (translation/scale as `[x,y,z]`, rotation as a quaternion `[x,y,z,w]`). For
100
+ * convenience the bridge also accepts the object form (`{x,y,z}` / `{x,y,z,w}`) emitted directly by
101
+ * `@aura3d/animation`'s `retargetHumanoidPose`, so a retargeted `AnimationPose` can be handed in
102
+ * without re-shaping.
103
+ */
104
+ export interface GLTFScenePoseBoneTransform {
105
+ readonly position?: readonly [number, number, number] | { readonly x: number; readonly y: number; readonly z: number };
106
+ readonly rotation?: readonly [number, number, number, number] | { readonly x: number; readonly y: number; readonly z: number; readonly w: number };
107
+ readonly scale?: readonly [number, number, number] | { readonly x: number; readonly y: number; readonly z: number };
108
+ }
109
+
110
+ /**
111
+ * An externally-computed pose keyed directly by GLB **node names** (not semantic humanoid slots).
112
+ * This is the render-time bridge target for a retargeted `AnimationPose`: the keys of `bones` are
113
+ * the target rig's node names — exactly what `retargetHumanoidPose(...).bones` produces for a
114
+ * humanoid map (`binding.target.name`). `morphTargets` maps a node name to a single morph weight.
115
+ */
116
+ export interface GLTFScenePose {
117
+ readonly bones: Record<string, GLTFScenePoseBoneTransform>;
118
+ readonly morphTargets?: Record<string, number>;
16
119
  }
17
120
 
18
121
  export interface GLTFSceneAnimationApplyResult {
@@ -403,6 +506,33 @@ export class GLTFSceneAnimationRuntime {
403
506
  return this.applyClip(clip, time);
404
507
  }
405
508
 
509
+ /** Names of every clip registered on this runtime, in declaration order. */
510
+ clipNames(): readonly string[] {
511
+ return [...this.clipsByName.keys()];
512
+ }
513
+
514
+ /**
515
+ * Resolve a requested clip name to the best available registered clip name
516
+ * using fuzzy matching (exact -> synonym group -> substring -> first clip).
517
+ * Returns `undefined` when the runtime has no clips.
518
+ */
519
+ resolveClipName(name: string): string | undefined {
520
+ return resolveGLTFClipName(name, this.clipNames());
521
+ }
522
+
523
+ /**
524
+ * Apply a clip selected by fuzzy name resolution. Unlike {@link applyClipByName}
525
+ * this tolerates differing source clip names (e.g. requesting "idle" when the
526
+ * asset only ships "Loops"). Throws only when no clips exist at all.
527
+ */
528
+ applyClipByNameFuzzy(name: string, time: number): GLTFSceneAnimationApplyResult {
529
+ const resolved = this.resolveClipName(name);
530
+ if (resolved === undefined) {
531
+ throw new Error("glTF animation runtime has no clips to resolve.");
532
+ }
533
+ return this.applyClipByName(resolved, time);
534
+ }
535
+
406
536
  applyClip(clip: AnimationClip, time: number): GLTFSceneAnimationApplyResult {
407
537
  if (!Number.isFinite(time) || time < 0) {
408
538
  throw new Error("glTF animation runtime time must be finite and non-negative.");
@@ -443,6 +573,7 @@ export class GLTFSceneAnimationRuntime {
443
573
  unsupportedTracks.push(track.target);
444
574
  continue;
445
575
  }
576
+ if (!clipMaskAllowsNode(sample.mask, target.nodeName)) continue;
446
577
  blendInto(accumulators, track.target, track.valueType, track.sample(wrappedTime), weight, sample.additive === true);
447
578
  }
448
579
  }
@@ -480,6 +611,44 @@ export class GLTFSceneAnimationRuntime {
480
611
  return this.lastApply;
481
612
  }
482
613
 
614
+ /**
615
+ * Render-time bridge: drive the loaded GLB from an externally-computed pose whose keys are GLB
616
+ * **node names** (e.g. the output of `@aura3d/animation`'s `retargetHumanoidPose`, whose
617
+ * `bones` keys are the target rig node names). Each bone transform's `position`/`rotation`/`scale`
618
+ * is written onto the matching scene node's local transform, and each `morphTargets` entry sets
619
+ * that node's morph weight. This reuses the same {@link applyAnimationValues} / track-binding path
620
+ * as embedded clips (targets are emitted as `"<node>.translation|rotation|scale|weights"`), so
621
+ * skinning palettes and missing-target reporting behave identically. Additive to `applyClip*` —
622
+ * it does not touch the mixer or clip registry.
623
+ */
624
+ applyPose(pose: GLTFScenePose, label = "retargeted-pose", time = 0): GLTFSceneAnimationApplyResult {
625
+ if (!pose || typeof pose !== "object" || typeof pose.bones !== "object" || pose.bones === null) {
626
+ throw new Error("glTF animation runtime applyPose requires a pose with a bones record.");
627
+ }
628
+ const values = new Map<string, AnimationValue>();
629
+ for (const [nodeName, transform] of Object.entries(pose.bones)) {
630
+ if (!transform) continue;
631
+ if (transform.position !== undefined) {
632
+ values.set(`${nodeName}.translation`, toVec3Tuple(transform.position, `${nodeName}.translation`));
633
+ }
634
+ if (transform.rotation !== undefined) {
635
+ values.set(`${nodeName}.rotation`, toQuatTuple(transform.rotation, `${nodeName}.rotation`));
636
+ }
637
+ if (transform.scale !== undefined) {
638
+ values.set(`${nodeName}.scale`, toVec3Tuple(transform.scale, `${nodeName}.scale`));
639
+ }
640
+ }
641
+ if (pose.morphTargets) {
642
+ for (const [nodeName, weight] of Object.entries(pose.morphTargets)) {
643
+ if (!Number.isFinite(weight)) {
644
+ throw new Error(`glTF animation runtime applyPose morph weight for "${nodeName}" must be finite.`);
645
+ }
646
+ values.set(`${nodeName}.weights`, [weight]);
647
+ }
648
+ }
649
+ return this.applyAnimationValues(label, time, values);
650
+ }
651
+
483
652
  solveImportedSkeletonTwoBoneIK(options: GLTFImportedSkeletonIKOptions): GLTFImportedSkeletonIKResult {
484
653
  if (!this.options.asset || this.options.asset.skins.length === 0) {
485
654
  throw new Error("glTF imported skeleton IK requires an asset with at least one skin.");
@@ -1052,6 +1221,32 @@ function asQuat(value: AnimationValue, target: string): [number, number, number,
1052
1221
  return [value[0], value[1], value[2], value[3]];
1053
1222
  }
1054
1223
 
1224
+ function toVec3Tuple(
1225
+ value: readonly [number, number, number] | { readonly x: number; readonly y: number; readonly z: number },
1226
+ target: string
1227
+ ): [number, number, number] {
1228
+ const tuple = Array.isArray(value)
1229
+ ? value
1230
+ : [(value as { x: number }).x, (value as { y: number }).y, (value as { z: number }).z];
1231
+ if (tuple.length !== 3 || tuple.some((component) => typeof component !== "number" || !Number.isFinite(component))) {
1232
+ throw new Error(`glTF pose "${target}" requires a finite vec3.`);
1233
+ }
1234
+ return [tuple[0]!, tuple[1]!, tuple[2]!];
1235
+ }
1236
+
1237
+ function toQuatTuple(
1238
+ value: readonly [number, number, number, number] | { readonly x: number; readonly y: number; readonly z: number; readonly w: number },
1239
+ target: string
1240
+ ): [number, number, number, number] {
1241
+ const tuple = Array.isArray(value)
1242
+ ? value
1243
+ : [(value as { x: number }).x, (value as { y: number }).y, (value as { z: number }).z, (value as { w: number }).w];
1244
+ if (tuple.length !== 4 || tuple.some((component) => typeof component !== "number" || !Number.isFinite(component))) {
1245
+ throw new Error(`glTF pose "${target}" requires a finite quaternion.`);
1246
+ }
1247
+ return [tuple[0]!, tuple[1]!, tuple[2]!, tuple[3]!];
1248
+ }
1249
+
1055
1250
  function asNumberArray(value: AnimationValue): number[] {
1056
1251
  if (!Array.isArray(value) || value.some((component) => typeof component !== "number" || !Number.isFinite(component))) {
1057
1252
  throw new Error("glTF morph-weight animation sampled an invalid number array.");
@@ -0,0 +1,133 @@
1
+ import type { CameraFrameBounds } from "@aura3d/rendering";
2
+
3
+ /**
4
+ * Up-axis of the source asset. Most glTF assets are Y-up (spec default), but
5
+ * many catalog exports (CAD/Blender Z-up pipelines) ship Z-up geometry.
6
+ */
7
+ export type GLTFUpAxis = "y" | "z";
8
+
9
+ export interface AutoFitTransform {
10
+ /** Uniform scale to apply so the model reaches the target height. */
11
+ readonly scale: number;
12
+ /**
13
+ * Translation (post-scale) that recenters the model horizontally and places
14
+ * its lowest point ("feet") at y = 0.
15
+ */
16
+ readonly translation: readonly [number, number, number];
17
+ /**
18
+ * Quaternion (x, y, z, w) that rotates source up-axis to Y-up, applied before
19
+ * scale/translation. Identity `[0, 0, 0, 1]` when no correction is needed.
20
+ */
21
+ readonly rotation: readonly [number, number, number, number];
22
+ /** The up-axis correction that was applied (`"none"` when already Y-up). */
23
+ readonly upAxisCorrection: "none" | "z-to-y";
24
+ /** The largest source extent, useful for diagnostics/logging. */
25
+ readonly sourceExtent: number;
26
+ /** The resulting model height after the transform is applied. */
27
+ readonly fittedHeight: number;
28
+ }
29
+
30
+ export interface AutoFitOptions {
31
+ /** Target height (in world units) the model should occupy. Default 1.6. */
32
+ readonly targetHeight?: number;
33
+ /**
34
+ * Source up-axis. When omitted, the loader keeps the asset as-authored
35
+ * (`"y"`); pass `"z"` for Z-up catalog exports to rotate them upright.
36
+ */
37
+ readonly upAxis?: GLTFUpAxis;
38
+ /**
39
+ * Recenter the model on the ground plane (feet at y = 0, centered in X/Z).
40
+ * Default `true`. When `false`, only scale (and optional rotation) is returned.
41
+ */
42
+ readonly recenter?: boolean;
43
+ }
44
+
45
+ const IDENTITY_ROTATION = [0, 0, 0, 1] as const;
46
+ // Quaternion for -90deg about X, which maps Z-up geometry to Y-up.
47
+ const Z_TO_Y_ROTATION = [-Math.SQRT1_2, 0, 0, Math.SQRT1_2] as const;
48
+ const DEFAULT_TARGET_HEIGHT = 1.6;
49
+ const MIN_EXTENT_EPSILON = 1e-6;
50
+
51
+ /**
52
+ * Compute a fit-to-height transform for a loaded glTF scene's bounds.
53
+ *
54
+ * Catalog models vary wildly in scale and orientation: one Sketchfab export had
55
+ * an extent of ~1821 units while a Kenney prop is ~1 unit, and Z-up CAD exports
56
+ * arrive lying on their side. This helper returns a single uniform scale +
57
+ * translation (and optional up-axis rotation) so any model fits a target height
58
+ * with its feet on the ground plane, independent of the renderer.
59
+ *
60
+ * The returned transform is meant to be applied in order: rotation, then scale,
61
+ * then translation.
62
+ */
63
+ export function computeAutoFitTransform(
64
+ bounds: CameraFrameBounds,
65
+ options: AutoFitOptions = {}
66
+ ): AutoFitTransform {
67
+ const targetHeight = options.targetHeight ?? DEFAULT_TARGET_HEIGHT;
68
+ if (!Number.isFinite(targetHeight) || targetHeight <= 0) {
69
+ throw new Error("computeAutoFitTransform targetHeight must be a positive finite number.");
70
+ }
71
+ const recenter = options.recenter ?? true;
72
+ const upAxisCorrection = options.upAxis === "z" ? "z-to-y" : "none";
73
+ const rotation = upAxisCorrection === "z-to-y" ? Z_TO_Y_ROTATION : IDENTITY_ROTATION;
74
+
75
+ // Reorient the AABB into the post-rotation (Y-up) frame before measuring height.
76
+ const oriented = upAxisCorrection === "z-to-y" ? rotateBoundsZtoY(bounds) : bounds;
77
+
78
+ const size: readonly [number, number, number] = [
79
+ Math.max(0, oriented.max[0] - oriented.min[0]),
80
+ Math.max(0, oriented.max[1] - oriented.min[1]),
81
+ Math.max(0, oriented.max[2] - oriented.min[2])
82
+ ];
83
+ const sourceExtent = Math.max(size[0], size[1], size[2]);
84
+ const height = size[1];
85
+ const scale = height > MIN_EXTENT_EPSILON ? targetHeight / height : 1;
86
+
87
+ let translation: readonly [number, number, number] = [0, 0, 0];
88
+ if (recenter) {
89
+ const centerX = (oriented.min[0] + oriented.max[0]) / 2;
90
+ const centerZ = (oriented.min[2] + oriented.max[2]) / 2;
91
+ const floorY = oriented.min[1];
92
+ translation = [-centerX * scale, -floorY * scale, -centerZ * scale];
93
+ }
94
+
95
+ return {
96
+ scale,
97
+ translation,
98
+ rotation,
99
+ upAxisCorrection,
100
+ sourceExtent,
101
+ fittedHeight: height * scale
102
+ };
103
+ }
104
+
105
+ /**
106
+ * Convenience wrapper that reads `.bounds` off an object (e.g. a
107
+ * `GLTFRenderResources` instance) and computes the fit transform.
108
+ */
109
+ export function autoFitGLTFScene(
110
+ scene: { readonly bounds: CameraFrameBounds },
111
+ options: AutoFitOptions = {}
112
+ ): AutoFitTransform {
113
+ return computeAutoFitTransform(scene.bounds, options);
114
+ }
115
+
116
+ /**
117
+ * Rotate an axis-aligned bounding box by the Z-up -> Y-up correction. Because the
118
+ * rotation is axis-aligned (-90deg about X), this maps each source axis to a
119
+ * destination axis exactly: x -> x, y -> z, z -> -y.
120
+ */
121
+ function rotateBoundsZtoY(bounds: CameraFrameBounds): CameraFrameBounds {
122
+ const xs = [bounds.min[0], bounds.max[0]];
123
+ const ys = [bounds.min[1], bounds.max[1]];
124
+ const zs = [bounds.min[2], bounds.max[2]];
125
+ // mapped axes: newX = x, newY = z, newZ = -y
126
+ const newX = xs;
127
+ const newY = zs;
128
+ const newZ = ys.map((value) => -value);
129
+ return {
130
+ min: [Math.min(...newX), Math.min(...newY), Math.min(...newZ)],
131
+ max: [Math.max(...newX), Math.max(...newY), Math.max(...newZ)]
132
+ };
133
+ }