@aura3d/engine 2.0.4 → 3.0.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.
- package/README.md +25 -10
- package/dist/animation/AnimationAction.d.ts.map +1 -1
- package/dist/animation/AnimationAction.js +20 -2
- package/dist/animation/AnimationAction.js.map +1 -1
- package/dist/animation/AnimationLayer.d.ts +1 -0
- package/dist/animation/AnimationLayer.d.ts.map +1 -1
- package/dist/animation/AnimationLayer.js +24 -3
- package/dist/animation/AnimationLayer.js.map +1 -1
- package/dist/animation/AnimationMixer.d.ts +3 -0
- package/dist/animation/AnimationMixer.d.ts.map +1 -1
- package/dist/animation/AnimationMixer.js +69 -5
- package/dist/animation/AnimationMixer.js.map +1 -1
- package/dist/animation/AnimationTrack.d.ts.map +1 -1
- package/dist/animation/AnimationTrack.js +13 -0
- package/dist/animation/AnimationTrack.js.map +1 -1
- package/dist/animation/FootIk.d.ts +10 -0
- package/dist/animation/FootIk.d.ts.map +1 -1
- package/dist/animation/FootIk.js +95 -3
- package/dist/animation/FootIk.js.map +1 -1
- package/dist/animation/HumanoidRetargeting.d.ts +29 -0
- package/dist/animation/HumanoidRetargeting.d.ts.map +1 -1
- package/dist/animation/HumanoidRetargeting.js +41 -1
- package/dist/animation/HumanoidRetargeting.js.map +1 -1
- package/dist/animation/LocomotionKit.d.ts +6 -0
- package/dist/animation/LocomotionKit.d.ts.map +1 -1
- package/dist/animation/LocomotionKit.js +6 -0
- package/dist/animation/LocomotionKit.js.map +1 -1
- package/dist/animation/RootMotion.d.ts +27 -0
- package/dist/animation/RootMotion.d.ts.map +1 -1
- package/dist/animation/RootMotion.js +38 -0
- package/dist/animation/RootMotion.js.map +1 -1
- package/dist/animation/SpringBones.d.ts +28 -0
- package/dist/animation/SpringBones.d.ts.map +1 -1
- package/dist/animation/SpringBones.js +24 -0
- package/dist/animation/SpringBones.js.map +1 -1
- package/dist/assets/GLTFAnimationRuntime.d.ts +95 -2
- package/dist/assets/GLTFAnimationRuntime.d.ts.map +1 -1
- package/dist/assets/GLTFAnimationRuntime.js +328 -3
- package/dist/assets/GLTFAnimationRuntime.js.map +1 -1
- package/dist/assets/GLTFExtensionSupport.js +2 -2
- package/dist/assets/GLTFExtensionSupport.js.map +1 -1
- package/dist/assets/GLTFLoader.d.ts +360 -1
- package/dist/assets/GLTFLoader.d.ts.map +1 -1
- package/dist/assets/GLTFLoader.js +197 -1
- package/dist/assets/GLTFLoader.js.map +1 -1
- package/dist/assets/KTX2BasisTextureTranscoder.d.ts +39 -0
- package/dist/assets/KTX2BasisTextureTranscoder.d.ts.map +1 -1
- package/dist/assets/KTX2BasisTextureTranscoder.js +70 -0
- package/dist/assets/KTX2BasisTextureTranscoder.js.map +1 -1
- package/dist/assets/TexturePipeline.d.ts +20 -0
- package/dist/assets/TexturePipeline.d.ts.map +1 -1
- package/dist/assets/TexturePipeline.js +20 -0
- package/dist/assets/TexturePipeline.js.map +1 -1
- package/dist/assets/TextureStreaming.d.ts +30 -0
- package/dist/assets/TextureStreaming.d.ts.map +1 -1
- package/dist/assets/TextureStreaming.js +53 -0
- package/dist/assets/TextureStreaming.js.map +1 -1
- package/dist/assets/browser-index.d.ts +7 -3
- package/dist/assets/browser-index.d.ts.map +1 -1
- package/dist/assets/browser-index.js +3 -1
- package/dist/assets/browser-index.js.map +1 -1
- package/dist/assets/gltf-runtime.d.ts +1 -1
- package/dist/assets/gltf-runtime.d.ts.map +1 -1
- package/dist/assets/gltf-runtime.js.map +1 -1
- package/dist/assets/index.d.ts +7 -7
- package/dist/assets/index.d.ts.map +1 -1
- package/dist/assets/index.js +3 -3
- package/dist/assets/index.js.map +1 -1
- package/dist/assets/loaders/HDRLoader.d.ts +40 -0
- package/dist/assets/loaders/HDRLoader.d.ts.map +1 -1
- package/dist/assets/loaders/HDRLoader.js +158 -0
- package/dist/assets/loaders/HDRLoader.js.map +1 -1
- package/dist/audio/AudioSource.d.ts +2 -0
- package/dist/audio/AudioSource.d.ts.map +1 -1
- package/dist/audio/AudioSource.js +7 -0
- package/dist/audio/AudioSource.js.map +1 -1
- package/dist/audio/Footsteps.d.ts +47 -0
- package/dist/audio/Footsteps.d.ts.map +1 -0
- package/dist/audio/Footsteps.js +73 -0
- package/dist/audio/Footsteps.js.map +1 -0
- package/dist/audio/GameMixer.d.ts +69 -0
- package/dist/audio/GameMixer.d.ts.map +1 -0
- package/dist/audio/GameMixer.js +141 -0
- package/dist/audio/GameMixer.js.map +1 -0
- package/dist/audio/PositionalEmitter.d.ts +95 -0
- package/dist/audio/PositionalEmitter.d.ts.map +1 -0
- package/dist/audio/PositionalEmitter.js +199 -0
- package/dist/audio/PositionalEmitter.js.map +1 -0
- package/dist/audio/index.d.ts +6 -0
- package/dist/audio/index.d.ts.map +1 -1
- package/dist/audio/index.js +3 -0
- package/dist/audio/index.js.map +1 -1
- package/dist/aura3d-cli/pull-bridge/profiles.d.ts +12 -2
- package/dist/aura3d-cli/pull-bridge/profiles.d.ts.map +1 -1
- package/dist/aura3d-cli/pull-bridge/profiles.js +35 -4
- package/dist/aura3d-cli/pull-bridge/profiles.js.map +1 -1
- package/dist/aura3d-cli/pull-bridge/provenance.d.ts +15 -1
- package/dist/aura3d-cli/pull-bridge/provenance.d.ts.map +1 -1
- package/dist/aura3d-cli/pull-bridge/provenance.js +60 -1
- package/dist/aura3d-cli/pull-bridge/provenance.js.map +1 -1
- package/dist/aura3d-cli/pull-bridge/scoring.d.ts +10 -1
- package/dist/aura3d-cli/pull-bridge/scoring.d.ts.map +1 -1
- package/dist/aura3d-cli/pull-bridge/scoring.js +9 -1
- package/dist/aura3d-cli/pull-bridge/scoring.js.map +1 -1
- package/dist/aura3d-cli/pull-bridge/search.js +2 -2
- package/dist/aura3d-cli/pull-bridge/search.js.map +1 -1
- package/dist/aura3d-cli/pull-bridge.d.ts +15 -3
- package/dist/aura3d-cli/pull-bridge.d.ts.map +1 -1
- package/dist/aura3d-cli/pull-bridge.js +68 -5
- package/dist/aura3d-cli/pull-bridge.js.map +1 -1
- package/dist/controls/ArcballControls.d.ts +92 -0
- package/dist/controls/ArcballControls.d.ts.map +1 -0
- package/dist/controls/ArcballControls.js +286 -0
- package/dist/controls/ArcballControls.js.map +1 -0
- package/dist/controls/DragControls.d.ts +13 -0
- package/dist/controls/DragControls.d.ts.map +1 -1
- package/dist/controls/DragControls.js +24 -1
- package/dist/controls/DragControls.js.map +1 -1
- package/dist/controls/FlyControls.d.ts +9 -0
- package/dist/controls/FlyControls.d.ts.map +1 -1
- package/dist/controls/FlyControls.js +20 -2
- package/dist/controls/FlyControls.js.map +1 -1
- package/dist/controls/FocusFrame.d.ts +34 -0
- package/dist/controls/FocusFrame.d.ts.map +1 -0
- package/dist/controls/FocusFrame.js +82 -0
- package/dist/controls/FocusFrame.js.map +1 -0
- package/dist/controls/HoverOutline.d.ts +46 -0
- package/dist/controls/HoverOutline.d.ts.map +1 -0
- package/dist/controls/HoverOutline.js +87 -0
- package/dist/controls/HoverOutline.js.map +1 -0
- package/dist/controls/InteractionControls.d.ts +7 -0
- package/dist/controls/InteractionControls.d.ts.map +1 -1
- package/dist/controls/InteractionControls.js +12 -1
- package/dist/controls/InteractionControls.js.map +1 -1
- package/dist/controls/NativeControlTypes.d.ts +17 -0
- package/dist/controls/NativeControlTypes.d.ts.map +1 -1
- package/dist/controls/NativeControlTypes.js.map +1 -1
- package/dist/controls/OrbitControls.d.ts +9 -0
- package/dist/controls/OrbitControls.d.ts.map +1 -1
- package/dist/controls/OrbitControls.js +26 -6
- package/dist/controls/OrbitControls.js.map +1 -1
- package/dist/controls/Picking.d.ts +15 -0
- package/dist/controls/Picking.d.ts.map +1 -1
- package/dist/controls/Picking.js +62 -23
- package/dist/controls/Picking.js.map +1 -1
- package/dist/controls/PointerLockControls.d.ts.map +1 -1
- package/dist/controls/PointerLockControls.js +4 -0
- package/dist/controls/PointerLockControls.js.map +1 -1
- package/dist/controls/SelectionManager.d.ts +8 -0
- package/dist/controls/SelectionManager.d.ts.map +1 -1
- package/dist/controls/SelectionManager.js +11 -0
- package/dist/controls/SelectionManager.js.map +1 -1
- package/dist/controls/TrackballControls.d.ts +7 -0
- package/dist/controls/TrackballControls.d.ts.map +1 -1
- package/dist/controls/TrackballControls.js +19 -5
- package/dist/controls/TrackballControls.js.map +1 -1
- package/dist/controls/TransformControls.d.ts +8 -0
- package/dist/controls/TransformControls.d.ts.map +1 -1
- package/dist/controls/TransformControls.js +15 -2
- package/dist/controls/TransformControls.js.map +1 -1
- package/dist/controls/index.d.ts +6 -0
- package/dist/controls/index.d.ts.map +1 -1
- package/dist/controls/index.js +3 -0
- package/dist/controls/index.js.map +1 -1
- package/dist/create-aura3d/index.js +1 -1
- package/dist/editor-runtime/RootEditorSurface.d.ts +65 -0
- package/dist/editor-runtime/RootEditorSurface.d.ts.map +1 -0
- package/dist/editor-runtime/RootEditorSurface.js +62 -0
- package/dist/editor-runtime/RootEditorSurface.js.map +1 -0
- package/dist/editor-runtime/index.d.ts +2 -0
- package/dist/editor-runtime/index.d.ts.map +1 -1
- package/dist/editor-runtime/index.js +1 -0
- package/dist/editor-runtime/index.js.map +1 -1
- package/dist/engine/agent-api/AnimationController.d.ts +9 -1
- package/dist/engine/agent-api/AnimationController.d.ts.map +1 -1
- package/dist/engine/agent-api/AnimationController.js +5 -1
- package/dist/engine/agent-api/AnimationController.js.map +1 -1
- package/dist/engine/agent-api/AnimationDebugOverlay.d.ts +56 -0
- package/dist/engine/agent-api/AnimationDebugOverlay.d.ts.map +1 -0
- package/dist/engine/agent-api/AnimationDebugOverlay.js +148 -0
- package/dist/engine/agent-api/AnimationDebugOverlay.js.map +1 -0
- package/dist/engine/agent-api/AnimationMixerBuilders.d.ts +41 -0
- package/dist/engine/agent-api/AnimationMixerBuilders.d.ts.map +1 -0
- package/dist/engine/agent-api/AnimationMixerBuilders.js +146 -0
- package/dist/engine/agent-api/AnimationMixerBuilders.js.map +1 -0
- package/dist/engine/agent-api/AssetDecoders.d.ts +17 -0
- package/dist/engine/agent-api/AssetDecoders.d.ts.map +1 -0
- package/dist/engine/agent-api/AssetDecoders.js +18 -0
- package/dist/engine/agent-api/AssetDecoders.js.map +1 -0
- package/dist/engine/agent-api/Decals.d.ts +174 -0
- package/dist/engine/agent-api/Decals.d.ts.map +1 -0
- package/dist/engine/agent-api/Decals.js +350 -0
- package/dist/engine/agent-api/Decals.js.map +1 -0
- package/dist/engine/agent-api/FootPlanting.d.ts +75 -0
- package/dist/engine/agent-api/FootPlanting.d.ts.map +1 -0
- package/dist/engine/agent-api/FootPlanting.js +60 -0
- package/dist/engine/agent-api/FootPlanting.js.map +1 -0
- package/dist/engine/agent-api/GameAppRuntime.d.ts +19 -0
- package/dist/engine/agent-api/GameAppRuntime.d.ts.map +1 -1
- package/dist/engine/agent-api/GameAppRuntime.js +37 -1
- package/dist/engine/agent-api/GameAppRuntime.js.map +1 -1
- package/dist/engine/agent-api/GameCameraRigs.d.ts +185 -0
- package/dist/engine/agent-api/GameCameraRigs.d.ts.map +1 -0
- package/dist/engine/agent-api/GameCameraRigs.js +414 -0
- package/dist/engine/agent-api/GameCameraRigs.js.map +1 -0
- package/dist/engine/agent-api/GameFeel.d.ts +100 -0
- package/dist/engine/agent-api/GameFeel.d.ts.map +1 -0
- package/dist/engine/agent-api/GameFeel.js +226 -0
- package/dist/engine/agent-api/GameFeel.js.map +1 -0
- package/dist/engine/agent-api/LabelTelemetry.d.ts +108 -0
- package/dist/engine/agent-api/LabelTelemetry.d.ts.map +1 -0
- package/dist/engine/agent-api/LabelTelemetry.js +116 -0
- package/dist/engine/agent-api/LabelTelemetry.js.map +1 -0
- package/dist/engine/agent-api/NavigationCrowds.d.ts +146 -0
- package/dist/engine/agent-api/NavigationCrowds.d.ts.map +1 -0
- package/dist/engine/agent-api/NavigationCrowds.js +104 -0
- package/dist/engine/agent-api/NavigationCrowds.js.map +1 -0
- package/dist/engine/agent-api/PhysicsRuntime.d.ts +61 -5
- package/dist/engine/agent-api/PhysicsRuntime.d.ts.map +1 -1
- package/dist/engine/agent-api/PhysicsRuntime.js +53 -21
- package/dist/engine/agent-api/PhysicsRuntime.js.map +1 -1
- package/dist/engine/agent-api/RootGeometry.d.ts +16 -1
- package/dist/engine/agent-api/RootGeometry.d.ts.map +1 -1
- package/dist/engine/agent-api/RootGeometry.js.map +1 -1
- package/dist/engine/agent-api/RuntimeNodeHandle.d.ts +6 -0
- package/dist/engine/agent-api/RuntimeNodeHandle.d.ts.map +1 -1
- package/dist/engine/agent-api/RuntimeNodeHandle.js.map +1 -1
- package/dist/engine/agent-api/Scatter.d.ts +18 -0
- package/dist/engine/agent-api/Scatter.d.ts.map +1 -0
- package/dist/engine/agent-api/Scatter.js +18 -0
- package/dist/engine/agent-api/Scatter.js.map +1 -0
- package/dist/engine/agent-api/TouchControlBinding.d.ts +32 -0
- package/dist/engine/agent-api/TouchControlBinding.d.ts.map +1 -1
- package/dist/engine/agent-api/TouchControlBinding.js +36 -0
- package/dist/engine/agent-api/TouchControlBinding.js.map +1 -1
- package/dist/engine/agent-api/VehicleChassis.d.ts.map +1 -1
- package/dist/engine/agent-api/VehicleChassis.js +76 -13
- package/dist/engine/agent-api/VehicleChassis.js.map +1 -1
- package/dist/engine/agent-api/index.d.ts +708 -6
- package/dist/engine/agent-api/index.d.ts.map +1 -1
- package/dist/engine/agent-api/index.js +1757 -134
- package/dist/engine/agent-api/index.js.map +1 -1
- package/dist/engine/agent-api/product-viewer-runtime.d.ts.map +1 -1
- package/dist/engine/game/GameAudio.d.ts +66 -0
- package/dist/engine/game/GameAudio.d.ts.map +1 -1
- package/dist/engine/game/GameAudio.js +179 -44
- package/dist/engine/game/GameAudio.js.map +1 -1
- package/dist/engine/instances-model/InstancedModel.d.ts +111 -0
- package/dist/engine/instances-model/InstancedModel.d.ts.map +1 -0
- package/dist/engine/instances-model/InstancedModel.js +108 -0
- package/dist/engine/instances-model/InstancedModel.js.map +1 -0
- package/dist/engine/material-physical/PhysicalMaterialSpec.d.ts +72 -0
- package/dist/engine/material-physical/PhysicalMaterialSpec.d.ts.map +1 -0
- package/dist/engine/material-physical/PhysicalMaterialSpec.js +95 -0
- package/dist/engine/material-physical/PhysicalMaterialSpec.js.map +1 -0
- package/dist/engine/production-runtime/GameAppRuntime.d.ts +1 -1
- package/dist/engine/production-runtime/GameAppRuntime.d.ts.map +1 -1
- package/dist/engine/production-runtime/GameRenderPreset.d.ts +76 -0
- package/dist/engine/production-runtime/GameRenderPreset.d.ts.map +1 -1
- package/dist/engine/production-runtime/GameRenderPreset.js +167 -0
- package/dist/engine/production-runtime/GameRenderPreset.js.map +1 -1
- package/dist/engine/production-runtime/TypedGLBActor.d.ts +22 -2
- package/dist/engine/production-runtime/TypedGLBActor.d.ts.map +1 -1
- package/dist/engine/production-runtime/TypedGLBActor.js +33 -1
- package/dist/engine/production-runtime/TypedGLBActor.js.map +1 -1
- package/dist/engine/production-runtime/index.d.ts +4 -4
- package/dist/engine/production-runtime/index.d.ts.map +1 -1
- package/dist/engine/production-runtime/index.js +5 -3
- package/dist/engine/production-runtime/index.js.map +1 -1
- package/dist/input/ActionMap.d.ts +40 -0
- package/dist/input/ActionMap.d.ts.map +1 -1
- package/dist/input/ActionMap.js +179 -0
- package/dist/input/ActionMap.js.map +1 -1
- package/dist/input/ComboDetector.d.ts +49 -0
- package/dist/input/ComboDetector.d.ts.map +1 -0
- package/dist/input/ComboDetector.js +102 -0
- package/dist/input/ComboDetector.js.map +1 -0
- package/dist/input/Haptics.d.ts +46 -0
- package/dist/input/Haptics.d.ts.map +1 -0
- package/dist/input/Haptics.js +67 -0
- package/dist/input/Haptics.js.map +1 -0
- package/dist/input/TouchLayouts.d.ts +35 -0
- package/dist/input/TouchLayouts.d.ts.map +1 -0
- package/dist/input/TouchLayouts.js +88 -0
- package/dist/input/TouchLayouts.js.map +1 -0
- package/dist/input/WebXRSessionController.d.ts +53 -0
- package/dist/input/WebXRSessionController.d.ts.map +1 -1
- package/dist/input/WebXRSessionController.js +88 -2
- package/dist/input/WebXRSessionController.js.map +1 -1
- package/dist/input/index.d.ts +8 -2
- package/dist/input/index.d.ts.map +1 -1
- package/dist/input/index.js +3 -0
- package/dist/input/index.js.map +1 -1
- package/dist/lean/game.d.ts +98 -0
- package/dist/lean/game.d.ts.map +1 -1
- package/dist/lean/game.js +192 -0
- package/dist/lean/game.js.map +1 -1
- package/dist/materials/GameReadyMaterialLibrary.d.ts +39 -0
- package/dist/materials/GameReadyMaterialLibrary.d.ts.map +1 -0
- package/dist/materials/GameReadyMaterialLibrary.js +253 -0
- package/dist/materials/GameReadyMaterialLibrary.js.map +1 -0
- package/dist/materials/MaterialValidation.d.ts +21 -0
- package/dist/materials/MaterialValidation.d.ts.map +1 -1
- package/dist/materials/MaterialValidation.js +105 -0
- package/dist/materials/MaterialValidation.js.map +1 -1
- package/dist/materials/browser-index.d.ts +2 -0
- package/dist/materials/browser-index.d.ts.map +1 -1
- package/dist/materials/browser-index.js +1 -0
- package/dist/materials/browser-index.js.map +1 -1
- package/dist/materials/node.d.ts +2 -2
- package/dist/materials/node.d.ts.map +1 -1
- package/dist/materials/node.js +1 -1
- package/dist/materials/node.js.map +1 -1
- package/dist/physics/CollisionVolumes.d.ts +59 -0
- package/dist/physics/CollisionVolumes.d.ts.map +1 -1
- package/dist/physics/CollisionVolumes.js +87 -0
- package/dist/physics/CollisionVolumes.js.map +1 -1
- package/dist/physics/PhysicsDebugDraw.d.ts +37 -0
- package/dist/physics/PhysicsDebugDraw.d.ts.map +1 -1
- package/dist/physics/PhysicsDebugDraw.js +38 -1
- package/dist/physics/PhysicsDebugDraw.js.map +1 -1
- package/dist/physics/PhysicsWorld.d.ts +15 -0
- package/dist/physics/PhysicsWorld.d.ts.map +1 -1
- package/dist/physics/PhysicsWorld.js +8 -1
- package/dist/physics/PhysicsWorld.js.map +1 -1
- package/dist/physics/solverless.d.ts +1 -1
- package/dist/physics/solverless.d.ts.map +1 -1
- package/dist/physics/solverless.js.map +1 -1
- package/dist/physics-rapier/index.d.ts +7 -1
- package/dist/physics-rapier/index.d.ts.map +1 -1
- package/dist/physics-rapier/index.js +1 -1
- package/dist/physics-rapier/index.js.map +1 -1
- package/dist/react/index.d.ts +136 -2
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react/index.js +251 -10
- package/dist/react/index.js.map +1 -1
- package/dist/rendering/AtmosphereWetness.d.ts +61 -0
- package/dist/rendering/AtmosphereWetness.d.ts.map +1 -0
- package/dist/rendering/AtmosphereWetness.js +99 -0
- package/dist/rendering/AtmosphereWetness.js.map +1 -0
- package/dist/rendering/ClusteredForwardLighting.d.ts +25 -1
- package/dist/rendering/ClusteredForwardLighting.d.ts.map +1 -1
- package/dist/rendering/ClusteredForwardLighting.js +80 -3
- package/dist/rendering/ClusteredForwardLighting.js.map +1 -1
- package/dist/rendering/DayNightSky.d.ts +63 -0
- package/dist/rendering/DayNightSky.d.ts.map +1 -0
- package/dist/rendering/DayNightSky.js +156 -0
- package/dist/rendering/DayNightSky.js.map +1 -0
- package/dist/rendering/EnvironmentPresetPack.d.ts +30 -0
- package/dist/rendering/EnvironmentPresetPack.d.ts.map +1 -0
- package/dist/rendering/EnvironmentPresetPack.js +49 -0
- package/dist/rendering/EnvironmentPresetPack.js.map +1 -0
- package/dist/rendering/ForwardPass.d.ts +65 -0
- package/dist/rendering/ForwardPass.d.ts.map +1 -1
- package/dist/rendering/ForwardPass.js +196 -2
- package/dist/rendering/ForwardPass.js.map +1 -1
- package/dist/rendering/InstancedPBRMaterial.d.ts +1 -0
- package/dist/rendering/InstancedPBRMaterial.d.ts.map +1 -1
- package/dist/rendering/InstancedPBRMaterial.js +3 -0
- package/dist/rendering/InstancedPBRMaterial.js.map +1 -1
- package/dist/rendering/InstancingDiagnostics.d.ts +69 -0
- package/dist/rendering/InstancingDiagnostics.d.ts.map +1 -0
- package/dist/rendering/InstancingDiagnostics.js +98 -0
- package/dist/rendering/InstancingDiagnostics.js.map +1 -0
- package/dist/rendering/LightingRig.d.ts +19 -1
- package/dist/rendering/LightingRig.d.ts.map +1 -1
- package/dist/rendering/LightingRig.js +61 -1
- package/dist/rendering/LightingRig.js.map +1 -1
- package/dist/rendering/MeshConsolidation.d.ts +12 -0
- package/dist/rendering/MeshConsolidation.d.ts.map +1 -1
- package/dist/rendering/MeshConsolidation.js +28 -0
- package/dist/rendering/MeshConsolidation.js.map +1 -1
- package/dist/rendering/MorphTargetPlan.d.ts +29 -2
- package/dist/rendering/MorphTargetPlan.d.ts.map +1 -1
- package/dist/rendering/MorphTargetPlan.js +23 -4
- package/dist/rendering/MorphTargetPlan.js.map +1 -1
- package/dist/rendering/NormalMappedPBRMaterial.d.ts.map +1 -1
- package/dist/rendering/NormalMappedPBRMaterial.js +22 -2
- package/dist/rendering/NormalMappedPBRMaterial.js.map +1 -1
- package/dist/rendering/OceanSurface.d.ts +75 -0
- package/dist/rendering/OceanSurface.d.ts.map +1 -1
- package/dist/rendering/OceanSurface.js +211 -0
- package/dist/rendering/OceanSurface.js.map +1 -1
- package/dist/rendering/PBRMaterial.d.ts +1 -0
- package/dist/rendering/PBRMaterial.d.ts.map +1 -1
- package/dist/rendering/PBRMaterial.js +23 -2
- package/dist/rendering/PBRMaterial.js.map +1 -1
- package/dist/rendering/PbrReference.d.ts +48 -0
- package/dist/rendering/PbrReference.d.ts.map +1 -1
- package/dist/rendering/PbrReference.js +126 -0
- package/dist/rendering/PbrReference.js.map +1 -1
- package/dist/rendering/PlanarReflection.d.ts +221 -0
- package/dist/rendering/PlanarReflection.d.ts.map +1 -0
- package/dist/rendering/PlanarReflection.js +541 -0
- package/dist/rendering/PlanarReflection.js.map +1 -0
- package/dist/rendering/PostProcessPass.d.ts +13 -0
- package/dist/rendering/PostProcessPass.d.ts.map +1 -1
- package/dist/rendering/PostProcessPass.js +15 -4
- package/dist/rendering/PostProcessPass.js.map +1 -1
- package/dist/rendering/ReflectionSurfaces.d.ts +14 -0
- package/dist/rendering/ReflectionSurfaces.d.ts.map +1 -1
- package/dist/rendering/ReflectionSurfaces.js +93 -0
- package/dist/rendering/ReflectionSurfaces.js.map +1 -1
- package/dist/rendering/RenderDevice.d.ts +87 -0
- package/dist/rendering/RenderDevice.d.ts.map +1 -1
- package/dist/rendering/RenderDevice.js +85 -0
- package/dist/rendering/RenderDevice.js.map +1 -1
- package/dist/rendering/Renderer.js +3 -1
- package/dist/rendering/Renderer.js.map +1 -1
- package/dist/rendering/RendererPostprocessPlan.d.ts +48 -0
- package/dist/rendering/RendererPostprocessPlan.d.ts.map +1 -1
- package/dist/rendering/RendererPostprocessPlan.js +101 -11
- package/dist/rendering/RendererPostprocessPlan.js.map +1 -1
- package/dist/rendering/RendererVisualPipelineReport.d.ts.map +1 -1
- package/dist/rendering/RendererVisualPipelineReport.js +3 -1
- package/dist/rendering/RendererVisualPipelineReport.js.map +1 -1
- package/dist/rendering/Sampler.d.ts +29 -0
- package/dist/rendering/Sampler.d.ts.map +1 -1
- package/dist/rendering/Sampler.js +47 -0
- package/dist/rendering/Sampler.js.map +1 -1
- package/dist/rendering/SdfText.d.ts +250 -0
- package/dist/rendering/SdfText.d.ts.map +1 -0
- package/dist/rendering/SdfText.js +551 -0
- package/dist/rendering/SdfText.js.map +1 -0
- package/dist/rendering/ShaderChunks.d.ts.map +1 -1
- package/dist/rendering/ShaderChunks.js +30 -12
- package/dist/rendering/ShaderChunks.js.map +1 -1
- package/dist/rendering/ShaderLibrary.d.ts.map +1 -1
- package/dist/rendering/ShaderLibrary.js +478 -34
- package/dist/rendering/ShaderLibrary.js.map +1 -1
- package/dist/rendering/ShaderLibraryCore.d.ts.map +1 -1
- package/dist/rendering/ShaderLibraryCore.js +70 -12
- package/dist/rendering/ShaderLibraryCore.js.map +1 -1
- package/dist/rendering/ShadowMap.d.ts +24 -0
- package/dist/rendering/ShadowMap.d.ts.map +1 -1
- package/dist/rendering/ShadowMap.js +43 -0
- package/dist/rendering/ShadowMap.js.map +1 -1
- package/dist/rendering/SkinnedLitMaterial.d.ts.map +1 -1
- package/dist/rendering/SkinnedLitMaterial.js +2 -0
- package/dist/rendering/SkinnedLitMaterial.js.map +1 -1
- package/dist/rendering/SkinningBounds.d.ts +10 -0
- package/dist/rendering/SkinningBounds.d.ts.map +1 -1
- package/dist/rendering/SkinningBounds.js +27 -0
- package/dist/rendering/SkinningBounds.js.map +1 -1
- package/dist/rendering/SpriteFlipbook.d.ts +60 -0
- package/dist/rendering/SpriteFlipbook.d.ts.map +1 -0
- package/dist/rendering/SpriteFlipbook.js +128 -0
- package/dist/rendering/SpriteFlipbook.js.map +1 -0
- package/dist/rendering/TerrainTiles.d.ts +120 -0
- package/dist/rendering/TerrainTiles.d.ts.map +1 -0
- package/dist/rendering/TerrainTiles.js +221 -0
- package/dist/rendering/TerrainTiles.js.map +1 -0
- package/dist/rendering/TexturedPBRMaterial.d.ts +1 -0
- package/dist/rendering/TexturedPBRMaterial.d.ts.map +1 -1
- package/dist/rendering/TexturedPBRMaterial.js +23 -2
- package/dist/rendering/TexturedPBRMaterial.js.map +1 -1
- package/dist/rendering/TexturedUnlitMaterial.d.ts.map +1 -1
- package/dist/rendering/TexturedUnlitMaterial.js +20 -2
- package/dist/rendering/TexturedUnlitMaterial.js.map +1 -1
- package/dist/rendering/UnlitMaterial.d.ts.map +1 -1
- package/dist/rendering/UnlitMaterial.js +20 -2
- package/dist/rendering/UnlitMaterial.js.map +1 -1
- package/dist/rendering/VertexFormat.d.ts +6 -0
- package/dist/rendering/VertexFormat.d.ts.map +1 -1
- package/dist/rendering/VertexFormat.js +12 -0
- package/dist/rendering/VertexFormat.js.map +1 -1
- package/dist/rendering/VolumetricFog.d.ts +55 -0
- package/dist/rendering/VolumetricFog.d.ts.map +1 -0
- package/dist/rendering/VolumetricFog.js +91 -0
- package/dist/rendering/VolumetricFog.js.map +1 -0
- package/dist/rendering/WaterSurface.d.ts +77 -0
- package/dist/rendering/WaterSurface.d.ts.map +1 -0
- package/dist/rendering/WaterSurface.js +133 -0
- package/dist/rendering/WaterSurface.js.map +1 -0
- package/dist/rendering/WebGL2Device.d.ts +58 -0
- package/dist/rendering/WebGL2Device.d.ts.map +1 -1
- package/dist/rendering/WebGL2Device.js +536 -17
- package/dist/rendering/WebGL2Device.js.map +1 -1
- package/dist/rendering/WebGPUDevice.d.ts +50 -0
- package/dist/rendering/WebGPUDevice.d.ts.map +1 -1
- package/dist/rendering/WebGPUDevice.js +504 -10
- package/dist/rendering/WebGPUDevice.js.map +1 -1
- package/dist/rendering/WebGPUSkinningLimits.d.ts +40 -0
- package/dist/rendering/WebGPUSkinningLimits.d.ts.map +1 -1
- package/dist/rendering/WebGPUSkinningLimits.js +32 -0
- package/dist/rendering/WebGPUSkinningLimits.js.map +1 -1
- package/dist/rendering/effects/CollisionModule.d.ts +9 -0
- package/dist/rendering/effects/CollisionModule.d.ts.map +1 -1
- package/dist/rendering/effects/CollisionModule.js +10 -0
- package/dist/rendering/effects/CollisionModule.js.map +1 -1
- package/dist/rendering/effects/ColorModule.d.ts +7 -0
- package/dist/rendering/effects/ColorModule.d.ts.map +1 -1
- package/dist/rendering/effects/ColorModule.js +23 -0
- package/dist/rendering/effects/ColorModule.js.map +1 -1
- package/dist/rendering/effects/ForceModule.d.ts +35 -0
- package/dist/rendering/effects/ForceModule.d.ts.map +1 -1
- package/dist/rendering/effects/ForceModule.js +49 -0
- package/dist/rendering/effects/ForceModule.js.map +1 -1
- package/dist/rendering/effects/GPUParticleBackend.d.ts +186 -0
- package/dist/rendering/effects/GPUParticleBackend.d.ts.map +1 -1
- package/dist/rendering/effects/GPUParticleBackend.js +692 -1
- package/dist/rendering/effects/GPUParticleBackend.js.map +1 -1
- package/dist/rendering/effects/HeightfieldModule.d.ts +58 -0
- package/dist/rendering/effects/HeightfieldModule.d.ts.map +1 -0
- package/dist/rendering/effects/HeightfieldModule.js +129 -0
- package/dist/rendering/effects/HeightfieldModule.js.map +1 -0
- package/dist/rendering/effects/LightingModule.d.ts +34 -0
- package/dist/rendering/effects/LightingModule.d.ts.map +1 -0
- package/dist/rendering/effects/LightingModule.js +54 -0
- package/dist/rendering/effects/LightingModule.js.map +1 -0
- package/dist/rendering/effects/ParticleDiagnostics.d.ts +8 -0
- package/dist/rendering/effects/ParticleDiagnostics.d.ts.map +1 -1
- package/dist/rendering/effects/ParticleDiagnostics.js +3 -0
- package/dist/rendering/effects/ParticleDiagnostics.js.map +1 -1
- package/dist/rendering/effects/ParticleModule.d.ts +8 -0
- package/dist/rendering/effects/ParticleModule.d.ts.map +1 -1
- package/dist/rendering/effects/ParticleModule.js.map +1 -1
- package/dist/rendering/effects/ParticleRenderer.d.ts +20 -0
- package/dist/rendering/effects/ParticleRenderer.d.ts.map +1 -1
- package/dist/rendering/effects/ParticleRenderer.js +57 -7
- package/dist/rendering/effects/ParticleRenderer.js.map +1 -1
- package/dist/rendering/effects/ParticleSystem.d.ts +45 -1
- package/dist/rendering/effects/ParticleSystem.d.ts.map +1 -1
- package/dist/rendering/effects/ParticleSystem.js +373 -4
- package/dist/rendering/effects/ParticleSystem.js.map +1 -1
- package/dist/rendering/effects/SizeModule.d.ts +4 -0
- package/dist/rendering/effects/SizeModule.d.ts.map +1 -1
- package/dist/rendering/effects/SizeModule.js +16 -0
- package/dist/rendering/effects/SizeModule.js.map +1 -1
- package/dist/rendering/effects/SubEmitterModule.d.ts +61 -0
- package/dist/rendering/effects/SubEmitterModule.d.ts.map +1 -0
- package/dist/rendering/effects/SubEmitterModule.js +119 -0
- package/dist/rendering/effects/SubEmitterModule.js.map +1 -0
- package/dist/rendering/effects/TrailModule.d.ts +38 -0
- package/dist/rendering/effects/TrailModule.d.ts.map +1 -1
- package/dist/rendering/effects/TrailModule.js +95 -2
- package/dist/rendering/effects/TrailModule.js.map +1 -1
- package/dist/rendering/effects/TurbulenceModule.d.ts +43 -0
- package/dist/rendering/effects/TurbulenceModule.d.ts.map +1 -0
- package/dist/rendering/effects/TurbulenceModule.js +130 -0
- package/dist/rendering/effects/TurbulenceModule.js.map +1 -0
- package/dist/rendering/effects/index.d.ts +4 -0
- package/dist/rendering/effects/index.d.ts.map +1 -1
- package/dist/rendering/effects/index.js +4 -0
- package/dist/rendering/effects/index.js.map +1 -1
- package/dist/rendering/index.d.ts +57 -19
- package/dist/rendering/index.d.ts.map +1 -1
- package/dist/rendering/index.js +31 -10
- package/dist/rendering/index.js.map +1 -1
- package/dist/rendering/materials/MaterialExtensions.js +3 -3
- package/dist/rendering/materials/MaterialExtensions.js.map +1 -1
- package/dist/rendering/postprocess/NativeBloomPyramid.d.ts +28 -0
- package/dist/rendering/postprocess/NativeBloomPyramid.d.ts.map +1 -0
- package/dist/rendering/postprocess/NativeBloomPyramid.js +54 -0
- package/dist/rendering/postprocess/NativeBloomPyramid.js.map +1 -0
- package/dist/rendering/postprocess/NativeLdrEffectLuts.d.ts +10 -1
- package/dist/rendering/postprocess/NativeLdrEffectLuts.d.ts.map +1 -1
- package/dist/rendering/postprocess/NativeLdrEffectLuts.js +19 -2
- package/dist/rendering/postprocess/NativeLdrEffectLuts.js.map +1 -1
- package/dist/rendering/postprocess/index.d.ts +2 -0
- package/dist/rendering/postprocess/index.d.ts.map +1 -1
- package/dist/rendering/postprocess/index.js +1 -0
- package/dist/rendering/postprocess/index.js.map +1 -1
- package/dist/rendering/production-runtime/PBRHDRPipeline.d.ts +22 -0
- package/dist/rendering/production-runtime/PBRHDRPipeline.d.ts.map +1 -1
- package/dist/rendering/production-runtime/PBRHDRPipeline.js +125 -0
- package/dist/rendering/production-runtime/PBRHDRPipeline.js.map +1 -1
- package/dist/rendering/production-runtime/ProductionWebGPURenderer.d.ts +52 -0
- package/dist/rendering/production-runtime/ProductionWebGPURenderer.d.ts.map +1 -1
- package/dist/rendering/production-runtime/ProductionWebGPURenderer.js +101 -0
- package/dist/rendering/production-runtime/ProductionWebGPURenderer.js.map +1 -1
- package/dist/rendering/production-runtime/index.d.ts +5 -4
- package/dist/rendering/production-runtime/index.d.ts.map +1 -1
- package/dist/rendering/production-runtime/index.js +3 -2
- package/dist/rendering/production-runtime/index.js.map +1 -1
- package/dist/rendering/production-runtime/passes/DepthPrepass.d.ts +26 -1
- package/dist/rendering/production-runtime/passes/DepthPrepass.d.ts.map +1 -1
- package/dist/rendering/production-runtime/passes/DepthPrepass.js +49 -2
- package/dist/rendering/production-runtime/passes/DepthPrepass.js.map +1 -1
- package/dist/rendering/production-runtime/passes/FramegraphTopology.d.ts +13 -0
- package/dist/rendering/production-runtime/passes/FramegraphTopology.d.ts.map +1 -0
- package/dist/rendering/production-runtime/passes/FramegraphTopology.js +59 -0
- package/dist/rendering/production-runtime/passes/FramegraphTopology.js.map +1 -0
- package/dist/rendering/production-runtime/passes/OpaquePass.d.ts +24 -1
- package/dist/rendering/production-runtime/passes/OpaquePass.d.ts.map +1 -1
- package/dist/rendering/production-runtime/passes/OpaquePass.js +41 -2
- package/dist/rendering/production-runtime/passes/OpaquePass.js.map +1 -1
- package/dist/rendering/production-runtime/passes/ShadowPass.d.ts +24 -1
- package/dist/rendering/production-runtime/passes/ShadowPass.d.ts.map +1 -1
- package/dist/rendering/production-runtime/passes/ShadowPass.js +43 -2
- package/dist/rendering/production-runtime/passes/ShadowPass.js.map +1 -1
- package/dist/rendering/production-runtime/passes/SkyboxPass.d.ts +21 -1
- package/dist/rendering/production-runtime/passes/SkyboxPass.d.ts.map +1 -1
- package/dist/rendering/production-runtime/passes/SkyboxPass.js +39 -2
- package/dist/rendering/production-runtime/passes/SkyboxPass.js.map +1 -1
- package/dist/rendering/production-runtime/passes/ToneMappingPass.d.ts +29 -1
- package/dist/rendering/production-runtime/passes/ToneMappingPass.d.ts.map +1 -1
- package/dist/rendering/production-runtime/passes/ToneMappingPass.js +53 -2
- package/dist/rendering/production-runtime/passes/ToneMappingPass.js.map +1 -1
- package/dist/rendering/production-runtime/passes/TransparentPass.d.ts +24 -1
- package/dist/rendering/production-runtime/passes/TransparentPass.d.ts.map +1 -1
- package/dist/rendering/production-runtime/passes/TransparentPass.js +42 -2
- package/dist/rendering/production-runtime/passes/TransparentPass.js.map +1 -1
- package/dist/rendering/shadows/CascadeHysteresis.d.ts +67 -0
- package/dist/rendering/shadows/CascadeHysteresis.d.ts.map +1 -0
- package/dist/rendering/shadows/CascadeHysteresis.js +104 -0
- package/dist/rendering/shadows/CascadeHysteresis.js.map +1 -0
- package/dist/rendering/shadows/ContactShadows.d.ts +52 -0
- package/dist/rendering/shadows/ContactShadows.d.ts.map +1 -1
- package/dist/rendering/shadows/ContactShadows.js +122 -0
- package/dist/rendering/shadows/ContactShadows.js.map +1 -1
- package/dist/rendering/shadows/SpotShadowMaps.d.ts +77 -0
- package/dist/rendering/shadows/SpotShadowMaps.d.ts.map +1 -0
- package/dist/rendering/shadows/SpotShadowMaps.js +106 -0
- package/dist/rendering/shadows/SpotShadowMaps.js.map +1 -0
- package/dist/rendering/webgpu/WebGPUPostProcess.d.ts +2 -0
- package/dist/rendering/webgpu/WebGPUPostProcess.d.ts.map +1 -1
- package/dist/rendering/webgpu/WebGPUPostProcess.js +1 -0
- package/dist/rendering/webgpu/WebGPUPostProcess.js.map +1 -1
- package/dist/rendering/webgpu/WebGPUPostShaders.d.ts +78 -0
- package/dist/rendering/webgpu/WebGPUPostShaders.d.ts.map +1 -0
- package/dist/rendering/webgpu/WebGPUPostShaders.js +262 -0
- package/dist/rendering/webgpu/WebGPUPostShaders.js.map +1 -0
- package/dist/scene/Scene.d.ts +8 -1
- package/dist/scene/Scene.d.ts.map +1 -1
- package/dist/scene/Scene.js +12 -2
- package/dist/scene/Scene.js.map +1 -1
- package/dist/scripting/VisualGraphContext.d.ts +31 -0
- package/dist/scripting/VisualGraphContext.d.ts.map +1 -1
- package/dist/scripting/VisualGraphExecutor.d.ts.map +1 -1
- package/dist/scripting/VisualGraphExecutor.js +110 -0
- package/dist/scripting/VisualGraphExecutor.js.map +1 -1
- package/dist/scripting/VisualNodeCatalog.d.ts +1 -1
- package/dist/scripting/VisualNodeCatalog.d.ts.map +1 -1
- package/dist/scripting/VisualNodeCatalog.js +20 -0
- package/dist/scripting/VisualNodeCatalog.js.map +1 -1
- package/dist/scripting/VisualScriptingRoot.d.ts +96 -0
- package/dist/scripting/VisualScriptingRoot.d.ts.map +1 -0
- package/dist/scripting/VisualScriptingRoot.js +150 -0
- package/dist/scripting/VisualScriptingRoot.js.map +1 -0
- package/dist/scripting/index.d.ts +3 -1
- package/dist/scripting/index.d.ts.map +1 -1
- package/dist/scripting/index.js +1 -0
- package/dist/scripting/index.js.map +1 -1
- package/package.json +24 -22
- package/templates/cinematic-scene/node_modules/.vite/deps/_metadata.json +8 -0
- package/templates/cinematic-scene/node_modules/.vite/deps/package.json +3 -0
- package/templates/cinematic-scene/test-results/.last-run.json +6 -0
- package/templates/cinematic-scene/test-results/route-health-Aura3D-cinematic-scene-reaches-ready-state/error-context.md +64 -0
- package/templates/product-viewer/node_modules/.vite/deps/_metadata.json +8 -0
- package/templates/product-viewer/node_modules/.vite/deps/package.json +3 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GameMixer.js","sourceRoot":"","sources":["../../../../packages/audio/src/GameMixer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { AudioSource, type AudioSourceState } from "./AudioSource.js";
|
|
2
|
+
import type { AudioClip } from "./AudioClip.js";
|
|
3
|
+
import type { AudioContextLike } from "./AudioContextManager.js";
|
|
4
|
+
import type { Vec3Like } from "./AudioListener.js";
|
|
5
|
+
import { SpatialAudio } from "./SpatialAudio.js";
|
|
6
|
+
export type DistanceAttenuationModel = "inverse" | "linear" | "exponential";
|
|
7
|
+
export interface DistanceAttenuationOptions {
|
|
8
|
+
readonly refDistance?: number;
|
|
9
|
+
readonly maxDistance?: number;
|
|
10
|
+
readonly rolloffFactor?: number;
|
|
11
|
+
readonly model?: DistanceAttenuationModel;
|
|
12
|
+
}
|
|
13
|
+
export interface DopplerOptions {
|
|
14
|
+
readonly speedOfSound?: number;
|
|
15
|
+
readonly dopplerFactor?: number;
|
|
16
|
+
}
|
|
17
|
+
/** A hook that reports how occluded an emitter is from the listener (0 = clear, 1 = fully blocked). */
|
|
18
|
+
export type OcclusionHook = (emitter: Vec3Like, listener: Vec3Like) => number;
|
|
19
|
+
/**
|
|
20
|
+
* Pure distance-attenuation gain in [0, 1], mirroring the PannerNode models so
|
|
21
|
+
* evidence stays meaningful even when no WebAudio context exists (headless runs).
|
|
22
|
+
*/
|
|
23
|
+
export declare function computeDistanceAttenuation(distance: number, options?: DistanceAttenuationOptions): number;
|
|
24
|
+
/**
|
|
25
|
+
* Pure doppler playback-rate ratio for an emitter/listener pair. Returns 1 when
|
|
26
|
+
* both are stationary relative to each other; clamped to [0.25, 4].
|
|
27
|
+
*/
|
|
28
|
+
export declare function computeDopplerShift(emitterPosition: Vec3Like, emitterVelocity: Vec3Like, listenerPosition: Vec3Like, listenerVelocity: Vec3Like, options?: DopplerOptions): number;
|
|
29
|
+
/** Resolve an occlusion amount from a hook, a literal, or absence (clear). Always clamped to [0, 1]. */
|
|
30
|
+
export declare function resolveOcclusion(occlusion: OcclusionHook | number | undefined, emitter: Vec3Like, listener: Vec3Like): number;
|
|
31
|
+
/** Gain multiplier for an occlusion amount: fully blocked still leaks 15% (never fully silent). */
|
|
32
|
+
export declare function applyOcclusionToGain(amount: number): number;
|
|
33
|
+
/** Lowpass cutoff for an occlusion amount: clear = 20kHz, fully blocked ≈ 400Hz. */
|
|
34
|
+
export declare function occlusionLowpassFrequency(amount: number): number;
|
|
35
|
+
export interface PositionalEmitterOptions {
|
|
36
|
+
readonly context: AudioContextLike;
|
|
37
|
+
readonly destination?: AudioNode;
|
|
38
|
+
readonly clip?: AudioClip;
|
|
39
|
+
readonly volume?: number;
|
|
40
|
+
readonly loop?: boolean;
|
|
41
|
+
readonly position?: Vec3Like;
|
|
42
|
+
readonly velocity?: Vec3Like;
|
|
43
|
+
readonly attenuation?: DistanceAttenuationOptions;
|
|
44
|
+
readonly doppler?: DopplerOptions & {
|
|
45
|
+
readonly enabled?: boolean;
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
export interface PositionalEmitterEvidence {
|
|
49
|
+
readonly kind: "positional-emitter-evidence";
|
|
50
|
+
readonly position: Vec3Like;
|
|
51
|
+
readonly attenuationGain: number;
|
|
52
|
+
readonly dopplerShift: number;
|
|
53
|
+
readonly occlusion: number;
|
|
54
|
+
readonly state: AudioSourceState;
|
|
55
|
+
/** False when the context cannot build the panner/filter graph — math is still reported, never faked. */
|
|
56
|
+
readonly connected: boolean;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* A positional voice: `AudioSource` (clip + gain) → occlusion lowpass → `SpatialAudio`
|
|
60
|
+
* panner → bus. Reuses both owners instead of forking them; attenuation/doppler math
|
|
61
|
+
* is pure so evidence works headless.
|
|
62
|
+
*/
|
|
63
|
+
export declare class PositionalEmitter {
|
|
64
|
+
private readonly options;
|
|
65
|
+
readonly source: AudioSource;
|
|
66
|
+
readonly spatial: SpatialAudio | undefined;
|
|
67
|
+
private readonly filter;
|
|
68
|
+
private readonly baseVolume;
|
|
69
|
+
private positionRef;
|
|
70
|
+
private velocityRef;
|
|
71
|
+
private readonly attenuationOptions;
|
|
72
|
+
private readonly dopplerOptions;
|
|
73
|
+
private readonly dopplerEnabled;
|
|
74
|
+
private occlusionRef;
|
|
75
|
+
private lastAttenuation;
|
|
76
|
+
private lastDoppler;
|
|
77
|
+
constructor(options: PositionalEmitterOptions);
|
|
78
|
+
get position(): Vec3Like;
|
|
79
|
+
get occlusion(): number;
|
|
80
|
+
get connected(): boolean;
|
|
81
|
+
setPosition(position: Vec3Like): void;
|
|
82
|
+
setVelocity(velocity: Vec3Like): void;
|
|
83
|
+
setOcclusion(amount: number): void;
|
|
84
|
+
/**
|
|
85
|
+
* Recompute attenuation + doppler against the listener and push them into the
|
|
86
|
+
* live graph (gain, playback rate, filter). Pure math runs even when headless.
|
|
87
|
+
*/
|
|
88
|
+
update(listenerPosition: Vec3Like, listenerVelocity?: Vec3Like): PositionalEmitterEvidence;
|
|
89
|
+
play(when?: number): void;
|
|
90
|
+
stop(when?: number): void;
|
|
91
|
+
evidence(): PositionalEmitterEvidence;
|
|
92
|
+
dispose(): void;
|
|
93
|
+
private applyGain;
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=PositionalEmitter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PositionalEmitter.d.ts","sourceRoot":"","sources":["../../../../packages/audio/src/PositionalEmitter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
import { AudioSource } from "./AudioSource.js";
|
|
2
|
+
import { SpatialAudio } from "./SpatialAudio.js";
|
|
3
|
+
const SPEED_OF_SOUND_DEFAULT = 343;
|
|
4
|
+
const DOPPLER_MIN = 0.25;
|
|
5
|
+
const DOPPLER_MAX = 4;
|
|
6
|
+
/**
|
|
7
|
+
* Pure distance-attenuation gain in [0, 1], mirroring the PannerNode models so
|
|
8
|
+
* evidence stays meaningful even when no WebAudio context exists (headless runs).
|
|
9
|
+
*/
|
|
10
|
+
export function computeDistanceAttenuation(distance, options = {}) {
|
|
11
|
+
if (!Number.isFinite(distance) || distance < 0)
|
|
12
|
+
return 1;
|
|
13
|
+
const refDistance = Math.max(Number.EPSILON, options.refDistance ?? 1);
|
|
14
|
+
const maxDistance = Math.max(refDistance, options.maxDistance ?? 10_000);
|
|
15
|
+
const rolloff = Math.max(0, options.rolloffFactor ?? 1);
|
|
16
|
+
const model = options.model ?? "inverse";
|
|
17
|
+
if (distance <= refDistance)
|
|
18
|
+
return 1;
|
|
19
|
+
if (distance >= maxDistance)
|
|
20
|
+
return 0;
|
|
21
|
+
if (model === "linear") {
|
|
22
|
+
return Math.max(0, 1 - rolloff * ((distance - refDistance) / (maxDistance - refDistance)));
|
|
23
|
+
}
|
|
24
|
+
if (model === "exponential") {
|
|
25
|
+
return Math.pow(distance / refDistance, -rolloff);
|
|
26
|
+
}
|
|
27
|
+
return refDistance / (refDistance + rolloff * (distance - refDistance));
|
|
28
|
+
}
|
|
29
|
+
function dot(a, b) {
|
|
30
|
+
return a.x * b.x + a.y * b.y + a.z * b.z;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Pure doppler playback-rate ratio for an emitter/listener pair. Returns 1 when
|
|
34
|
+
* both are stationary relative to each other; clamped to [0.25, 4].
|
|
35
|
+
*/
|
|
36
|
+
export function computeDopplerShift(emitterPosition, emitterVelocity, listenerPosition, listenerVelocity, options = {}) {
|
|
37
|
+
const speedOfSound = options.speedOfSound ?? SPEED_OF_SOUND_DEFAULT;
|
|
38
|
+
const factor = options.dopplerFactor ?? 1;
|
|
39
|
+
if (!Number.isFinite(speedOfSound) || speedOfSound <= 0 || !Number.isFinite(factor) || factor < 0)
|
|
40
|
+
return 1;
|
|
41
|
+
const delta = {
|
|
42
|
+
x: emitterPosition.x - listenerPosition.x,
|
|
43
|
+
y: emitterPosition.y - listenerPosition.y,
|
|
44
|
+
z: emitterPosition.z - listenerPosition.z
|
|
45
|
+
};
|
|
46
|
+
const distance = Math.hypot(delta.x, delta.y, delta.z);
|
|
47
|
+
if (distance < Number.EPSILON)
|
|
48
|
+
return 1;
|
|
49
|
+
// `direction` points from listener to emitter. Closing velocities (movement that
|
|
50
|
+
// shrinks the distance) raise the observed pitch: f' = f(c + vl.r)/(c + ve.r).
|
|
51
|
+
const direction = { x: delta.x / distance, y: delta.y / distance, z: delta.z / distance };
|
|
52
|
+
const emitterRadial = dot(emitterVelocity, direction);
|
|
53
|
+
const listenerRadial = dot(listenerVelocity, direction);
|
|
54
|
+
const shift = (speedOfSound + factor * listenerRadial) / (speedOfSound + factor * emitterRadial);
|
|
55
|
+
if (!Number.isFinite(shift))
|
|
56
|
+
return 1;
|
|
57
|
+
return Math.min(DOPPLER_MAX, Math.max(DOPPLER_MIN, shift));
|
|
58
|
+
}
|
|
59
|
+
/** Resolve an occlusion amount from a hook, a literal, or absence (clear). Always clamped to [0, 1]. */
|
|
60
|
+
export function resolveOcclusion(occlusion, emitter, listener) {
|
|
61
|
+
if (occlusion === undefined)
|
|
62
|
+
return 0;
|
|
63
|
+
const raw = typeof occlusion === "function" ? occlusion(emitter, listener) : occlusion;
|
|
64
|
+
if (!Number.isFinite(raw))
|
|
65
|
+
return 0;
|
|
66
|
+
return Math.min(1, Math.max(0, raw));
|
|
67
|
+
}
|
|
68
|
+
/** Gain multiplier for an occlusion amount: fully blocked still leaks 15% (never fully silent). */
|
|
69
|
+
export function applyOcclusionToGain(amount) {
|
|
70
|
+
const clamped = Math.min(1, Math.max(0, amount));
|
|
71
|
+
return 1 - 0.85 * clamped;
|
|
72
|
+
}
|
|
73
|
+
/** Lowpass cutoff for an occlusion amount: clear = 20kHz, fully blocked ≈ 400Hz. */
|
|
74
|
+
export function occlusionLowpassFrequency(amount) {
|
|
75
|
+
const clamped = Math.min(1, Math.max(0, amount));
|
|
76
|
+
return 20_000 * Math.pow(400 / 20_000, clamped);
|
|
77
|
+
}
|
|
78
|
+
const ZERO_VELOCITY = { x: 0, y: 0, z: 0 };
|
|
79
|
+
/**
|
|
80
|
+
* A positional voice: `AudioSource` (clip + gain) → occlusion lowpass → `SpatialAudio`
|
|
81
|
+
* panner → bus. Reuses both owners instead of forking them; attenuation/doppler math
|
|
82
|
+
* is pure so evidence works headless.
|
|
83
|
+
*/
|
|
84
|
+
export class PositionalEmitter {
|
|
85
|
+
options;
|
|
86
|
+
source;
|
|
87
|
+
spatial;
|
|
88
|
+
filter;
|
|
89
|
+
baseVolume;
|
|
90
|
+
positionRef;
|
|
91
|
+
velocityRef;
|
|
92
|
+
attenuationOptions;
|
|
93
|
+
dopplerOptions;
|
|
94
|
+
dopplerEnabled;
|
|
95
|
+
occlusionRef = 0;
|
|
96
|
+
lastAttenuation = 1;
|
|
97
|
+
lastDoppler = 1;
|
|
98
|
+
constructor(options) {
|
|
99
|
+
this.options = options;
|
|
100
|
+
this.baseVolume = options.volume ?? 1;
|
|
101
|
+
this.positionRef = { ...(options.position ?? { x: 0, y: 0, z: 0 }) };
|
|
102
|
+
this.velocityRef = { ...(options.velocity ?? ZERO_VELOCITY) };
|
|
103
|
+
this.attenuationOptions = { ...(options.attenuation ?? {}) };
|
|
104
|
+
this.dopplerOptions = { ...(options.doppler ?? {}) };
|
|
105
|
+
this.dopplerEnabled = options.doppler?.enabled ?? true;
|
|
106
|
+
let spatial;
|
|
107
|
+
let filter;
|
|
108
|
+
try {
|
|
109
|
+
spatial = new SpatialAudio({
|
|
110
|
+
context: options.context,
|
|
111
|
+
destination: options.destination,
|
|
112
|
+
position: this.positionRef,
|
|
113
|
+
maxDistance: this.attenuationOptions.maxDistance,
|
|
114
|
+
refDistance: this.attenuationOptions.refDistance,
|
|
115
|
+
rolloffFactor: this.attenuationOptions.rolloffFactor
|
|
116
|
+
});
|
|
117
|
+
filter = options.context.createBiquadFilter();
|
|
118
|
+
filter.type = "lowpass";
|
|
119
|
+
filter.frequency.value = 20_000;
|
|
120
|
+
filter.connect(spatial.panner);
|
|
121
|
+
}
|
|
122
|
+
catch {
|
|
123
|
+
spatial = undefined;
|
|
124
|
+
filter = undefined;
|
|
125
|
+
}
|
|
126
|
+
this.spatial = spatial;
|
|
127
|
+
this.filter = filter;
|
|
128
|
+
this.source = new AudioSource({
|
|
129
|
+
context: options.context,
|
|
130
|
+
destination: filter ?? spatial?.panner ?? options.destination,
|
|
131
|
+
clip: options.clip,
|
|
132
|
+
loop: options.loop,
|
|
133
|
+
volume: this.baseVolume
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
get position() {
|
|
137
|
+
return { ...this.positionRef };
|
|
138
|
+
}
|
|
139
|
+
get occlusion() {
|
|
140
|
+
return this.occlusionRef;
|
|
141
|
+
}
|
|
142
|
+
get connected() {
|
|
143
|
+
return this.spatial !== undefined && this.filter !== undefined;
|
|
144
|
+
}
|
|
145
|
+
setPosition(position) {
|
|
146
|
+
this.positionRef = { ...position };
|
|
147
|
+
this.spatial?.setPosition(position);
|
|
148
|
+
}
|
|
149
|
+
setVelocity(velocity) {
|
|
150
|
+
this.velocityRef = { ...velocity };
|
|
151
|
+
}
|
|
152
|
+
setOcclusion(amount) {
|
|
153
|
+
this.occlusionRef = Math.min(1, Math.max(0, amount));
|
|
154
|
+
if (this.filter) {
|
|
155
|
+
this.filter.frequency.value = occlusionLowpassFrequency(this.occlusionRef);
|
|
156
|
+
}
|
|
157
|
+
this.applyGain();
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Recompute attenuation + doppler against the listener and push them into the
|
|
161
|
+
* live graph (gain, playback rate, filter). Pure math runs even when headless.
|
|
162
|
+
*/
|
|
163
|
+
update(listenerPosition, listenerVelocity = ZERO_VELOCITY) {
|
|
164
|
+
const distance = Math.hypot(this.positionRef.x - listenerPosition.x, this.positionRef.y - listenerPosition.y, this.positionRef.z - listenerPosition.z);
|
|
165
|
+
this.lastAttenuation = computeDistanceAttenuation(distance, this.attenuationOptions);
|
|
166
|
+
this.lastDoppler = this.dopplerEnabled
|
|
167
|
+
? computeDopplerShift(this.positionRef, this.velocityRef, listenerPosition, listenerVelocity, this.dopplerOptions)
|
|
168
|
+
: 1;
|
|
169
|
+
this.source.playbackRate = this.lastDoppler;
|
|
170
|
+
this.applyGain();
|
|
171
|
+
return this.evidence();
|
|
172
|
+
}
|
|
173
|
+
play(when = 0) {
|
|
174
|
+
this.source.play(when);
|
|
175
|
+
}
|
|
176
|
+
stop(when = 0) {
|
|
177
|
+
this.source.stop(when);
|
|
178
|
+
}
|
|
179
|
+
evidence() {
|
|
180
|
+
return {
|
|
181
|
+
kind: "positional-emitter-evidence",
|
|
182
|
+
position: { ...this.positionRef },
|
|
183
|
+
attenuationGain: this.lastAttenuation,
|
|
184
|
+
dopplerShift: this.lastDoppler,
|
|
185
|
+
occlusion: this.occlusionRef,
|
|
186
|
+
state: this.source.state,
|
|
187
|
+
connected: this.connected
|
|
188
|
+
};
|
|
189
|
+
}
|
|
190
|
+
dispose() {
|
|
191
|
+
this.source.dispose();
|
|
192
|
+
this.filter?.disconnect();
|
|
193
|
+
this.spatial?.dispose();
|
|
194
|
+
}
|
|
195
|
+
applyGain() {
|
|
196
|
+
this.source.setVolume(this.baseVolume * this.lastAttenuation * applyOcclusionToGain(this.occlusionRef));
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
//# sourceMappingURL=PositionalEmitter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PositionalEmitter.js","sourceRoot":"","sources":["../../../../packages/audio/src/PositionalEmitter.ts"],"names":[],"mappings":"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"}
|
package/dist/audio/index.d.ts
CHANGED
|
@@ -16,6 +16,12 @@ export { AudioMixer, createAudioMixerEvidence, createAnimationAudioMixer } from
|
|
|
16
16
|
export type { AudioMixerBusEvidence, AudioMixerEvidence, AnimationAudioMixer, AnimationAudioMixerOptions } from "./AudioMixer.js";
|
|
17
17
|
export { AudioSource } from "./AudioSource.js";
|
|
18
18
|
export type { AudioSourceOptions, AudioSourceState } from "./AudioSource.js";
|
|
19
|
+
export { PositionalEmitter, applyOcclusionToGain, computeDistanceAttenuation, computeDopplerShift, occlusionLowpassFrequency, resolveOcclusion } from "./PositionalEmitter.js";
|
|
20
|
+
export type { DistanceAttenuationModel, DistanceAttenuationOptions, DopplerOptions, OcclusionHook, PositionalEmitterEvidence, PositionalEmitterOptions } from "./PositionalEmitter.js";
|
|
21
|
+
export { attachFocusPolicy, createGameMixer, focusHandlersForMixer } from "./GameMixer.js";
|
|
22
|
+
export type { FocusEventTargetLike, FocusMutePolicy, FocusPolicyHandlers, GameMixer, GameMixerBusLevel, GameMixerEvidence, GameMixerOptions } from "./GameMixer.js";
|
|
23
|
+
export { FootstepPlayer } from "./Footsteps.js";
|
|
24
|
+
export type { FootId, FootPlantEvent, FootstepEvidence, FootstepPlayerOptions } from "./Footsteps.js";
|
|
19
25
|
export { AudioSystem } from "./AudioSystem.js";
|
|
20
26
|
export { SceneAudioBridge } from "./SceneAudioBridge.js";
|
|
21
27
|
export type { SceneAudioSourceBinding } from "./SceneAudioBridge.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../packages/audio/src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAClF,YAAY,EACV,sBAAsB,EACtB,2BAA2B,EAC3B,0BAA0B,EAC1B,4BAA4B,EAC5B,kBAAkB,EAClB,0BAA0B,EAC1B,cAAc,EACd,uBAAuB,EACvB,mBAAmB,EACnB,gBAAgB,EAChB,wBAAwB,EACzB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,8BAA8B,EAAE,8BAA8B,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACpJ,YAAY,EACV,eAAe,EACf,qBAAqB,EACrB,sBAAsB,EACtB,mBAAmB,EACnB,iBAAiB,EACjB,wBAAwB,EACxB,0BAA0B,EAC1B,uBAAuB,EACvB,wBAAwB,EACxB,mBAAmB,EACnB,yBAAyB,EACzB,sBAAsB,EACvB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AACjK,YAAY,EACV,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,wBAAwB,EACxB,sBAAsB,EACtB,iBAAiB,EACjB,uBAAuB,EACvB,uBAAuB,EACvB,2BAA2B,EAC5B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,YAAY,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC7G,YAAY,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,YAAY,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AAC/F,YAAY,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAC/H,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,YAAY,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,YAAY,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../packages/audio/src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/audio/index.js
CHANGED
|
@@ -7,6 +7,9 @@ export { AudioContextManager } from "./AudioContextManager.js";
|
|
|
7
7
|
export { AudioListener } from "./AudioListener.js";
|
|
8
8
|
export { AudioMixer, createAudioMixerEvidence, createAnimationAudioMixer } from "./AudioMixer.js";
|
|
9
9
|
export { AudioSource } from "./AudioSource.js";
|
|
10
|
+
export { PositionalEmitter, applyOcclusionToGain, computeDistanceAttenuation, computeDopplerShift, occlusionLowpassFrequency, resolveOcclusion } from "./PositionalEmitter.js";
|
|
11
|
+
export { attachFocusPolicy, createGameMixer, focusHandlersForMixer } from "./GameMixer.js";
|
|
12
|
+
export { FootstepPlayer } from "./Footsteps.js";
|
|
10
13
|
export { AudioSystem } from "./AudioSystem.js";
|
|
11
14
|
export { SceneAudioBridge } from "./SceneAudioBridge.js";
|
|
12
15
|
export { SpatialAudio } from "./SpatialAudio.js";
|
package/dist/audio/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/audio/src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,OAAO,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAclF,OAAO,EAAE,8BAA8B,EAAE,8BAA8B,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAepJ,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAYjK,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAG5D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAE,UAAU,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AAE/F,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/audio/src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,OAAO,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAclF,OAAO,EAAE,8BAA8B,EAAE,8BAA8B,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAepJ,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAYjK,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAG5D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAE,UAAU,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AAE/F,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,0BAA0B,EAC1B,mBAAmB,EACnB,yBAAyB,EACzB,gBAAgB,EACjB,MAAM,qBAAqB,CAAC;AAS7B,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAUxF,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -1,7 +1,17 @@
|
|
|
1
1
|
import type { AnimationAssetProfile, AuraCanonicalAsset, ResolveCandidate, ResolveConstraints } from "../../asset-index/index.js";
|
|
2
2
|
import type { CliAssetSearchProfile, CliResolveConstraints } from "./types.js";
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
/**
|
|
4
|
+
* Triangle budgets applied to inferred character/vehicle queries.
|
|
5
|
+
*
|
|
6
|
+
* These mirror the Meshy admission maxima (humanoid 150k, vehicle 250k): a
|
|
7
|
+
* general-profile query that reads as a character or vehicle stops defaulting
|
|
8
|
+
* to an unbounded `general` fetch and resolves under the same budget the
|
|
9
|
+
* quality gates enforce downstream. Explicit caller values always win.
|
|
10
|
+
*/
|
|
11
|
+
export declare const INFERRED_CHARACTER_MAX_TRIANGLES = 150000;
|
|
12
|
+
export declare const INFERRED_VEHICLE_MAX_TRIANGLES = 250000;
|
|
13
|
+
export declare function toResolveConstraints(cli: CliResolveConstraints, redistributableOnly: boolean, query?: string): ResolveConstraints;
|
|
14
|
+
export declare function rankForProfile(candidates: readonly ResolveCandidate[], profile: CliAssetSearchProfile, query?: string): readonly ResolveCandidate[];
|
|
5
15
|
export declare function isAnimationCliProfile(profile: CliAssetSearchProfile | undefined): profile is AnimationAssetProfile;
|
|
6
16
|
export declare function evaluateAssetProfile(asset: AuraCanonicalAsset, profile: Exclude<CliAssetSearchProfile, "general">): {
|
|
7
17
|
readonly suitable: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profiles.d.ts","sourceRoot":"","sources":["../../../../../packages/aura3d-cli/src/pull-bridge/profiles.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,qBAAqB,EACrB,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EACV,qBAAqB,EACrB,qBAAqB,EACtB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"profiles.d.ts","sourceRoot":"","sources":["../../../../../packages/aura3d-cli/src/pull-bridge/profiles.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,qBAAqB,EACrB,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EACV,qBAAqB,EACrB,qBAAqB,EACtB,MAAM,YAAY,CAAC;AASpB;;;;;;;GAOG;AACH,eAAO,MAAM,gCAAgC,SAAU,CAAC;AACxD,eAAO,MAAM,8BAA8B,SAAU,CAAC;AAEtD,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,qBAAqB,EAC1B,mBAAmB,EAAE,OAAO,EAC5B,KAAK,CAAC,EAAE,MAAM,GACb,kBAAkB,CAgCpB;AAED,wBAAgB,cAAc,CAC5B,UAAU,EAAE,SAAS,gBAAgB,EAAE,EACvC,OAAO,EAAE,qBAAqB,EAC9B,KAAK,CAAC,EAAE,MAAM,GACb,SAAS,gBAAgB,EAAE,CA2B7B;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,qBAAqB,GAAG,SAAS,GAAG,OAAO,IAAI,qBAAqB,CAElH;AAED,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,kBAAkB,EACzB,OAAO,EAAE,OAAO,CAAC,qBAAqB,EAAE,SAAS,CAAC,GACjD;IAAE,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,gBAAgB,EAAE,SAAS,MAAM,EAAE,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,CAI/L;AAED,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,qBAAqB,GAAG,MAAM,CAWnF"}
|
|
@@ -1,7 +1,24 @@
|
|
|
1
1
|
import * as assetIndex from "../../asset-index/index.js";
|
|
2
|
+
import { inferQueryRole } from "./scoring.js";
|
|
2
3
|
const { evaluateAnimationAssetProfile, evaluateGameAssetProfile, isAnimationAssetProfile, } = assetIndex;
|
|
3
|
-
|
|
4
|
+
/**
|
|
5
|
+
* Triangle budgets applied to inferred character/vehicle queries.
|
|
6
|
+
*
|
|
7
|
+
* These mirror the Meshy admission maxima (humanoid 150k, vehicle 250k): a
|
|
8
|
+
* general-profile query that reads as a character or vehicle stops defaulting
|
|
9
|
+
* to an unbounded `general` fetch and resolves under the same budget the
|
|
10
|
+
* quality gates enforce downstream. Explicit caller values always win.
|
|
11
|
+
*/
|
|
12
|
+
export const INFERRED_CHARACTER_MAX_TRIANGLES = 150_000;
|
|
13
|
+
export const INFERRED_VEHICLE_MAX_TRIANGLES = 250_000;
|
|
14
|
+
export function toResolveConstraints(cli, redistributableOnly, query) {
|
|
4
15
|
const constraints = {};
|
|
16
|
+
if (cli.profile === "general" || cli.profile === undefined) {
|
|
17
|
+
const inferred = typeof query === "string" && query.trim().length > 0 ? inferQueryRole(query) : undefined;
|
|
18
|
+
if ((inferred === "character" || inferred === "vehicle") && typeof cli.maxTriangles !== "number") {
|
|
19
|
+
constraints.maxTriangles = inferred === "character" ? INFERRED_CHARACTER_MAX_TRIANGLES : INFERRED_VEHICLE_MAX_TRIANGLES;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
5
22
|
if (cli.profile === "fighting-character") {
|
|
6
23
|
constraints.license = cli.license && cli.license.length > 0 ? cli.license : ["CC0", "CC-BY"];
|
|
7
24
|
constraints.animated = true;
|
|
@@ -29,9 +46,23 @@ export function toResolveConstraints(cli, redistributableOnly) {
|
|
|
29
46
|
constraints.redistributableOnly = true;
|
|
30
47
|
return constraints;
|
|
31
48
|
}
|
|
32
|
-
export function rankForProfile(candidates, profile) {
|
|
33
|
-
if (profile === "general")
|
|
34
|
-
|
|
49
|
+
export function rankForProfile(candidates, profile, query) {
|
|
50
|
+
if (profile === "general") {
|
|
51
|
+
// A general-profile character/vehicle query stops defaulting to unfiltered
|
|
52
|
+
// catalog order: candidates whose catalog role matches the inferred query
|
|
53
|
+
// role rank first (by resolver score, then id), exactly like an explicit
|
|
54
|
+
// profile's suitability sort. Any other query returns catalog order.
|
|
55
|
+
const inferred = typeof query === "string" && query.trim().length > 0 ? inferQueryRole(query) : undefined;
|
|
56
|
+
if (inferred !== "character" && inferred !== "vehicle")
|
|
57
|
+
return candidates;
|
|
58
|
+
return [...candidates].sort((a, b) => {
|
|
59
|
+
const aMatch = a.asset.intendedRole === inferred ? 1 : 0;
|
|
60
|
+
const bMatch = b.asset.intendedRole === inferred ? 1 : 0;
|
|
61
|
+
return (bMatch - aMatch ||
|
|
62
|
+
b.score - a.score ||
|
|
63
|
+
a.asset.id.localeCompare(b.asset.id));
|
|
64
|
+
});
|
|
65
|
+
}
|
|
35
66
|
return [...candidates].sort((a, b) => {
|
|
36
67
|
const aEval = evaluateAssetProfile(a.asset, profile);
|
|
37
68
|
const bEval = evaluateAssetProfile(b.asset, profile);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profiles.js","sourceRoot":"","sources":["../../../../../packages/aura3d-cli/src/pull-bridge/profiles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,UAAU,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"profiles.js","sourceRoot":"","sources":["../../../../../packages/aura3d-cli/src/pull-bridge/profiles.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,21 @@ import type { AuraAssetIntendedRole, AuraCanonicalAsset, ResolveCandidate } from
|
|
|
2
2
|
import type { AssetInspectionReport, AuraCliAssetRole, AuraCliResolveCandidateProvenance } from "../index.js";
|
|
3
3
|
import type { AssetResolveCandidateScore } from "./scoring.js";
|
|
4
4
|
import type { CliAssetSearchProfile } from "./types.js";
|
|
5
|
-
|
|
5
|
+
/**
|
|
6
|
+
* Structural triangle floors mirrored from the Meshy admission profiles.
|
|
7
|
+
*
|
|
8
|
+
* `meshy/admission.ts` enforces a 1,000-triangle floor for vehicles and a
|
|
9
|
+
* 3,000-triangle floor for humanoids; the role-admission hero floor is 3,000.
|
|
10
|
+
* The same measured-and-below-floor classes are blocked here pre-download so a
|
|
11
|
+
* no-key resolve refuses a distant-prop shell (e.g. the 792-triangle body
|
|
12
|
+
* shell) without spending a download on it. A missing triangle count never
|
|
13
|
+
* blocks: absent metadata is unproven, not unfit.
|
|
14
|
+
*/
|
|
15
|
+
export declare const PROVENANCE_VEHICLE_MIN_TRIANGLES = 1000;
|
|
16
|
+
export declare const PROVENANCE_HUMANOID_MIN_TRIANGLES = 3000;
|
|
17
|
+
/** Bounds aspect ratio above this is degenerate (mirrors Meshy `bounds-degeneracy`). */
|
|
18
|
+
export declare const PROVENANCE_MAX_BOUNDS_ASPECT_RATIO = 1000;
|
|
19
|
+
export declare function createPreDownloadCandidateBlockingWarnings(asset: AuraCanonicalAsset, profile?: CliAssetSearchProfile): readonly string[];
|
|
6
20
|
export declare function createPostDownloadCandidateBlockingWarnings(asset: AuraCanonicalAsset, inspection: AssetInspectionReport, profile: CliAssetSearchProfile): readonly string[];
|
|
7
21
|
export declare function createResolveCandidateProvenance(candidate: ResolveCandidate, query: string, score: AssetResolveCandidateScore, inspection: AssetInspectionReport): AuraCliResolveCandidateProvenance;
|
|
8
22
|
export declare function mapCanonicalRoleToCli(role: AuraAssetIntendedRole | undefined): AuraCliAssetRole;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provenance.d.ts","sourceRoot":"","sources":["../../../../../packages/aura3d-cli/src/pull-bridge/provenance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EACrB,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EACV,qBAAqB,EACrB,gBAAgB,EAChB,iCAAiC,EAClC,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAGxD,wBAAgB,0CAA0C,
|
|
1
|
+
{"version":3,"file":"provenance.d.ts","sourceRoot":"","sources":["../../../../../packages/aura3d-cli/src/pull-bridge/provenance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EACrB,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EACV,qBAAqB,EACrB,gBAAgB,EAChB,iCAAiC,EAClC,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAGxD;;;;;;;;;GASG;AACH,eAAO,MAAM,gCAAgC,OAAQ,CAAC;AACtD,eAAO,MAAM,iCAAiC,OAAQ,CAAC;AACvD,wFAAwF;AACxF,eAAO,MAAM,kCAAkC,OAAQ,CAAC;AA4BxD,wBAAgB,0CAA0C,CACxD,KAAK,EAAE,kBAAkB,EACzB,OAAO,GAAE,qBAAiC,GACzC,SAAS,MAAM,EAAE,CAkBnB;AAED,wBAAgB,2CAA2C,CACzD,KAAK,EAAE,kBAAkB,EACzB,UAAU,EAAE,qBAAqB,EACjC,OAAO,EAAE,qBAAqB,GAC7B,SAAS,MAAM,EAAE,CA2CnB;AAED,wBAAgB,gCAAgC,CAC9C,SAAS,EAAE,gBAAgB,EAC3B,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,0BAA0B,EACjC,UAAU,EAAE,qBAAqB,GAChC,iCAAiC,CAuDnC;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,qBAAqB,GAAG,SAAS,GAAG,gBAAgB,CAE/F"}
|
|
@@ -1,5 +1,43 @@
|
|
|
1
1
|
import { isPositiveVector3 } from "./vector3.js";
|
|
2
|
-
|
|
2
|
+
/**
|
|
3
|
+
* Structural triangle floors mirrored from the Meshy admission profiles.
|
|
4
|
+
*
|
|
5
|
+
* `meshy/admission.ts` enforces a 1,000-triangle floor for vehicles and a
|
|
6
|
+
* 3,000-triangle floor for humanoids; the role-admission hero floor is 3,000.
|
|
7
|
+
* The same measured-and-below-floor classes are blocked here pre-download so a
|
|
8
|
+
* no-key resolve refuses a distant-prop shell (e.g. the 792-triangle body
|
|
9
|
+
* shell) without spending a download on it. A missing triangle count never
|
|
10
|
+
* blocks: absent metadata is unproven, not unfit.
|
|
11
|
+
*/
|
|
12
|
+
export const PROVENANCE_VEHICLE_MIN_TRIANGLES = 1_000;
|
|
13
|
+
export const PROVENANCE_HUMANOID_MIN_TRIANGLES = 3_000;
|
|
14
|
+
/** Bounds aspect ratio above this is degenerate (mirrors Meshy `bounds-degeneracy`). */
|
|
15
|
+
export const PROVENANCE_MAX_BOUNDS_ASPECT_RATIO = 1_000;
|
|
16
|
+
function catalogTriangles(asset) {
|
|
17
|
+
const value = asset.triangleCount ?? asset.triangles;
|
|
18
|
+
return typeof value === "number" && Number.isFinite(value) && value > 0 ? value : undefined;
|
|
19
|
+
}
|
|
20
|
+
function provenanceMinTriangles(asset, profile) {
|
|
21
|
+
if (asset.intendedRole === "vehicle")
|
|
22
|
+
return PROVENANCE_VEHICLE_MIN_TRIANGLES;
|
|
23
|
+
if (asset.intendedRole === "character")
|
|
24
|
+
return PROVENANCE_HUMANOID_MIN_TRIANGLES;
|
|
25
|
+
if (profile === "fighting-character" || profile === "animation-character")
|
|
26
|
+
return PROVENANCE_HUMANOID_MIN_TRIANGLES;
|
|
27
|
+
return undefined;
|
|
28
|
+
}
|
|
29
|
+
function boundsAspectWarnings(size, label) {
|
|
30
|
+
if (!size)
|
|
31
|
+
return [];
|
|
32
|
+
if (!(size.length === 3 && size.every((value) => typeof value === "number" && Number.isFinite(value) && value > 0))) {
|
|
33
|
+
return [`${label} bounds are not positive and finite; inspect export scale and stray geometry`];
|
|
34
|
+
}
|
|
35
|
+
const ratio = Math.max(...size) / Math.min(...size);
|
|
36
|
+
return ratio > PROVENANCE_MAX_BOUNDS_ASPECT_RATIO
|
|
37
|
+
? [`${label} bounds aspect ratio ${ratio.toFixed(1)} is degenerate; check export scale and stray geometry`]
|
|
38
|
+
: [];
|
|
39
|
+
}
|
|
40
|
+
export function createPreDownloadCandidateBlockingWarnings(asset, profile = "general") {
|
|
3
41
|
const warnings = [];
|
|
4
42
|
if (asset.duplicateHash && !asset.duplicateOkReason) {
|
|
5
43
|
warnings.push(`duplicate hash ${asset.duplicateHash} has no allowlist/explanation`);
|
|
@@ -7,6 +45,13 @@ export function createPreDownloadCandidateBlockingWarnings(asset) {
|
|
|
7
45
|
if (asset.access === "direct-download" && !(asset.downloadUrl ?? asset.url)) {
|
|
8
46
|
warnings.push("direct-download candidate is missing a download URL");
|
|
9
47
|
}
|
|
48
|
+
const triangles = catalogTriangles(asset);
|
|
49
|
+
const floor = provenanceMinTriangles(asset, profile);
|
|
50
|
+
if (triangles !== undefined && floor !== undefined && triangles < floor) {
|
|
51
|
+
const role = asset.intendedRole === "vehicle" ? "vehicle" : "humanoid";
|
|
52
|
+
warnings.push(`catalog reports ${triangles} triangles, below the ${role} structural floor of ${floor}; this is a distant-prop shell, not a hero subject`);
|
|
53
|
+
}
|
|
54
|
+
warnings.push(...boundsAspectWarnings(asset.bounds?.size ?? asset.dimensions, "catalog"));
|
|
10
55
|
return warnings;
|
|
11
56
|
}
|
|
12
57
|
export function createPostDownloadCandidateBlockingWarnings(asset, inspection, profile) {
|
|
@@ -35,6 +80,20 @@ export function createPostDownloadCandidateBlockingWarnings(asset, inspection, p
|
|
|
35
80
|
if (inspection.warnings.some((warning) => warning.includes("invisible or unreadable"))) {
|
|
36
81
|
warnings.push("downloaded file contains invisible or unreadable materials");
|
|
37
82
|
}
|
|
83
|
+
// Mirror the Meshy triangle floor post-download: a catalog count that looked
|
|
84
|
+
// fine (or was absent) still refuses when the role needs a hero subject and
|
|
85
|
+
// the measured catalog count is a shell. Profile-aware so an explicit
|
|
86
|
+
// character profile enforces the humanoid floor even when the catalog left
|
|
87
|
+
// `intendedRole` blank.
|
|
88
|
+
const postTriangles = catalogTriangles(asset);
|
|
89
|
+
const postFloor = provenanceMinTriangles(asset, profile);
|
|
90
|
+
if (postTriangles !== undefined && postFloor !== undefined && postTriangles < postFloor) {
|
|
91
|
+
const role = postFloor === PROVENANCE_VEHICLE_MIN_TRIANGLES && asset.intendedRole === "vehicle" ? "vehicle" : "humanoid";
|
|
92
|
+
warnings.push(`catalog reports ${postTriangles} triangles, below the ${role} structural floor of ${postFloor}; this is a distant-prop shell, not a hero subject`);
|
|
93
|
+
}
|
|
94
|
+
if (inspection.bounds) {
|
|
95
|
+
warnings.push(...boundsAspectWarnings(inspection.bounds, "downloaded file"));
|
|
96
|
+
}
|
|
38
97
|
return warnings;
|
|
39
98
|
}
|
|
40
99
|
export function createResolveCandidateProvenance(candidate, query, score, inspection) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provenance.js","sourceRoot":"","sources":["../../../../../packages/aura3d-cli/src/pull-bridge/provenance.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEjD,MAAM,UAAU,0CAA0C,
|
|
1
|
+
{"version":3,"file":"provenance.js","sourceRoot":"","sources":["../../../../../packages/aura3d-cli/src/pull-bridge/provenance.ts"],"names":[],"mappings":"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"}
|