├── .eslintrc.json ├── .github └── workflows │ ├── npm-publish.yml │ └── push-mainline-to-master-for-github-pages.yml ├── .gitignore ├── .npmignore ├── .prettierignore ├── .prettierrc ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── dist ├── host.babylon.js ├── host.core.js ├── host.three.js └── host.threeAzure.js ├── docs ├── AbstractBlendState.html ├── AbstractHostFeature.html ├── AbstractSpeech.html ├── AbstractState.html ├── AbstractTextToSpeechFeature.html ├── AnimationFeature.html ├── AnimationFeatureDependentInterface.html ├── AnimationLayer.html ├── AnimationPlayerInterface.html ├── AnimationUtils.html ├── Babylon.js_AnimationFeature.html ├── Babylon.js_HostObject.html ├── Babylon.js_Messenger.html ├── Babylon.js_PointOfInterestFeature.html ├── Babylon.js_SingleState.html ├── Babylon.js_Speech.html ├── Babylon.js_TextToSpeechFeature.html ├── Blend1dState.html ├── Blend2dState.html ├── Deferred.html ├── FeatureDependentInterface.html ├── FreeBlendState.html ├── GestureFeature.html ├── LipsyncFeature.html ├── ManagedAnimationLayerInterface.html ├── MathUtils.html ├── PointOfInterestFeature.html ├── QueueState.html ├── README.md ├── RandomAnimationState.html ├── SSMLSpeechmarkInterface.html ├── StateContainerInterface.html ├── TextToSpeechFeature.html ├── TextToSpeechFeatureDependentInterface.html ├── TextToSpeechUtils.html ├── TransitionState.html ├── Utils.html ├── core_AnimationFeature.html ├── core_HostObject.html ├── core_LipsyncFeature.html ├── core_Messenger.html ├── core_PointOfInterestFeature.html ├── core_SingleState.html ├── core_Speech.html ├── core_TextToSpeechFeature.html ├── external-Audio.html ├── external-Polly.html ├── external-Presigner.html ├── external-Promise.html ├── external-_BABYLON.AnimationGroup_.html ├── external-_BABYLON.Mesh_.html ├── external-_BABYLON.Scene_.html ├── external-_THREE.AnimationAction_.html ├── external-_THREE.AnimationMixer_.html ├── external-_THREE.AudioListener_.html ├── external-_THREE.Audio_.html ├── external-_THREE.Clock_.html ├── external-_THREE.Object3D_.html ├── external-_THREE.PositionalAudio_.html ├── fonts │ ├── OpenSans-Bold-webfont.eot │ ├── OpenSans-Bold-webfont.svg │ ├── OpenSans-Bold-webfont.woff │ ├── OpenSans-BoldItalic-webfont.eot │ ├── OpenSans-BoldItalic-webfont.svg │ ├── OpenSans-BoldItalic-webfont.woff │ ├── OpenSans-Italic-webfont.eot │ ├── OpenSans-Italic-webfont.svg │ ├── OpenSans-Italic-webfont.woff │ ├── OpenSans-Light-webfont.eot │ ├── OpenSans-Light-webfont.svg │ ├── OpenSans-Light-webfont.woff │ ├── OpenSans-LightItalic-webfont.eot │ ├── OpenSans-LightItalic-webfont.svg │ ├── OpenSans-LightItalic-webfont.woff │ ├── OpenSans-Regular-webfont.eot │ ├── OpenSans-Regular-webfont.svg │ └── OpenSans-Regular-webfont.woff ├── global.html ├── images │ ├── alien.png │ ├── babylon_controls.png │ ├── babylon_final.png │ ├── grace.png │ ├── grace_poi_brows.png │ ├── grace_poi_eyes.png │ ├── grace_poi_head.png │ ├── grace_visemes.png │ ├── loadscreen.png │ ├── luke.png │ ├── luke_poi_brows.png │ ├── luke_poi_eyes.png │ ├── luke_poi_head.png │ ├── luke_visemes.png │ ├── three_controls.png │ └── three_final.png ├── index.html ├── module-babylon_HOST.html ├── module-babylon_animpack-Easing.html ├── module-babylon_animpack.html ├── module-babylon_awspack.html ├── module-core_HOST.html ├── module-core_animpack-Easing.html ├── module-core_animpack.html ├── module-core_awspack.html ├── module-three_HOST.html ├── module-three_animpack-Easing.html ├── module-three_animpack.html ├── module-three_awspack.html ├── scripts │ ├── linenumber.js │ ├── prettify │ │ ├── Apache-License-2.0.txt │ │ ├── lang-css.js │ │ └── prettify.js │ └── toggle.js ├── styles │ ├── dark-theme.css │ ├── jsdoc-default.css │ ├── prettify-jsdoc.css │ ├── prettify-tomorrow.css │ └── sumerian-hosts.css ├── three.js_AnimationFeature.html ├── three.js_HostObject.html ├── three.js_Messenger.html ├── three.js_PointOfInterestFeature.html ├── three.js_SingleState.html ├── three.js_Speech.html └── three.js_TextToSpeechFeature.html ├── docs_template ├── publish.js ├── static │ ├── fonts │ │ ├── OpenSans-Bold-webfont.eot │ │ ├── OpenSans-Bold-webfont.svg │ │ ├── OpenSans-Bold-webfont.woff │ │ ├── OpenSans-BoldItalic-webfont.eot │ │ ├── OpenSans-BoldItalic-webfont.svg │ │ ├── OpenSans-BoldItalic-webfont.woff │ │ ├── OpenSans-Italic-webfont.eot │ │ ├── OpenSans-Italic-webfont.svg │ │ ├── OpenSans-Italic-webfont.woff │ │ ├── OpenSans-Light-webfont.eot │ │ ├── OpenSans-Light-webfont.svg │ │ ├── OpenSans-Light-webfont.woff │ │ ├── OpenSans-LightItalic-webfont.eot │ │ ├── OpenSans-LightItalic-webfont.svg │ │ ├── OpenSans-LightItalic-webfont.woff │ │ ├── OpenSans-Regular-webfont.eot │ │ ├── OpenSans-Regular-webfont.svg │ │ └── OpenSans-Regular-webfont.woff │ ├── scripts │ │ ├── linenumber.js │ │ ├── prettify │ │ │ ├── Apache-License-2.0.txt │ │ │ ├── lang-css.js │ │ │ └── prettify.js │ │ └── toggle.js │ └── styles │ │ ├── dark-theme.css │ │ ├── jsdoc-default.css │ │ ├── prettify-jsdoc.css │ │ ├── prettify-tomorrow.css │ │ └── sumerian-hosts.css └── tmpl │ ├── augments.tmpl │ ├── container.tmpl │ ├── details.tmpl │ ├── example.tmpl │ ├── examples.tmpl │ ├── exceptions.tmpl │ ├── layout.tmpl │ ├── mainpage.tmpl │ ├── members.tmpl │ ├── method.tmpl │ ├── modifies.tmpl │ ├── params.tmpl │ ├── properties.tmpl │ ├── returns.tmpl │ ├── source.tmpl │ ├── tutorial.tmpl │ └── type.tmpl ├── examples ├── SpeechSDK-JavaScript-1.18.0 │ ├── LICENSE │ ├── NOTICE.txt │ ├── REDIST.txt │ ├── microsoft.cognitiveservices.speech.sdk.bundle-min.js │ ├── microsoft.cognitiveservices.speech.sdk.bundle.d.ts │ ├── microsoft.cognitiveservices.speech.sdk.bundle.js │ ├── microsoft.cognitiveservices.speech.sdk.bundle.js.map │ ├── speech-processor.js │ └── test.html ├── assets │ ├── LICENSE │ ├── glTF │ │ ├── animations │ │ │ ├── adult_female │ │ │ │ ├── blink.glb │ │ │ │ ├── emote.glb │ │ │ │ ├── face_idle.glb │ │ │ │ ├── gesture.glb │ │ │ │ ├── gesture.json │ │ │ │ ├── lipsync.glb │ │ │ │ ├── poi.glb │ │ │ │ ├── poi.json │ │ │ │ └── stand_idle.glb │ │ │ ├── adult_male │ │ │ │ ├── blink.glb │ │ │ │ ├── emote.glb │ │ │ │ ├── face_idle.glb │ │ │ │ ├── gesture.glb │ │ │ │ ├── gesture.json │ │ │ │ ├── lipsync.glb │ │ │ │ ├── poi.glb │ │ │ │ ├── poi.json │ │ │ │ └── stand_idle.glb │ │ │ └── alien │ │ │ │ ├── blink.glb │ │ │ │ ├── emote.glb │ │ │ │ ├── face_idle.glb │ │ │ │ ├── gesture.glb │ │ │ │ ├── gesture.json │ │ │ │ ├── lipsync.glb │ │ │ │ ├── poi.glb │ │ │ │ ├── poi.json │ │ │ │ └── stand_idle.glb │ │ └── characters │ │ │ ├── adult_female │ │ │ ├── alt_outfits │ │ │ │ ├── hoodie_jeans.bin │ │ │ │ ├── hoodie_jeans.gltf │ │ │ │ ├── polo_jeans.bin │ │ │ │ ├── polo_jeans.gltf │ │ │ │ ├── textures │ │ │ │ │ ├── body_ao-body_rough.png │ │ │ │ │ ├── body_diff.jpg │ │ │ │ │ ├── body_norm.jpg │ │ │ │ │ ├── hoodie_diff.jpg │ │ │ │ │ ├── hoodie_norm.jpg │ │ │ │ │ ├── hoodie_rough-hoodie_metal.jpg │ │ │ │ │ ├── jeans_diff.jpg │ │ │ │ │ ├── jeans_norm.jpg │ │ │ │ │ ├── jeans_rough.jpg │ │ │ │ │ ├── polo_ao.jpg │ │ │ │ │ ├── polo_diff.jpg │ │ │ │ │ ├── polo_norm.jpg │ │ │ │ │ ├── polo_rough.jpg │ │ │ │ │ ├── shoes_diff.jpg │ │ │ │ │ ├── shoes_norm.jpg │ │ │ │ │ ├── shoes_rough.jpg │ │ │ │ │ ├── tShirt_diff.jpg │ │ │ │ │ ├── tShirt_norm.jpg │ │ │ │ │ └── tShirt_rough.jpg │ │ │ │ ├── tshirt_jeans.bin │ │ │ │ └── tshirt_jeans.gltf │ │ │ ├── cristine │ │ │ │ ├── cristine.bin │ │ │ │ ├── cristine.gltf │ │ │ │ └── textures │ │ │ │ │ ├── body_ao.jpg │ │ │ │ │ ├── body_diff.jpg │ │ │ │ │ ├── body_norm.jpg │ │ │ │ │ ├── body_rough.jpg │ │ │ │ │ ├── eyes_diff.jpg │ │ │ │ │ ├── eyes_metal.jpg │ │ │ │ │ ├── hair_diff.jpg │ │ │ │ │ ├── hair_norm.jpg │ │ │ │ │ ├── hair_rough.jpg │ │ │ │ │ ├── hairtie_diff.jpg │ │ │ │ │ ├── hairtie_norm.jpg │ │ │ │ │ ├── head_ao.jpg │ │ │ │ │ ├── head_diff.jpg │ │ │ │ │ ├── head_norm.jpg │ │ │ │ │ ├── head_rough.jpg │ │ │ │ │ ├── pants_ao.jpg │ │ │ │ │ ├── pants_diff.jpg │ │ │ │ │ ├── pants_norm.jpg │ │ │ │ │ ├── pants_rough-pants_metal.jpg │ │ │ │ │ ├── shirt_ao.jpg │ │ │ │ │ ├── shirt_diff.jpg │ │ │ │ │ ├── shirt_norm.jpg │ │ │ │ │ ├── shirt_rough.jpg │ │ │ │ │ ├── shoes_diff.jpg │ │ │ │ │ ├── shoes_norm.jpg │ │ │ │ │ └── shoes_rough.jpg │ │ │ ├── fiona │ │ │ │ ├── fiona.bin │ │ │ │ ├── fiona.gltf │ │ │ │ └── textures │ │ │ │ │ ├── accessories_ao-accessories_rough.png │ │ │ │ │ ├── accessories_diff.png │ │ │ │ │ ├── accessories_norm.png │ │ │ │ │ ├── beads_diff.png │ │ │ │ │ ├── beads_norm.png │ │ │ │ │ ├── body_ao-body_rough.png │ │ │ │ │ ├── body_diff.png │ │ │ │ │ ├── body_norm.png │ │ │ │ │ ├── eyes_diff.png │ │ │ │ │ ├── eyes_metal.png │ │ │ │ │ ├── hair_diff.png │ │ │ │ │ ├── hair_norm.png │ │ │ │ │ ├── head_ao-head_rough.png │ │ │ │ │ ├── head_diff.png │ │ │ │ │ ├── head_norm.png │ │ │ │ │ ├── pants_diff.png │ │ │ │ │ ├── pants_norm.png │ │ │ │ │ ├── pants_rough.png │ │ │ │ │ ├── shirt_diff.png │ │ │ │ │ ├── shirt_norm.png │ │ │ │ │ ├── shirt_rough.png │ │ │ │ │ ├── shoes_diff.png │ │ │ │ │ ├── shoes_norm.png │ │ │ │ │ └── shoes_rough.png │ │ │ ├── grace │ │ │ │ ├── grace.bin │ │ │ │ ├── grace.gltf │ │ │ │ └── textures │ │ │ │ │ ├── body_ao-body_rough.png │ │ │ │ │ ├── body_diff.jpg │ │ │ │ │ ├── body_norm.jpg │ │ │ │ │ ├── eyes_diff.jpg │ │ │ │ │ ├── eyes_metal.jpg │ │ │ │ │ ├── hair_diff.jpg │ │ │ │ │ ├── hair_norm.jpg │ │ │ │ │ ├── hair_rough.jpg │ │ │ │ │ ├── head_ao-head_rough.png │ │ │ │ │ ├── head_diff.jpg │ │ │ │ │ ├── head_norm.jpg │ │ │ │ │ ├── jacket_ao-jacket_rough.png │ │ │ │ │ ├── jacket_diff.jpg │ │ │ │ │ ├── jacket_norm.jpg │ │ │ │ │ ├── pants_ao-pants_rough-pants_metal.png │ │ │ │ │ ├── pants_diff.jpg │ │ │ │ │ ├── pants_norm.jpg │ │ │ │ │ ├── shoes_ao-shoes_rough-shoes_metal.png │ │ │ │ │ ├── shoes_diff.jpg │ │ │ │ │ └── shoes_norm.jpg │ │ │ └── maya │ │ │ │ ├── maya.bin │ │ │ │ ├── maya.gltf │ │ │ │ └── textures │ │ │ │ ├── body_ao-body_rough.png │ │ │ │ ├── body_diff.jpg │ │ │ │ ├── body_norm.jpg │ │ │ │ ├── earrings_diff.jpg │ │ │ │ ├── earrings_norm.jpg │ │ │ │ ├── eyes_diff.jpg │ │ │ │ ├── eyes_metal.jpg │ │ │ │ ├── hair_ao-hair_rough.png │ │ │ │ ├── hair_diff.jpg │ │ │ │ ├── hair_norm.jpg │ │ │ │ ├── hairband_diff.jpg │ │ │ │ ├── hairband_norm.jpg │ │ │ │ ├── head_ao-head_rough.png │ │ │ │ ├── head_diff.jpg │ │ │ │ ├── head_norm.jpg │ │ │ │ ├── labcoat_ao-labcoat_rough.png │ │ │ │ ├── labcoat_diff.jpg │ │ │ │ ├── labcoat_norm.jpg │ │ │ │ ├── pants_ao-pants_rough.png │ │ │ │ ├── pants_diff.jpg │ │ │ │ ├── pants_norm.jpg │ │ │ │ ├── shoes_ao-shoes_rough.png │ │ │ │ ├── shoes_diff.jpg │ │ │ │ └── shoes_norm.jpg │ │ │ ├── adult_male │ │ │ ├── alt_outfits │ │ │ │ ├── hoodie_jeans.bin │ │ │ │ ├── hoodie_jeans.gltf │ │ │ │ ├── polo_jeans.bin │ │ │ │ ├── polo_jeans.gltf │ │ │ │ ├── textures │ │ │ │ │ ├── body_ao-body_rough.png │ │ │ │ │ ├── body_diff.jpg │ │ │ │ │ ├── body_norm.jpg │ │ │ │ │ ├── hoodie_diff.jpg │ │ │ │ │ ├── hoodie_norm.jpg │ │ │ │ │ ├── hoodie_rough-hoodie_metal.jpg │ │ │ │ │ ├── jeans_diff.jpg │ │ │ │ │ ├── jeans_norm.jpg │ │ │ │ │ ├── jeans_rough.jpg │ │ │ │ │ ├── polo_diff.jpg │ │ │ │ │ ├── polo_norm.jpg │ │ │ │ │ ├── polo_rough.jpg │ │ │ │ │ ├── shoes_diff.jpg │ │ │ │ │ ├── shoes_norm.jpg │ │ │ │ │ ├── shoes_rough.jpg │ │ │ │ │ ├── tShirt_diff.jpg │ │ │ │ │ ├── tShirt_norm.jpg │ │ │ │ │ └── tShirt_rough.jpg │ │ │ │ ├── tshirt_jeans.bin │ │ │ │ └── tshirt_jeans.gltf │ │ │ ├── jay │ │ │ │ ├── jay.bin │ │ │ │ ├── jay.gltf │ │ │ │ └── textures │ │ │ │ │ ├── body_ao-body_rough.png │ │ │ │ │ ├── body_diff.jpg │ │ │ │ │ ├── body_norm.jpg │ │ │ │ │ ├── eyes_diff.jpg │ │ │ │ │ ├── eyes_metal.jpg │ │ │ │ │ ├── hair_ao-hair_rough.png │ │ │ │ │ ├── hair_diff.jpg │ │ │ │ │ ├── hair_norm.jpg │ │ │ │ │ ├── head_ao-head_rough.png │ │ │ │ │ ├── head_diff.jpg │ │ │ │ │ ├── head_norm.jpg │ │ │ │ │ ├── pants_ao-pants_rough.png │ │ │ │ │ ├── pants_diff.jpg │ │ │ │ │ ├── pants_norm.jpg │ │ │ │ │ ├── shirt_ao-shirt_rough.png │ │ │ │ │ ├── shirt_diff.jpg │ │ │ │ │ ├── shirt_norm.jpg │ │ │ │ │ ├── shoes_ao-shoes_rough.png │ │ │ │ │ ├── shoes_diff.jpg │ │ │ │ │ ├── shoes_norm.jpg │ │ │ │ │ ├── sweater_ao-sweater_rough.png │ │ │ │ │ ├── sweater_diff.jpg │ │ │ │ │ └── sweater_norm.jpg │ │ │ ├── luke │ │ │ │ ├── luke.bin │ │ │ │ ├── luke.gltf │ │ │ │ └── textures │ │ │ │ │ ├── body_ao-body_rough.png │ │ │ │ │ ├── body_diff.jpg │ │ │ │ │ ├── body_norm.jpg │ │ │ │ │ ├── eyes_diff.jpg │ │ │ │ │ ├── eyes_metal.jpg │ │ │ │ │ ├── hair_ao-hair_rough.png │ │ │ │ │ ├── hair_diff.jpg │ │ │ │ │ ├── hair_norm.jpg │ │ │ │ │ ├── head_ao-head_rough.png │ │ │ │ │ ├── head_diff.jpg │ │ │ │ │ ├── head_norm.jpg │ │ │ │ │ ├── jacket_ao-jacket_rough.png │ │ │ │ │ ├── jacket_diff.jpg │ │ │ │ │ ├── jacket_norm.jpg │ │ │ │ │ ├── pants_ao-pants_rough.png │ │ │ │ │ ├── pants_diff.jpg │ │ │ │ │ ├── pants_norm.jpg │ │ │ │ │ ├── shoes_ao-shoes_rough-shoes_metal.png │ │ │ │ │ ├── shoes_diff.jpg │ │ │ │ │ └── shoes_norm.jpg │ │ │ ├── preston │ │ │ │ ├── preston.bin │ │ │ │ ├── preston.gltf │ │ │ │ └── textures │ │ │ │ │ ├── beard_diff.jpg │ │ │ │ │ ├── beard_norm.jpg │ │ │ │ │ ├── body_ao-body_rough.png │ │ │ │ │ ├── body_diff.jpg │ │ │ │ │ ├── body_norm.jpg │ │ │ │ │ ├── eyes_diff.jpg │ │ │ │ │ ├── eyes_metal.jpg │ │ │ │ │ ├── glasses_diff.jpg │ │ │ │ │ ├── glasses_norm.jpg │ │ │ │ │ ├── hair_diff.jpg │ │ │ │ │ ├── hair_norm.jpg │ │ │ │ │ ├── hair_rough.jpg │ │ │ │ │ ├── head_ao-head_rough.png │ │ │ │ │ ├── head_diff.jpg │ │ │ │ │ ├── head_norm.jpg │ │ │ │ │ ├── pants_diff.jpg │ │ │ │ │ ├── pants_norm.jpg │ │ │ │ │ ├── pants_rough.jpg │ │ │ │ │ ├── shirt_ao-shirt_rough.png │ │ │ │ │ ├── shirt_diff.jpg │ │ │ │ │ ├── shirt_norm.jpg │ │ │ │ │ ├── shoes_diff.jpg │ │ │ │ │ ├── shoes_norm.jpg │ │ │ │ │ └── shoes_rough.jpg │ │ │ └── wes │ │ │ │ ├── textures │ │ │ │ ├── body_ao-body_rough.png │ │ │ │ ├── body_diff.png │ │ │ │ ├── body_norm.png │ │ │ │ ├── eyes_diff.png │ │ │ │ ├── hair_diff.png │ │ │ │ ├── hair_norm.png │ │ │ │ ├── hair_rough.png │ │ │ │ ├── head_ao-head_rough.png │ │ │ │ ├── head_diff.png │ │ │ │ ├── head_norm.png │ │ │ │ ├── headphones_diff.png │ │ │ │ ├── headphones_norm.png │ │ │ │ ├── headphones_rough-headphones_metal.png │ │ │ │ ├── pants_diff.png │ │ │ │ ├── pants_norm.png │ │ │ │ ├── pants_rough-pants_metal.png │ │ │ │ ├── shirt_diff.png │ │ │ │ ├── shirt_norm.png │ │ │ │ ├── shirt_rough.png │ │ │ │ ├── shoes_diff.png │ │ │ │ ├── shoes_norm.png │ │ │ │ └── shoes_rough.png │ │ │ │ ├── wes.bin │ │ │ │ └── wes.gltf │ │ │ └── alien │ │ │ ├── alien.bin │ │ │ ├── alien.gltf │ │ │ └── textures │ │ │ ├── alien_diffuse_01.jpg │ │ │ ├── alien_emissive_01.jpg │ │ │ ├── alien_normals_01.jpg │ │ │ ├── alien_rough_01.jpg │ │ │ ├── eye_diffuse_01.jpg │ │ │ ├── eye_emissive_01.jpg │ │ │ └── eye_metal_01.jpg │ └── images │ │ ├── load_screen.png │ │ └── machine_shop.jpg ├── azure-duck-punch.js ├── babylon.html ├── polly.html ├── three-azure-v1.html ├── three-azure-v2.html └── three.html ├── jsdoc.conf.json ├── karma.conf.js ├── package-lock.json ├── package.json ├── pythonServer.py ├── src ├── Babylon.js │ ├── HostEnvironment.js │ ├── HostObject.js │ ├── Messenger.js │ ├── PointOfInterestFeature.js │ ├── animpack │ │ ├── AnimationFeature.js │ │ ├── index.js │ │ └── state │ │ │ └── SingleState.js │ ├── awspack │ │ ├── Speech.js │ │ ├── TextToSpeechFeature.js │ │ └── index.js │ └── index.js ├── core │ ├── AbstractHostFeature.js │ ├── Deferred.js │ ├── FeatureDependentInterface.js │ ├── GestureFeature.js │ ├── HostEnvironment.js │ ├── HostObject.js │ ├── LipsyncFeature.js │ ├── MathUtils.js │ ├── Messenger.js │ ├── PointOfInterestFeature.js │ ├── Utils.js │ ├── animpack │ │ ├── AnimationFeature.js │ │ ├── AnimationFeatureDependentInterface.js │ │ ├── AnimationLayer.js │ │ ├── AnimationPlayerInterface.js │ │ ├── AnimationUtils.js │ │ ├── Easing.js │ │ ├── ManagedAnimationLayerInterface.js │ │ ├── index.js │ │ └── state │ │ │ ├── AbstractBlendState.js │ │ │ ├── AbstractState.js │ │ │ ├── Blend1dState.js │ │ │ ├── Blend2dState.js │ │ │ ├── FreeBlendState.js │ │ │ ├── QueueState.js │ │ │ ├── RandomAnimationState.js │ │ │ ├── SingleState.js │ │ │ ├── StateContainerInterface.js │ │ │ └── TransitionState.js │ ├── awspack │ │ ├── AbstractSpeech.js │ │ ├── AbstractTextToSpeechFeature.js │ │ ├── SSMLSpeechmarkInterface.js │ │ ├── Speech.js │ │ ├── TextToSpeechFeature.js │ │ ├── TextToSpeechFeatureDependentInterface.js │ │ ├── TextToSpeechUtils.js │ │ └── index.js │ └── index.js ├── three.js │ ├── HostEnvironment.js │ ├── HostObject.js │ ├── Messenger.js │ ├── PointOfInterestFeature.js │ ├── animpack │ │ ├── AnimationFeature.js │ │ ├── index.js │ │ └── state │ │ │ └── SingleState.js │ ├── awspack │ │ ├── Speech.js │ │ ├── TextToSpeechFeature.js │ │ └── index.js │ └── index.js └── threeAzure │ ├── HostEnvironment.js │ ├── HostObject.js │ ├── Messenger.js │ ├── PointOfInterestFeature.js │ ├── animpack │ ├── AnimationFeature.js │ ├── index.js │ └── state │ │ └── SingleState.js │ ├── awspack │ ├── Speech.js │ ├── TextToSpeechFeature.js │ └── index.js │ └── index.js ├── test ├── assets │ ├── Xbot.glb │ └── audio.mp3 ├── integration_test │ ├── Babylon.js │ │ ├── babylon.animation.html │ │ └── babylon.texttospeech.html │ ├── README.md │ ├── core │ │ ├── core.Deferred.html │ │ └── core.texttospeech.html │ └── three.js │ │ ├── three.animation.html │ │ └── three.texttospeech.html └── unit │ ├── AbstractHostFeature.spec.js │ ├── BabylonHarness.js │ ├── CoreHarness.js │ ├── Deferred.spec.js │ ├── EnvironmentHarness.js │ ├── FeatureDependentInterface.spec.js │ ├── GestureFeature.spec.js │ ├── HostObject.spec.js │ ├── MathUtils.spec.js │ ├── Messenger.spec.js │ ├── PointOfInterestFeature.spec.js │ ├── ThreeHarness.js │ ├── Utils.spec.js │ ├── animpack │ ├── AnimationFeature.spec.js │ ├── AnimationLayer.spec.js │ ├── AnimationPlayerInterface.spec.js │ ├── AnimationUtils.spec.js │ ├── LipsyncFeature.spec.js │ ├── ManagedAnimationLayerInterface.spec.js │ └── state │ │ ├── AbstractBlendState.spec.js │ │ ├── AbstractState.spec.js │ │ ├── Blend1dState.spec.js │ │ ├── Blend2dState.spec.js │ │ ├── FreeBlendState.spec.js │ │ ├── QueueState.spec.js │ │ ├── RandomAnimationState.spec.js │ │ ├── SingleState.spec.js │ │ ├── StateContainerInterface.spec.js │ │ └── TransitionState.spec.js │ └── awspack │ ├── AbstractSpeech.spec.js │ ├── AbstractTextToSpeechFeature.spec.js │ ├── SSMLSpeechmarkInterface.spec.js │ ├── Speech.spec.js │ ├── TextToSpeechFeature.spec.js │ └── TextToSpeechUtils.spec.js ├── webpack.common.js ├── webpack.dev.js └── webpack.test.js /.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "parser": "babel-eslint", 3 | "extends": ["airbnb", "prettier", "plugin:jasmine/recommended"], 4 | "plugins": ["prettier", "jasmine"], 5 | "parserOptions": { 6 | "ecmaFeatures": { 7 | "experimentalObjectResetSpread": true 8 | } 9 | }, 10 | "globals": { 11 | "atob": true, 12 | "btoa": true, 13 | "document": true, 14 | "navigator": true, 15 | "window": true, 16 | "XMLHttpRequest": true, 17 | "AWS": true, 18 | "THREE": true, 19 | "BABYLON": true, 20 | "expectAsync": true 21 | }, 22 | "rules": { 23 | // Specific rule overrides can go here. 24 | "indent": [ 25 | "error", 26 | 2, 27 | { 28 | "SwitchCase": 1 29 | } 30 | ], 31 | "no-var": "warn", 32 | "no-tabs": "warn", 33 | "func-names": "off", 34 | "object-curly-spacing": "off", 35 | "no-param-reassign": "off", 36 | "no-mixed-operators": "off", 37 | "no-bitwise": "off", 38 | "max-len": "off", 39 | "import/no-extraneous-dependencies": "off", 40 | "no-shadow": "off", 41 | "no-plusplus": "off", 42 | "no-underscore-dangle": [ 43 | "warn", 44 | { 45 | "allowAfterThis": true, 46 | "allowAfterSuper": true 47 | } 48 | ], 49 | "spaced-comment": "off", 50 | "arrow-parens": "off", 51 | "no-trailing-spaces": "warn", 52 | "no-console": "off", 53 | "comma-dangle": "off", 54 | "no-else-return": "off", 55 | "no-unused-vars": "warn", 56 | "class-methods-use-this": "off", 57 | "prefer-const": "warn", 58 | "consistent-return": "off", 59 | "arrow-body-style": "off", 60 | "no-use-before-define": "off" 61 | }, 62 | "env": { 63 | "browser": true, 64 | "node": true, 65 | "jasmine": true 66 | }, 67 | "settings": { 68 | "import/resolver": { 69 | "webpack": { 70 | "config": "./webpack.common.js" 71 | } 72 | } 73 | } 74 | } 75 | -------------------------------------------------------------------------------- /.github/workflows/npm-publish.yml: -------------------------------------------------------------------------------- 1 | name: Node.js Package 2 | 3 | on: 4 | release: 5 | types: [created] 6 | jobs: 7 | build: 8 | runs-on: ubuntu-latest 9 | steps: 10 | - uses: actions/checkout@v2 11 | # Setup .npmrc file to publish to npm 12 | - uses: actions/setup-node@v1 13 | with: 14 | node-version: '12.x' 15 | registry-url: 'https://registry.npmjs.org' 16 | - run: npm install 17 | - run: npm publish 18 | env: 19 | NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} 20 | -------------------------------------------------------------------------------- /.github/workflows/push-mainline-to-master-for-github-pages.yml: -------------------------------------------------------------------------------- 1 | # This workflow is necessary to support publishing to GitHub pages after renaming master to mainline since GitHub pages currently only support setting source from master branch 2 | 3 | name: Push mainline changes into master branch 4 | 5 | # Controls when the action will run. Triggers the workflow on push or pull request 6 | # events but only for the master branch 7 | on: 8 | push: 9 | branches: [ mainline ] 10 | 11 | # A workflow run is made up of one or more jobs that can run sequentially or in parallel 12 | jobs: 13 | push_to_master_branch: 14 | # The type of runner that the job will run on 15 | runs-on: ubuntu-latest 16 | 17 | # Steps represent a sequence of tasks that will be executed as part of the job 18 | steps: 19 | # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it 20 | - uses: actions/checkout@v2 21 | - name: Push changes 22 | uses: ad-m/github-push-action@master 23 | with: 24 | github_token: ${{ secrets.GITHUB_TOKEN }} 25 | branch: master 26 | force: true 27 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | *.swp 3 | .project 4 | node_modules 5 | .idea/ 6 | .vscode/ 7 | npm-debug.log 8 | .jshintrc 9 | .vs/ 10 | .gitconfig 11 | build 12 | build/ 13 | -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | karma.conf.js 2 | webpack* 3 | test 4 | docs* 5 | jsdoc* 6 | .eslintrc.json 7 | .prettierrc 8 | CONTRIBUTING.md 9 | CODE_OF_CONDUCT.md 10 | 11 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | *.md 2 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "printWidth": 80, 3 | "tabWidth": 2, 4 | "useTabs": false, 5 | "semi": true, 6 | "singleQuote": true, 7 | "trailingComma": "es5", 8 | "bracketSpacing": false 9 | } 10 | -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | ## Code of Conduct 2 | This project has adopted the [Amazon Open Source Code of Conduct](https://aws.github.io/code-of-conduct). 3 | For more information see the [Code of Conduct FAQ](https://aws.github.io/code-of-conduct-faq) or contact 4 | opensource-codeofconduct@amazon.com with any additional questions or comments. 5 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy of 4 | this software and associated documentation files (the "Software"), to deal in 5 | the Software without restriction, including without limitation the rights to 6 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 7 | the Software, and to permit persons to whom the Software is furnished to do so. 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 10 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 11 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 12 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 13 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 14 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 15 | -------------------------------------------------------------------------------- /docs/README.md: -------------------------------------------------------------------------------- 1 | ## Amazon Sumerian Hosts API Documentation 2 | 3 | Majority of the host API is included in the Core folder and is universal regardless of the engine-specific build being used. There are a few classes that require engine-specific objects to be defined. These can be found in the build folder matching the name of the rendering engine. 4 | -------------------------------------------------------------------------------- /docs/fonts/OpenSans-Bold-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/docs/fonts/OpenSans-Bold-webfont.eot -------------------------------------------------------------------------------- /docs/fonts/OpenSans-Bold-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/docs/fonts/OpenSans-Bold-webfont.woff -------------------------------------------------------------------------------- /docs/fonts/OpenSans-BoldItalic-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/docs/fonts/OpenSans-BoldItalic-webfont.eot -------------------------------------------------------------------------------- /docs/fonts/OpenSans-BoldItalic-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/docs/fonts/OpenSans-BoldItalic-webfont.woff -------------------------------------------------------------------------------- /docs/fonts/OpenSans-Italic-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/docs/fonts/OpenSans-Italic-webfont.eot -------------------------------------------------------------------------------- /docs/fonts/OpenSans-Italic-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/docs/fonts/OpenSans-Italic-webfont.woff -------------------------------------------------------------------------------- /docs/fonts/OpenSans-Light-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/docs/fonts/OpenSans-Light-webfont.eot -------------------------------------------------------------------------------- /docs/fonts/OpenSans-Light-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/docs/fonts/OpenSans-Light-webfont.woff -------------------------------------------------------------------------------- /docs/fonts/OpenSans-LightItalic-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/docs/fonts/OpenSans-LightItalic-webfont.eot -------------------------------------------------------------------------------- /docs/fonts/OpenSans-LightItalic-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/docs/fonts/OpenSans-LightItalic-webfont.woff -------------------------------------------------------------------------------- /docs/fonts/OpenSans-Regular-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/docs/fonts/OpenSans-Regular-webfont.eot -------------------------------------------------------------------------------- /docs/fonts/OpenSans-Regular-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/docs/fonts/OpenSans-Regular-webfont.woff -------------------------------------------------------------------------------- /docs/images/alien.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/docs/images/alien.png -------------------------------------------------------------------------------- /docs/images/babylon_controls.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/docs/images/babylon_controls.png -------------------------------------------------------------------------------- /docs/images/babylon_final.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/docs/images/babylon_final.png -------------------------------------------------------------------------------- /docs/images/grace.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/docs/images/grace.png -------------------------------------------------------------------------------- /docs/images/grace_poi_brows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/docs/images/grace_poi_brows.png -------------------------------------------------------------------------------- /docs/images/grace_poi_eyes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/docs/images/grace_poi_eyes.png -------------------------------------------------------------------------------- /docs/images/grace_poi_head.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/docs/images/grace_poi_head.png -------------------------------------------------------------------------------- /docs/images/grace_visemes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/docs/images/grace_visemes.png -------------------------------------------------------------------------------- /docs/images/loadscreen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/docs/images/loadscreen.png -------------------------------------------------------------------------------- /docs/images/luke.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/docs/images/luke.png -------------------------------------------------------------------------------- /docs/images/luke_poi_brows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/docs/images/luke_poi_brows.png -------------------------------------------------------------------------------- /docs/images/luke_poi_eyes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/docs/images/luke_poi_eyes.png -------------------------------------------------------------------------------- /docs/images/luke_poi_head.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/docs/images/luke_poi_head.png -------------------------------------------------------------------------------- /docs/images/luke_visemes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/docs/images/luke_visemes.png -------------------------------------------------------------------------------- /docs/images/three_controls.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/docs/images/three_controls.png -------------------------------------------------------------------------------- /docs/images/three_final.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/docs/images/three_final.png -------------------------------------------------------------------------------- /docs/scripts/linenumber.js: -------------------------------------------------------------------------------- 1 | /*global document */ 2 | (() => { 3 | const source = document.getElementsByClassName('prettyprint source linenums'); 4 | let i = 0; 5 | let lineNumber = 0; 6 | let lineId; 7 | let lines; 8 | let totalLines; 9 | let anchorHash; 10 | 11 | if (source && source[0]) { 12 | anchorHash = document.location.hash.substring(1); 13 | lines = source[0].getElementsByTagName('li'); 14 | totalLines = lines.length; 15 | 16 | for (; i < totalLines; i++) { 17 | lineNumber++; 18 | lineId = `line${lineNumber}`; 19 | lines[i].id = lineId; 20 | if (lineId === anchorHash) { 21 | lines[i].className += ' selected'; 22 | } 23 | } 24 | } 25 | })(); 26 | -------------------------------------------------------------------------------- /docs/scripts/prettify/lang-css.js: -------------------------------------------------------------------------------- 1 | PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\f\r ]+/,null," \t\r\n "]],[["str",/^"(?:[^\n\f\r"\\]|\\(?:\r\n?|\n|\f)|\\[\S\s])*"/,null],["str",/^'(?:[^\n\f\r'\\]|\\(?:\r\n?|\n|\f)|\\[\S\s])*'/,null],["lang-css-str",/^url\(([^"')]*)\)/i],["kwd",/^(?:url|rgb|!important|@import|@page|@media|@charset|inherit)(?=[^\w-]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*)\s*:/i],["com",/^\/\*[^*]*\*+(?:[^*/][^*]*\*+)*\//],["com", 2 | /^(?:<\!--|--\>)/],["lit",/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],["lit",/^#[\da-f]{3,6}/i],["pln",/^-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*/i],["pun",/^[^\s\w"']+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[["kwd",/^-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[["str",/^[^"')]+/]]),["css-str"]); 3 | -------------------------------------------------------------------------------- /docs/scripts/toggle.js: -------------------------------------------------------------------------------- 1 | const toggleButtons = document.getElementsByClassName('toggle'); 2 | 3 | for (let i = 0, l = toggleButtons.length; i < l; i += 1) { 4 | toggleButtons[i].addEventListener('click', function() { 5 | this.classList.toggle('opened'); 6 | this.classList.toggle('closed'); 7 | this.parentElement.nextElementSibling.classList.toggle('active'); 8 | this.parentElement.nextElementSibling.classList.toggle('nested'); 9 | }); 10 | } 11 | -------------------------------------------------------------------------------- /docs/styles/dark-theme.css: -------------------------------------------------------------------------------- 1 | /* Base16 Atelier Cave Dark - Theme */ 2 | /* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/cave) */ 3 | /* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ 4 | /* Atelier-Cave Comment */ 5 | .hljs-comment, 6 | .hljs-quote { 7 | color: #7e7887; } 8 | 9 | /* Atelier-Cave Red */ 10 | .hljs-variable, 11 | .hljs-template-variable, 12 | .hljs-attribute, 13 | .hljs-regexp, 14 | .hljs-link, 15 | .hljs-tag, 16 | .hljs-name, 17 | .hljs-selector-id, 18 | .hljs-selector-class { 19 | color: #be4678; } 20 | 21 | /* Atelier-Cave Orange */ 22 | .hljs-number, 23 | .hljs-meta, 24 | .hljs-built_in, 25 | .hljs-builtin-name, 26 | .hljs-literal, 27 | .hljs-type, 28 | .hljs-params { 29 | color: #aa573c; } 30 | 31 | /* Atelier-Cave Green */ 32 | .hljs-string, 33 | .hljs-symbol, 34 | .hljs-bullet { 35 | color: #2a9292; } 36 | 37 | /* Atelier-Cave Blue */ 38 | .hljs-title, 39 | .hljs-section { 40 | color: #576ddb; } 41 | 42 | /* Atelier-Cave Purple */ 43 | .hljs-keyword, 44 | .hljs-selector-tag { 45 | color: #955ae7; } 46 | 47 | .hljs-deletion, 48 | .hljs-addition { 49 | color: #19171c; 50 | display: inline-block; 51 | width: 100%; } 52 | 53 | .hljs-deletion { 54 | background-color: #be4678; } 55 | 56 | .hljs-addition { 57 | background-color: #2a9292; } 58 | 59 | .hljs { 60 | display: block; 61 | overflow-x: auto; 62 | background: #19171c; 63 | color: #8b8792; 64 | padding: 0.5em; } 65 | 66 | .hljs-emphasis { 67 | font-style: italic; } 68 | 69 | .hljs-strong { 70 | font-weight: bold; } 71 | -------------------------------------------------------------------------------- /docs/styles/prettify-jsdoc.css: -------------------------------------------------------------------------------- 1 | /* JSDoc prettify.js theme */ 2 | 3 | /* plain text */ 4 | .pln { 5 | color: #000000; 6 | font-weight: normal; 7 | font-style: normal; 8 | } 9 | 10 | /* string content */ 11 | .str { 12 | color: #006400; 13 | font-weight: normal; 14 | font-style: normal; 15 | } 16 | 17 | /* a keyword */ 18 | .kwd { 19 | color: #000000; 20 | font-weight: bold; 21 | font-style: normal; 22 | } 23 | 24 | /* a comment */ 25 | .com { 26 | font-weight: normal; 27 | font-style: italic; 28 | } 29 | 30 | /* a type name */ 31 | .typ { 32 | color: #000000; 33 | font-weight: normal; 34 | font-style: normal; 35 | } 36 | 37 | /* a literal value */ 38 | .lit { 39 | color: #006400; 40 | font-weight: normal; 41 | font-style: normal; 42 | } 43 | 44 | /* punctuation */ 45 | .pun { 46 | color: #000000; 47 | font-weight: bold; 48 | font-style: normal; 49 | } 50 | 51 | /* lisp open bracket */ 52 | .opn { 53 | color: #000000; 54 | font-weight: bold; 55 | font-style: normal; 56 | } 57 | 58 | /* lisp close bracket */ 59 | .clo { 60 | color: #000000; 61 | font-weight: bold; 62 | font-style: normal; 63 | } 64 | 65 | /* a markup tag name */ 66 | .tag { 67 | color: #006400; 68 | font-weight: normal; 69 | font-style: normal; 70 | } 71 | 72 | /* a markup attribute name */ 73 | .atn { 74 | color: #006400; 75 | font-weight: normal; 76 | font-style: normal; 77 | } 78 | 79 | /* a markup attribute value */ 80 | .atv { 81 | color: #006400; 82 | font-weight: normal; 83 | font-style: normal; 84 | } 85 | 86 | /* a declaration */ 87 | .dec { 88 | color: #000000; 89 | font-weight: bold; 90 | font-style: normal; 91 | } 92 | 93 | /* a variable name */ 94 | .var { 95 | color: #000000; 96 | font-weight: normal; 97 | font-style: normal; 98 | } 99 | 100 | /* a function name */ 101 | .fun { 102 | color: #000000; 103 | font-weight: bold; 104 | font-style: normal; 105 | } 106 | 107 | /* Specify class=linenums on a pre to get line numbering */ 108 | ol.linenums { 109 | margin-top: 0; 110 | margin-bottom: 0; 111 | } 112 | -------------------------------------------------------------------------------- /docs/styles/prettify-tomorrow.css: -------------------------------------------------------------------------------- 1 | /* Tomorrow Theme */ 2 | /* Original theme - https://github.com/chriskempson/tomorrow-theme */ 3 | /* Pretty printing styles. Used with prettify.js. */ 4 | /* SPAN elements with the classes below are added by prettyprint. */ 5 | /* plain text */ 6 | .pln { 7 | color: #4d4d4c; } 8 | 9 | @media screen { 10 | /* string content */ 11 | .str { 12 | color: #718c00; } 13 | 14 | /* a keyword */ 15 | .kwd { 16 | color: #8959a8; } 17 | 18 | /* a comment */ 19 | .com { 20 | color: #8e908c; } 21 | 22 | /* a type name */ 23 | .typ { 24 | color: #4271ae; } 25 | 26 | /* a literal value */ 27 | .lit { 28 | color: #f5871f; } 29 | 30 | /* punctuation */ 31 | .pun { 32 | color: #4d4d4c; } 33 | 34 | /* lisp open bracket */ 35 | .opn { 36 | color: #4d4d4c; } 37 | 38 | /* lisp close bracket */ 39 | .clo { 40 | color: #4d4d4c; } 41 | 42 | /* a markup tag name */ 43 | .tag { 44 | color: #c82829; } 45 | 46 | /* a markup attribute name */ 47 | .atn { 48 | color: #f5871f; } 49 | 50 | /* a markup attribute value */ 51 | .atv { 52 | color: #3e999f; } 53 | 54 | /* a declaration */ 55 | .dec { 56 | color: #f5871f; } 57 | 58 | /* a variable name */ 59 | .var { 60 | color: #c82829; } 61 | 62 | /* a function name */ 63 | .fun { 64 | color: #4271ae; } } 65 | /* Use higher contrast and text-weight for printable form. */ 66 | @media print, projection { 67 | .str { 68 | color: #060; } 69 | 70 | .kwd { 71 | color: #006; 72 | font-weight: bold; } 73 | 74 | .com { 75 | color: #600; 76 | font-style: italic; } 77 | 78 | .typ { 79 | color: #404; 80 | font-weight: bold; } 81 | 82 | .lit { 83 | color: #044; } 84 | 85 | .pun, .opn, .clo { 86 | color: #440; } 87 | 88 | .tag { 89 | color: #006; 90 | font-weight: bold; } 91 | 92 | .atn { 93 | color: #404; } 94 | 95 | .atv { 96 | color: #060; } } 97 | /* Style */ 98 | /* 99 | pre.prettyprint { 100 | background: white; 101 | font-family: Consolas, Monaco, 'Andale Mono', monospace; 102 | font-size: 12px; 103 | line-height: 1.5; 104 | border: 1px solid #ccc; 105 | padding: 10px; } 106 | */ 107 | 108 | /* Specify class=linenums on a pre to get line numbering */ 109 | ol.linenums { 110 | margin-top: 0; 111 | margin-bottom: 0; } 112 | 113 | /* IE indents via margin-left */ 114 | li.L0, 115 | li.L1, 116 | li.L2, 117 | li.L3, 118 | li.L4, 119 | li.L5, 120 | li.L6, 121 | li.L7, 122 | li.L8, 123 | li.L9 { 124 | /* */ } 125 | 126 | /* Alternate shading for lines */ 127 | li.L1, 128 | li.L3, 129 | li.L5, 130 | li.L7, 131 | li.L9 { 132 | /* */ } 133 | -------------------------------------------------------------------------------- /docs_template/static/fonts/OpenSans-Bold-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/docs_template/static/fonts/OpenSans-Bold-webfont.eot -------------------------------------------------------------------------------- /docs_template/static/fonts/OpenSans-Bold-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/docs_template/static/fonts/OpenSans-Bold-webfont.woff -------------------------------------------------------------------------------- /docs_template/static/fonts/OpenSans-BoldItalic-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/docs_template/static/fonts/OpenSans-BoldItalic-webfont.eot -------------------------------------------------------------------------------- /docs_template/static/fonts/OpenSans-BoldItalic-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/docs_template/static/fonts/OpenSans-BoldItalic-webfont.woff -------------------------------------------------------------------------------- /docs_template/static/fonts/OpenSans-Italic-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/docs_template/static/fonts/OpenSans-Italic-webfont.eot -------------------------------------------------------------------------------- /docs_template/static/fonts/OpenSans-Italic-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/docs_template/static/fonts/OpenSans-Italic-webfont.woff -------------------------------------------------------------------------------- /docs_template/static/fonts/OpenSans-Light-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/docs_template/static/fonts/OpenSans-Light-webfont.eot -------------------------------------------------------------------------------- /docs_template/static/fonts/OpenSans-Light-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/docs_template/static/fonts/OpenSans-Light-webfont.woff -------------------------------------------------------------------------------- /docs_template/static/fonts/OpenSans-LightItalic-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/docs_template/static/fonts/OpenSans-LightItalic-webfont.eot -------------------------------------------------------------------------------- /docs_template/static/fonts/OpenSans-LightItalic-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/docs_template/static/fonts/OpenSans-LightItalic-webfont.woff -------------------------------------------------------------------------------- /docs_template/static/fonts/OpenSans-Regular-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/docs_template/static/fonts/OpenSans-Regular-webfont.eot -------------------------------------------------------------------------------- /docs_template/static/fonts/OpenSans-Regular-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/docs_template/static/fonts/OpenSans-Regular-webfont.woff -------------------------------------------------------------------------------- /docs_template/static/scripts/linenumber.js: -------------------------------------------------------------------------------- 1 | /*global document */ 2 | (() => { 3 | const source = document.getElementsByClassName('prettyprint source linenums'); 4 | let i = 0; 5 | let lineNumber = 0; 6 | let lineId; 7 | let lines; 8 | let totalLines; 9 | let anchorHash; 10 | 11 | if (source && source[0]) { 12 | anchorHash = document.location.hash.substring(1); 13 | lines = source[0].getElementsByTagName('li'); 14 | totalLines = lines.length; 15 | 16 | for (; i < totalLines; i++) { 17 | lineNumber++; 18 | lineId = `line${lineNumber}`; 19 | lines[i].id = lineId; 20 | if (lineId === anchorHash) { 21 | lines[i].className += ' selected'; 22 | } 23 | } 24 | } 25 | })(); 26 | -------------------------------------------------------------------------------- /docs_template/static/scripts/prettify/lang-css.js: -------------------------------------------------------------------------------- 1 | PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\f\r ]+/,null," \t\r\n "]],[["str",/^"(?:[^\n\f\r"\\]|\\(?:\r\n?|\n|\f)|\\[\S\s])*"/,null],["str",/^'(?:[^\n\f\r'\\]|\\(?:\r\n?|\n|\f)|\\[\S\s])*'/,null],["lang-css-str",/^url\(([^"')]*)\)/i],["kwd",/^(?:url|rgb|!important|@import|@page|@media|@charset|inherit)(?=[^\w-]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*)\s*:/i],["com",/^\/\*[^*]*\*+(?:[^*/][^*]*\*+)*\//],["com", 2 | /^(?:<\!--|--\>)/],["lit",/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],["lit",/^#[\da-f]{3,6}/i],["pln",/^-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*/i],["pun",/^[^\s\w"']+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[["kwd",/^-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[["str",/^[^"')]+/]]),["css-str"]); 3 | -------------------------------------------------------------------------------- /docs_template/static/scripts/toggle.js: -------------------------------------------------------------------------------- 1 | const toggleButtons = document.getElementsByClassName('toggle'); 2 | 3 | for (let i = 0, l = toggleButtons.length; i < l; i += 1) { 4 | toggleButtons[i].addEventListener('click', function() { 5 | this.classList.toggle('opened'); 6 | this.classList.toggle('closed'); 7 | this.parentElement.nextElementSibling.classList.toggle('active'); 8 | this.parentElement.nextElementSibling.classList.toggle('nested'); 9 | }); 10 | } 11 | -------------------------------------------------------------------------------- /docs_template/static/styles/dark-theme.css: -------------------------------------------------------------------------------- 1 | /* Base16 Atelier Cave Dark - Theme */ 2 | /* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/cave) */ 3 | /* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ 4 | /* Atelier-Cave Comment */ 5 | .hljs-comment, 6 | .hljs-quote { 7 | color: #7e7887; } 8 | 9 | /* Atelier-Cave Red */ 10 | .hljs-variable, 11 | .hljs-template-variable, 12 | .hljs-attribute, 13 | .hljs-regexp, 14 | .hljs-link, 15 | .hljs-tag, 16 | .hljs-name, 17 | .hljs-selector-id, 18 | .hljs-selector-class { 19 | color: #be4678; } 20 | 21 | /* Atelier-Cave Orange */ 22 | .hljs-number, 23 | .hljs-meta, 24 | .hljs-built_in, 25 | .hljs-builtin-name, 26 | .hljs-literal, 27 | .hljs-type, 28 | .hljs-params { 29 | color: #aa573c; } 30 | 31 | /* Atelier-Cave Green */ 32 | .hljs-string, 33 | .hljs-symbol, 34 | .hljs-bullet { 35 | color: #2a9292; } 36 | 37 | /* Atelier-Cave Blue */ 38 | .hljs-title, 39 | .hljs-section { 40 | color: #576ddb; } 41 | 42 | /* Atelier-Cave Purple */ 43 | .hljs-keyword, 44 | .hljs-selector-tag { 45 | color: #955ae7; } 46 | 47 | .hljs-deletion, 48 | .hljs-addition { 49 | color: #19171c; 50 | display: inline-block; 51 | width: 100%; } 52 | 53 | .hljs-deletion { 54 | background-color: #be4678; } 55 | 56 | .hljs-addition { 57 | background-color: #2a9292; } 58 | 59 | .hljs { 60 | display: block; 61 | overflow-x: auto; 62 | background: #19171c; 63 | color: #8b8792; 64 | padding: 0.5em; } 65 | 66 | .hljs-emphasis { 67 | font-style: italic; } 68 | 69 | .hljs-strong { 70 | font-weight: bold; } 71 | -------------------------------------------------------------------------------- /docs_template/static/styles/prettify-jsdoc.css: -------------------------------------------------------------------------------- 1 | /* JSDoc prettify.js theme */ 2 | 3 | /* plain text */ 4 | .pln { 5 | color: #000000; 6 | font-weight: normal; 7 | font-style: normal; 8 | } 9 | 10 | /* string content */ 11 | .str { 12 | color: #006400; 13 | font-weight: normal; 14 | font-style: normal; 15 | } 16 | 17 | /* a keyword */ 18 | .kwd { 19 | color: #000000; 20 | font-weight: bold; 21 | font-style: normal; 22 | } 23 | 24 | /* a comment */ 25 | .com { 26 | font-weight: normal; 27 | font-style: italic; 28 | } 29 | 30 | /* a type name */ 31 | .typ { 32 | color: #000000; 33 | font-weight: normal; 34 | font-style: normal; 35 | } 36 | 37 | /* a literal value */ 38 | .lit { 39 | color: #006400; 40 | font-weight: normal; 41 | font-style: normal; 42 | } 43 | 44 | /* punctuation */ 45 | .pun { 46 | color: #000000; 47 | font-weight: bold; 48 | font-style: normal; 49 | } 50 | 51 | /* lisp open bracket */ 52 | .opn { 53 | color: #000000; 54 | font-weight: bold; 55 | font-style: normal; 56 | } 57 | 58 | /* lisp close bracket */ 59 | .clo { 60 | color: #000000; 61 | font-weight: bold; 62 | font-style: normal; 63 | } 64 | 65 | /* a markup tag name */ 66 | .tag { 67 | color: #006400; 68 | font-weight: normal; 69 | font-style: normal; 70 | } 71 | 72 | /* a markup attribute name */ 73 | .atn { 74 | color: #006400; 75 | font-weight: normal; 76 | font-style: normal; 77 | } 78 | 79 | /* a markup attribute value */ 80 | .atv { 81 | color: #006400; 82 | font-weight: normal; 83 | font-style: normal; 84 | } 85 | 86 | /* a declaration */ 87 | .dec { 88 | color: #000000; 89 | font-weight: bold; 90 | font-style: normal; 91 | } 92 | 93 | /* a variable name */ 94 | .var { 95 | color: #000000; 96 | font-weight: normal; 97 | font-style: normal; 98 | } 99 | 100 | /* a function name */ 101 | .fun { 102 | color: #000000; 103 | font-weight: bold; 104 | font-style: normal; 105 | } 106 | 107 | /* Specify class=linenums on a pre to get line numbering */ 108 | ol.linenums { 109 | margin-top: 0; 110 | margin-bottom: 0; 111 | } 112 | -------------------------------------------------------------------------------- /docs_template/static/styles/prettify-tomorrow.css: -------------------------------------------------------------------------------- 1 | /* Tomorrow Theme */ 2 | /* Original theme - https://github.com/chriskempson/tomorrow-theme */ 3 | /* Pretty printing styles. Used with prettify.js. */ 4 | /* SPAN elements with the classes below are added by prettyprint. */ 5 | /* plain text */ 6 | .pln { 7 | color: #4d4d4c; } 8 | 9 | @media screen { 10 | /* string content */ 11 | .str { 12 | color: #718c00; } 13 | 14 | /* a keyword */ 15 | .kwd { 16 | color: #8959a8; } 17 | 18 | /* a comment */ 19 | .com { 20 | color: #8e908c; } 21 | 22 | /* a type name */ 23 | .typ { 24 | color: #4271ae; } 25 | 26 | /* a literal value */ 27 | .lit { 28 | color: #f5871f; } 29 | 30 | /* punctuation */ 31 | .pun { 32 | color: #4d4d4c; } 33 | 34 | /* lisp open bracket */ 35 | .opn { 36 | color: #4d4d4c; } 37 | 38 | /* lisp close bracket */ 39 | .clo { 40 | color: #4d4d4c; } 41 | 42 | /* a markup tag name */ 43 | .tag { 44 | color: #c82829; } 45 | 46 | /* a markup attribute name */ 47 | .atn { 48 | color: #f5871f; } 49 | 50 | /* a markup attribute value */ 51 | .atv { 52 | color: #3e999f; } 53 | 54 | /* a declaration */ 55 | .dec { 56 | color: #f5871f; } 57 | 58 | /* a variable name */ 59 | .var { 60 | color: #c82829; } 61 | 62 | /* a function name */ 63 | .fun { 64 | color: #4271ae; } } 65 | /* Use higher contrast and text-weight for printable form. */ 66 | @media print, projection { 67 | .str { 68 | color: #060; } 69 | 70 | .kwd { 71 | color: #006; 72 | font-weight: bold; } 73 | 74 | .com { 75 | color: #600; 76 | font-style: italic; } 77 | 78 | .typ { 79 | color: #404; 80 | font-weight: bold; } 81 | 82 | .lit { 83 | color: #044; } 84 | 85 | .pun, .opn, .clo { 86 | color: #440; } 87 | 88 | .tag { 89 | color: #006; 90 | font-weight: bold; } 91 | 92 | .atn { 93 | color: #404; } 94 | 95 | .atv { 96 | color: #060; } } 97 | /* Style */ 98 | /* 99 | pre.prettyprint { 100 | background: white; 101 | font-family: Consolas, Monaco, 'Andale Mono', monospace; 102 | font-size: 12px; 103 | line-height: 1.5; 104 | border: 1px solid #ccc; 105 | padding: 10px; } 106 | */ 107 | 108 | /* Specify class=linenums on a pre to get line numbering */ 109 | ol.linenums { 110 | margin-top: 0; 111 | margin-bottom: 0; } 112 | 113 | /* IE indents via margin-left */ 114 | li.L0, 115 | li.L1, 116 | li.L2, 117 | li.L3, 118 | li.L4, 119 | li.L5, 120 | li.L6, 121 | li.L7, 122 | li.L8, 123 | li.L9 { 124 | /* */ } 125 | 126 | /* Alternate shading for lines */ 127 | li.L1, 128 | li.L3, 129 | li.L5, 130 | li.L7, 131 | li.L9 { 132 | /* */ } 133 | -------------------------------------------------------------------------------- /docs_template/tmpl/augments.tmpl: -------------------------------------------------------------------------------- 1 | 5 | 6 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /docs_template/tmpl/example.tmpl: -------------------------------------------------------------------------------- 1 | 2 |
3 | -------------------------------------------------------------------------------- /docs_template/tmpl/examples.tmpl: -------------------------------------------------------------------------------- 1 | 8 |

9 | 10 |
11 | -------------------------------------------------------------------------------- /docs_template/tmpl/exceptions.tmpl: -------------------------------------------------------------------------------- 1 | 4 | 5 |
6 |
7 |
8 | 9 |
10 |
11 |
12 |
13 |
14 |
15 | Type 16 |
17 |
18 | 19 |
20 |
21 |
22 |
23 |
24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
32 | 33 | -------------------------------------------------------------------------------- /docs_template/tmpl/layout.tmpl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | JSDoc: <?js= title ?> 6 | 7 | 8 | 9 | 14 | 15 | 16 | 73 | 74 | 75 | 76 | 79 | 80 |
81 |

82 | 83 | 84 |
85 | 86 |
87 | 88 | 89 | 90 | 93 | 94 | 95 | 96 | 97 | -------------------------------------------------------------------------------- /docs_template/tmpl/mainpage.tmpl: -------------------------------------------------------------------------------- 1 | 5 | 6 | 7 |

8 | 9 | 10 | 11 |
12 |
13 |
14 | 15 | -------------------------------------------------------------------------------- /docs_template/tmpl/members.tmpl: -------------------------------------------------------------------------------- 1 | 5 |

6 | 7 | 8 |

9 | 10 | 11 | 12 |
13 | 14 |
15 | 16 | 17 | 18 |
Type:
19 | 24 | 25 | 26 | 27 | 28 | 29 |
Fires:
30 | 33 | 34 | 35 | 36 |
Example 1? 's':'' ?>
37 | 38 | 39 | -------------------------------------------------------------------------------- /docs_template/tmpl/modifies.tmpl: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 |
7 |
8 | Type 9 |
10 |
11 | 12 |
13 |
14 | 15 | -------------------------------------------------------------------------------- /docs_template/tmpl/returns.tmpl: -------------------------------------------------------------------------------- 1 | 5 |
6 | 7 |
8 | 9 | 10 | 11 |
12 |
13 | Type 14 |
15 |
16 | 17 |
18 |
19 | -------------------------------------------------------------------------------- /docs_template/tmpl/source.tmpl: -------------------------------------------------------------------------------- 1 | 4 |
5 |
6 |
7 |
8 |
-------------------------------------------------------------------------------- /docs_template/tmpl/tutorial.tmpl: -------------------------------------------------------------------------------- 1 |
2 | 3 |
4 | 0) { ?> 5 | 10 | 11 | 12 |

13 |
14 | 15 |
16 | 17 |
18 | 19 |
20 | -------------------------------------------------------------------------------- /docs_template/tmpl/type.tmpl: -------------------------------------------------------------------------------- 1 | 5 | 6 | | 7 | -------------------------------------------------------------------------------- /examples/SpeechSDK-JavaScript-1.18.0/LICENSE: -------------------------------------------------------------------------------- 1 | ------------------------------------------- START OF LICENSE ----------------------------------------- 2 | Microsoft Azure Cognitive Services Speech SDK Javascript 3 | Copyright (c) Microsoft Corporation 4 | All rights reserved. 5 | 6 | Component. 7 | ocsp (https://github.com/indutny/ocsp) 8 | Open Source License/Copyright Notice. 9 | Copyright Fedor Indutny, 2015. 10 | 11 | Component. 12 | uuid (https://github.com/uuidjs/uuid) 13 | Open Source License/Copyright Notice. 14 | Copyright (c) 2010-2020 Robert Kieffer and other contributors 15 | 16 | This software is licensed under the MIT License. 17 | 18 | 19 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the Software), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 20 | 21 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 22 | 23 | THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 24 | 25 | ----------------------------------------------- END OF LICENSE ------------------------------------------ -------------------------------------------------------------------------------- /examples/SpeechSDK-JavaScript-1.18.0/NOTICE.txt: -------------------------------------------------------------------------------- 1 | NOTICES AND INFORMATION 2 | Do Not Translate or Localize 3 | 4 | This software incorporates material from third parties. Microsoft makes certain 5 | open source code available at https://3rdpartysource.microsoft.com, or you may 6 | send a check or money order for US $5.00, including the product name, the open 7 | source component name, and version number, to: 8 | 9 | Source Code Compliance Team 10 | Microsoft Corporation 11 | One Microsoft Way 12 | Redmond, WA 98052 13 | USA 14 | 15 | Notwithstanding any other terms, you may reverse engineer this software to the 16 | extent required to debug changes to any libraries licensed under the GNU Lesser 17 | General Public License. 18 | 19 | Component. 20 | ocsp (https://github.com/indutny/ocsp) 21 | 22 | Open Source License/Copyright Notice. 23 | This software is licensed under the MIT License. 24 | 25 | Copyright Fedor Indutny, 2015. 26 | 27 | Component. 28 | uuid (https://github.com/uuidjs/uuid) 29 | 30 | Open Source License/Copyright Notice. 31 | This software is licensed under the MIT License. 32 | 33 | Copyright (c) 2010-2020 Robert Kieffer and other contributors 34 | 35 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 36 | 37 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 38 | 39 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 40 | -------------------------------------------------------------------------------- /examples/SpeechSDK-JavaScript-1.18.0/REDIST.txt: -------------------------------------------------------------------------------- 1 | The following libraries can be redistributed if you are using the Cognitive 2 | Services Speech SDK for JavaScript, subject to its license: 3 | 4 | microsoft.cognitiveservices.speech.sdk.bundle.js 5 | microsoft.cognitiveservices.speech.sdk.bundle-min.js 6 | microsoft-cognitiveservices-speech-sdk NPM library 7 | speech-processor.js 8 | 9 | Depending on your usage, you only need to redistribute a subset of the above. 10 | -------------------------------------------------------------------------------- /examples/SpeechSDK-JavaScript-1.18.0/speech-processor.js: -------------------------------------------------------------------------------- 1 | /* Implementation of the AudioWorkletProcessor 2 | https://webaudio.github.io/web-audio-api/#audioworklet 3 | This file will be loaded only in recent browsers that supports Audio worklet it is 4 | currently in js because it needs to be in es6 */ 5 | class SpeechProcessor extends AudioWorkletProcessor { 6 | constructor(options) { 7 | // The super constructor call is required. 8 | super(options); 9 | } 10 | 11 | process(inputs, outputs) { 12 | const input = inputs[0]; 13 | const output = []; // Make sure output array can be assigned to 14 | for (let channel = 0; channel < input.length; channel += 1) { 15 | output[channel] = input[channel]; 16 | } 17 | this.port.postMessage(output[0]); 18 | return true; 19 | } 20 | } 21 | 22 | registerProcessor('speech-processor', SpeechProcessor); 23 | -------------------------------------------------------------------------------- /examples/SpeechSDK-JavaScript-1.18.0/test.html: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /examples/assets/glTF/animations/adult_female/blink.glb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/animations/adult_female/blink.glb -------------------------------------------------------------------------------- /examples/assets/glTF/animations/adult_female/emote.glb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/animations/adult_female/emote.glb -------------------------------------------------------------------------------- /examples/assets/glTF/animations/adult_female/face_idle.glb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/animations/adult_female/face_idle.glb -------------------------------------------------------------------------------- /examples/assets/glTF/animations/adult_female/gesture.glb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/animations/adult_female/gesture.glb -------------------------------------------------------------------------------- /examples/assets/glTF/animations/adult_female/lipsync.glb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/animations/adult_female/lipsync.glb -------------------------------------------------------------------------------- /examples/assets/glTF/animations/adult_female/poi.glb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/animations/adult_female/poi.glb -------------------------------------------------------------------------------- /examples/assets/glTF/animations/adult_female/stand_idle.glb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/animations/adult_female/stand_idle.glb -------------------------------------------------------------------------------- /examples/assets/glTF/animations/adult_male/blink.glb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/animations/adult_male/blink.glb -------------------------------------------------------------------------------- /examples/assets/glTF/animations/adult_male/emote.glb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/animations/adult_male/emote.glb -------------------------------------------------------------------------------- /examples/assets/glTF/animations/adult_male/face_idle.glb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/animations/adult_male/face_idle.glb -------------------------------------------------------------------------------- /examples/assets/glTF/animations/adult_male/gesture.glb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/animations/adult_male/gesture.glb -------------------------------------------------------------------------------- /examples/assets/glTF/animations/adult_male/lipsync.glb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/animations/adult_male/lipsync.glb -------------------------------------------------------------------------------- /examples/assets/glTF/animations/adult_male/poi.glb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/animations/adult_male/poi.glb -------------------------------------------------------------------------------- /examples/assets/glTF/animations/adult_male/stand_idle.glb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/animations/adult_male/stand_idle.glb -------------------------------------------------------------------------------- /examples/assets/glTF/animations/alien/blink.glb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/animations/alien/blink.glb -------------------------------------------------------------------------------- /examples/assets/glTF/animations/alien/emote.glb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/animations/alien/emote.glb -------------------------------------------------------------------------------- /examples/assets/glTF/animations/alien/face_idle.glb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/animations/alien/face_idle.glb -------------------------------------------------------------------------------- /examples/assets/glTF/animations/alien/gesture.glb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/animations/alien/gesture.glb -------------------------------------------------------------------------------- /examples/assets/glTF/animations/alien/lipsync.glb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/animations/alien/lipsync.glb -------------------------------------------------------------------------------- /examples/assets/glTF/animations/alien/poi.glb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/animations/alien/poi.glb -------------------------------------------------------------------------------- /examples/assets/glTF/animations/alien/stand_idle.glb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/animations/alien/stand_idle.glb -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/alt_outfits/hoodie_jeans.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/alt_outfits/hoodie_jeans.bin -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/alt_outfits/polo_jeans.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/alt_outfits/polo_jeans.bin -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/alt_outfits/textures/body_ao-body_rough.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/alt_outfits/textures/body_ao-body_rough.png -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/alt_outfits/textures/body_diff.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/alt_outfits/textures/body_diff.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/alt_outfits/textures/body_norm.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/alt_outfits/textures/body_norm.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/alt_outfits/textures/hoodie_diff.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/alt_outfits/textures/hoodie_diff.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/alt_outfits/textures/hoodie_norm.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/alt_outfits/textures/hoodie_norm.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/alt_outfits/textures/hoodie_rough-hoodie_metal.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/alt_outfits/textures/hoodie_rough-hoodie_metal.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/alt_outfits/textures/jeans_diff.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/alt_outfits/textures/jeans_diff.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/alt_outfits/textures/jeans_norm.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/alt_outfits/textures/jeans_norm.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/alt_outfits/textures/jeans_rough.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/alt_outfits/textures/jeans_rough.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/alt_outfits/textures/polo_ao.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/alt_outfits/textures/polo_ao.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/alt_outfits/textures/polo_diff.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/alt_outfits/textures/polo_diff.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/alt_outfits/textures/polo_norm.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/alt_outfits/textures/polo_norm.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/alt_outfits/textures/polo_rough.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/alt_outfits/textures/polo_rough.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/alt_outfits/textures/shoes_diff.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/alt_outfits/textures/shoes_diff.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/alt_outfits/textures/shoes_norm.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/alt_outfits/textures/shoes_norm.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/alt_outfits/textures/shoes_rough.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/alt_outfits/textures/shoes_rough.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/alt_outfits/textures/tShirt_diff.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/alt_outfits/textures/tShirt_diff.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/alt_outfits/textures/tShirt_norm.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/alt_outfits/textures/tShirt_norm.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/alt_outfits/textures/tShirt_rough.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/alt_outfits/textures/tShirt_rough.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/alt_outfits/tshirt_jeans.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/alt_outfits/tshirt_jeans.bin -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/cristine/cristine.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/cristine/cristine.bin -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/cristine/textures/body_ao.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/cristine/textures/body_ao.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/cristine/textures/body_diff.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/cristine/textures/body_diff.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/cristine/textures/body_norm.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/cristine/textures/body_norm.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/cristine/textures/body_rough.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/cristine/textures/body_rough.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/cristine/textures/eyes_diff.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/cristine/textures/eyes_diff.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/cristine/textures/eyes_metal.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/cristine/textures/eyes_metal.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/cristine/textures/hair_diff.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/cristine/textures/hair_diff.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/cristine/textures/hair_norm.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/cristine/textures/hair_norm.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/cristine/textures/hair_rough.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/cristine/textures/hair_rough.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/cristine/textures/hairtie_diff.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/cristine/textures/hairtie_diff.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/cristine/textures/hairtie_norm.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/cristine/textures/hairtie_norm.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/cristine/textures/head_ao.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/cristine/textures/head_ao.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/cristine/textures/head_diff.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/cristine/textures/head_diff.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/cristine/textures/head_norm.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/cristine/textures/head_norm.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/cristine/textures/head_rough.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/cristine/textures/head_rough.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/cristine/textures/pants_ao.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/cristine/textures/pants_ao.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/cristine/textures/pants_diff.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/cristine/textures/pants_diff.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/cristine/textures/pants_norm.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/cristine/textures/pants_norm.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/cristine/textures/pants_rough-pants_metal.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/cristine/textures/pants_rough-pants_metal.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/cristine/textures/shirt_ao.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/cristine/textures/shirt_ao.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/cristine/textures/shirt_diff.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/cristine/textures/shirt_diff.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/cristine/textures/shirt_norm.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/cristine/textures/shirt_norm.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/cristine/textures/shirt_rough.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/cristine/textures/shirt_rough.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/cristine/textures/shoes_diff.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/cristine/textures/shoes_diff.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/cristine/textures/shoes_norm.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/cristine/textures/shoes_norm.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/cristine/textures/shoes_rough.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/cristine/textures/shoes_rough.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/fiona/fiona.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/fiona/fiona.bin -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/fiona/textures/accessories_ao-accessories_rough.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/fiona/textures/accessories_ao-accessories_rough.png -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/fiona/textures/accessories_diff.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/fiona/textures/accessories_diff.png -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/fiona/textures/accessories_norm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/fiona/textures/accessories_norm.png -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/fiona/textures/beads_diff.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/fiona/textures/beads_diff.png -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/fiona/textures/beads_norm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/fiona/textures/beads_norm.png -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/fiona/textures/body_ao-body_rough.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/fiona/textures/body_ao-body_rough.png -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/fiona/textures/body_diff.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/fiona/textures/body_diff.png -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/fiona/textures/body_norm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/fiona/textures/body_norm.png -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/fiona/textures/eyes_diff.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/fiona/textures/eyes_diff.png -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/fiona/textures/eyes_metal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/fiona/textures/eyes_metal.png -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/fiona/textures/hair_diff.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/fiona/textures/hair_diff.png -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/fiona/textures/hair_norm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/fiona/textures/hair_norm.png -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/fiona/textures/head_ao-head_rough.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/fiona/textures/head_ao-head_rough.png -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/fiona/textures/head_diff.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/fiona/textures/head_diff.png -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/fiona/textures/head_norm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/fiona/textures/head_norm.png -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/fiona/textures/pants_diff.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/fiona/textures/pants_diff.png -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/fiona/textures/pants_norm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/fiona/textures/pants_norm.png -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/fiona/textures/pants_rough.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/fiona/textures/pants_rough.png -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/fiona/textures/shirt_diff.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/fiona/textures/shirt_diff.png -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/fiona/textures/shirt_norm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/fiona/textures/shirt_norm.png -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/fiona/textures/shirt_rough.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/fiona/textures/shirt_rough.png -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/fiona/textures/shoes_diff.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/fiona/textures/shoes_diff.png -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/fiona/textures/shoes_norm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/fiona/textures/shoes_norm.png -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/fiona/textures/shoes_rough.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/fiona/textures/shoes_rough.png -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/grace/grace.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/grace/grace.bin -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/grace/textures/body_ao-body_rough.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/grace/textures/body_ao-body_rough.png -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/grace/textures/body_diff.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/grace/textures/body_diff.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/grace/textures/body_norm.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/grace/textures/body_norm.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/grace/textures/eyes_diff.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/grace/textures/eyes_diff.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/grace/textures/eyes_metal.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/grace/textures/eyes_metal.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/grace/textures/hair_diff.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/grace/textures/hair_diff.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/grace/textures/hair_norm.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/grace/textures/hair_norm.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/grace/textures/hair_rough.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/grace/textures/hair_rough.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/grace/textures/head_ao-head_rough.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/grace/textures/head_ao-head_rough.png -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/grace/textures/head_diff.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/grace/textures/head_diff.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/grace/textures/head_norm.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/grace/textures/head_norm.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/grace/textures/jacket_ao-jacket_rough.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/grace/textures/jacket_ao-jacket_rough.png -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/grace/textures/jacket_diff.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/grace/textures/jacket_diff.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/grace/textures/jacket_norm.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/grace/textures/jacket_norm.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/grace/textures/pants_ao-pants_rough-pants_metal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/grace/textures/pants_ao-pants_rough-pants_metal.png -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/grace/textures/pants_diff.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/grace/textures/pants_diff.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/grace/textures/pants_norm.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/grace/textures/pants_norm.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/grace/textures/shoes_ao-shoes_rough-shoes_metal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/grace/textures/shoes_ao-shoes_rough-shoes_metal.png -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/grace/textures/shoes_diff.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/grace/textures/shoes_diff.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/grace/textures/shoes_norm.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/grace/textures/shoes_norm.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/maya/maya.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/maya/maya.bin -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/maya/textures/body_ao-body_rough.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/maya/textures/body_ao-body_rough.png -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/maya/textures/body_diff.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/maya/textures/body_diff.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/maya/textures/body_norm.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/maya/textures/body_norm.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/maya/textures/earrings_diff.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/maya/textures/earrings_diff.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/maya/textures/earrings_norm.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/maya/textures/earrings_norm.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/maya/textures/eyes_diff.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/maya/textures/eyes_diff.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/maya/textures/eyes_metal.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/maya/textures/eyes_metal.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/maya/textures/hair_ao-hair_rough.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/maya/textures/hair_ao-hair_rough.png -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/maya/textures/hair_diff.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/maya/textures/hair_diff.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/maya/textures/hair_norm.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/maya/textures/hair_norm.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/maya/textures/hairband_diff.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/maya/textures/hairband_diff.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/maya/textures/hairband_norm.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/maya/textures/hairband_norm.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/maya/textures/head_ao-head_rough.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/maya/textures/head_ao-head_rough.png -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/maya/textures/head_diff.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/maya/textures/head_diff.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/maya/textures/head_norm.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/maya/textures/head_norm.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/maya/textures/labcoat_ao-labcoat_rough.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/maya/textures/labcoat_ao-labcoat_rough.png -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/maya/textures/labcoat_diff.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/maya/textures/labcoat_diff.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/maya/textures/labcoat_norm.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/maya/textures/labcoat_norm.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/maya/textures/pants_ao-pants_rough.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/maya/textures/pants_ao-pants_rough.png -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/maya/textures/pants_diff.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/maya/textures/pants_diff.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/maya/textures/pants_norm.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/maya/textures/pants_norm.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/maya/textures/shoes_ao-shoes_rough.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/maya/textures/shoes_ao-shoes_rough.png -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/maya/textures/shoes_diff.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/maya/textures/shoes_diff.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_female/maya/textures/shoes_norm.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_female/maya/textures/shoes_norm.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/alt_outfits/hoodie_jeans.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/alt_outfits/hoodie_jeans.bin -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/alt_outfits/polo_jeans.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/alt_outfits/polo_jeans.bin -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/alt_outfits/textures/body_ao-body_rough.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/alt_outfits/textures/body_ao-body_rough.png -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/alt_outfits/textures/body_diff.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/alt_outfits/textures/body_diff.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/alt_outfits/textures/body_norm.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/alt_outfits/textures/body_norm.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/alt_outfits/textures/hoodie_diff.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/alt_outfits/textures/hoodie_diff.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/alt_outfits/textures/hoodie_norm.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/alt_outfits/textures/hoodie_norm.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/alt_outfits/textures/hoodie_rough-hoodie_metal.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/alt_outfits/textures/hoodie_rough-hoodie_metal.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/alt_outfits/textures/jeans_diff.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/alt_outfits/textures/jeans_diff.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/alt_outfits/textures/jeans_norm.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/alt_outfits/textures/jeans_norm.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/alt_outfits/textures/jeans_rough.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/alt_outfits/textures/jeans_rough.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/alt_outfits/textures/polo_diff.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/alt_outfits/textures/polo_diff.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/alt_outfits/textures/polo_norm.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/alt_outfits/textures/polo_norm.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/alt_outfits/textures/polo_rough.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/alt_outfits/textures/polo_rough.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/alt_outfits/textures/shoes_diff.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/alt_outfits/textures/shoes_diff.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/alt_outfits/textures/shoes_norm.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/alt_outfits/textures/shoes_norm.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/alt_outfits/textures/shoes_rough.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/alt_outfits/textures/shoes_rough.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/alt_outfits/textures/tShirt_diff.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/alt_outfits/textures/tShirt_diff.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/alt_outfits/textures/tShirt_norm.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/alt_outfits/textures/tShirt_norm.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/alt_outfits/textures/tShirt_rough.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/alt_outfits/textures/tShirt_rough.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/alt_outfits/tshirt_jeans.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/alt_outfits/tshirt_jeans.bin -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/jay/jay.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/jay/jay.bin -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/jay/textures/body_ao-body_rough.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/jay/textures/body_ao-body_rough.png -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/jay/textures/body_diff.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/jay/textures/body_diff.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/jay/textures/body_norm.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/jay/textures/body_norm.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/jay/textures/eyes_diff.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/jay/textures/eyes_diff.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/jay/textures/eyes_metal.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/jay/textures/eyes_metal.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/jay/textures/hair_ao-hair_rough.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/jay/textures/hair_ao-hair_rough.png -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/jay/textures/hair_diff.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/jay/textures/hair_diff.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/jay/textures/hair_norm.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/jay/textures/hair_norm.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/jay/textures/head_ao-head_rough.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/jay/textures/head_ao-head_rough.png -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/jay/textures/head_diff.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/jay/textures/head_diff.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/jay/textures/head_norm.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/jay/textures/head_norm.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/jay/textures/pants_ao-pants_rough.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/jay/textures/pants_ao-pants_rough.png -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/jay/textures/pants_diff.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/jay/textures/pants_diff.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/jay/textures/pants_norm.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/jay/textures/pants_norm.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/jay/textures/shirt_ao-shirt_rough.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/jay/textures/shirt_ao-shirt_rough.png -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/jay/textures/shirt_diff.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/jay/textures/shirt_diff.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/jay/textures/shirt_norm.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/jay/textures/shirt_norm.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/jay/textures/shoes_ao-shoes_rough.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/jay/textures/shoes_ao-shoes_rough.png -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/jay/textures/shoes_diff.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/jay/textures/shoes_diff.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/jay/textures/shoes_norm.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/jay/textures/shoes_norm.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/jay/textures/sweater_ao-sweater_rough.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/jay/textures/sweater_ao-sweater_rough.png -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/jay/textures/sweater_diff.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/jay/textures/sweater_diff.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/jay/textures/sweater_norm.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/jay/textures/sweater_norm.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/luke/luke.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/luke/luke.bin -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/luke/textures/body_ao-body_rough.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/luke/textures/body_ao-body_rough.png -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/luke/textures/body_diff.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/luke/textures/body_diff.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/luke/textures/body_norm.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/luke/textures/body_norm.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/luke/textures/eyes_diff.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/luke/textures/eyes_diff.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/luke/textures/eyes_metal.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/luke/textures/eyes_metal.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/luke/textures/hair_ao-hair_rough.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/luke/textures/hair_ao-hair_rough.png -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/luke/textures/hair_diff.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/luke/textures/hair_diff.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/luke/textures/hair_norm.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/luke/textures/hair_norm.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/luke/textures/head_ao-head_rough.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/luke/textures/head_ao-head_rough.png -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/luke/textures/head_diff.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/luke/textures/head_diff.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/luke/textures/head_norm.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/luke/textures/head_norm.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/luke/textures/jacket_ao-jacket_rough.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/luke/textures/jacket_ao-jacket_rough.png -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/luke/textures/jacket_diff.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/luke/textures/jacket_diff.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/luke/textures/jacket_norm.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/luke/textures/jacket_norm.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/luke/textures/pants_ao-pants_rough.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/luke/textures/pants_ao-pants_rough.png -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/luke/textures/pants_diff.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/luke/textures/pants_diff.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/luke/textures/pants_norm.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/luke/textures/pants_norm.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/luke/textures/shoes_ao-shoes_rough-shoes_metal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/luke/textures/shoes_ao-shoes_rough-shoes_metal.png -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/luke/textures/shoes_diff.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/luke/textures/shoes_diff.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/luke/textures/shoes_norm.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/luke/textures/shoes_norm.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/preston/preston.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/preston/preston.bin -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/preston/textures/beard_diff.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/preston/textures/beard_diff.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/preston/textures/beard_norm.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/preston/textures/beard_norm.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/preston/textures/body_ao-body_rough.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/preston/textures/body_ao-body_rough.png -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/preston/textures/body_diff.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/preston/textures/body_diff.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/preston/textures/body_norm.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/preston/textures/body_norm.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/preston/textures/eyes_diff.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/preston/textures/eyes_diff.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/preston/textures/eyes_metal.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/preston/textures/eyes_metal.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/preston/textures/glasses_diff.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/preston/textures/glasses_diff.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/preston/textures/glasses_norm.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/preston/textures/glasses_norm.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/preston/textures/hair_diff.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/preston/textures/hair_diff.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/preston/textures/hair_norm.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/preston/textures/hair_norm.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/preston/textures/hair_rough.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/preston/textures/hair_rough.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/preston/textures/head_ao-head_rough.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/preston/textures/head_ao-head_rough.png -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/preston/textures/head_diff.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/preston/textures/head_diff.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/preston/textures/head_norm.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/preston/textures/head_norm.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/preston/textures/pants_diff.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/preston/textures/pants_diff.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/preston/textures/pants_norm.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/preston/textures/pants_norm.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/preston/textures/pants_rough.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/preston/textures/pants_rough.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/preston/textures/shirt_ao-shirt_rough.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/preston/textures/shirt_ao-shirt_rough.png -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/preston/textures/shirt_diff.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/preston/textures/shirt_diff.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/preston/textures/shirt_norm.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/preston/textures/shirt_norm.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/preston/textures/shoes_diff.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/preston/textures/shoes_diff.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/preston/textures/shoes_norm.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/preston/textures/shoes_norm.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/preston/textures/shoes_rough.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/preston/textures/shoes_rough.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/wes/textures/body_ao-body_rough.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/wes/textures/body_ao-body_rough.png -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/wes/textures/body_diff.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/wes/textures/body_diff.png -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/wes/textures/body_norm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/wes/textures/body_norm.png -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/wes/textures/eyes_diff.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/wes/textures/eyes_diff.png -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/wes/textures/hair_diff.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/wes/textures/hair_diff.png -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/wes/textures/hair_norm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/wes/textures/hair_norm.png -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/wes/textures/hair_rough.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/wes/textures/hair_rough.png -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/wes/textures/head_ao-head_rough.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/wes/textures/head_ao-head_rough.png -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/wes/textures/head_diff.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/wes/textures/head_diff.png -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/wes/textures/head_norm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/wes/textures/head_norm.png -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/wes/textures/headphones_diff.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/wes/textures/headphones_diff.png -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/wes/textures/headphones_norm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/wes/textures/headphones_norm.png -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/wes/textures/headphones_rough-headphones_metal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/wes/textures/headphones_rough-headphones_metal.png -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/wes/textures/pants_diff.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/wes/textures/pants_diff.png -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/wes/textures/pants_norm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/wes/textures/pants_norm.png -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/wes/textures/pants_rough-pants_metal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/wes/textures/pants_rough-pants_metal.png -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/wes/textures/shirt_diff.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/wes/textures/shirt_diff.png -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/wes/textures/shirt_norm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/wes/textures/shirt_norm.png -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/wes/textures/shirt_rough.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/wes/textures/shirt_rough.png -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/wes/textures/shoes_diff.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/wes/textures/shoes_diff.png -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/wes/textures/shoes_norm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/wes/textures/shoes_norm.png -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/wes/textures/shoes_rough.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/wes/textures/shoes_rough.png -------------------------------------------------------------------------------- /examples/assets/glTF/characters/adult_male/wes/wes.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/adult_male/wes/wes.bin -------------------------------------------------------------------------------- /examples/assets/glTF/characters/alien/alien.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/alien/alien.bin -------------------------------------------------------------------------------- /examples/assets/glTF/characters/alien/textures/alien_diffuse_01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/alien/textures/alien_diffuse_01.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/alien/textures/alien_emissive_01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/alien/textures/alien_emissive_01.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/alien/textures/alien_normals_01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/alien/textures/alien_normals_01.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/alien/textures/alien_rough_01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/alien/textures/alien_rough_01.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/alien/textures/eye_diffuse_01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/alien/textures/eye_diffuse_01.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/alien/textures/eye_emissive_01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/alien/textures/eye_emissive_01.jpg -------------------------------------------------------------------------------- /examples/assets/glTF/characters/alien/textures/eye_metal_01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/glTF/characters/alien/textures/eye_metal_01.jpg -------------------------------------------------------------------------------- /examples/assets/images/load_screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/images/load_screen.png -------------------------------------------------------------------------------- /examples/assets/images/machine_shop.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/examples/assets/images/machine_shop.jpg -------------------------------------------------------------------------------- /examples/polly.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | AWS SDK for JavaScript - Browser Getting Started Application 7 | 8 | 9 | 10 |
11 | 12 | 13 |

Enter text above then click Synthesize

14 |
15 | 18 | 19 | 20 | 21 | 55 | 56 | 57 | 58 | -------------------------------------------------------------------------------- /jsdoc.conf.json: -------------------------------------------------------------------------------- 1 | { 2 | "tags": { 3 | "allowUnknownTags": true 4 | }, 5 | "plugins": ["plugins/markdown"], 6 | "templates": { 7 | "default": { 8 | "logoFile": "", 9 | "cleverLinks": false, 10 | "monospaceLinks": false, 11 | "dateFormat": "ddd MMM Do YYYY", 12 | "outputSourceFiles": false, 13 | "outputSourcePath": true, 14 | "systemName": "Amazon Sumerian Hosts", 15 | "footer": "", 16 | "copyright": "© 2020 Amazon Web Services, Inc or its affiliates. All rights reserved.", 17 | "navType": "horizontal", 18 | "linenums": true, 19 | "collapseSymbols": false, 20 | "inverseNav": true, 21 | "protocol": "html://", 22 | "methodHeadingReturns": false 23 | } 24 | }, 25 | "markdown": { 26 | "parser": "gfm", 27 | "hardwrap": true 28 | }, 29 | "opts": { 30 | "template": "docs_template", 31 | "destination": "docs/", 32 | "recurse": true, 33 | "readme": "./docs/readme.md" 34 | }, 35 | "source": { 36 | "include": ["./src/core/", "./src/three.js", "./src/Babylon.js"] 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "amazon-sumerian-hosts", 3 | "version": "1.3.5", 4 | "description": "", 5 | "scripts": { 6 | "test": "OS_NAME=\"$(uname)\" node ./node_modules/karma/bin/karma start", 7 | "build": "webpack --config webpack.common.js", 8 | "build-test": "npm run build; npm run test", 9 | "start": "webpack-dev-server --open --config webpack.dev.js", 10 | "build-start": "npm run build; npm run start", 11 | "release": "npm run build", 12 | "docs": "jsdoc -c jsdoc.conf.json" 13 | }, 14 | "keywords": [], 15 | "author": "", 16 | "license": "MIT", 17 | "repository": { 18 | "type": "git", 19 | "url": "git+https://github.com/aws-samples/amazon-sumerian-hosts.git" 20 | }, 21 | "devDependencies": { 22 | "@babel/core": "^7.8.4", 23 | "@babel/preset-env": "^7.8.4", 24 | "babel-loader": "^8.0.6", 25 | "babel-polyfill": "^6.26.0", 26 | "babylonjs": "^4.1.0", 27 | "eslint": "^6.1.0", 28 | "eslint-config-airbnb": "^18.0.1", 29 | "eslint-config-node": "^4.0.0", 30 | "eslint-config-prettier": "^6.10.0", 31 | "eslint-import-resolver-webpack": "^0.12.1", 32 | "eslint-plugin-import": "^2.18.2", 33 | "eslint-plugin-jasmine": "^4.1.0", 34 | "eslint-plugin-jsx-a11y": "^6.2.3", 35 | "eslint-plugin-node": "^11.0.0", 36 | "eslint-plugin-prettier": "^3.1.2", 37 | "eslint-plugin-react": "^7.14.3", 38 | "eslint-plugin-react-hooks": "^1.7.0", 39 | "file-loader": "^5.1.0", 40 | "jsdoc": "^3.6.7", 41 | "karma": "^6.0.0", 42 | "karma-chrome-launcher": "^3.1.0", 43 | "karma-firefox-launcher": "^1.3.0", 44 | "karma-jasmine": "^3.1.1", 45 | "karma-spec-reporter": "0.0.32", 46 | "karma-webpack": "^4.0.2", 47 | "prettier": "^1.19.1", 48 | "regenerator-runtime": "^0.13.5", 49 | "three": "^0.125.0", 50 | "webpack": "^4.41.6", 51 | "webpack-cli": "^3.3.11", 52 | "webpack-dev-server": "^3.10.3", 53 | "webpack-merge": "^4.2.2" 54 | }, 55 | "optionalDependencies": {}, 56 | "dependencies": {} 57 | } 58 | -------------------------------------------------------------------------------- /pythonServer.py: -------------------------------------------------------------------------------- 1 | # https://www.py4u.net/discuss/1001567 2 | 3 | #Use to create local host 4 | import http.server 5 | import socketserver 6 | 7 | PORT = 1337 8 | 9 | Handler = http.server.SimpleHTTPRequestHandler 10 | Handler.extensions_map.update({ 11 | ".js": "application/javascript" 12 | }); 13 | 14 | httpd = socketserver.TCPServer(("", PORT), Handler) 15 | httpd.serve_forever() -------------------------------------------------------------------------------- /src/Babylon.js/HostEnvironment.js: -------------------------------------------------------------------------------- 1 | // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | // SPDX-License-Identifier: MIT-0 3 | // eslint-disable-next-line import/prefer-default-export 4 | export const env = 'babylon'; 5 | -------------------------------------------------------------------------------- /src/Babylon.js/HostObject.js: -------------------------------------------------------------------------------- 1 | // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | // SPDX-License-Identifier: MIT-0 3 | import CoreHostObject from 'core/HostObject'; 4 | 5 | /** 6 | * @extends core/HostObject 7 | * @alias Babylon.js/HostObject 8 | */ 9 | class HostObject extends CoreHostObject { 10 | /** 11 | * @constructor 12 | * 13 | * @param {Object=} options - Options for the host. 14 | * @param {Object=} options.owner - Optional engine-specific owner of the host. 15 | */ 16 | constructor(options = {}) { 17 | super(options); 18 | 19 | if (this._owner) { 20 | Object.defineProperty(this, 'deltaTime', { 21 | get: () => { 22 | return this._owner.getEngine().getDeltaTime(); 23 | }, 24 | }); 25 | } 26 | } 27 | 28 | get now() { 29 | return BABYLON.PrecisionDate.Now; 30 | } 31 | } 32 | 33 | export default HostObject; 34 | -------------------------------------------------------------------------------- /src/Babylon.js/Messenger.js: -------------------------------------------------------------------------------- 1 | // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | // SPDX-License-Identifier: MIT-0 3 | import CoreMessenger from 'core/Messenger'; 4 | 5 | /** 6 | * @extends core/Messenger 7 | * @alias Babylon.js/Messenger 8 | */ 9 | class Messenger extends CoreMessenger { 10 | /** 11 | * @constructor 12 | * 13 | * @param {any=} id - Id for the object. If none is provided a new id will 14 | * be created. Id should be able to be represented as a string. 15 | */ 16 | constructor(id) { 17 | super(id); 18 | 19 | this._events = {}; 20 | } 21 | 22 | _createListener(callback) { 23 | return value => { 24 | callback(value); 25 | }; 26 | } 27 | 28 | _addListener(message, listener) { 29 | this._events[message].add(listener); 30 | } 31 | 32 | _removeListener(message, listener) { 33 | this._events[message].removeCallback(listener); 34 | } 35 | 36 | listenTo(message, callback) { 37 | if (this._events[message] === undefined) { 38 | this._events[message] = new BABYLON.Observable(); 39 | } 40 | 41 | try { 42 | super.listenTo(message, callback); 43 | } catch (e) { 44 | // Clean up the observable if nothing is listening to it 45 | if (!this._events[message].hasObservers()) { 46 | delete this._events[message]; 47 | 48 | throw e; 49 | } 50 | } 51 | } 52 | 53 | stopListening(message, callback) { 54 | const event = this._events[message]; 55 | 56 | if (event === undefined) { 57 | return; 58 | } 59 | 60 | super.stopListening(message, callback); 61 | 62 | if (!event.hasObservers()) { 63 | delete this._events[message]; 64 | } 65 | } 66 | 67 | emit(message, value) { 68 | const event = this._events[message]; 69 | 70 | if (event === undefined) { 71 | return; 72 | } 73 | 74 | event.notifyObservers(value); 75 | } 76 | } 77 | 78 | Object.defineProperty(Messenger, 'GlobalMessenger', { 79 | value: new Messenger(), 80 | writable: false, 81 | }); 82 | 83 | export default Messenger; 84 | -------------------------------------------------------------------------------- /src/Babylon.js/PointOfInterestFeature.js: -------------------------------------------------------------------------------- 1 | // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | // SPDX-License-Identifier: MIT-0 3 | import CorePointOfInterestFeature, { AxisMap } from 'core/PointOfInterestFeature'; 4 | 5 | /** 6 | * @extends core/PointOfInterestFeature 7 | * @alias Babylon.js/PointOfInterestFeature 8 | */ 9 | class PointOfInterestFeature extends CorePointOfInterestFeature { 10 | static _getWorldPosition(obj) { 11 | return obj.getWorldMatrix().m.slice(12, 15); 12 | } 13 | 14 | static _getWorldMatrix(obj) { 15 | return [...obj.getWorldMatrix().m]; 16 | } 17 | 18 | _validateTransformObject(obj) { 19 | return obj instanceof BABYLON.TransformNode; 20 | } 21 | 22 | setTargetByName(name) { 23 | super.setTargetByName(name); 24 | if (!name) { 25 | return; 26 | } 27 | 28 | this.target = this._scene.getTransformNodeByName(name); 29 | } 30 | 31 | setTargetById(id) { 32 | super.setTargetByName(id); 33 | if (!id) { 34 | return; 35 | } 36 | 37 | this.target = this._scene.getTransformNodeByID(id); 38 | } 39 | } 40 | 41 | export default PointOfInterestFeature; 42 | export { AxisMap }; 43 | -------------------------------------------------------------------------------- /src/Babylon.js/animpack/AnimationFeature.js: -------------------------------------------------------------------------------- 1 | // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | // SPDX-License-Identifier: MIT-0 3 | import CoreAnimationFeature, { 4 | AnimationTypes, 5 | } from 'core/animpack/AnimationFeature'; 6 | import SingleState from './state/SingleState'; 7 | 8 | AnimationTypes.single = SingleState; 9 | export {AnimationTypes}; 10 | 11 | /** 12 | * @extends core/AnimationFeature 13 | * @alias Babylon.js/AnimationFeature 14 | */ 15 | class AnimationFeature extends CoreAnimationFeature { 16 | /** 17 | * @constructor 18 | * 19 | * @param {Babylon.js/HostObject} host - Host object that owns the feature. 20 | */ 21 | constructor(host) { 22 | super(host); 23 | 24 | this._babylonScene = host.owner.getScene(); 25 | } 26 | 27 | _createSingleState(options) { 28 | return new SingleState(options, options.clip, this._babylonScene); 29 | } 30 | 31 | discard() { 32 | delete this._babylonScene; 33 | 34 | super.discard(); 35 | } 36 | } 37 | 38 | export default AnimationFeature; 39 | -------------------------------------------------------------------------------- /src/Babylon.js/awspack/Speech.js: -------------------------------------------------------------------------------- 1 | // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | // SPDX-License-Identifier: MIT-0 3 | import CoreSpeech from 'core/awspack/Speech'; 4 | import AbstractSpeech from 'core/awspack/AbstractSpeech'; 5 | 6 | /** 7 | * @extends core/Speech 8 | * @alias Babylon.js/Speech 9 | */ 10 | class Speech extends CoreSpeech { 11 | /** 12 | * @constructor 13 | * 14 | * @param {Babylon.js/TextToSpeechFeature} speaker - The owner of the Speech 15 | * that will emit speechmark messages. 16 | * @param {string} text - The text of the speech. 17 | * @param {Array.} [speechmarks=[]] - An array of speechmark objects representing 18 | * the text and timing of the speech. 19 | * @param {Object} audioConfig - Object containing audio and url. 20 | * @param {external:Audio} audioConfig.audio - Playable audio object. 21 | */ 22 | constructor(...args) { 23 | super(...args); 24 | 25 | this._audio.onEndedObservable.add(() => { 26 | this._audioFinished = true; 27 | }); 28 | } 29 | 30 | _playAudio() { 31 | if (this._speechmarkOffset < 0) { 32 | this._audio.play(-this._speechmarkOffset / 1000); 33 | } else { 34 | this._audio.play(); 35 | } 36 | } 37 | 38 | _pauseAudio() { 39 | this._audio.pause(); 40 | } 41 | 42 | get volume() { 43 | return this._audio.getVolume(); 44 | } 45 | 46 | set volume(volume) { 47 | this._audio.setVolume(volume); 48 | } 49 | 50 | play(currentTime, onFinish, onError, onInterrupt) { 51 | this._audio.stop(); 52 | 53 | return super.play(currentTime, onFinish, onError, onInterrupt); 54 | } 55 | 56 | stop() { 57 | this._audio.stop(); 58 | 59 | AbstractSpeech.prototype.stop.call(this); 60 | } 61 | } 62 | 63 | export default Speech; 64 | -------------------------------------------------------------------------------- /src/Babylon.js/awspack/index.js: -------------------------------------------------------------------------------- 1 | // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | // SPDX-License-Identifier: MIT-0 3 | import TextToSpeechUtils from 'core/awspack/TextToSpeechUtils'; 4 | import TextToSpeechFeature from './TextToSpeechFeature'; 5 | import Speech from './Speech'; 6 | 7 | /** 8 | * @module babylon/awspack 9 | */ 10 | 11 | export default { 12 | /** 13 | * @see Babylon.js/TextToSpeechFeature 14 | */ 15 | TextToSpeechFeature, 16 | /** 17 | * @see core/TextToSpeechUtils 18 | */ 19 | TextToSpeechUtils, 20 | /** 21 | * @see Babylon.js/Speech 22 | */ 23 | Speech, 24 | }; 25 | -------------------------------------------------------------------------------- /src/Babylon.js/index.js: -------------------------------------------------------------------------------- 1 | // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | // SPDX-License-Identifier: MIT-0 3 | 4 | /** 5 | * @module babylon/HOST 6 | */ 7 | 8 | import Utils from 'core/Utils'; 9 | import MathUtils from 'core/MathUtils'; 10 | import Deferred from 'core/Deferred'; 11 | import LipsyncFeature, {DefaultVisemeMap} from 'core/LipsyncFeature'; 12 | import GestureFeature, {DefaultGestureWords} from 'core/GestureFeature'; 13 | import PointOfInterestFeature, {AxisMap} from './PointOfInterestFeature'; 14 | import {env} from './HostEnvironment'; 15 | import Messenger from './Messenger'; 16 | import HostObject from './HostObject'; 17 | 18 | import aws from './awspack'; 19 | import anim from './animpack'; 20 | 21 | export default { 22 | /** 23 | * @see env 24 | */ 25 | env, 26 | /** 27 | * @see Utils 28 | */ 29 | Utils, 30 | /** 31 | * @see MathUtils 32 | */ 33 | MathUtils, 34 | /** 35 | * @see Deferred 36 | */ 37 | Deferred, 38 | /** 39 | * @see Babylon.js/Messenger 40 | */ 41 | Messenger, 42 | /** 43 | * @see Babylon.js/HostObject 44 | */ 45 | HostObject, 46 | /** 47 | * @see core/LipsyncFeature 48 | */ 49 | LipsyncFeature, 50 | /** 51 | * @see GestureFeature 52 | */ 53 | GestureFeature, 54 | /** 55 | * @see Babylon.js/PointOfInterestFeature 56 | */ 57 | PointOfInterestFeature, 58 | /** 59 | * @see DefaultVisemeMap 60 | */ 61 | DefaultVisemeMap, 62 | /** 63 | * @see DefaultGestureWords 64 | */ 65 | DefaultGestureWords, 66 | /** 67 | * @see AxisMap 68 | */ 69 | AxisMap, 70 | /** 71 | * @see module:babylon/awspack 72 | */ 73 | aws, 74 | /** 75 | * @see module:babylon/animpack 76 | */ 77 | anim, 78 | }; 79 | -------------------------------------------------------------------------------- /src/core/HostEnvironment.js: -------------------------------------------------------------------------------- 1 | // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | // SPDX-License-Identifier: MIT-0 3 | /* eslint-disable import/prefer-default-export */ 4 | 5 | /** 6 | * Indicates the type of host build. 7 | * 8 | * @type {string} 9 | */ 10 | const env = 'core'; 11 | 12 | export {env}; 13 | -------------------------------------------------------------------------------- /src/core/animpack/index.js: -------------------------------------------------------------------------------- 1 | // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | // SPDX-License-Identifier: MIT-0 3 | 4 | /** 5 | * @module core/animpack 6 | */ 7 | 8 | import { 9 | Linear, 10 | Quadratic, 11 | Cubic, 12 | Quartic, 13 | Quintic, 14 | Sinusoidal, 15 | Exponential, 16 | Circular, 17 | Elastic, 18 | Back, 19 | Bounce, 20 | } from './Easing'; 21 | import AnimationFeature, {AnimationTypes} from './AnimationFeature'; 22 | import AnimationLayer, { 23 | LayerBlendModes, 24 | DefaultLayerBlendMode, 25 | } from './AnimationLayer'; 26 | import SingleState from './state/SingleState'; 27 | import TransitionState from './state/TransitionState'; 28 | import FreeBlendState from './state/FreeBlendState'; 29 | import QueueState from './state/QueueState'; 30 | import RandomAnimationState from './state/RandomAnimationState'; 31 | import Blend1dState from './state/Blend1dState'; 32 | import Blend2dState from './state/Blend2dState'; 33 | import AnimationUtils from './AnimationUtils'; 34 | 35 | /** 36 | * @namespace 37 | */ 38 | const Easing = { 39 | /** 40 | * @see Linear 41 | */ 42 | Linear, 43 | /** 44 | * @see Quadratic 45 | */ 46 | Quadratic, 47 | /** 48 | * @see Cubic 49 | */ 50 | Cubic, 51 | /** 52 | * @see Quartic 53 | */ 54 | Quartic, 55 | /** 56 | * @see Quintic 57 | */ 58 | Quintic, 59 | /** 60 | * @see Sinusoidal 61 | */ 62 | Sinusoidal, 63 | /** 64 | * @see Exponential 65 | */ 66 | Exponential, 67 | /** 68 | * @see Circular 69 | */ 70 | Circular, 71 | /** 72 | * @see Elastic 73 | */ 74 | Elastic, 75 | /** 76 | * @see Back 77 | */ 78 | Back, 79 | /** 80 | * @see Bounce 81 | */ 82 | Bounce, 83 | }; 84 | export default { 85 | /** 86 | * @see core/AnimationFeature 87 | */ 88 | AnimationFeature, 89 | /** 90 | * @see AnimationLayer 91 | */ 92 | AnimationLayer, 93 | /** 94 | * @see core/SingleState 95 | */ 96 | SingleState, 97 | /** 98 | * @see TransitionState 99 | */ 100 | TransitionState, 101 | /** 102 | * @see FreeBlendState 103 | */ 104 | FreeBlendState, 105 | /** 106 | * @see QueueState 107 | */ 108 | QueueState, 109 | /** 110 | * @see RandomAnimationState 111 | */ 112 | RandomAnimationState, 113 | /** 114 | * @see Blend1dState 115 | */ 116 | Blend1dState, 117 | /** 118 | * @see Blend2dState 119 | */ 120 | Blend2dState, 121 | /** 122 | * @see AnimationUtils 123 | */ 124 | AnimationUtils, 125 | 126 | Easing, 127 | /** 128 | * @see LayerBlendModes 129 | */ 130 | LayerBlendModes, 131 | /** 132 | * @see DefaultLayerBlendMode 133 | */ 134 | DefaultLayerBlendMode, 135 | /** 136 | * @see AnimationTypes 137 | */ 138 | AnimationTypes, 139 | }; 140 | -------------------------------------------------------------------------------- /src/core/animpack/state/FreeBlendState.js: -------------------------------------------------------------------------------- 1 | // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | // SPDX-License-Identifier: MIT-0 3 | import AbstractBlendState from './AbstractBlendState'; 4 | 5 | /** 6 | * Class for blending N number of blend states. 7 | * 8 | * @extends AbstractBlendState 9 | */ 10 | class FreeBlendState extends AbstractBlendState { 11 | /** 12 | * @constructor 13 | * 14 | * @param {Object} [options={}] - Options for the container state. 15 | * @param {Array.} [blendStates=[]] - Blend states to be controlled by 16 | * this container. 17 | */ 18 | constructor(options = {}, blendStates = []) { 19 | super(options, blendStates); 20 | } 21 | 22 | updateInternalWeight(factor) { 23 | super.updateInternalWeight(factor); 24 | 25 | // Determine the total active weight of blend states 26 | let sumWeights = 0; 27 | 28 | this._states.forEach(state => { 29 | sumWeights += state.weight; 30 | }); 31 | 32 | // Ensure the sum of blend state internal weights does not exceed container internal weight 33 | factor /= Math.max(sumWeights, 1); 34 | 35 | // Sum of blend state internal weights should not exceed container internal weight 36 | this._states.forEach(state => { 37 | state.updateInternalWeight(factor * this._weight); 38 | }); 39 | } 40 | } 41 | 42 | export default FreeBlendState; 43 | -------------------------------------------------------------------------------- /src/core/awspack/SSMLSpeechmarkInterface.js: -------------------------------------------------------------------------------- 1 | /* eslint-disable no-unused-vars */ 2 | // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 3 | // SPDX-License-Identifier: MIT-0 4 | 5 | /* eslint-disable max-classes-per-file */ 6 | /* eslint-disable no-empty */ 7 | import TextToSpeechFeatureDependentInterface from 'core/awspack/TextToSpeechFeatureDependentInterface'; 8 | 9 | /** 10 | * Class factory interface for that registers callback method when a ssml speechmark event is emitted. 11 | * 12 | * @interface 13 | * @extends TextToSpeechFeatureDependentInterface 14 | */ 15 | class SSMLSpeechmarkInterface extends TextToSpeechFeatureDependentInterface { 16 | /** 17 | * When ssml events are caught, this will try to parse the speech mark value and execute any function which meets criteria defined in the value. 18 | * Speech mark value will be treated as stringified json format containing required feature name, function name and argument array to pass in. 19 | * Example speech mark value might look like: '{"feature":"GestureFeature", "method":"switchToGesture", "args":["genricA", 0.5]}' 20 | * 21 | * @private 22 | * 23 | * @param {Object} event - Event data passed from the speech. 24 | * @param {Object} event.mark - Speechmark object. 25 | */ 26 | _onSsml({mark}) {} 27 | 28 | /** 29 | * Creates a class that implements {@link SSMLSpeechmarkInterface} 30 | * and extends a specified base class. 31 | * 32 | * @param {Class} BaseClass - The class to extend. 33 | * 34 | * @return {Class} A class that extends `BaseClass` and implements {@link SSMLSpeechmarkInterface}. 35 | */ 36 | static Mixin(BaseClass) { 37 | const ParentClass = TextToSpeechFeatureDependentInterface.Mixin(BaseClass); 38 | const SSMLSpeechMarkMixin = class extends ParentClass { 39 | _onSsml({mark}) { 40 | try { 41 | const {feature, method, args} = JSON.parse(mark.value); 42 | if (this.constructor.name === feature) { 43 | const callback = this[method]; 44 | if (callback && typeof callback === 'function') { 45 | callback.apply(this, args) 46 | } else { 47 | console.warn(`Function ${method} does not exist within feature ${feature}`) 48 | } 49 | } 50 | } catch(e) {} 51 | } 52 | }; 53 | 54 | return SSMLSpeechMarkMixin; 55 | } 56 | } 57 | 58 | export default SSMLSpeechmarkInterface; 59 | -------------------------------------------------------------------------------- /src/core/awspack/index.js: -------------------------------------------------------------------------------- 1 | // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | // SPDX-License-Identifier: MIT-0 3 | import TextToSpeechFeature from './TextToSpeechFeature'; 4 | import TextToSpeechUtils from './TextToSpeechUtils'; 5 | import Speech from './Speech'; 6 | 7 | /** 8 | * @module core/awspack 9 | */ 10 | 11 | export default { 12 | /** 13 | * @see core/TextToSpeechFeature 14 | */ 15 | TextToSpeechFeature, 16 | /** 17 | * @see core/TextToSpeechUtils 18 | */ 19 | TextToSpeechUtils, 20 | /** 21 | * @see core/Speech 22 | */ 23 | Speech, 24 | }; 25 | -------------------------------------------------------------------------------- /src/core/index.js: -------------------------------------------------------------------------------- 1 | // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | // SPDX-License-Identifier: MIT-0 3 | 4 | /** 5 | * @module core/HOST 6 | */ 7 | 8 | import Utils from './Utils'; 9 | import MathUtils from './MathUtils'; 10 | import Deferred from './Deferred'; 11 | import {env} from './HostEnvironment'; 12 | import Messenger from './Messenger'; 13 | import HostObject from './HostObject'; 14 | import LipsyncFeature, {DefaultVisemeMap} from './LipsyncFeature'; 15 | import GestureFeature, { DefaultGestureWords } from './GestureFeature'; 16 | import PointOfInterestFeature, { AxisMap } from './PointOfInterestFeature'; 17 | 18 | import aws from './awspack'; 19 | import anim from './animpack'; 20 | 21 | export default { 22 | /** 23 | * @see env 24 | */ 25 | env, 26 | /** 27 | * @see Utils 28 | */ 29 | Utils, 30 | /** 31 | * @see MathUtils 32 | */ 33 | MathUtils, 34 | /** 35 | * @see Deferred 36 | */ 37 | Deferred, 38 | /** 39 | * @see core/Messenger 40 | */ 41 | Messenger, 42 | /** 43 | * @see core/HostObject 44 | */ 45 | HostObject, 46 | /** 47 | * @see core/LipsyncFeature 48 | */ 49 | LipsyncFeature, 50 | /** 51 | * @see GestureFeature 52 | */ 53 | GestureFeature, 54 | /** 55 | * @see core/PointOfInterestFeature 56 | */ 57 | PointOfInterestFeature, 58 | /** 59 | * @see DefaultVisemeMap 60 | */ 61 | DefaultVisemeMap, 62 | /** 63 | * @see DefaultGestureWords 64 | */ 65 | DefaultGestureWords, 66 | /** 67 | * @see AxisMap 68 | */ 69 | AxisMap, 70 | /** 71 | * @see module:core/awspack 72 | */ 73 | aws, 74 | /** 75 | * @see module:core/animpack 76 | */ 77 | anim, 78 | }; 79 | -------------------------------------------------------------------------------- /src/three.js/HostEnvironment.js: -------------------------------------------------------------------------------- 1 | // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | // SPDX-License-Identifier: MIT-0 3 | // eslint-disable-next-line import/prefer-default-export 4 | export const env = 'three'; 5 | -------------------------------------------------------------------------------- /src/three.js/HostObject.js: -------------------------------------------------------------------------------- 1 | // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | // SPDX-License-Identifier: MIT-0 3 | 4 | /** 5 | * Threejs Clock object 6 | * 7 | * @external "THREE.Clock" 8 | * @see https://threejs.org/docs/#api/en/core/Clock 9 | */ 10 | 11 | import CoreHostObject from 'core/HostObject'; 12 | 13 | /** 14 | * @alias three.js/HostObject 15 | * @extends core/HostObject 16 | */ 17 | class HostObject extends CoreHostObject { 18 | /** 19 | * @constructor 20 | * 21 | * @param {Object=} options - Options for the host. 22 | * @param {Object=} options.owner - Optional engine-specific owner of the host. 23 | * @param {external:"THREE.Clock"=} options.clock - Optional clock to manage time. 24 | */ 25 | constructor(options = {}) { 26 | super(options); 27 | 28 | this._clock = options.clock; 29 | 30 | if (this._clock) { 31 | Object.defineProperty(this, 'now', { 32 | get: () => { 33 | return this._clock.getElapsedTime() * 1000; 34 | }, 35 | }); 36 | 37 | this._lastUpdate = this.now; 38 | } 39 | } 40 | } 41 | 42 | export default HostObject; 43 | -------------------------------------------------------------------------------- /src/three.js/Messenger.js: -------------------------------------------------------------------------------- 1 | // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | // SPDX-License-Identifier: MIT-0 3 | import CoreMessenger from 'core/Messenger'; 4 | 5 | /** 6 | * @extends core/Messenger 7 | * @alias three.js/Messenger 8 | */ 9 | class Messenger extends CoreMessenger { 10 | /** 11 | * @constructor 12 | * 13 | * @param {any=} id - Id for the object. If none is provided a new id will 14 | * be created. Id should be able to be represented as a string. 15 | */ 16 | constructor(id) { 17 | super(id); 18 | this._dispatcher = this; 19 | } 20 | 21 | _createEvent(message, value) { 22 | return {detail: value, type: message}; 23 | } 24 | } 25 | 26 | // Assign Three.js EventDispatcher functionality to the Messenger class 27 | Object.getOwnPropertyNames(THREE.EventDispatcher.prototype) 28 | .filter(prop => prop !== 'constructor') 29 | .forEach(prop => { 30 | Messenger.prototype[prop] = THREE.EventDispatcher.prototype[prop]; 31 | }); 32 | 33 | Object.defineProperty(Messenger, 'GlobalMessenger', { 34 | value: new Messenger(), 35 | writable: false, 36 | }); 37 | 38 | export default Messenger; 39 | -------------------------------------------------------------------------------- /src/three.js/PointOfInterestFeature.js: -------------------------------------------------------------------------------- 1 | // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | // SPDX-License-Identifier: MIT-0 3 | import CorePointOfInterestFeature, {AxisMap} from 'core/PointOfInterestFeature'; 4 | 5 | /** 6 | * @extends core/PointOfInterestFeature 7 | * @alias three.js/PointOfInterestFeature 8 | */ 9 | class PointOfInterestFeature extends CorePointOfInterestFeature { 10 | static _getWorldPosition(obj) { 11 | obj.updateWorldMatrix(true, false); 12 | return obj.matrixWorld.elements.slice(12, 15); 13 | } 14 | 15 | static _getWorldMatrix(obj) { 16 | obj.updateWorldMatrix(true, false); 17 | return [...obj.matrixWorld.elements]; 18 | } 19 | 20 | _validateTransformObject(obj) { 21 | return obj instanceof THREE.Object3D; 22 | } 23 | 24 | setTargetByName(name) { 25 | super.setTargetByName(name); 26 | if (!name) { 27 | return; 28 | } 29 | 30 | this.target = this._scene.getObjectByName(name); 31 | } 32 | 33 | setTargetById(id) { 34 | super.setTargetByName(id); 35 | if (!id) { 36 | return; 37 | } 38 | 39 | this.target = this._scene.getObjectById(id); 40 | } 41 | } 42 | 43 | export default PointOfInterestFeature; 44 | export {AxisMap}; 45 | -------------------------------------------------------------------------------- /src/three.js/animpack/AnimationFeature.js: -------------------------------------------------------------------------------- 1 | // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | // SPDX-License-Identifier: MIT-0 3 | import CoreAnimationFeature, { 4 | AnimationTypes, 5 | } from 'core/animpack/AnimationFeature'; 6 | import SingleState from './state/SingleState'; 7 | 8 | /** 9 | * Threejs AnimationMixer object 10 | * @external "THREE.AnimationMixer" 11 | * @see https://threejs.org/docs/#api/en/animation/AnimationMixer 12 | */ 13 | AnimationTypes.single = SingleState; 14 | export {AnimationTypes}; 15 | 16 | /** 17 | * @extends core/AnimationFeature 18 | * @alias three.js/AnimationFeature 19 | */ 20 | class AnimationFeature extends CoreAnimationFeature { 21 | /** 22 | * @constructor 23 | * 24 | * @param {three.js/HostObject} host - Host object that owns the feature. 25 | */ 26 | constructor(host) { 27 | super(host); 28 | 29 | this._mixer = new THREE.AnimationMixer(host.owner); 30 | } 31 | 32 | _createSingleState(options) { 33 | // Duplicate the clip if it is already in use by another three action 34 | let {clip} = options; 35 | if (this._mixer.existingAction(clip)) { 36 | clip = clip.clone(); 37 | } 38 | 39 | const threeAction = this._mixer.clipAction(clip); 40 | return new SingleState(options, threeAction); 41 | } 42 | 43 | /** 44 | * Gets the THREE.AnimationMixer for the host. 45 | * 46 | * @readonly 47 | * @type {external:"THREE.AnimationMixer"} 48 | */ 49 | get mixer() { 50 | return this._mixer; 51 | } 52 | 53 | update(deltaTime) { 54 | super.update(deltaTime); 55 | 56 | if (!this._paused) { 57 | this._mixer.update(deltaTime / 1000); // THREE.AnimationMixer requires delta time in seconds 58 | } 59 | } 60 | 61 | discard() { 62 | // Release THREE animation resources 63 | this._mixer.uncacheRoot(this._host.owner); 64 | 65 | super.discard(); 66 | } 67 | } 68 | 69 | export default AnimationFeature; 70 | -------------------------------------------------------------------------------- /src/three.js/animpack/index.js: -------------------------------------------------------------------------------- 1 | // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | // SPDX-License-Identifier: MIT-0 3 | 4 | /** 5 | * @module three/animpack 6 | */ 7 | 8 | import { 9 | Linear, 10 | Quadratic, 11 | Cubic, 12 | Quartic, 13 | Quintic, 14 | Sinusoidal, 15 | Exponential, 16 | Circular, 17 | Elastic, 18 | Back, 19 | Bounce, 20 | } from 'core/animpack/Easing'; 21 | import AnimationUtils from 'core/animpack/AnimationUtils'; 22 | import TransitionState from 'core/animpack/state/TransitionState'; 23 | import RandomAnimationState from 'core/animpack/state/RandomAnimationState'; 24 | import AnimationLayer, { 25 | LayerBlendModes, 26 | DefaultLayerBlendMode, 27 | } from 'core/animpack/AnimationLayer'; 28 | import FreeBlendState from 'core/animpack/state/FreeBlendState'; 29 | import QueueState from 'core/animpack/state/QueueState'; 30 | import Blend1dState from 'core/animpack/state/Blend1dState'; 31 | import Blend2dState from 'core/animpack/state/Blend2dState'; 32 | import AnimationFeature, {AnimationTypes} from './AnimationFeature'; 33 | import SingleState from './state/SingleState'; 34 | 35 | /** 36 | * @namespace 37 | */ 38 | const Easing = { 39 | /** 40 | * @see Linear 41 | */ 42 | Linear, 43 | /** 44 | * @see Quadratic 45 | */ 46 | Quadratic, 47 | /** 48 | * @see Cubic 49 | */ 50 | Cubic, 51 | /** 52 | * @see Quartic 53 | */ 54 | Quartic, 55 | /** 56 | * @see Quintic 57 | */ 58 | Quintic, 59 | /** 60 | * @see Sinusoidal 61 | */ 62 | Sinusoidal, 63 | /** 64 | * @see Exponential 65 | */ 66 | Exponential, 67 | /** 68 | * @see Circular 69 | */ 70 | Circular, 71 | /** 72 | * @see Elastic 73 | */ 74 | Elastic, 75 | /** 76 | * @see Back 77 | */ 78 | Back, 79 | /** 80 | * @see Bounce 81 | */ 82 | Bounce, 83 | }; 84 | export default { 85 | /** 86 | * @see three.js/AnimationFeature 87 | */ 88 | AnimationFeature, 89 | /** 90 | * @see AnimationLayer 91 | */ 92 | AnimationLayer, 93 | /** 94 | * @see three.js/SingleState 95 | */ 96 | SingleState, 97 | /** 98 | * @see TransitionState 99 | */ 100 | TransitionState, 101 | /** 102 | * @see FreeBlendState 103 | */ 104 | FreeBlendState, 105 | /** 106 | * @see QueueState 107 | */ 108 | QueueState, 109 | /** 110 | * @see RandomAnimationState 111 | */ 112 | RandomAnimationState, 113 | /** 114 | * @see Blend1dState 115 | */ 116 | Blend1dState, 117 | /** 118 | * @see Blend2dState 119 | */ 120 | Blend2dState, 121 | /** 122 | * @see AnimationUtils 123 | */ 124 | AnimationUtils, 125 | /** 126 | * @see Easing 127 | */ 128 | Easing, 129 | /** 130 | * @see LayerBlendModes 131 | */ 132 | LayerBlendModes, 133 | /** 134 | * @see DefaultLayerBlendMode 135 | */ 136 | DefaultLayerBlendMode, 137 | /** 138 | * @see AnimationTypes 139 | */ 140 | AnimationTypes, 141 | }; 142 | -------------------------------------------------------------------------------- /src/three.js/awspack/Speech.js: -------------------------------------------------------------------------------- 1 | // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | // SPDX-License-Identifier: MIT-0 3 | import CoreSpeech from 'core/awspack/Speech'; 4 | 5 | /** 6 | * Threejs Audio object 7 | * @external "THREE.Audio" 8 | * @see https://threejs.org/docs/#api/en/audio/Audio 9 | */ 10 | 11 | /** 12 | * Threejs PositionalAudio object 13 | * @external "THREE.PositionalAudio" 14 | * @see https://threejs.org/docs/#api/en/audio/PositionalAudio 15 | */ 16 | 17 | /** 18 | * @extends core/Speech 19 | * @alias three.js/Speech 20 | */ 21 | class Speech extends CoreSpeech { 22 | /** 23 | * @constructor 24 | * 25 | * @param {three.js/TextToSpeechFeature} speaker - The owner of the Speech that 26 | * will emit speechmark messages. 27 | * @param {string} text - The text of the speech. 28 | * @param {Array.} speechmarks - An array of speechmark objects representing 29 | * the text and timing of the speech. 30 | * @param {Object} audioConfig - Object containing audio and url. 31 | * @param {external:Audio} audioConfig.audio - Playable audio object. 32 | * @param {(external:"THREE.Audio"|external:"THREE.PositionalAudio")} audioConfig.threeAudio - 33 | * Three.js audio object. 34 | */ 35 | constructor(textToSpeech, text, speechmarks = [], audioConfig) { 36 | super(textToSpeech, text, speechmarks, audioConfig); 37 | this._threeAudio = audioConfig.threeAudio; 38 | } 39 | 40 | /** 41 | * Gets the Three.js audio object for the speech. 42 | * 43 | * @readonly 44 | * @type {(external:"THREE.Audio"|external:"THREE.PositionalAudio")} 45 | */ 46 | get audio() { 47 | return this._threeAudio; 48 | } 49 | 50 | _pauseAudio() { 51 | this._audio.pause(); 52 | } 53 | 54 | play(currentTime, onFinish, onError, onInterrupt) { 55 | // Re-connect the Audio element to stop playback 56 | this._threeAudio.disconnect(); 57 | this._threeAudio.connect(); 58 | 59 | return super.play(currentTime, onFinish, onError, onInterrupt); 60 | } 61 | } 62 | 63 | export default Speech; 64 | -------------------------------------------------------------------------------- /src/three.js/awspack/TextToSpeechFeature.js: -------------------------------------------------------------------------------- 1 | // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | // SPDX-License-Identifier: MIT-0 3 | import CoreTextToSpeechFeature from 'core/awspack/TextToSpeechFeature'; 4 | 5 | /** 6 | * Threejs PositionalAudio object 7 | * @external "THREE.AudioListener" 8 | * @see https://threejs.org/docs/#api/en/audio/AudioListener 9 | */ 10 | 11 | /** 12 | * Threejs Audio object 13 | * @external "THREE.Object3D" 14 | * @see https://threejs.org/docs/#api/en/core/Object3D 15 | */ 16 | 17 | /** 18 | * @extends core/TextToSpeechFeature 19 | * @alias three.js/TextToSpeechFeature 20 | */ 21 | class TextToSpeechFeature extends CoreTextToSpeechFeature { 22 | /** 23 | * @constructor 24 | * 25 | * @param {three/HostObject} host - Host object managing the feature. 26 | * @param {Object=} options - Options that will be sent to Polly for each speech. 27 | * @param {external:"THREE.AudioListener"} options.listener - Three audio listener to use with 28 | * audio. 29 | * @param {external:"THREE.Object3D"=} options.attachTo - Optional object to attach the speech 30 | * audio to. 31 | */ 32 | constructor( 33 | host, 34 | options = { 35 | voice: undefined, 36 | engine: undefined, 37 | language: undefined, 38 | audioFormat: 'mp3', 39 | sampleRate: undefined, 40 | listener: undefined, 41 | attachTo: undefined, 42 | } 43 | ) { 44 | super(host, options); 45 | this._listener = options.listener; 46 | this._attachTo = options.attachTo || host.owner; 47 | this._setAudioContext(); 48 | this._observeAudioContext(); 49 | } 50 | 51 | _setAudioContext() { 52 | if (this._listener) { 53 | this._audioContext = this._listener.context; 54 | } 55 | } 56 | 57 | /** 58 | * Create an Audio object and Three.js audio object of speech audio for the 59 | * given speech text. 60 | * 61 | * @private 62 | * 63 | * @param {Object} params - Parameters object compatible with Polly.synthesizeSpeech. 64 | * 65 | * @returns {Promise} Resolves with an object containing the audio URL and Audio 66 | * objects. 67 | */ 68 | _synthesizeAudio(params) { 69 | return super._synthesizeAudio(params).then(result => { 70 | if (this._attachTo !== undefined && !this._isGlobal) { 71 | // Create positional audio if there's an attach point 72 | result.threeAudio = new THREE.PositionalAudio(this._listener); 73 | this._attachTo.add(result.threeAudio); 74 | } else { 75 | // Create non-positional audio 76 | result.threeAudio = new THREE.Audio(this._listener); 77 | } 78 | 79 | // Set Audio object as the source 80 | result.threeAudio.setMediaElementSource(result.audio); 81 | 82 | return result; 83 | }); 84 | } 85 | } 86 | 87 | export default TextToSpeechFeature; 88 | -------------------------------------------------------------------------------- /src/three.js/awspack/index.js: -------------------------------------------------------------------------------- 1 | // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | // SPDX-License-Identifier: MIT-0 3 | import TextToSpeechUtils from 'core/awspack/TextToSpeechUtils'; 4 | import TextToSpeechFeature from './TextToSpeechFeature'; 5 | import Speech from './Speech'; 6 | 7 | /** 8 | * @module three/awspack 9 | */ 10 | 11 | export default { 12 | /** 13 | * @see three.js/TextToSpeechFeature 14 | */ 15 | TextToSpeechFeature, 16 | /** 17 | * @see core/TextToSpeechUtils 18 | */ 19 | TextToSpeechUtils, 20 | /** 21 | * @see three.js/Speech 22 | */ 23 | Speech, 24 | }; 25 | -------------------------------------------------------------------------------- /src/three.js/index.js: -------------------------------------------------------------------------------- 1 | // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | // SPDX-License-Identifier: MIT-0 3 | 4 | /** 5 | * @module three/HOST 6 | */ 7 | 8 | import Utils from 'core/Utils'; 9 | import MathUtils from 'core/MathUtils'; 10 | import Deferred from 'core/Deferred'; 11 | import LipsyncFeature, {DefaultVisemeMap} from 'core/LipsyncFeature'; 12 | import GestureFeature, {DefaultGestureWords} from 'core/GestureFeature'; 13 | import PointOfInterestFeature, {AxisMap} from './PointOfInterestFeature'; 14 | import {env} from './HostEnvironment'; 15 | import Messenger from './Messenger'; 16 | import HostObject from './HostObject'; 17 | 18 | import aws from './awspack'; 19 | import anim from './animpack'; 20 | 21 | export default { 22 | /** 23 | * @see env 24 | */ 25 | env, 26 | /** 27 | * @see Utils 28 | */ 29 | Utils, 30 | /** 31 | * @see MathUtils 32 | */ 33 | MathUtils, 34 | /** 35 | * @see Deferred 36 | */ 37 | Deferred, 38 | /** 39 | * @see three.js/Messenger 40 | */ 41 | Messenger, 42 | /** 43 | * @see three.js/HostObject 44 | */ 45 | HostObject, 46 | /** 47 | * @see core/LipsyncFeature 48 | */ 49 | LipsyncFeature, 50 | /** 51 | * @see GestureFeature 52 | */ 53 | GestureFeature, 54 | /** 55 | * @see three.js/PointOfInterestFeature 56 | */ 57 | PointOfInterestFeature, 58 | /** 59 | * @see DefaultVisemeMap 60 | */ 61 | DefaultVisemeMap, 62 | /** 63 | * @see DefaultGestureWords 64 | */ 65 | DefaultGestureWords, 66 | /** 67 | * @see AxisMap 68 | */ 69 | AxisMap, 70 | /** 71 | * @see module:three/awspack 72 | */ 73 | aws, 74 | /** 75 | * @see module:three/animpack 76 | */ 77 | anim, 78 | }; 79 | -------------------------------------------------------------------------------- /src/threeAzure/HostEnvironment.js: -------------------------------------------------------------------------------- 1 | // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | // SPDX-License-Identifier: MIT-0 3 | // eslint-disable-next-line import/prefer-default-export 4 | export const env = 'three'; 5 | -------------------------------------------------------------------------------- /src/threeAzure/HostObject.js: -------------------------------------------------------------------------------- 1 | // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | // SPDX-License-Identifier: MIT-0 3 | 4 | /** 5 | * Threejs Clock object 6 | * 7 | * @external "THREE.Clock" 8 | * @see https://threejs.org/docs/#api/en/core/Clock 9 | */ 10 | 11 | import CoreHostObject from 'core/HostObject'; 12 | 13 | /** 14 | * @alias three.js/HostObject 15 | * @extends core/HostObject 16 | */ 17 | class HostObject extends CoreHostObject { 18 | /** 19 | * @constructor 20 | * 21 | * @param {Object=} options - Options for the host. 22 | * @param {Object=} options.owner - Optional engine-specific owner of the host. 23 | * @param {external:"THREE.Clock"=} options.clock - Optional clock to manage time. 24 | */ 25 | constructor(options = {}) { 26 | super(options); 27 | 28 | this._clock = options.clock; 29 | 30 | if (this._clock) { 31 | Object.defineProperty(this, 'now', { 32 | get: () => { 33 | return this._clock.getElapsedTime() * 1000; 34 | }, 35 | }); 36 | 37 | this._lastUpdate = this.now; 38 | } 39 | } 40 | } 41 | 42 | export default HostObject; 43 | -------------------------------------------------------------------------------- /src/threeAzure/Messenger.js: -------------------------------------------------------------------------------- 1 | // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | // SPDX-License-Identifier: MIT-0 3 | import CoreMessenger from 'core/Messenger'; 4 | 5 | /** 6 | * @extends core/Messenger 7 | * @alias three.js/Messenger 8 | */ 9 | class Messenger extends CoreMessenger { 10 | /** 11 | * @constructor 12 | * 13 | * @param {any=} id - Id for the object. If none is provided a new id will 14 | * be created. Id should be able to be represented as a string. 15 | */ 16 | constructor(id) { 17 | super(id); 18 | this._dispatcher = this; 19 | } 20 | 21 | _createEvent(message, value) { 22 | return {detail: value, type: message}; 23 | } 24 | } 25 | 26 | // Assign Three.js EventDispatcher functionality to the Messenger class 27 | Object.getOwnPropertyNames(THREE.EventDispatcher.prototype) 28 | .filter(prop => prop !== 'constructor') 29 | .forEach(prop => { 30 | Messenger.prototype[prop] = THREE.EventDispatcher.prototype[prop]; 31 | }); 32 | 33 | Object.defineProperty(Messenger, 'GlobalMessenger', { 34 | value: new Messenger(), 35 | writable: false, 36 | }); 37 | 38 | export default Messenger; 39 | -------------------------------------------------------------------------------- /src/threeAzure/PointOfInterestFeature.js: -------------------------------------------------------------------------------- 1 | // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | // SPDX-License-Identifier: MIT-0 3 | import CorePointOfInterestFeature, {AxisMap} from 'core/PointOfInterestFeature'; 4 | 5 | /** 6 | * @extends core/PointOfInterestFeature 7 | * @alias three.js/PointOfInterestFeature 8 | */ 9 | class PointOfInterestFeature extends CorePointOfInterestFeature { 10 | static _getWorldPosition(obj) { 11 | obj.updateWorldMatrix(true, false); 12 | return obj.matrixWorld.elements.slice(12, 15); 13 | } 14 | 15 | static _getWorldMatrix(obj) { 16 | obj.updateWorldMatrix(true, false); 17 | return [...obj.matrixWorld.elements]; 18 | } 19 | 20 | _validateTransformObject(obj) { 21 | return obj instanceof THREE.Object3D; 22 | } 23 | 24 | setTargetByName(name) { 25 | super.setTargetByName(name); 26 | if (!name) { 27 | return; 28 | } 29 | 30 | this.target = this._scene.getObjectByName(name); 31 | } 32 | 33 | setTargetById(id) { 34 | super.setTargetByName(id); 35 | if (!id) { 36 | return; 37 | } 38 | 39 | this.target = this._scene.getObjectById(id); 40 | } 41 | } 42 | 43 | export default PointOfInterestFeature; 44 | export {AxisMap}; 45 | -------------------------------------------------------------------------------- /src/threeAzure/animpack/AnimationFeature.js: -------------------------------------------------------------------------------- 1 | // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | // SPDX-License-Identifier: MIT-0 3 | import CoreAnimationFeature, { 4 | AnimationTypes, 5 | } from 'core/animpack/AnimationFeature'; 6 | import SingleState from './state/SingleState'; 7 | 8 | /** 9 | * Threejs AnimationMixer object 10 | * @external "THREE.AnimationMixer" 11 | * @see https://threejs.org/docs/#api/en/animation/AnimationMixer 12 | */ 13 | AnimationTypes.single = SingleState; 14 | export {AnimationTypes}; 15 | 16 | /** 17 | * @extends core/AnimationFeature 18 | * @alias three.js/AnimationFeature 19 | */ 20 | class AnimationFeature extends CoreAnimationFeature { 21 | /** 22 | * @constructor 23 | * 24 | * @param {three.js/HostObject} host - Host object that owns the feature. 25 | */ 26 | constructor(host) { 27 | super(host); 28 | 29 | this._mixer = new THREE.AnimationMixer(host.owner); 30 | } 31 | 32 | _createSingleState(options) { 33 | // Duplicate the clip if it is already in use by another three action 34 | let {clip} = options; 35 | if (this._mixer.existingAction(clip)) { 36 | clip = clip.clone(); 37 | } 38 | 39 | const threeAction = this._mixer.clipAction(clip); 40 | return new SingleState(options, threeAction); 41 | } 42 | 43 | /** 44 | * Gets the THREE.AnimationMixer for the host. 45 | * 46 | * @readonly 47 | * @type {external:"THREE.AnimationMixer"} 48 | */ 49 | get mixer() { 50 | return this._mixer; 51 | } 52 | 53 | update(deltaTime) { 54 | super.update(deltaTime); 55 | 56 | if (!this._paused) { 57 | this._mixer.update(deltaTime / 1000); // THREE.AnimationMixer requires delta time in seconds 58 | } 59 | } 60 | 61 | discard() { 62 | // Release THREE animation resources 63 | this._mixer.uncacheRoot(this._host.owner); 64 | 65 | super.discard(); 66 | } 67 | } 68 | 69 | export default AnimationFeature; 70 | -------------------------------------------------------------------------------- /src/threeAzure/animpack/index.js: -------------------------------------------------------------------------------- 1 | // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | // SPDX-License-Identifier: MIT-0 3 | 4 | /** 5 | * @module three/animpack 6 | */ 7 | 8 | import { 9 | Linear, 10 | Quadratic, 11 | Cubic, 12 | Quartic, 13 | Quintic, 14 | Sinusoidal, 15 | Exponential, 16 | Circular, 17 | Elastic, 18 | Back, 19 | Bounce, 20 | } from 'core/animpack/Easing'; 21 | import AnimationUtils from 'core/animpack/AnimationUtils'; 22 | import TransitionState from 'core/animpack/state/TransitionState'; 23 | import RandomAnimationState from 'core/animpack/state/RandomAnimationState'; 24 | import AnimationLayer, { 25 | LayerBlendModes, 26 | DefaultLayerBlendMode, 27 | } from 'core/animpack/AnimationLayer'; 28 | import FreeBlendState from 'core/animpack/state/FreeBlendState'; 29 | import QueueState from 'core/animpack/state/QueueState'; 30 | import Blend1dState from 'core/animpack/state/Blend1dState'; 31 | import Blend2dState from 'core/animpack/state/Blend2dState'; 32 | import AnimationFeature, {AnimationTypes} from './AnimationFeature'; 33 | import SingleState from './state/SingleState'; 34 | 35 | /** 36 | * @namespace 37 | */ 38 | const Easing = { 39 | /** 40 | * @see Linear 41 | */ 42 | Linear, 43 | /** 44 | * @see Quadratic 45 | */ 46 | Quadratic, 47 | /** 48 | * @see Cubic 49 | */ 50 | Cubic, 51 | /** 52 | * @see Quartic 53 | */ 54 | Quartic, 55 | /** 56 | * @see Quintic 57 | */ 58 | Quintic, 59 | /** 60 | * @see Sinusoidal 61 | */ 62 | Sinusoidal, 63 | /** 64 | * @see Exponential 65 | */ 66 | Exponential, 67 | /** 68 | * @see Circular 69 | */ 70 | Circular, 71 | /** 72 | * @see Elastic 73 | */ 74 | Elastic, 75 | /** 76 | * @see Back 77 | */ 78 | Back, 79 | /** 80 | * @see Bounce 81 | */ 82 | Bounce, 83 | }; 84 | export default { 85 | /** 86 | * @see three.js/AnimationFeature 87 | */ 88 | AnimationFeature, 89 | /** 90 | * @see AnimationLayer 91 | */ 92 | AnimationLayer, 93 | /** 94 | * @see three.js/SingleState 95 | */ 96 | SingleState, 97 | /** 98 | * @see TransitionState 99 | */ 100 | TransitionState, 101 | /** 102 | * @see FreeBlendState 103 | */ 104 | FreeBlendState, 105 | /** 106 | * @see QueueState 107 | */ 108 | QueueState, 109 | /** 110 | * @see RandomAnimationState 111 | */ 112 | RandomAnimationState, 113 | /** 114 | * @see Blend1dState 115 | */ 116 | Blend1dState, 117 | /** 118 | * @see Blend2dState 119 | */ 120 | Blend2dState, 121 | /** 122 | * @see AnimationUtils 123 | */ 124 | AnimationUtils, 125 | /** 126 | * @see Easing 127 | */ 128 | Easing, 129 | /** 130 | * @see LayerBlendModes 131 | */ 132 | LayerBlendModes, 133 | /** 134 | * @see DefaultLayerBlendMode 135 | */ 136 | DefaultLayerBlendMode, 137 | /** 138 | * @see AnimationTypes 139 | */ 140 | AnimationTypes, 141 | }; 142 | -------------------------------------------------------------------------------- /src/threeAzure/awspack/Speech.js: -------------------------------------------------------------------------------- 1 | // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | // SPDX-License-Identifier: MIT-0 3 | import CoreSpeech from 'core/awspack/Speech'; 4 | 5 | /** 6 | * Threejs Audio object 7 | * @external "THREE.Audio" 8 | * @see https://threejs.org/docs/#api/en/audio/Audio 9 | */ 10 | 11 | /** 12 | * Threejs PositionalAudio object 13 | * @external "THREE.PositionalAudio" 14 | * @see https://threejs.org/docs/#api/en/audio/PositionalAudio 15 | */ 16 | 17 | /** 18 | * @extends core/Speech 19 | * @alias three.js/Speech 20 | */ 21 | class Speech extends CoreSpeech { 22 | /** 23 | * @constructor 24 | * 25 | * @param {three.js/TextToSpeechFeature} speaker - The owner of the Speech that 26 | * will emit speechmark messages. 27 | * @param {string} text - The text of the speech. 28 | * @param {Array.} speechmarks - An array of speechmark objects representing 29 | * the text and timing of the speech. 30 | * @param {Object} audioConfig - Object containing audio and url. 31 | * @param {external:Audio} audioConfig.audio - Playable audio object. 32 | * @param {(external:"THREE.Audio"|external:"THREE.PositionalAudio")} audioConfig.threeAudio - 33 | * Three.js audio object. 34 | */ 35 | constructor(textToSpeech, text, speechmarks = [], audioConfig) { 36 | super(textToSpeech, text, speechmarks, audioConfig); 37 | this._threeAudio = audioConfig.threeAudio; 38 | } 39 | 40 | /** 41 | * Gets the Three.js audio object for the speech. 42 | * 43 | * @readonly 44 | * @type {(external:"THREE.Audio"|external:"THREE.PositionalAudio")} 45 | */ 46 | get audio() { 47 | return this._threeAudio; 48 | } 49 | 50 | _pauseAudio() { 51 | this._audio.pause(); 52 | } 53 | 54 | play(currentTime, onFinish, onError, onInterrupt) { 55 | // Re-connect the Audio element to stop playback 56 | this._threeAudio.disconnect(); 57 | this._threeAudio.connect(); 58 | 59 | return super.play(currentTime, onFinish, onError, onInterrupt); 60 | } 61 | } 62 | 63 | export default Speech; 64 | -------------------------------------------------------------------------------- /src/threeAzure/awspack/index.js: -------------------------------------------------------------------------------- 1 | // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | // SPDX-License-Identifier: MIT-0 3 | import TextToSpeechUtils from 'core/awspack/TextToSpeechUtils'; 4 | import TextToSpeechFeature from './TextToSpeechFeature'; 5 | import Speech from './Speech'; 6 | 7 | /** 8 | * @module threeAzure/awspack 9 | */ 10 | 11 | export default { 12 | /** 13 | * @see three.js/TextToSpeechFeature 14 | */ 15 | TextToSpeechFeature, 16 | /** 17 | * @see core/TextToSpeechUtils 18 | */ 19 | TextToSpeechUtils, 20 | /** 21 | * @see three.js/Speech 22 | */ 23 | Speech, 24 | }; 25 | -------------------------------------------------------------------------------- /src/threeAzure/index.js: -------------------------------------------------------------------------------- 1 | // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | // SPDX-License-Identifier: MIT-0 3 | 4 | /** 5 | * @module three/HOST 6 | */ 7 | 8 | import Utils from 'core/Utils'; 9 | import MathUtils from 'core/MathUtils'; 10 | import Deferred from 'core/Deferred'; 11 | import LipsyncFeature, {DefaultVisemeMap} from 'core/LipsyncFeature'; 12 | import GestureFeature, {DefaultGestureWords} from 'core/GestureFeature'; 13 | import PointOfInterestFeature, {AxisMap} from './PointOfInterestFeature'; 14 | import {env} from './HostEnvironment'; 15 | import Messenger from './Messenger'; 16 | import HostObject from './HostObject'; 17 | 18 | import aws from './awspack'; 19 | import anim from './animpack'; 20 | 21 | export default { 22 | /** 23 | * @see env 24 | */ 25 | env, 26 | /** 27 | * @see Utils 28 | */ 29 | Utils, 30 | /** 31 | * @see MathUtils 32 | */ 33 | MathUtils, 34 | /** 35 | * @see Deferred 36 | */ 37 | Deferred, 38 | /** 39 | * @see three.js/Messenger 40 | */ 41 | Messenger, 42 | /** 43 | * @see three.js/HostObject 44 | */ 45 | HostObject, 46 | /** 47 | * @see core/LipsyncFeature 48 | */ 49 | LipsyncFeature, 50 | /** 51 | * @see GestureFeature 52 | */ 53 | GestureFeature, 54 | /** 55 | * @see three.js/PointOfInterestFeature 56 | */ 57 | PointOfInterestFeature, 58 | /** 59 | * @see DefaultVisemeMap 60 | */ 61 | DefaultVisemeMap, 62 | /** 63 | * @see DefaultGestureWords 64 | */ 65 | DefaultGestureWords, 66 | /** 67 | * @see AxisMap 68 | */ 69 | AxisMap, 70 | /** 71 | * @see module:three/awspack 72 | */ 73 | aws, 74 | /** 75 | * @see module:three/animpack 76 | */ 77 | anim, 78 | }; 79 | -------------------------------------------------------------------------------- /test/assets/Xbot.glb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/test/assets/Xbot.glb -------------------------------------------------------------------------------- /test/assets/audio.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProjectPete/amazon-sumerian-hosts/66a963dff32c22b5984ea15f7cda5e1be953da5f/test/assets/audio.mp3 -------------------------------------------------------------------------------- /test/integration_test/README.md: -------------------------------------------------------------------------------- 1 | # Running Integration/Stress Test 2 | 3 | Each integration test contains an end to end example focusing on a single Host feature like animation, text-to-speech etc. 4 | 5 | ## Walkthrough 6 | 7 | 1. Replace any `````` with your own AWS IdentityPoolId or create your own AWS credential if you're testing texttospeech feature. Follow tutorial [here](https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/getting-started-browser.html) if you need to set up your own cognito identity pool. 8 | 2. Run ```npm run start``` to launch the web server and navigate to the corresponding test page. -------------------------------------------------------------------------------- /test/integration_test/core/core.Deferred.html: -------------------------------------------------------------------------------- 1 | 5 | 6 | 7 | 8 | 9 | Core Host Test 10 | 11 | 12 | 13 | 14 | 60 | 61 | 62 | -------------------------------------------------------------------------------- /test/unit/BabylonHarness.js: -------------------------------------------------------------------------------- 1 | // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | // SPDX-License-Identifier: MIT-0 3 | export default function describeBabylonHost(description, fn) { 4 | describe(`Babylon Host - ${description}`, () => { 5 | // Canvas 6 | const canvas = document.createElement('canvas'); 7 | document.body.appendChild(canvas); 8 | canvas.id = 'renderCanvas'; 9 | canvas.style.width = '100%'; 10 | canvas.style.height = '100%'; 11 | canvas.style['touch-action'] = 'none'; 12 | 13 | const engine = new BABYLON.Engine(canvas, true); 14 | const scene = new BABYLON.Scene(engine); 15 | 16 | const owner = BABYLON.MeshBuilder.CreateSphere( 17 | 'sphere', 18 | {diameter: 2, segments: 4}, 19 | scene 20 | ); 21 | 22 | fn({scene, owner}, 'babylon'); 23 | }); 24 | } 25 | -------------------------------------------------------------------------------- /test/unit/CoreHarness.js: -------------------------------------------------------------------------------- 1 | // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | // SPDX-License-Identifier: MIT-0 3 | export default function describeThreeHost(description, fn) { 4 | describe(`Core Host - ${description}`, () => { 5 | const owner = {id: '1234'}; 6 | 7 | fn({owner}, 'core'); 8 | }); 9 | } 10 | -------------------------------------------------------------------------------- /test/unit/EnvironmentHarness.js: -------------------------------------------------------------------------------- 1 | // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | // SPDX-License-Identifier: MIT-0 3 | import {env} from 'app/HostEnvironment'; 4 | import describeCoreHost from './CoreHarness'; 5 | import describeThreeHost from './ThreeHarness'; 6 | import describeBabylonHost from './BabylonHarness'; 7 | 8 | export default function describeHostEnvironment(description, fn) { 9 | switch (env) { 10 | case 'babylon': 11 | describeBabylonHost(description, fn); 12 | break; 13 | 14 | case 'three': 15 | describeThreeHost(description, fn); 16 | break; 17 | 18 | case 'core': 19 | default: 20 | describeCoreHost(description, fn); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /test/unit/ThreeHarness.js: -------------------------------------------------------------------------------- 1 | // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | // SPDX-License-Identifier: MIT-0 3 | export default function describeThreeHost(description, fn) { 4 | describe(`Three Host - ${description}`, () => { 5 | const scene = new THREE.Scene(); 6 | const owner = new THREE.Object3D(); 7 | scene.add(owner); 8 | 9 | fn({scene, owner}, 'three'); 10 | }); 11 | } 12 | -------------------------------------------------------------------------------- /test/unit/awspack/SSMLSpeechmarkInterface.spec.js: -------------------------------------------------------------------------------- 1 | // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | // SPDX-License-Identifier: MIT-0 3 | /* eslint-disable no-sequences */ 4 | /* eslint-disable no-constant-condition */ 5 | /* eslint-disable jasmine/no-spec-dupes */ 6 | /* eslint-disable jasmine/prefer-toHaveBeenCalledWith */ 7 | /* eslint-disable no-underscore-dangle */ 8 | import SSMLSpeechmarkInterface from 'core/awspack/SSMLSpeechmarkInterface'; 9 | import AbstractHostFeature from 'core/AbstractHostFeature'; 10 | import HostObject from 'app/HostObject'; 11 | import describeEnvironment from '../EnvironmentHarness'; 12 | 13 | describeEnvironment('SSMLSpeechmarkInterface', () => { 14 | let ssmlMarkFeature; 15 | let host; 16 | 17 | beforeEach(() => { 18 | host = new HostObject(); 19 | const HostFeature = AbstractHostFeature.mix( 20 | SSMLSpeechmarkInterface.Mixin 21 | ); 22 | host.addFeature(HostFeature); 23 | ssmlMarkFeature = host._features.SSMLSpeechMarkMixin; 24 | ssmlMarkFeature.callback = jasmine.createSpy(); 25 | }); 26 | 27 | describe('_onSsml', () => { 28 | 29 | it('should call the callback function if all the criteria meet', () => { 30 | const speechMark = {type: 'ssml', value: '{"feature":"SSMLSpeechMarkMixin","method":"callback","args":["name", 1]}'}; 31 | ssmlMarkFeature._onSsml({mark: speechMark}); 32 | 33 | expect(ssmlMarkFeature.callback).toHaveBeenCalledWith('name',1); 34 | }); 35 | 36 | it('should not call the callback function if feature doesnt exist', () => { 37 | const speechMark = {type: 'ssml', value: '{"feature":"AnimationFeature","method":"callback","args":["name", 1]}'}; 38 | ssmlMarkFeature._onSsml({mark: speechMark}); 39 | 40 | expect(ssmlMarkFeature.callback).not.toHaveBeenCalled(); 41 | }); 42 | 43 | it('should not call the callback function if function doesnt exist in feature', () => { 44 | spyOn(console, 'warn'); 45 | const speechMark = {type: 'ssml', value: '{"feature":"SSMLSpeechMarkMixin","method":"notExist","args":["name", 1]}'}; 46 | ssmlMarkFeature._onSsml({mark: speechMark}); 47 | 48 | expect(ssmlMarkFeature.callback).not.toHaveBeenCalled(); 49 | expect(console.warn).toHaveBeenCalled(); 50 | }); 51 | }); 52 | }); 53 | -------------------------------------------------------------------------------- /webpack.dev.js: -------------------------------------------------------------------------------- 1 | // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | // SPDX-License-Identifier: MIT-0 3 | const merge = require('webpack-merge'); 4 | const path = require('path'); 5 | const common = require('./webpack.common.js'); 6 | 7 | module.exports = merge(common[0], { 8 | mode: 'development', 9 | devtool: 'eval-source-map', 10 | devServer: { 11 | open: 'Google Chrome', 12 | liveReload: true, 13 | contentBase: [path.join(__dirname)], 14 | watchContentBase: true, 15 | hot: false, 16 | }, 17 | }); 18 | -------------------------------------------------------------------------------- /webpack.test.js: -------------------------------------------------------------------------------- 1 | // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | // SPDX-License-Identifier: MIT-0 3 | const webpack = require('webpack'); 4 | const path = require('path'); 5 | 6 | const corePath = path.resolve(__dirname, './src/core/'); 7 | const threePath = path.resolve(__dirname, './src/three.js/'); 8 | const babylonPath = path.resolve(__dirname, './src/Babylon.js/'); 9 | 10 | const baseConfig = { 11 | mode: 'none', 12 | module: { 13 | rules: [ 14 | { 15 | test: /\.js$/, 16 | loader: 'babel-loader', 17 | exclude: /(node_modules|bower_components)/, 18 | query: { 19 | presets: ['@babel/preset-env'], 20 | }, 21 | }, 22 | ], 23 | }, 24 | devtool: 'eval-source-map', 25 | 26 | resolve: { 27 | alias: { 28 | core: corePath, 29 | }, 30 | }, 31 | }; 32 | 33 | const coreConfig = { 34 | ...baseConfig, 35 | resolve: { 36 | alias: { 37 | ...baseConfig.resolve.alias, 38 | app: corePath, 39 | }, 40 | }, 41 | }; 42 | 43 | const threeConfig = { 44 | ...baseConfig, 45 | resolve: { 46 | alias: { 47 | ...baseConfig.resolve.alias, 48 | app: threePath, 49 | }, 50 | }, 51 | plugins: [ 52 | new webpack.ProvidePlugin({ 53 | THREE: 'three', 54 | }), 55 | ], 56 | }; 57 | 58 | const babylonConfig = { 59 | ...baseConfig, 60 | resolve: { 61 | alias: { 62 | ...baseConfig.resolve.alias, 63 | app: babylonPath, 64 | }, 65 | }, 66 | plugins: [ 67 | new webpack.ProvidePlugin({ 68 | BABYLON: 'babylonjs', 69 | }), 70 | ], 71 | }; 72 | 73 | module.exports = [coreConfig, threeConfig, babylonConfig]; 74 | --------------------------------------------------------------------------------