diff --git a/CMakeLists.txt b/CMakeLists.txt index f111f482ae..6abd8735f6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -41,8 +41,15 @@ endif() file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/_env/EXTERNAL_BUILD_ASSETS.txt" "${EXTERNAL_BUILD_ASSETS}") MESSAGE(STATUS "EXTERNAL_BUILD_ASSETS: ${EXTERNAL_BUILD_ASSETS}") +# read USE_GLES enviroment variable and sets it as GLES option +# TODO still gets overwritten by "use GLES on linux aarch64" set(GLES_OPTION "$ENV{USE_GLES}") +# use GLES on linux aarch64 +if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64") + set(GLES_OPTION ON) +endif() + # Will affect VCPKG dependencies file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/_env/USE_GLES.txt" "${GLES_OPTION}") MESSAGE(STATUS "GLES_OPTION: ${GLES_OPTION}") @@ -187,7 +194,7 @@ else () set(PLATFORM_QT_COMPONENTS WebEngine Xml) endif () -if (USE_GLES AND (NOT ANDROID)) +if (USE_GLES AND (NOT ANDROID AND NOT UNIX)) set(DISABLE_QML_OPTION ON) endif() diff --git a/cmake/externals/steamworks/CMakeLists.txt b/cmake/externals/steamworks/CMakeLists.txt index 1ec72d7d28..f418b82ab5 100644 --- a/cmake/externals/steamworks/CMakeLists.txt +++ b/cmake/externals/steamworks/CMakeLists.txt @@ -54,7 +54,7 @@ elseif(APPLE) LOG 1 ) -elseif(NOT ANDROID) +elseif(NOT ANDROID AND NOT CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64") # FIXME need to account for different architectures set(${EXTERNAL_NAME_UPPER}_LIBRARY_RELEASE ${SOURCE_DIR}/redistributable_bin/linux64/libsteam_api.so CACHE STRING INTERNAL) diff --git a/cmake/macros/SetupHifiLibrary.cmake b/cmake/macros/SetupHifiLibrary.cmake index c99ba9734e..5c6eb0a4c6 100644 --- a/cmake/macros/SetupHifiLibrary.cmake +++ b/cmake/macros/SetupHifiLibrary.cmake @@ -30,7 +30,7 @@ macro(SETUP_HIFI_LIBRARY) foreach(SRC ${AVX2_SRCS}) if (WIN32) set_source_files_properties(${SRC} PROPERTIES COMPILE_FLAGS /arch:AVX2) - elseif (APPLE OR (UNIX AND NOT ANDROID)) + elseif (APPLE OR (UNIX AND NOT ANDROID AND NOT CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64")) set_source_files_properties(${SRC} PROPERTIES COMPILE_FLAGS "-mavx2 -mfma") endif() endforeach() diff --git a/cmake/ports/hifi-client-deps/CONTROL b/cmake/ports/hifi-client-deps/CONTROL index 4a8a2bc44e..3a8c4693b3 100644 --- a/cmake/ports/hifi-client-deps/CONTROL +++ b/cmake/ports/hifi-client-deps/CONTROL @@ -1,4 +1,4 @@ Source: hifi-client-deps Version: 0.1 Description: Collected dependencies for High Fidelity applications -Build-Depends: hifi-deps, aristo (windows), glslang, liblo (windows), nlohmann-json, openvr (linux|windows), quazip (!android), sdl2 (!android), spirv-cross (!android), spirv-tools (!android), sranipal (windows), vulkanmemoryallocator +Build-Depends: hifi-deps, aristo (windows), glslang, liblo (windows), nlohmann-json, openvr ((linux&!arm)|windows), quazip (!android), sdl2 (!android), spirv-cross (!android), spirv-tools (!android), sranipal (windows), vulkanmemoryallocator diff --git a/cmake/ports/nvtt/0001-Build-on-aarch64.patch b/cmake/ports/nvtt/0001-Build-on-aarch64.patch new file mode 100644 index 0000000000..4f737f78c4 --- /dev/null +++ b/cmake/ports/nvtt/0001-Build-on-aarch64.patch @@ -0,0 +1,37 @@ +commit 8909ba06ea1893a6e028836fbade28fd115ee1cc +Author: Julian Groß +Date: Wed Feb 17 04:51:49 2021 +0100 + + Enable building on aarch64 according to https://github.com/castano/nvidia-texture-tools/pull/309 and https://github.com/castano/nvidia-texture-tools/pull/322 + +diff --git a/src/nvcore/Debug.cpp b/src/nvcore/Debug.cpp +index 9ab4525..e335f97 100644 +--- a/src/nvcore/Debug.cpp ++++ b/src/nvcore/Debug.cpp +@@ -1008,6 +1008,13 @@ void debug::dumpInfo() + #endif + } + ++static va_list getEmptyVAList(va_list list, ...) ++{ ++ va_start(list, list); ++ va_end(list); ++ return list; ++} ++ + /// Dump callstack using the specified handler. + void debug::dumpCallstack(MessageHandler *messageHandler, int callstackLevelsToSkip /*= 0*/) + { +@@ -1020,8 +1027,11 @@ void debug::dumpCallstack(MessageHandler *messageHandler, int callstackLevelsToS + Array lines; + writeStackTrace(trace, size, callstackLevelsToSkip + 1, lines); // + 1 to skip the call to dumpCallstack + ++ va_list empty; ++ empty = getEmptyVAList(empty); ++ + for (uint i = 0; i < lines.count(); i++) { +- messageHandler->log(lines[i], NULL); ++ messageHandler->log(lines[i], empty); + delete lines[i]; + } + } diff --git a/cmake/ports/nvtt/0002-Hack-remove-include-sysctl.h-to-build-on-linux-a.patch b/cmake/ports/nvtt/0002-Hack-remove-include-sysctl.h-to-build-on-linux-a.patch new file mode 100644 index 0000000000..78e92d38b8 --- /dev/null +++ b/cmake/ports/nvtt/0002-Hack-remove-include-sysctl.h-to-build-on-linux-a.patch @@ -0,0 +1,25 @@ +From 84dc6af45b1176a2b82d089239665cb3dc1584de Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Julian=20Gro=C3=9F?= +Date: Wed, 23 Dec 2020 07:33:39 +0100 +Subject: [PATCH] Hack: remove #include to build on + linux-aarch64 + +--- + src/nvthread/nvthread.cpp | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/src/nvthread/nvthread.cpp b/src/nvthread/nvthread.cpp +index 2b3abe6..cec9f4f 100644 +--- a/src/nvthread/nvthread.cpp ++++ b/src/nvthread/nvthread.cpp +@@ -11,7 +11,6 @@ + #include + #elif NV_OS_UNIX + #include +-#include + #include + #elif NV_OS_DARWIN + #import +-- +2.17.1 + diff --git a/cmake/ports/nvtt/portfile.cmake b/cmake/ports/nvtt/portfile.cmake index b21bb5609c..9088b62046 100644 --- a/cmake/ports/nvtt/portfile.cmake +++ b/cmake/ports/nvtt/portfile.cmake @@ -15,6 +15,13 @@ vcpkg_from_github( HEAD_REF master ) +if(VCPKG_TARGET_ARCHITECTURE STREQUAL arm64) + vcpkg_apply_patches( + SOURCE_PATH ${SOURCE_PATH} + PATCHES "${CMAKE_CURRENT_LIST_DIR}/0001-Build-on-aarch64.patch" "${CMAKE_CURRENT_LIST_DIR}/0002-Hack-remove-include-sysctl.h-to-build-on-linux-a.patch" + ) +endif() + vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} OPTIONS diff --git a/hifi_qt.py b/hifi_qt.py index fff38d3049..7ee8a787b5 100644 --- a/hifi_qt.py +++ b/hifi_qt.py @@ -53,6 +53,7 @@ endif() # OS dependent information system = platform.system() + cpu_architecture = platform.machine() if 'Windows' == system: self.qtUrl = self.assets_url + '/dependencies/vcpkg/qt5-install-5.15.2-windows.tar.gz' @@ -62,23 +63,61 @@ endif() import distro dist = distro.linux_distribution() - if distro.id() == 'ubuntu': - u_major = int( distro.major_version() ) - u_minor = int( distro.minor_version() ) + if 'x86_64' == cpu_architecture: + if distro.id() == 'ubuntu': + u_major = int( distro.major_version() ) + u_minor = int( distro.minor_version() ) - if u_major == 18: - self.qtUrl = self.assets_url + '/dependencies/vcpkg/qt5-install-5.15.2-ubuntu-18.04-amd64.tar.xz' - elif u_major > 19: - print("We don't support " + distro.name(pretty=True) + " yet. Perhaps consider helping us out?") - raise Exception('LINUX DISTRO IS NOT SUPPORTED YET!!!') + if u_major == 18: + self.qtUrl = self.assets_url + '/dependencies/vcpkg/qt5-install-5.15.2-ubuntu-18.04-amd64.tar.xz' + elif u_major > 19: + print("We don't support " + distro.name(pretty=True) + " yet. Perhaps consider helping us out?") + raise Exception('LINUX DISTRO IS NOT SUPPORTED YET!!!') + else: + print("Sorry, " + distro.name(pretty=True) + " is old and won't be officially supported. Please consider upgrading."); + raise Exception('UNKNOWN LINUX DISTRO VERSION!!!') else: - print("Sorry, " + distro.name(pretty=True) + " is old and won't be officially supported. Please consider upgrading."); - raise Exception('UNKNOWN LINUX DISTRO VERSION!!!') + print("Sorry, " + distro.name(pretty=True) + " is not supported on x86_64. Please consider helping us out.") + print("It's also possible to build Qt for your distribution, please see the documentation at:") + print("https://github.com/vircadia/vircadia/tree/master/tools/qt-builder") + raise Exception('UNKNOWN LINUX VERSION!!!') + elif 'aarch64' == cpu_architecture: + if distro.id() == 'ubuntu': + u_major = int( distro.major_version() ) + u_minor = int( distro.minor_version() ) + + if u_major == 18: + self.qtUrl = 'http://motofckr9k.ddns.net/vircadia_packages/qt5-install-5.15.2-ubuntu-18.04-aarch64_test.tar.xz' + elif u_major > 19: + print("We don't support " + distro.name(pretty=True) + " on aarch64 yet. Perhaps consider helping us out?") + raise Exception('LINUX DISTRO IS NOT SUPPORTED YET!!!') + else: + print("Sorry, " + distro.name(pretty=True) + " is old and won't be officially supported. Please consider upgrading."); + raise Exception('UNKNOWN LINUX DISTRO VERSION!!!') + + elif distro.id() == 'debian': + u_major = int( distro.major_version() ) + u_minor = int( distro.minor_version() ) + + if u_major == 10: + #self.qtUrl = self.assets_url + '/dependencies/vcpkg/qt5-install-5.12.3-ubuntu-16.04-with-symbols.tar.gz' + print("We don't support " + distro.name(pretty=True) + " on aarch64 yet. Perhaps consider helping us out?") + raise Exception('LINUX DISTRO IS NOT SUPPORTED YET!!!') + elif u_major > 10: + print("We don't support " + distro.name(pretty=True) + " on aarch64 yet. Perhaps consider helping us out?") + raise Exception('LINUX DISTRO IS NOT SUPPORTED YET!!!') + else: + print("Sorry, " + distro.name(pretty=True) + " is old and won't be officially supported. Please consider upgrading."); + raise Exception('UNKNOWN LINUX DISTRO VERSION!!!') + + else: + print("Sorry, " + distro.name(pretty=True) + " is not supported on aarch64. Please consider helping us out.") + print("It's also possible to build Qt for your distribution, please see the documentation at:") + print("https://github.com/vircadia/vircadia/tree/master/tools/qt-builder") + raise Exception('UNKNOWN LINUX VERSION!!!') else: - print("Sorry, " + distro.name(pretty=True) + " is not supported. Please consider helping us out.") - print("It's also possible to build Qt for your distribution, please see the documentation at:") - print("https://github.com/vircadia/vircadia/tree/master/tools/qt-builder") - raise Exception('UNKNOWN LINUX VERSION!!!') + raise Exception('UNKNOWN CPU ARCHITECTURE!!!') + else: print("System : " + platform.system()) print("Architecture: " + platform.architecture()) diff --git a/hifi_vcpkg.py b/hifi_vcpkg.py index ebdfb6c972..fb77fd2507 100644 --- a/hifi_vcpkg.py +++ b/hifi_vcpkg.py @@ -44,13 +44,14 @@ endif() self.assets_url = self.readVar('EXTERNAL_BUILD_ASSETS') # The noClean flag indicates we're doing weird dependency maintenance stuff - # i.e. we've got an explicit checkout of vcpkg and we don't want the script to - # do stuff it might otherwise do. It typically indicates that we're using our + # i.e. we've got an explicit checkout of vcpkg and we don't want the script to + # do stuff it might otherwise do. It typically indicates that we're using our # own git checkout of vcpkg and manually managing it self.noClean = False # OS dependent information system = platform.system() + machine = platform.machine() if 'HIFI_VCPKG_PATH' in os.environ: self.path = os.environ['HIFI_VCPKG_PATH'] @@ -105,6 +106,12 @@ endif() self.bootstrapEnv['CXXFLAGS'] = '-D_CTERMID_H_' if usePrebuilt: self.prebuiltArchive = self.assets_url + "/dependencies/vcpkg/builds/vcpkg-osx.tgz%3FversionId=6JrIMTdvpBF3MAsjA92BMkO79Psjzs6Z" + elif 'Linux' == system and 'aarch64' == machine: + self.exe = os.path.join(self.path, 'vcpkg') + self.bootstrapCmds = [ os.path.join(self.path, 'bootstrap-vcpkg.sh'), '-disableMetrics' ] + self.vcpkgUrl = 'http://motofckr9k.ddns.net/vircadia_packages/vcpkg-2020.11-1_arm64.tar.xz' + self.vcpkgHash = 'f39fa1c34d2ba820954b8ce4acc05e3d0ce5fa5efe5440516ba910ff222c85c658ba4bbfc92b3fa6cbb594f99be115cda69ebe44ed38d4d3988058fb1faefbb3' + self.hostTriplet = 'arm64-linux' else: self.exe = os.path.join(self.path, 'vcpkg') self.bootstrapCmds = [ os.path.join(self.path, 'bootstrap-vcpkg.sh'), '-disableMetrics' ] diff --git a/interface/resources/serverless/Models/Planter.glb b/interface/resources/serverless/Models/Planter.glb new file mode 100644 index 0000000000..7e575d0ddf Binary files /dev/null and b/interface/resources/serverless/Models/Planter.glb differ diff --git a/interface/resources/serverless/Models/Stands.fbx b/interface/resources/serverless/Models/Stands.fbx new file mode 100644 index 0000000000..ac5b2cafda Binary files /dev/null and b/interface/resources/serverless/Models/Stands.fbx differ diff --git a/interface/resources/serverless/Models/Trees1.glb b/interface/resources/serverless/Models/Trees1.glb new file mode 100644 index 0000000000..23c66c6c05 Binary files /dev/null and b/interface/resources/serverless/Models/Trees1.glb differ diff --git a/interface/resources/serverless/Models/VircadiaLogo.fbx b/interface/resources/serverless/Models/VircadiaLogo.fbx new file mode 100644 index 0000000000..78de8d27cd Binary files /dev/null and b/interface/resources/serverless/Models/VircadiaLogo.fbx differ diff --git a/interface/resources/serverless/Models/bowl2.fbx b/interface/resources/serverless/Models/bowl2.fbx new file mode 100644 index 0000000000..0f3d0048b2 Binary files /dev/null and b/interface/resources/serverless/Models/bowl2.fbx differ diff --git a/interface/resources/serverless/Models/dome2.glb b/interface/resources/serverless/Models/dome2.glb new file mode 100644 index 0000000000..0069f88f54 Binary files /dev/null and b/interface/resources/serverless/Models/dome2.glb differ diff --git a/interface/resources/serverless/Models/dome2_glass.glb b/interface/resources/serverless/Models/dome2_glass.glb new file mode 100644 index 0000000000..757bbeb9d5 Binary files /dev/null and b/interface/resources/serverless/Models/dome2_glass.glb differ diff --git a/interface/resources/serverless/Models/mirror_without_backface.baked.fbx b/interface/resources/serverless/Models/mirror_without_backface.baked.fbx new file mode 100644 index 0000000000..83f9de79b9 Binary files /dev/null and b/interface/resources/serverless/Models/mirror_without_backface.baked.fbx differ diff --git a/interface/resources/serverless/Models/seagull-ANI.fbx b/interface/resources/serverless/Models/seagull-ANI.fbx new file mode 100644 index 0000000000..9bb180f3c4 Binary files /dev/null and b/interface/resources/serverless/Models/seagull-ANI.fbx differ diff --git a/interface/resources/serverless/Models/temple5.glb b/interface/resources/serverless/Models/temple5.glb new file mode 100644 index 0000000000..08a10975ac Binary files /dev/null and b/interface/resources/serverless/Models/temple5.glb differ diff --git a/interface/resources/serverless/Scripts/materialSequencer.js b/interface/resources/serverless/Scripts/materialSequencer.js new file mode 100644 index 0000000000..998a8759e6 --- /dev/null +++ b/interface/resources/serverless/Scripts/materialSequencer.js @@ -0,0 +1,59 @@ +// Distributed under the Apache License, Version 2.0. +// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html +// 2020 Silverfish. +//material sequencer, put on a material entity (server script) to make it iterate through discrete steps of X UV offset. + +/*UserData: +{ + "verticalOffset": 0, + "segments": 16, + "updateInterval": 250 +} +*/ + +(function() { + var DEFAULT_VERTICAL_OFFSET = 0.0; + var DEFAULT_HORIZONTAL_SPEED = 1; + var DEFAULT_UPDATE_INTERVAL = 1000; + var DEFAULT_SEGMENTS = 16; + + var self = this; + var _entityID; + this.preload = function(entityID) { + _entityID = entityID; + var verticalOffset = DEFAULT_VERTICAL_OFFSET; + var updateInterval = DEFAULT_UPDATE_INTERVAL; + var moveDistance = 1 / DEFAULT_SEGMENTS; + var verticalOffset = DEFAULT_VERTICAL_OFFSET; + var oldPosition = 0; + var currentPosition = 0; + var userData = JSON.parse(Entities.getEntityProperties(_entityID, ["userData"]).userData); + if (userData !== undefined) { + if (userData.segments !== undefined) { + moveDistance = 1 / userData.segments; + } + if (userData.verticalOffset !== undefined) { + verticalOffset = userData.verticalOffset; + } + if (userData.updateInterval !== undefined) { + updateInterval = userData.updateInterval; + } + } + + self.intervalID = Script.setInterval(function() { + if(currentPosition >= 1){ + currentPosition = 0; + oldPosition = 0; + } + + Entities.editEntity(_entityID, { materialMappingPos: { x: currentPosition, y: verticalOffset}}); + // print("current Pos: " + currentPosition); + currentPosition = oldPosition + moveDistance; + oldPosition = currentPosition; + }, updateInterval); + }; + + this.unload = function() { + Script.clearInterval(self.intervalID); + } +}); \ No newline at end of file diff --git a/interface/resources/serverless/Scripts/mirrorClient.js b/interface/resources/serverless/Scripts/mirrorClient.js new file mode 100644 index 0000000000..9b917668cd --- /dev/null +++ b/interface/resources/serverless/Scripts/mirrorClient.js @@ -0,0 +1,182 @@ +// +// mirrorClient.js +// +// Created by Patrick Manalich +// Edited by Rebecca Stankus on 8/30/17. +// Edited by David Back on 11/17/17. +// Edited by Anna Brewer on 7/12/19. +// Copyright 2017 High Fidelity, Inc. +// +// Distributed under the Apache License, Version 2.0. +// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html +// +// Attach `mirrorClient.js` to a box entity whose z dimension is very small, +// and whose x and y dimensions are up to you. See comments in `mirrorReflection.js` +// for more information about the mirror on/off zone. + +"use strict"; + +(function () { // BEGIN LOCAL SCOPE + + // VARIABLES + /* globals utils, Render */ + var _this = this; + var MAX_MIRROR_RESOLUTION_SIDE_PX = 960; // The max pixel resolution of the long side of the mirror + var ZERO_ROT = { w: 1, x: 0, y: 0, z: 0 }; // Constant quaternion for a rotation of 0 + var FAR_CLIP_DISTANCE = 16; // The far clip distance for the spectator camera when the mirror is on + var mirrorLocalEntityID = false; // The entity ID of the local entity that displays the mirror reflection + var mirrorLocalEntityRunning; // True if mirror local entity is reflecting, false otherwise + var mirrorLocalEntityOffset = 0.01; // The distance between the center of the mirror and the mirror local entity + var spectatorCameraConfig = Render.getConfig("SecondaryCamera"); // Render configuration for the spectator camera + var lastDimensions = { x: 0, y: 0 }; // The previous dimensions of the mirror + var previousFarClipDistance; // Store the specator camera's previous far clip distance that we override for the mirror + + // LOCAL FUNCTIONS + function isPositionInsideBox(position, boxProperties) { + var localPosition = Vec3.multiplyQbyV(Quat.inverse(boxProperties.rotation), + Vec3.subtract(MyAvatar.position, boxProperties.position)); + var halfDimensions = Vec3.multiply(boxProperties.dimensions, 0.5); + return -halfDimensions.x <= localPosition.x && + halfDimensions.x >= localPosition.x && + -halfDimensions.y <= localPosition.y && + halfDimensions.y >= localPosition.y && + -halfDimensions.z <= localPosition.z && + halfDimensions.z >= localPosition.z; + } + + // When x or y dimensions of the mirror change - reset the resolution of the + // spectator camera and edit the mirror local entity to adjust for the new dimensions + function updateMirrorDimensions(forceUpdate) { + + if (!mirrorLocalEntityID) { + return; + } + + if (mirrorLocalEntityRunning) { + var newDimensions = Entities.getEntityProperties(_this.entityID, 'dimensions').dimensions; + + if (forceUpdate === true || (newDimensions.x != lastDimensions.x || newDimensions.y != lastDimensions.y)) { + var mirrorResolution = _this.calculateMirrorResolution(newDimensions); + spectatorCameraConfig.resetSizeSpectatorCamera(mirrorResolution.x, mirrorResolution.y); + Entities.editEntity(mirrorLocalEntityID, { + dimensions: { + x: (Math.max(newDimensions.x, newDimensions.y)), + y: (Math.max(newDimensions.x, newDimensions.y)), + z: 0 + } + }); + } + lastDimensions = newDimensions; + } + } + + // Takes in an mirror scalar number which is used for the index of "halfDimSigns" that is needed to adjust the mirror + // local entity's position. Deletes and re-adds the mirror local entity so the url and position are updated. + function createMirrorLocalEntity() { + + if (mirrorLocalEntityID) { + Entities.deleteEntity(mirrorLocalEntityID); + mirrorLocalEntityID = false; + } + + if (mirrorLocalEntityRunning) { + mirrorLocalEntityID = Entities.addEntity({ + type: "Image", + name: "mirrorLocalEntity", + imageURL: "resource://spectatorCameraFrame", + emissive: true, + parentID: _this.entityID, + alpha: 1, + localPosition: { + x: 0, + y: 0, + z: mirrorLocalEntityOffset + }, + localRotation: Quat.fromPitchYawRollDegrees(0, 0, 180), + isVisibleInSecondaryCamera: false + }, "local"); + + updateMirrorDimensions(true); + } + + } + + _this.calculateMirrorResolution = function(entityDimensions) { + var mirrorResolutionX, mirrorResolutionY; + if (entityDimensions.x > entityDimensions.y) { + mirrorResolutionX = MAX_MIRROR_RESOLUTION_SIDE_PX; + mirrorResolutionY = Math.round(mirrorResolutionX * entityDimensions.y / entityDimensions.x); + } else { + mirrorResolutionY = MAX_MIRROR_RESOLUTION_SIDE_PX; + mirrorResolutionX = Math.round(mirrorResolutionY * entityDimensions.x / entityDimensions.y); + } + + var resolution = { + "x": mirrorResolutionX, + "y": mirrorResolutionY + }; + + return resolution; + }; + + // Sets up spectator camera to render the mirror, calls 'createMirrorLocalEntity' once to set up + // mirror local entity, then connects 'updateMirrorDimensions' to update dimension changes + _this.mirrorLocalEntityOn = function(onPreload) { + if (!mirrorLocalEntityRunning) { + if (!spectatorCameraConfig.attachedEntityId) { + mirrorLocalEntityRunning = true; + spectatorCameraConfig.mirrorProjection = true; + spectatorCameraConfig.attachedEntityId = _this.entityID; + previousFarClipDistance = spectatorCameraConfig.farClipPlaneDistance; + spectatorCameraConfig.farClipPlaneDistance = FAR_CLIP_DISTANCE; + var entityProperties = Entities.getEntityProperties(_this.entityID, ['dimensions']); + var mirrorEntityDimensions = entityProperties.dimensions; + var initialResolution = _this.calculateMirrorResolution(mirrorEntityDimensions); + spectatorCameraConfig.resetSizeSpectatorCamera(initialResolution.x, initialResolution.y); + spectatorCameraConfig.enableSecondaryCameraRenderConfigs(true); + createMirrorLocalEntity(); + Script.update.connect(updateMirrorDimensions); + } else { + print("Cannot turn on mirror if spectator camera is already in use"); + } + } + }; + + // Resets spectator camera, deletes the mirror local entity, and disconnects 'updateMirrorDimensions' + _this.mirrorLocalEntityOff = function() { + if (mirrorLocalEntityRunning) { + spectatorCameraConfig.enableSecondaryCameraRenderConfigs(false); + spectatorCameraConfig.mirrorProjection = false; + spectatorCameraConfig.attachedEntityId = null; + spectatorCameraConfig.farClipPlaneDistance = previousFarClipDistance; + if (mirrorLocalEntityID) { + Entities.deleteEntity(mirrorLocalEntityID); + mirrorLocalEntityID = false; + } + Script.update.disconnect(updateMirrorDimensions); + mirrorLocalEntityRunning = false; + } + }; + + // ENTITY FUNCTIONS + _this.preload = function(entityID) { + _this.entityID = entityID; + mirrorlocalEntityRunning = false; + + // If avatar is already inside the mirror zone at the time preload is called then turn on the mirror + var children = Entities.getChildrenIDs(_this.entityID); + var childZero = Entities.getEntityProperties(children[0]); + if (isPositionInsideBox(MyAvatar.position, { + position: childZero.position, + rotation: childZero.rotation, + dimensions: childZero.dimensions + })) { + _this.mirrorLocalEntityOn(true); + } + }; + + // Turn off mirror on unload + _this.unload = function(entityID) { + _this.mirrorLocalEntityOff(); + }; +}); diff --git a/interface/resources/serverless/Scripts/mirrorReflection.js b/interface/resources/serverless/Scripts/mirrorReflection.js new file mode 100644 index 0000000000..11f4f0781d --- /dev/null +++ b/interface/resources/serverless/Scripts/mirrorReflection.js @@ -0,0 +1,32 @@ +// +// mirrorReflection.js +// +// Created by Rebecca Stankus on 8/30/17. +// Copyright 2017 High Fidelity, Inc. +// +// Distributed under the Apache License, Version 2.0. +// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html +// +// Attach `mirrorReflection.js` to a zone entity that is parented to +// the box entity whose Script is `mirrorClient.js`. +// When a user enters this zone, the mirror will turn on. +// When a user leaves this zone, the mirror will turn off. + +(function () { + var mirrorID, reflectionAreaID; + // get id of reflection area and mirror + this.preload = function(entityID) { + reflectionAreaID = entityID; + mirrorID = Entities.getEntityProperties(reflectionAreaID, 'parentID').parentID; + }; + + // when avatar enters reflection area, begin reflecting + this.enterEntity = function(entityID){ + Entities.callEntityMethod(mirrorID, 'mirrorLocalEntityOn'); + }; + + // when avatar leaves reflection area, stop reflecting + this.leaveEntity = function (entityID) { + Entities.callEntityMethod(mirrorID, 'mirrorLocalEntityOff'); + }; +}); diff --git a/interface/resources/serverless/Scripts/portal.js b/interface/resources/serverless/Scripts/portal.js new file mode 100644 index 0000000000..0542e74796 --- /dev/null +++ b/interface/resources/serverless/Scripts/portal.js @@ -0,0 +1,47 @@ +// +// portal.js +// Created by Zach Fox on 2019-05-23 +// Copyright 2019 High Fidelity, Inc. +// +// Distributed under the Apache License, Version 2.0. +// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html + +(function () { + var Portal = function() {}; + + + Portal.prototype = { + enterEntity: function (id) { + var properties = Entities.getEntityProperties(id, ["userData"]); + var userData; + + try { + userData = JSON.parse(properties.userData); + } catch (e) { + console.error("Error parsing userData: ", e); + } + + if (userData) { + if (userData.destination) { + var destination = userData.destination; + + if (userData.destination.indexOf("bookmark:") > -1) { + var bookmarkName = userData.destination.replace("bookmark:", ""); + destination = LocationBookmarks.getAddress(bookmarkName); + } + + Window.location = destination; + } else { + console.log("Please specify `destination` inside this entity's `userData`!"); + return; + } + } else { + console.log("Please specify this entity's `userData`! See README.md for instructions."); + return; + } + } + }; + + + return new Portal(); +}); diff --git a/interface/resources/serverless/Scripts/soundEmitter.js b/interface/resources/serverless/Scripts/soundEmitter.js new file mode 100644 index 0000000000..504bd418f9 --- /dev/null +++ b/interface/resources/serverless/Scripts/soundEmitter.js @@ -0,0 +1,202 @@ +/* eslint-disable no-magic-numbers */ +// +// soundEmitter.js +// +// Created by Zach Fox on 2019-07-05 +// Copyright High Fidelity 2019 +// +// Licensed under the Apache 2.0 License +// See accompanying license file or http://apache.org/ +// + +(function() { + var that; + var SOUND_EMITTER_UPDATE_INTERVAL_MS = 500; + var DEFAULT_AUDIO_INJECTOR_OPTIONS = { + "position": { + "x": 0, + "y": 0, + "z": 0 + }, + "volume": 0.5, + "loop": false, + "localOnly": false + }; + + + var SoundEmitter = function() { + that = this; + that.entityID = false; + that.soundObjectURL = false; + that.soundObject = false; + that.audioInjector = false; + that.audioInjectorOptions = DEFAULT_AUDIO_INJECTOR_OPTIONS; + that.signalsConnected = {}; + that.soundEmitterUpdateInterval = false; + }; + + + SoundEmitter.prototype = { + preload: function(entityID) { + that.entityID = entityID; + + var properties = Entities.getEntityProperties(that.entityID, ["userData"]); + + var userData; + + try { + userData = JSON.parse(properties.userData); + } catch (e) { + console.error("Error parsing userData: ", e); + } + + if (userData) { + if (userData.soundURL && userData.soundURL.length > 0) { + that.handleNewSoundURL(userData.soundURL); + } else { + console.log("Please specify this entity's `userData`! See README.md for instructions."); + return; + } + } else { + console.log("Please specify this entity's `userData`! See README.md for instructions."); + return; + } + }, + + + clearCurrentSoundData: function() { + that.soundObjectURL = false; + + if (that.signalsConnected["soundObjectReady"]) { + that.soundObject.ready.disconnect(that.updateSoundEmitter); + that.signalsConnected["soundObjectReady"] = false; + } + + that.soundObject = false; + + if (that.audioInjector) { + if (that.audioInjector.playing) { + that.audioInjector.stop(); + } + + that.audioInjector = false; + } + + that.audioInjectorOptions = DEFAULT_AUDIO_INJECTOR_OPTIONS; + + if (that.soundEmitterUpdateInterval) { + Script.clearInterval(that.soundEmitterUpdateInterval); + that.soundEmitterUpdateInterval = false; + } + }, + + + unload: function() { + that.clearCurrentSoundData(); + }, + + + handleNewSoundURL: function(newSoundURL) { + that.clearCurrentSoundData(); + + that.soundObjectURL = newSoundURL; + that.soundObject = SoundCache.getSound(that.soundObjectURL); + + if (that.soundObject.downloaded) { + that.updateSoundEmitter(); + } else { + that.soundObject.ready.connect(that.updateSoundEmitter); + that.signalsConnected["soundObjectReady"] = true; + } + }, + + + positionChanged: function(newPos) { + return (newPos.x !== that.audioInjectorOptions.position.x || + newPos.y !== that.audioInjectorOptions.position.y || + newPos.z !== that.audioInjectorOptions.position.z); + }, + + + updateSoundEmitter: function() { + var properties = Entities.getEntityProperties(that.entityID, ["userData", "position", "script", "serverScripts"]); + + var userData; + + try { + userData = JSON.parse(properties.userData); + } catch (e) { + console.error("Error parsing userData: ", e); + } + + var optionsChanged = false; + var shouldRestartPlayback = false; + var newPosition = properties.position; + + if (userData) { + if (userData.soundURL && userData.soundURL.length > 0 && userData.soundURL !== that.soundObjectURL) { + console.log("Sound Emitter: User put a new sound URL into `userData`! Resetting..."); + that.handleNewSoundURL(userData.soundURL); + return; + } + + if (typeof(userData.volume) !== "undefined" && !isNaN(userData.volume) && userData.volume !== that.audioInjectorOptions.volume) { + optionsChanged = true; + that.audioInjectorOptions.volume = userData.volume; + } + + if (typeof(userData.shouldLoop) !== "undefined" && userData.shouldLoop !== that.audioInjectorOptions.shouldLoop) { + optionsChanged = true; + + if (!that.audioInjectorOptions.loop && userData.shouldLoop && that.audioInjector && !that.audioInjector.playing) { + shouldRestartPlayback = true; + } + + that.audioInjectorOptions.loop = userData.shouldLoop; + } + + if (typeof(userData.positionOverride) !== "undefined" && !isNaN(userData.positionOverride.x) && + !isNaN(userData.positionOverride.y) && !isNaN(userData.positionOverride.z)) { + newPosition = userData.positionOverride; + } + } else { + console.log("Please specify this entity's `userData`! See README.md for instructions."); + that.clearCurrentSoundData(); + return; + } + + var localOnly = that.audioInjectorOptions.localOnly; + // If this script is attached as a client entity script... + if (properties.script.indexOf("soundEmitter.js") > -1) { + // ... Make sure that the audio injector IS local only. + localOnly = true; + // Else if this script is attached as a client server script... + } else if (properties.serverScripts.indexOf("soundEmitter.js") > -1) { + // ... Make sure that the audio injector IS NOT local only. + localOnly = false; + } + if (localOnly !== that.audioInjectorOptions.localOnly) { + optionsChanged = true; + that.audioInjectorOptions.localOnly = localOnly; + } + + if (that.positionChanged(newPosition)) { + optionsChanged = true; + that.audioInjectorOptions["position"] = newPosition; + } + + if (!that.audioInjector || shouldRestartPlayback) { + that.audioInjector = Audio.playSound(that.soundObject, that.audioInjectorOptions); + } else if (optionsChanged) { + that.audioInjector.setOptions(that.audioInjectorOptions); + } + + if (!that.soundEmitterUpdateInterval) { + that.soundEmitterUpdateInterval = Script.setInterval(that.updateSoundEmitter, SOUND_EMITTER_UPDATE_INTERVAL_MS); + } + } + }; + + + return new SoundEmitter(); +}); diff --git a/interface/resources/serverless/Scripts/wizardLoader.js b/interface/resources/serverless/Scripts/wizardLoader.js new file mode 100644 index 0000000000..8d28b581cc --- /dev/null +++ b/interface/resources/serverless/Scripts/wizardLoader.js @@ -0,0 +1,77 @@ +'use strict'; + +// +// wizardLoader.js +// +// Created by Kalila L. on Feb 19 2021. +// Copyright 2021 Vircadia contributors. +// +// This script is used to load the onboarding wizard at the location of the entity it's on. +// +// Distributed under the Apache License, Version 2.0. +// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html +// + +(function() { + var CONFIG_WIZARD_WEB_URL = 'https://cdn-1.vircadia.com/us-e-1/DomainContent/Tutorial/Apps/configWizard/dist/index.html'; + + var loaderEntityID; + var configWizardEntityID; + + function onWebAppEventReceived(sendingEntityID, event) { + if (sendingEntityID === configWizardEntityID) { + var eventJSON = JSON.parse(event); + + if (eventJSON.command === 'first-run-wizard-ready') { + var objectToSend = { + command: 'script-to-web-initialize', + data: { + performancePreset: Performance.getPerformancePreset(), + refreshRateProfile: Performance.getRefreshRateProfile(), + displayName: MyAvatar.displayName + } + }; + + Entities.emitScriptEvent(configWizardEntityID, JSON.stringify(objectToSend)); + } + + if (eventJSON.command === 'complete-wizard') { + Performance.setPerformancePreset(eventJSON.data.performancePreset); + Performance.setRefreshRateProfile(eventJSON.data.refreshRateProfile); + MyAvatar.displayName = eventJSON.data.displayName; + + Entities.deleteEntity(configWizardEntityID); + Entities.webEventReceived.disconnect(onWebAppEventReceived); + } + } + } + + this.preload = function (entityID) { + loaderEntityID = entityID; + var loaderEntityProps = Entities.getEntityProperties(loaderEntityID, ['position', 'rotation']); + + configWizardEntityID = Entities.addEntity({ + type: 'Web', + sourceUrl: CONFIG_WIZARD_WEB_URL, + maxFPS: 60, + dpi: 20, + useBackground: false, + grab: { + grabbable: false + }, + position: loaderEntityProps.position, + rotation: loaderEntityProps.rotation, + dimensions: { x: 1.4, y: 0.75, z: 0 } + }, 'local'); + + Entities.webEventReceived.connect(onWebAppEventReceived); + } + + this.unload = function () { + if (configWizardEntityID) { + Entities.deleteEntity(configWizardEntityID); + Entities.webEventReceived.disconnect(onWebAppEventReceived); + } + } + +}) diff --git a/interface/resources/serverless/Sounds/468407__onderwish__sci-fi-survival-dreamscape.mp3 b/interface/resources/serverless/Sounds/468407__onderwish__sci-fi-survival-dreamscape.mp3 new file mode 100644 index 0000000000..218cc967b3 Binary files /dev/null and b/interface/resources/serverless/Sounds/468407__onderwish__sci-fi-survival-dreamscape.mp3 differ diff --git a/interface/resources/serverless/Textures/default_particle.png b/interface/resources/serverless/Textures/default_particle.png new file mode 100644 index 0000000000..6c781c824b Binary files /dev/null and b/interface/resources/serverless/Textures/default_particle.png differ diff --git a/interface/resources/serverless/Textures/galaxySkybox.JPG b/interface/resources/serverless/Textures/galaxySkybox.JPG new file mode 100644 index 0000000000..e3ff7a4cf6 Binary files /dev/null and b/interface/resources/serverless/Textures/galaxySkybox.JPG differ diff --git a/interface/resources/serverless/Textures/galaxySkybox.png b/interface/resources/serverless/Textures/galaxySkybox.png new file mode 100644 index 0000000000..c7d9bf6d68 Binary files /dev/null and b/interface/resources/serverless/Textures/galaxySkybox.png differ diff --git a/interface/resources/serverless/Textures/gradient1.jpg b/interface/resources/serverless/Textures/gradient1.jpg new file mode 100644 index 0000000000..ef61b4dd97 Binary files /dev/null and b/interface/resources/serverless/Textures/gradient1.jpg differ diff --git a/interface/resources/serverless/tutorial.json b/interface/resources/serverless/tutorial.json index 17e7ea26e7..90d7e91aa3 100644 --- a/interface/resources/serverless/tutorial.json +++ b/interface/resources/serverless/tutorial.json @@ -1,19 +1,22 @@ { - "DataVersion": 0, - "Paths": { - "/": "/0.155245,-0.941538,23.9289/0,0.791589,0,0.611053" -}, + "DataVersion": 0, + "Paths": { + "/old": "/0.155245,-0.941538,23.9289/0,0.791589,0,0.611053", + "/": "/21.6727,1.02002,25.1977/0,0.999868,0,-0.016252" + + }, "Entities": [ - { + { "id": "{0a199807-4a83-4286-b09c-f21124627c3e}", "type": "Box", "name": "Config Wizard Loader", + "locked": true, "lastEdited": 1613737207915514, "visible": false, "position": { - "x": -1.2722, - "y": 0.4266, - "z": 24.2307 + "x": 21.8, + "y": 1.9, + "z": 28 }, "dimensions": { "x": 0.20000000298023224, @@ -21,10 +24,10 @@ "z": 0.20000000298023224 }, "rotation": { - "x": 0, - "y": -0.7660443782806396, - "z": 0, - "w": -0.6427876949310303 + "x": 3.5931313391301956e-7, + "y": -0.9996991753578186, + "z": 0.000014645980627392419, + "w": 0.024525845423340797 }, "created": 1613736996738696, "lastEditedBy": "{ff9b500e-e450-4127-b41f-1c42be16f71b}", @@ -41,7 +44,7 @@ "angularDamping": 0, "collisionless": true, "ignoreForCollisions": true, - "script": "https://cdn-1.vircadia.com/us-e-1/DomainContent/Tutorial/Apps/configWizard/dist/wizardLoader.js", + "script": "qrc:///serverless/Scripts/wizardLoader.js", "color": { "red": 0, "green": 180, @@ -55,717 +58,35 @@ "isFacingAvatar": false }, { - "id": "{eb485a2d-2040-42f6-a960-51c88e2434b9}", - "type": "Box", - "lastEdited": 1601257171039244, - "parentID": "{3deeadb3-5bab-4d1a-a8df-d3d4b192c76a}", - "visible": false, - "name": "Portal Cube", - "locked": true, - "userData": "{\"destination\":\"hifi://172.104.248.237:40102/154.572,-96.8437,-417.945/0,1,0,-1.52586e-05\"}", - "position": { - "x": -0.0005140304565429688, - "y": -0.3913555145263672, - "z": 0.0000209808349609375 - }, - "dimensions": { - "x": 1.5066394805908203, - "y": 2.504150629043579, - "z": 0.20000000298023224 - }, - "rotation": { - "x": -0.0000152587890625, - "y": -0.0000152587890625, - "z": -0.0000152587890625, - "w": 1 - }, - "created": 1601254455054086, - "lastEditedBy": "{70099fa7-d189-42dc-80a0-02c37d1942d1}", - "queryAACube": { - "x": -20.05035400390625, - "y": -6.776813983917236, - "z": -13.91693115234375, - "scale": 2.929288864135742 - }, - "grab": { - "grabbable": false, - "equippableLeftRotation": { - "x": -0.0000152587890625, - "y": -0.0000152587890625, - "z": -0.0000152587890625, - "w": 1 - }, - "equippableRightRotation": { - "x": -0.0000152587890625, - "y": -0.0000152587890625, - "z": -0.0000152587890625, - "w": 1 - } - }, - "damping": 0, - "angularDamping": 0, - "collisionMask": 0, - "collidesWith": "", - "script": "https://cdn-1.vircadia.com/us-e-1/DomainContent/Tutorial/Scripts/portal.js", - "color": { - "red": 0, - "green": 180, - "blue": 239 - }, - "shape": "Cube", - "clientOnly": false, - "avatarEntity": false, - "localEntity": false, - "faceCamera": false, - "isFacingAvatar": false -}, - { - "id": "{7624234a-c3f9-433c-9ffa-ce17894f1842}", - "type": "Text", - "lastEdited": 1601257171039090, - "parentID": "{3deeadb3-5bab-4d1a-a8df-d3d4b192c76a}", - "name": "Portal Sign", - "locked": true, - "position": { - "x": 0.0000591278076171875, - "y": 1.9068689346313477, - "z": -0.00003337860107421875 - }, - "dimensions": { - "x": 3.3015296459198, - "y": 0.511300265789032, - "z": 0.009999999776482582 - }, - "rotation": { - "x": -0.0000152587890625, - "y": -0.0000152587890625, - "z": -0.0000152587890625, - "w": 1 - }, - "created": 1601237788304107, - "lastEditedBy": "{70099fa7-d189-42dc-80a0-02c37d1942d1}", - "queryAACube": { - "x": -20.255495071411133, - "y": -4.684395790100098, - "z": -14.123543739318848, - "scale": 3.3409018516540527 - }, - "grab": { - "grabbable": false, - "equippableLeftRotation": { - "x": -0.0000152587890625, - "y": -0.0000152587890625, - "z": -0.0000152587890625, - "w": 1 - }, - "equippableRightRotation": { - "x": -0.0000152587890625, - "y": -0.0000152587890625, - "z": -0.0000152587890625, - "w": 1 - } - }, - "damping": 0, - "angularDamping": 0, - "collisionMask": 23, - "collidesWith": "static,dynamic,kinematic,otherAvatar,", - "billboardMode": "yaw", - "text": "Portal to The Hub", - "lineHeight": 0.4690000116825104, - "textColor": { - "red": 53, - "green": 184, - "blue": 240 - }, - "backgroundAlpha": 0, - "unlit": true, - "textEffect": "outline fill", - "textEffectColor": { - "red": 0, - "green": 0, - "blue": 0 - }, - "textEffectThickness": 0.36000001430511475, - "clientOnly": false, - "avatarEntity": false, - "localEntity": false, - "faceCamera": true, - "isFacingAvatar": false -}, - { - "id": "{4cc92ee0-e117-43f9-ae71-c6ff97979f11}", - "type": "Material", - "lastEdited": 1601257171040710, - "parentID": "{3deeadb3-5bab-4d1a-a8df-d3d4b192c76a}", - "parentJointIndex": 4, - "name": "portal_scroll (2)", - "locked": false, - "userData": "{\n \"verticalOffset\": 0,\n \"segments\": 64,\n \"updateInterval\": 200\n}", - "position": { - "x": -0.00000476837158203125, - "y": -0.5752763748168945, - "z": 0.2233133316040039 - }, - "rotation": { - "x": -0.0000457763671875, - "y": -0.0000152587890625, - "z": -0.0000152587890625, - "w": 1 - }, - "created": 1601249935956042, - "lastEditedBy": "{70099fa7-d189-42dc-80a0-02c37d1942d1}", - "queryAACube": { - "x": -23.118024826049805, - "y": -7.00716495513916, - "z": -14.539131164550781, - "scale": 6.618997573852539 - }, - "canCastShadow": false, - "primitiveMode": "lines", - "grab": { - "grabbable": false, - "equippableLeftRotation": { - "x": -0.0000152587890625, - "y": -0.0000152587890625, - "z": -0.0000152587890625, - "w": 1 - }, - "equippableRightRotation": { - "x": -0.0000152587890625, - "y": -0.0000152587890625, - "z": -0.0000152587890625, - "w": 1 - } - }, - "collisionMask": 23, - "collidesWith": "static,dynamic,kinematic,otherAvatar,", - "script": "https://cdn-1.vircadia.com/us-e-1/DomainContent/Tutorial/Scripts/materialSequencer.js", - "scriptTimestamp": 1601250646975, - "materialURL": "materialData", - "priority": 3, - "parentMaterialName": "[mat::move]", - "materialMappingPos": { - "x": 0.984375, - "y": 0 - }, - "materialData": "{\"materialVersion\":1,\"materials\":[{\"name\":\"baseMaterial2\",\"model\":\"hifi_pbr\",\"opacity\":0.8,\"albedo\":[1,1,1],\"roughness\":1,\"metallic\":0,\"emissive\":[0,0,0],\"scattering\":0,\"unlit\":false,\"emissiveMap\":\"https://cdn-1.vircadia.com/us-e-1/DomainContent/Tutorial/Images/gradient1.jpg\",\"albedoMap\":\"https://cdn-1.vircadia.com/us-e-1/DomainContent/Tutorial/Images/gradient1.jpg\",\"opacityMapMode\":\"OPACITY_MAP_BLEND\",\"cullFaceMode\":\"CULL_NONE\",\"defaultFallthrough\":false}]}", - "clientOnly": false, - "avatarEntity": false, - "localEntity": false, - "faceCamera": false, - "isFacingAvatar": false -}, - { - "id": "{d431d791-8f9d-42ba-8031-d94b1d8d8815}", + "id": "{b9444e0f-1cda-4ad3-80e5-9ef3bf0ec6cd}", "type": "Model", - "lastEdited": 1601258385755309, - "parentID": "{ee9b7ff6-97f0-4957-aea1-3b517b6e68b8}", - "locked": true, - "position": { - "x": -21.901264190673828, - "y": -4.0628180503845215, - "z": 4.366877555847168 - }, - "dimensions": { - "x": 5.791271686553955, - "y": 3.2263991832733154, - "z": 1.5121190547943115 - }, - "rotation": { - "x": -0.0001068115234375, - "y": -0.7046158313751221, - "z": -0.0001373291015625, - "w": 0.7095597982406616 - }, - "created": 1601076086837263, - "lastEditedBy": "{0ff4c9e5-fb36-4bdd-9fbc-b2ed60e1aa3b}", - "queryAACube": { - "x": -25.301368713378906, - "y": -8.470065116882324, - "z": 0.9665484428405762, - "scale": 6.799631118774414 - }, - "grab": { - "grabbable": false, - "equippableLeftRotation": { - "x": -0.0000152587890625, - "y": -0.0000152587890625, - "z": -0.0000152587890625, - "w": 1 - }, - "equippableRightRotation": { - "x": -0.0000152587890625, - "y": -0.0000152587890625, - "z": -0.0000152587890625, - "w": 1 - } - }, - "damping": 0, - "angularDamping": 0, - "shapeType": "simple-hull", - "modelURL": "https://cdn-1.vircadia.com/us-e-1/DomainContent/Tutorial/Models/controls_sign.fbx", - "blendshapeCoefficients": "{\n}\n", - "animation": { - "allowTranslation": false - }, - "clientOnly": false, - "avatarEntity": false, - "localEntity": false, - "faceCamera": false, - "isFacingAvatar": false -}, - { - "id": "{60bb4eb3-6fa6-47c2-a264-23a9b562fd20}", - "type": "Material", - "lastEdited": 1601257171043513, - "parentID": "{1a837deb-9f62-4d25-b027-b05bc092f7a5}", - "name": "canopy light material (2)", - "locked": true, - "position": { - "x": 0.8513965606689453, - "y": 0.9252982139587402, - "z": -1.2880910634994507 - }, - "rotation": { - "x": -0.0000152587890625, - "y": -0.0000152587890625, - "z": -0.0000152587890625, - "w": 1 - }, - "created": 1600724957561027, - "lastEditedBy": "{70099fa7-d189-42dc-80a0-02c37d1942d1}", - "queryAACube": { - "x": 10.290059089660645, - "y": -7.974443435668945, - "z": -21.87716293334961, - "scale": 5.676094055175781 - }, - "grab": { - "grabbable": false, - "equippableLeftRotation": { - "x": -0.0000152587890625, - "y": -0.0000152587890625, - "z": -0.0000152587890625, - "w": 1 - }, - "equippableRightRotation": { - "x": -0.0000152587890625, - "y": -0.0000152587890625, - "z": -0.0000152587890625, - "w": 1 - } - }, - "damping": 0, - "angularDamping": 0, - "materialURL": "materialData", - "priority": 1, - "parentMaterialName": "[mat::light material]", - "materialData": "{ \"materialVersion\": 1, \"materials\": [ { \"name\": \"untitled\", \"albedo\": [0.6352941176470588, 0.9647058823529412, 0.8980392156862745], \"metallic\": 0.001, \"roughness\": 0.5, \"opacity\": 1, \"emissive\": [1.154705882352941, 1.3323529411764705, 1.3205098039215686], \"scattering\": 0, \"unlit\": false, \"model\": \"hifi_pbr\" } ]}", - "clientOnly": false, - "avatarEntity": false, - "localEntity": false, - "faceCamera": false, - "isFacingAvatar": false -}, - { - "id": "{0735f399-0e78-4170-87c2-e1f30572ba04}", - "type": "Text", - "lastEdited": 1601257171043607, - "parentID": "{ee9b7ff6-97f0-4957-aea1-3b517b6e68b8}", - "name": "Mirror Sign", - "locked": true, - "position": { - "x": 20.39116668701172, - "y": -2.923142910003662, - "z": -8.373934745788574 - }, - "dimensions": { - "x": 1.7557624578475952, - "y": 0.6635230779647827, - "z": 0.009999999776482582 - }, - "rotation": { - "x": -0.0000457763671875, - "y": -0.5629816055297852, - "z": -0.0000457763671875, - "w": 0.8264439105987549 - }, - "created": 1601082108221117, - "lastEditedBy": "{70099fa7-d189-42dc-80a0-02c37d1942d1}", - "queryAACube": { - "x": 19.452810287475586, - "y": -4.870745658874512, - "z": -9.311684608459473, - "scale": 1.8769828081130981 - }, - "grab": { - "grabbable": false, - "equippableLeftRotation": { - "x": -0.0000152587890625, - "y": -0.0000152587890625, - "z": -0.0000152587890625, - "w": 1 - }, - "equippableRightRotation": { - "x": -0.0000152587890625, - "y": -0.0000152587890625, - "z": -0.0000152587890625, - "w": 1 - } - }, - "damping": 0, - "angularDamping": 0, - "text": "Mirror", - "lineHeight": 0.6470000147819519, - "textColor": { - "red": 0, - "green": 0, - "blue": 0 - }, - "backgroundAlpha": 0, - "unlit": true, - "textEffect": "outline fill", - "textEffectColor": { - "red": 94, - "green": 207, - "blue": 255 - }, - "textEffectThickness": 0.3400000035762787, - "clientOnly": false, - "avatarEntity": false, - "localEntity": false, - "faceCamera": false, - "isFacingAvatar": false -}, - { - "id": "{a4a586c6-b6f8-4b79-9ac9-76d6296e3ab8}", - "type": "Zone", - "lastEdited": 1601257171043415, - "parentID": "{ecf5857e-f1d5-411e-a8a1-919ab8f27ad8}", - "visible": false, - "name": "mirror_zone", - "locked": true, - "userData": "{\"grabbableKey\":{\"grabbable\":false},\"original\":{\"id\":\"{da1e2fcd-d69b-47d7-b861-25b31f1c7175}\"}}", - "position": { - "x": -0.01726818084716797, - "y": 0.2113490104675293, - "z": 1.704751968383789 - }, - "dimensions": { - "x": 2.8482747077941895, - "y": 3.153184413909912, - "z": 3.6725244522094727 - }, - "rotation": { - "x": -0.0161592960357666, - "y": 0.0000152587890625, - "z": -0.006424069404602051, - "w": 0.999847412109375 - }, - "created": 1601081037655929, - "lastEditedBy": "{70099fa7-d189-42dc-80a0-02c37d1942d1}", - "queryAACube": { - "x": 15.947319030761719, - "y": -7.93642520904541, - "z": -10.575695991516113, - "scale": 5.6162872314453125 - }, - "grab": { - "grabbable": false, - "equippableLeftRotation": { - "x": -0.0000152587890625, - "y": -0.0000152587890625, - "z": -0.0000152587890625, - "w": 1 - }, - "equippableRightRotation": { - "x": -0.0000152587890625, - "y": -0.0000152587890625, - "z": -0.0000152587890625, - "w": 1 - } - }, - "script": "https://cdn-1.vircadia.com/us-e-1/DomainContent/Tutorial/Scripts/mirrorReflection.js", - "scriptTimestamp": 1601084668318, - "shapeType": "box", - "clientOnly": false, - "avatarEntity": false, - "localEntity": false, - "faceCamera": false, - "isFacingAvatar": false -}, - { - "id": "{f2ac10e4-89f3-4125-bb8f-917e510394df}", - "type": "Box", - "lastEdited": 1601257171038745, - "name": "Sound Emitter", - "locked": true, - "userData": "{\"soundURL\":\"https://cdn-1.vircadia.com/us-e-1/DomainContent/Tutorial/Sounds/468407__onderwish__sci-fi-survival-dreamscape.mp3?dl=1\",\"shouldLoop\":true,\"volume\":0.18,\"refreshInterval\":100,\"grabbableKey\":{\"grabbable\":false}}", - "position": { - "x": 18.58538055419922, - "y": 5.378335952758789, - "z": 20.337299346923828 - }, - "dimensions": { - "x": 0.20000000298023224, - "y": 0.20000000298023224, - "z": 0.20000000298023224 - }, - "rotation": { - "x": -0.0000152587890625, - "y": -0.0000152587890625, - "z": -0.0000152587890625, - "w": 1 - }, - "created": 1601078881703340, - "lastEditedBy": "{70099fa7-d189-42dc-80a0-02c37d1942d1}", - "queryAACube": { - "x": 18.41217613220215, - "y": 5.2051310539245605, - "z": 20.164094924926758, - "scale": 0.3464101552963257 - }, - "grab": { - "grabbable": false, - "equippableLeftRotation": { - "x": -0.0000152587890625, - "y": -0.0000152587890625, - "z": -0.0000152587890625, - "w": 1 - }, - "equippableRightRotation": { - "x": -0.0000152587890625, - "y": -0.0000152587890625, - "z": -0.0000152587890625, - "w": 1 - } - }, - "damping": 0, - "angularDamping": 0, - "script": "https://cdn-1.vircadia.com/us-e-1/usefulUtilities/soundEmitter/soundEmitter.js", - "scriptTimestamp": 1601079357399, - "color": { - "red": 0, - "green": 180, - "blue": 239 - }, - "shape": "Cube", - "clientOnly": false, - "avatarEntity": false, - "localEntity": false, - "faceCamera": false, - "isFacingAvatar": false -}, - { - "id": "{698d7e54-ee5b-4005-bc9d-62840aa07c19}", - "type": "Model", - "lastEdited": 1601257171043706, - "locked": true, - "position": { - "x": 20.58482551574707, - "y": 3.3026206493377686, - "z": 22.10502052307129 - }, - "dimensions": { - "x": 0.9342527389526367, - "y": 0.8603132963180542, - "z": 0.47802668809890747 - }, - "rotation": { - "x": -0.0175631046295166, - "y": -0.4897993206977844, - "z": 0.030106067657470703, - "w": 0.8711223602294922 - }, - "created": 1594159515504117, - "lastEditedBy": "{70099fa7-d189-42dc-80a0-02c37d1942d1}", - "queryAACube": { - "x": 19.906320571899414, - "y": 2.624115467071533, - "z": 21.426515579223633, - "scale": 1.3570102453231812 - }, - "grab": { - "grabbable": false, - "equippableLeftRotation": { - "x": -0.0000152587890625, - "y": -0.0000152587890625, - "z": -0.0000152587890625, - "w": 1 - }, - "equippableRightRotation": { - "x": -0.0000152587890625, - "y": -0.0000152587890625, - "z": -0.0000152587890625, - "w": 1 - } - }, - "damping": 0, - "angularDamping": 0, - "shapeType": "simple-compound", - "modelURL": "https://cdn-1.vircadia.com/us-e-1/DomainContent/Tutorial/Models/seagull-ANI.fbx", - "blendshapeCoefficients": "{\n}\n", - "animation": { - "url": "https://cdn-1.vircadia.com/us-e-1/DomainContent/Tutorial/Models/seagull-ANI.fbx", - "allowTranslation": false, - "currentFrame": 68.07844543457031, - "running": true, - "lastFrame": 120 - }, - "clientOnly": false, - "avatarEntity": false, - "localEntity": false, - "faceCamera": false, - "isFacingAvatar": false -}, - { - "id": "{523b7462-9a49-4949-8d31-d84749cbab0a}", - "type": "Model", - "lastEdited": 1601257171038388, - "name": "Vircadia Sign", - "locked": true, - "position": { - "x": 40.31134796142578, - "y": 3.2890982627868652, - "z": 19.960262298583984 - }, - "dimensions": { - "x": 4.443090915679932, - "y": 0.7363157868385315, - "z": 0.16073395311832428 - }, - "rotation": { - "x": -0.0000152587890625, - "y": -0.7011978626251221, - "z": 0.0000152587890625, - "w": 0.7129777669906616 - }, - "created": 1600983484676932, - "lastEditedBy": "{70099fa7-d189-42dc-80a0-02c37d1942d1}", - "queryAACube": { - "x": 38.05807113647461, - "y": 1.0358200073242188, - "z": 17.70698356628418, - "scale": 4.506556510925293 - }, - "grab": { - "grabbable": false, - "equippableLeftRotation": { - "x": -0.0000152587890625, - "y": -0.0000152587890625, - "z": -0.0000152587890625, - "w": 1 - }, - "equippableRightRotation": { - "x": -0.0000152587890625, - "y": -0.0000152587890625, - "z": -0.0000152587890625, - "w": 1 - } - }, - "damping": 0, - "angularDamping": 0, - "modelURL": "https://cdn-1.vircadia.com/us-e-1/DomainContent/Tutorial/Models/VircadiaLogo.fbx", - "blendshapeCoefficients": "{\n}\n", - "animation": { - "allowTranslation": false - }, - "clientOnly": false, - "avatarEntity": false, - "localEntity": false, - "faceCamera": false, - "isFacingAvatar": false -}, - { - "id": "{1a837deb-9f62-4d25-b027-b05bc092f7a5}", - "type": "Model", - "lastEdited": 1601257171043086, - "name": "(2)", - "locked": true, - "description": "cyberpunk light building", - "position": { - "x": 32.089881896972656, - "y": 0.20440244674682617, - "z": 0 - }, - "dimensions": { - "x": 2.9088404178619385, - "y": 2.9556829929351807, - "z": 3.8756446838378906 - }, - "rotation": { - "x": -0.0000762939453125, - "y": -0.269459068775177, - "z": -0.0000152587890625, - "w": 0.9629815816879272 - }, - "created": 1600724957559377, - "lastEditedBy": "{70099fa7-d189-42dc-80a0-02c37d1942d1}", - "queryAACube": { - "x": 29.251834869384766, - "y": -2.6336443424224854, - "z": -2.8380467891693115, - "scale": 5.676093578338623 - }, - "grab": { - "grabbable": false, - "equippableLeftRotation": { - "x": -0.0000152587890625, - "y": -0.0000152587890625, - "z": -0.0000152587890625, - "w": 1 - }, - "equippableRightRotation": { - "x": -0.0000152587890625, - "y": -0.0000152587890625, - "z": -0.0000152587890625, - "w": 1 - } - }, - "damping": 0, - "angularDamping": 0, - "shapeType": "static-mesh", - "modelURL": "https://cdn-1.vircadia.com/us-e-1/DomainContent/Tutorial/Models/cyberpunk%20light%20building.fbx", - "blendshapeCoefficients": "{\n}\n", - "animation": { - "allowTranslation": false - }, - "clientOnly": false, - "avatarEntity": false, - "localEntity": false, - "faceCamera": false, - "isFacingAvatar": false -}, - { - "id": "{ecf5857e-f1d5-411e-a8a1-919ab8f27ad8}", - "type": "Model", - "lastEdited": 1601257171043259, + "lastEdited": 1617134731448079, "name": "mirror_reflectingPlane", "locked": true, "userData": "{\"grabbableKey\":{\"grabbable\":false,\"ignoreIK\":false},\"original\":{\"id\":\"{6291b4e5-0dcb-484c-9c11-fe47725a4ad8}\"}}", "position": { - "x": 38.92219543457031, - "y": 0, - "z": 11.933252334594727 + "x": 3.3984665870666504, + "y": 1.891787052154541, + "z": 20.900876998901367 }, "dimensions": { - "x": 1.846174716949463, - "y": 2.2880923748016357, + "x": 1.6291353702545166, + "y": 2.206333875656128, "z": 0.01092288363724947 }, "rotation": { - "x": -0.0001678466796875, - "y": 0.5556267499923706, - "z": 0.0009613037109375, - "w": -0.8314183354377747 + "x": -0.0000152587890625, + "y": -0.8816205263137817, + "z": 0.0000152587890625, + "w": -0.4719768166542053 }, - "created": 1601081037655824, - "lastEditedBy": "{70099fa7-d189-42dc-80a0-02c37d1942d1}", + "created": 1614198986204053, + "lastEditedBy": "{0b759026-5fea-494c-99de-ab6301e73d4c}", "queryAACube": { - "x": 37.45217514038086, - "y": -1.4700210094451904, - "z": 10.463231086730957, - "scale": 2.940042018890381 + "x": 2.0271434783935547, + "y": 0.5204638242721558, + "z": 19.52955436706543, + "scale": 2.7426464557647705 }, "grab": { "grabbable": false, @@ -787,9 +108,9 @@ "ignoreForCollisions": true, "collisionMask": 0, "collidesWith": "", - "script": "https://cdn-1.vircadia.com/us-e-1/DomainContent/Tutorial/Scripts/mirrorClient.js", + "script": "qrc:///serverless/Scripts/mirrorClient.js", "scriptTimestamp": 1601084665601, - "modelURL": "https://cdn-1.vircadia.com/us-e-1/DomainContent/Tutorial/Models/mirror_without_backface.baked.fbx", + "modelURL": "qrc:///serverless/Models/mirror_without_backface.baked.fbx", "blendshapeCoefficients": "{\n}\n", "clientOnly": false, "avatarEntity": false, @@ -798,10 +119,1285 @@ "isFacingAvatar": false }, { - "id": "{32132863-ae54-4d1b-95a9-d8e5fd7df066}", + "id": "{61e0e141-bb95-4e7a-a043-3f4f783e39f4}", + "type": "Text", + "lastEdited": 1617134727215565, + "locked": true, + "description": "mirror text", + "position": { + "x": 3.306519031524658, + "y": 4.0622100830078125, + "z": 20.931333541870117 + }, + "dimensions": { + "x": 3.2473599910736084, + "y": 0.6462407112121582, + "z": 0.009999999776482582 + }, + "rotation": { + "x": 0.0008392333984375, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 0.999969482421875 + }, + "created": 1614383649622836, + "lastEditedBy": "{0b759026-5fea-494c-99de-ab6301e73d4c}", + "queryAACube": { + "x": 1.6509922742843628, + "y": 2.4066834449768066, + "z": 19.275806427001953, + "scale": 3.311053514480591 + }, + "billboardMode": "yaw", + "grab": { + "grabbable": false, + "equippableLeftRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + }, + "equippableRightRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + } + }, + "damping": 0, + "angularDamping": 0, + "collisionMask": 23, + "collidesWith": "static,dynamic,kinematic,otherAvatar,", + "text": "Mirror", + "lineHeight": 0.6000000238418579, + "textColor": { + "red": 0, + "green": 0, + "blue": 0 + }, + "backgroundAlpha": 0, + "unlit": true, + "font": "Inconsolata", + "textEffect": "outline fill", + "textEffectColor": { + "red": 0, + "green": 208, + "blue": 255 + }, + "textEffectThickness": 0.30000001192092896, + "alignment": "center", + "clientOnly": false, + "avatarEntity": false, + "localEntity": false, + "faceCamera": true, + "isFacingAvatar": false +}, + { + "id": "{4b1ac4d3-325b-46a2-9c27-0e94ee1afcaf}", + "type": "Model", + "lastEdited": 1617140845328587, + "name": "Seagull", + "locked": true, + "position": { + "x": 23.798669815063477, + "y": 4.926492214202881, + "z": 10.381175994873047 + }, + "dimensions": { + "x": 0.9342527389526367, + "y": 0.8603132963180542, + "z": 0.47802668809890747 + }, + "rotation": { + "x": -0.017654716968536377, + "y": -0.4898908734321594, + "z": 0.030106067657470703, + "w": 0.8710917234420776 + }, + "created": 1614198986205195, + "lastEditedBy": "{7f097416-1c40-4cba-aa7c-6e20a7281823}", + "queryAACube": { + "x": 23.12016487121582, + "y": 4.247987270355225, + "z": 9.70267105102539, + "scale": 1.3570102453231812 + }, + "grab": { + "grabbable": false, + "equippableLeftRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + }, + "equippableRightRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + } + }, + "damping": 0, + "angularDamping": 0, + "shapeType": "simple-compound", + "modelURL": "qrc:///serverless/Models/seagull-ANI.fbx", + "blendshapeCoefficients": "{\n}\n", + "animation": { + "url": "qrc:///serverless/Models/seagull-ANI.fbx", + "allowTranslation": false, + "currentFrame": 99.81153869628906, + "running": true, + "lastFrame": 120 + }, + "clientOnly": false, + "avatarEntity": false, + "localEntity": false, + "faceCamera": false, + "isFacingAvatar": false +}, + { + "id": "{7c7f80be-4fa3-4615-86f3-5446c6737350}", + "type": "Box", + "lastEdited": 1617140739515673, + "parentID": "{6c76b816-5064-424c-84b2-dbb478e47d5d}", + "visible": false, + "name": "Sound Emitter", + "locked": true, + "userData": "{\"soundURL\":\"qrc:///serverless/Sounds/468407__onderwish__sci-fi-survival-dreamscape.mp3\",\"shouldLoop\":true,\"volume\":0.18,\"refreshInterval\":100,\"grabbableKey\":{\"grabbable\":false}}", + "position": { + "x": 0, + "y": 1.0455207824707031, + "z": 0 + }, + "dimensions": { + "x": 0.20000000298023224, + "y": 0.20000000298023224, + "z": 0.20000000298023224 + }, + "rotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + }, + "created": 1614198017837347, + "lastEditedBy": "{7f097416-1c40-4cba-aa7c-6e20a7281823}", + "queryAACube": { + "x": 28.069303512573242, + "y": 5.205089092254639, + "z": 26.711923599243164, + "scale": 0.3464101552963257 + }, + "grab": { + "grabbable": false, + "equippableLeftRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + }, + "equippableRightRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + } + }, + "damping": 0, + "angularDamping": 0, + "script": "qrc:///serverless/Scripts/soundEmitter.js", + "scriptTimestamp": 1601079357399, + "color": { + "red": 0, + "green": 180, + "blue": 239 + }, + "shape": "Cube", + "clientOnly": false, + "avatarEntity": false, + "localEntity": false, + "faceCamera": false, + "isFacingAvatar": false +}, + { + "id": "{0436152a-b188-4608-abe9-a3fb1c4b283d}", + "type": "Model", + "lastEdited": 1617140818158676, + "name": "Vircadia Sign", + "locked": true, + "position": { + "x": 43.52519226074219, + "y": 4.912969589233398, + "z": 8.236417770385742 + }, + "dimensions": { + "x": 4.443090915679932, + "y": 0.7363157868385315, + "z": 0.16073395311832428 + }, + "rotation": { + "x": -0.0000152587890625, + "y": -0.7019302845001221, + "z": 0.0000152587890625, + "w": 0.7122453451156616 + }, + "created": 1614198986205729, + "lastEditedBy": "{7f097416-1c40-4cba-aa7c-6e20a7281823}", + "queryAACube": { + "x": 41.271915435791016, + "y": 2.659691333770752, + "z": 5.983139514923096, + "scale": 4.506556510925293 + }, + "grab": { + "grabbable": false, + "equippableLeftRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + }, + "equippableRightRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + } + }, + "damping": 0, + "angularDamping": 0, + "modelURL": "qrc:///serverless/Models/VircadiaLogo.fbx", + "blendshapeCoefficients": "{\n}\n", + "animation": { + "allowTranslation": false + }, + "clientOnly": false, + "avatarEntity": false, + "localEntity": false, + "faceCamera": false, + "isFacingAvatar": false +}, + { + "id": "{06b826d4-5385-4c49-92c2-47e24f97b35a}", + "type": "Text", + "lastEdited": 1617134764395172, + "name": "(2)", + "locked": true, + "description": "mirror text", + "position": { + "x": 34.17714309692383, + "y": 4.050739288330078, + "z": 27.204530715942383 + }, + "dimensions": { + "x": 3.2473599910736084, + "y": 0.6462407112121582, + "z": 0.009999999776482582 + }, + "rotation": { + "x": 0.0008392333984375, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 0.999969482421875 + }, + "created": 1614453280539951, + "lastEditedBy": "{0b759026-5fea-494c-99de-ab6301e73d4c}", + "queryAACube": { + "x": 32.5216178894043, + "y": 2.3952126502990723, + "z": 25.54900360107422, + "scale": 3.311053514480591 + }, + "billboardMode": "yaw", + "grab": { + "grabbable": false, + "equippableLeftRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + }, + "equippableRightRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + } + }, + "damping": 0, + "angularDamping": 0, + "collisionMask": 23, + "collidesWith": "static,dynamic,kinematic,otherAvatar,", + "text": "Controls", + "lineHeight": 0.6000000238418579, + "textColor": { + "red": 0, + "green": 0, + "blue": 0 + }, + "backgroundAlpha": 0, + "unlit": true, + "font": "Inconsolata", + "textEffect": "outline fill", + "textEffectColor": { + "red": 0, + "green": 208, + "blue": 255 + }, + "textEffectThickness": 0.30000001192092896, + "alignment": "center", + "clientOnly": false, + "avatarEntity": false, + "localEntity": false, + "faceCamera": true, + "isFacingAvatar": false +}, + { + "id": "{159f2743-d862-47e3-9f27-5de062b09941}", + "type": "Material", + "lastEdited": 1617140810844450, + "parentID": "{0436152a-b188-4608-abe9-a3fb1c4b283d}", + "parentJointIndex": 0, + "name": "VClogo", + "locked": true, + "userData": "{\"verticalOffset\":0,\"segments\":16,\"updateInterval\":1000}", + "position": { + "x": -0.00001823902130126953, + "y": -0.0002636909484863281, + "z": 0.10145187377929688 + }, + "rotation": { + "x": 0.0012969970703125, + "y": 0.0000152587890625, + "z": 0.0000457763671875, + "w": 0.999969482421875 + }, + "created": 1614198986205783, + "lastEditedBy": "{7f097416-1c40-4cba-aa7c-6e20a7281823}", + "queryAACube": { + "x": 47.7151985168457, + "y": 1.0358200073242188, + "z": 24.254812240600586, + "scale": 4.506557464599609 + }, + "canCastShadow": false, + "grab": { + "grabbable": false, + "equippableLeftRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + }, + "equippableRightRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + } + }, + "collisionMask": 23, + "collidesWith": "static,dynamic,kinematic,otherAvatar,", + "scriptTimestamp": 1597610738986, + "materialURL": "materialData", + "priority": 3, + "parentMaterialName": "[mat::NeonTubes]", + "materialMappingPos": { + "x": 0.8125, + "y": 0 + }, + "materialData": "{\"materialVersion\":1,\"materials\":[{\"name\":\"baseMaterial2\",\"model\":\"hifi_pbr\",\"opacity\":1,\"albedo\":[0,0,0],\"roughness\":1,\"metallic\":0,\"emissive\":[2.3,2,2],\"scattering\":0,\"unlit\":false,\"opacityMapMode\":\"OPACITY_MAP_MASK\",\"cullFaceMode\":\"CULL_BACK\",\"defaultFallthrough\":false}]}", + "clientOnly": false, + "avatarEntity": false, + "localEntity": false, + "faceCamera": false, + "isFacingAvatar": false +}, +{ + "id": "{5b6443c5-ec22-4c8a-9581-85134ceb6856}", + "parentID": "{6c76b816-5064-424c-84b2-dbb478e47d5d}", + "type": "Model", + "name": "Bowl", + "locked": true, + "lastEdited": 1617218059378792, + "dimensions": { + "x": 1.7757656574249268, + "y": 1.2933320999145508, + "z": 1.7757654190063477 + }, + "rotation": { + "x": -0.000030517578125, + "y": -0.000030517578125, + "z": -0.000030517578125, + "w": 1 + }, + "created": 1617216882976266, + "lastEditedBy": "{f72b151a-b325-4c9f-805a-7a7a520f82f7}", + "position": { + "x": -0.00001823902130126953, + "y": -5.1002636909484863281, + "z": 0.10145187377929688 + }, + "queryAACube": { + "x": -1.4123910665512085, + "y": -1.4123910665512085, + "z": -1.4123910665512085, + "scale": 2.824782133102417 + }, + "grab": { + "grabbable": false, + "equippableLeftRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + }, + "equippableRightRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + } + }, + "damping": 0, + "angularDamping": 0, + "shapeType": "static-mesh", + "modelURL": "qrc:///serverless/Models/bowl2.fbx", + "blendshapeCoefficients": "{\n}\n", + "animation": { + "allowTranslation": false + }, + "clientOnly": false, + "avatarEntity": false, + "localEntity": false, + "faceCamera": false, + "isFacingAvatar": false +}, + { + "id": "{9c451827-4c87-4bf7-8372-aeb6bbd61eaa}", + "type": "ParticleEffect", + "lastEdited": 1617217817025177, + "parentID": "{5b6443c5-ec22-4c8a-9581-85134ceb6856}", + "name": "Brew", + "locked": true, + "position": { + "x": 0, + "y": 0.44699999690055847, + "z": 0 + }, + "dimensions": { + "x": 16.263307571411133, + "y": 16.263307571411133, + "z": 16.263307571411133 + }, + "rotation": { + "x": 8.988587651970192e-12, + "y": -0.00008631677337689325, + "z": -0.7071500420570374, + "w": 0.7070636749267578 + }, + "created": 1617216898348298, + "lastEditedBy": "{f72b151a-b325-4c9f-805a-7a7a520f82f7}", + "queryAACube": { + "x": 7.714627265930176, + "y": -12.719738006591797, + "z": -5.470824241638184, + "scale": 28.168874740600586 + }, + "grab": { + "grabbable": false, + "equippableLeftRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + }, + "equippableRightRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + } + }, + "damping": 0, + "angularDamping": 0, + "shapeType": "ellipsoid", + "color": { + "red": 4, + "green": 101, + "blue": 143 + }, + "alpha": 0.30000001192092896, + "textures": "qrc:///serverless/Textures/default_particle.png", + "maxParticles": 80, + "lifespan": 2, + "emitRate": 47, + "emitSpeed": 0.30000001192092896, + "speedSpread": 0, + "emitOrientation": { + "x": 0, + "y": 0, + "z": 0, + "w": 1 + }, + "emitDimensions": { + "x": 1, + "y": 1, + "z": 0 + }, + "emitRadiusStart": 0, + "polarStart": 0.8700000047683716, + "polarFinish": 1.2200000286102295, + "azimuthStart": 3.0999999046325684, + "azimuthFinish": 3.140000104904175, + "emitAcceleration": { + "x": 0, + "y": -0.9900000095367432, + "z": 0 + }, + "accelerationSpread": { + "x": 0.10000000149011612, + "y": 0.3400000035762787, + "z": 0.10000000149011612 + }, + "particleRadius": 1.5, + "radiusStart": 0.5, + "radiusFinish": 0.30000001192092896, + "colorSpread": { + "red": 0, + "green": 150, + "blue": 150 + }, + "colorStart": { + "red": 0, + "green": 0, + "blue": 0 + }, + "colorFinish": { + "red": 0, + "green": 0, + "blue": 0 + }, + "alphaStart": 0.5, + "alphaFinish": 0, + "emitterShouldTrail": true, + "spinStart": null, + "spinFinish": null, + "clientOnly": false, + "avatarEntity": false, + "localEntity": false, + "faceCamera": false, + "isFacingAvatar": false +}, + { + "id": "{77cbbb3f-e1fe-436c-8b0a-11b45b96181b}", + "type": "ParticleEffect", + "lastEdited": 1617216897203063, + "parentID": "{5b6443c5-ec22-4c8a-9581-85134ceb6856}", + "name": "steam", + "locked": true, + "position": { + "x": 0.03824615478515625, + "y": 5.34733772277832, + "z": 0.057065125554800034 + }, + "dimensions": { + "x": 14.4042329788208, + "y": 14.4042329788208, + "z": 14.4042329788208 + }, + "rotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + }, + "created": 1617216882977327, + "lastEditedBy": "{7f097416-1c40-4cba-aa7c-6e20a7281823}", + "queryAACube": { + "x": 9.363174438476562, + "y": -6.209394454956055, + "z": -3.8040504455566406, + "scale": 24.948863983154297 + }, + "grab": { + "grabbable": false, + "equippableLeftRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + }, + "equippableRightRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + } + }, + "damping": 0, + "angularDamping": 0, + "shapeType": "ellipsoid", + "alpha": 0.014999999664723873, + "textures": "qrc:///serverless/Textures/default_particle.png", + "maxParticles": 100, + "lifespan": 3.069999933242798, + "emitSpeed": 0.4000000059604645, + "speedSpread": 0.10000000149011612, + "emitOrientation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + }, + "polarFinish": 3.1415927410125732, + "emitAcceleration": { + "x": 0, + "y": -1, + "z": 0 + }, + "particleRadius": 1.5, + "radiusStart": 0.5, + "radiusFinish": 0.4000000059604645, + "colorStart": { + "red": 0, + "green": 0, + "blue": 0 + }, + "colorFinish": { + "red": 0, + "green": 0, + "blue": 0 + }, + "alphaStart": 0.5, + "alphaFinish": 0, + "emitterShouldTrail": true, + "spinStart": null, + "spinFinish": null, + "clientOnly": false, + "avatarEntity": false, + "localEntity": false, + "faceCamera": false, + "isFacingAvatar": false +}, + { + "id": "{463bad19-9d44-479e-af6c-9d86ee76fc45}", "type": "Light", - "lastEdited": 1601257171038209, - "parentID": "{70e655f0-9e82-4be9-a31f-bf8d00798b70}", + "lastEdited": 1617217841543322, + "parentID": "{5b6443c5-ec22-4c8a-9581-85134ceb6856}", + "name": "blacklight", + "locked": true, + "position": { + "x": 0, + "y": 1.6233999729156494, + "z": 0 + }, + "dimensions": { + "x": 3.867255687713623, + "y": 3.867255687713623, + "z": 4.0243144035339355 + }, + "rotation": { + "x": -0.7071176171302795, + "y": 3.849143226375418e-12, + "z": -0.000021579189706244506, + "w": 0.7070960402488708 + }, + "created": 1617217525079443, + "lastEditedBy": "{f72b151a-b325-4c9f-805a-7a7a520f82f7}", + "queryAACube": { + "x": 18.404050827026367, + "y": -0.8539872169494629, + "z": 5.2184553146362305, + "scale": 6.790172100067139 + }, + "grab": { + "grabbable": false, + "equippableLeftRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + }, + "equippableRightRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + } + }, + "damping": 0, + "angularDamping": 0, + "isSpotlight": true, + "intensity": -25.700000762939453, + "exponent": 19.6299991607666, + "cutoff": 73.94000244140625, + "falloffRadius": 72.4000015258789, + "clientOnly": false, + "avatarEntity": false, + "localEntity": false, + "faceCamera": false, + "isFacingAvatar": false +}, + { + "id": "{a80ee618-752e-44e4-a9de-04f089b4fe03}", + "type": "Model", + "lastEdited": 1617140830643374, + "parentID": "{6c76b816-5064-424c-84b2-dbb478e47d5d}", + "name": "Dome Glass", + "locked": true, + "position": { + "x": -0.000016799232980702072, + "y": 3.1790809631347656, + "z": 0.000016798756405478343 + }, + "dimensions": { + "x": 44.38727569580078, + "y": 7.3717122077941895, + "z": 44.38727569580078 + }, + "rotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + }, + "created": 1614198986204337, + "lastEditedBy": "{7f097416-1c40-4cba-aa7c-6e20a7281823}", + "queryAACube": { + "x": -3.359670639038086, + "y": -24.09037208557129, + "z": -4.717145919799805, + "scale": 63.20445251464844 + }, + "grab": { + "grabbable": false, + "equippableLeftRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + }, + "equippableRightRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + } + }, + "damping": 0, + "angularDamping": 0, + "shapeType": "static-mesh", + "modelURL": "qrc:///serverless/Models/dome2_glass.glb", + "blendshapeCoefficients": "{\n}\n", + "animation": { + "allowTranslation": false + }, + "clientOnly": false, + "avatarEntity": false, + "localEntity": false, + "faceCamera": false, + "isFacingAvatar": false +}, + { + "id": "{d2ef46ed-c85f-4ab5-bef3-14feb46e9091}", + "type": "Model", + "lastEdited": 1617134717193282, + "parentID": "{6c76b816-5064-424c-84b2-dbb478e47d5d}", + "name": "trees", + "locked": true, + "position": { + "x": -0.000016800577213871293, + "y": -0.5505132675170898, + "z": 0.000016800084267742932 + }, + "dimensions": { + "x": 26.59911346435547, + "y": 9.549417495727539, + "z": 26.465896606445312 + }, + "rotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + }, + "created": 1614198986202454, + "lastEditedBy": "{0b759026-5fea-494c-99de-ab6301e73d4c}", + "queryAACube": { + "x": 8.883026123046875, + "y": -15.577155113220215, + "z": 7.525779724121094, + "scale": 38.71883010864258 + }, + "grab": { + "grabbable": false, + "equippableLeftRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + }, + "equippableRightRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + } + }, + "damping": 0, + "angularDamping": 0, + "modelURL": "qrc:///serverless/Models/Trees1.glb", + "blendshapeCoefficients": "{\n}\n", + "animation": { + "allowTranslation": false + }, + "clientOnly": false, + "avatarEntity": false, + "localEntity": false, + "faceCamera": false, + "isFacingAvatar": false +}, + { + "id": "{f3d87e87-a250-42f8-a285-84cbeb777353}", + "type": "Model", + "lastEdited": 1617140880548597, + "parentID": "{6c76b816-5064-424c-84b2-dbb478e47d5d}", + "name": "Panels", + "locked": true, + "position": { + "x": -0.0001735687255859375, + "y": -5.685686111450195, + "z": 0.00017449550796300173 + }, + "dimensions": { + "x": 36.70009231567383, + "y": 3.3704721927642822, + "z": 25.731521606445312 + }, + "rotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + }, + "created": 1614377167635894, + "lastEditedBy": "{7f097416-1c40-4cba-aa7c-6e20a7281823}", + "queryAACube": { + "x": -5.742575168609619, + "y": -23.827165603637695, + "z": 4.4112548828125, + "scale": 59.816864013671875 + }, + "grab": { + "grabbable": false, + "equippableLeftRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + }, + "equippableRightRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + } + }, + "damping": 0, + "angularDamping": 0, + "modelURL": "qrc:///serverless/Models/Stands.fbx", + "blendshapeCoefficients": "{\n}\n", + "useOriginalPivot": true, + "animation": { + "url": "qrc:///serverless/Models/Stands.fbx", + "allowTranslation": false, + "currentFrame": 68342.515625, + "running": true + }, + "clientOnly": false, + "avatarEntity": false, + "localEntity": false, + "faceCamera": false, + "isFacingAvatar": false +}, + { + "id": "{25638e51-c19c-420a-a9cc-ff02626b62ef}", + "type": "Box", + "lastEdited": 1617134697724395, + "visible": false, + "name": "portalCube", + "locked": true, + "userData": "{\"destination\":\"hifi://172.104.248.237:40102/154.572,-96.8437,-417.945/0,1,0,-1.52586e-05\"}", + "position": { + "x": 0.06047534942626953, + "y": 1.751168131828308, + "z": 4.2923126220703125 + }, + "dimensions": { + "x": 1.6716244220733643, + "y": 2.5448203086853027, + "z": 0.26420968770980835 + }, + "rotation": { + "x": 0.0000152587890625, + "y": 0.6351872682571411, + "z": -0.0000457763671875, + "w": 0.772335410118103 + }, + "created": 1614454164933827, + "lastEditedBy": "{0b759026-5fea-494c-99de-ab6301e73d4c}", + "queryAACube": { + "x": -1.4676154851913452, + "y": 0.22307729721069336, + "z": 2.764221668243408, + "scale": 3.0561816692352295 + }, + "grab": { + "grabbable": false, + "equippableLeftRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + }, + "equippableRightRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + } + }, + "collisionMask": 23, + "collidesWith": "static,dynamic,kinematic,otherAvatar,", + "damping": 0, + "angularDamping": 0, + "script": "qrc:///serverless/Scripts/portal.js", + "scriptTimestamp": 1617134674001, + "color": { + "red": 0, + "green": 180, + "blue": 239 + }, + "shape": "Cube", + "clientOnly": false, + "avatarEntity": false, + "localEntity": false, + "faceCamera": false, + "isFacingAvatar": false +}, + { + "id": "{e0261cde-c5e0-44bf-a747-787c4c867d79}", + "type": "Light", + "lastEdited": 1617140788480898, + "name": "mainDomeLight", + "locked": true, + "position": { + "x": 21.799074172973633, + "y": 10.247319221496582, + "z": 8.613605499267578 + }, + "dimensions": { + "x": 61.943946838378906, + "y": 61.943946838378906, + "z": 61.943946838378906 + }, + "rotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + }, + "created": 1614198986202528, + "lastEditedBy": "{7f097416-1c40-4cba-aa7c-6e20a7281823}", + "queryAACube": { + "x": -31.845956802368164, + "y": -43.39771270751953, + "z": -45.03142547607422, + "scale": 107.2900619506836 + }, + "grab": { + "grabbable": false, + "equippableLeftRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + }, + "equippableRightRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + } + }, + "damping": 0, + "angularDamping": 0, + "collisionMask": 23, + "collidesWith": "static,dynamic,kinematic,otherAvatar,", + "color": { + "red": 255, + "green": 235, + "blue": 87 + }, + "intensity": 0.8999999761581421, + "exponent": 1, + "cutoff": 75, + "falloffRadius": 30, + "clientOnly": false, + "avatarEntity": false, + "localEntity": false, + "faceCamera": false, + "isFacingAvatar": false +}, + { + "id": "{6c76b816-5064-424c-84b2-dbb478e47d5d}", + "type": "Model", + "lastEdited": 1617134709051164, + "name": "Dome", + "locked": true, + "position": { + "x": 21.799192428588867, + "y": 5.9566450119018555, + "z": 8.613487243652344 + }, + "dimensions": { + "x": 54.60203552246094, + "y": 13.734564781188965, + "z": 54.60203552246094 + }, + "rotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + }, + "created": 1614198986203467, + "lastEditedBy": "{0b759026-5fea-494c-99de-ab6301e73d4c}", + "queryAACube": { + "x": -25952.515625, + "y": -25921.0625, + "z": -25953.87890625, + "scale": 51961.5234375 + }, + "grab": { + "grabbable": false, + "equippableLeftRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + }, + "equippableRightRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + } + }, + "damping": 0, + "angularDamping": 0, + "shapeType": "static-mesh", + "modelURL": "qrc:///serverless/Models/dome2.glb", + "blendshapeCoefficients": "{\n}\n", + "animation": { + "allowTranslation": false + }, + "clientOnly": false, + "avatarEntity": false, + "localEntity": false, + "faceCamera": false, + "isFacingAvatar": false +}, + { + "id": "{52c84c1c-6567-4670-9b2b-9aa9bc1456ea}", + "type": "Model", + "lastEdited": 1617134574674644, + "parentID": "{6c76b816-5064-424c-84b2-dbb478e47d5d}", + "locked": true, + "position": { + "x": 4.238387418808998e-12, + "y": -2.3088181018829346, + "z": -7.275957614183426e-12 + }, + "dimensions": { + "x": 5.688337802886963, + "y": 7.10263204574585, + "z": 5.688361644744873 + }, + "rotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + }, + "created": 1614198986204522, + "lastEditedBy": "{78b82b17-4e7a-410f-95ce-1c3ace1cd609}", + "queryAACube": { + "x": -4.850972652435303, + "y": -3.341723680496216, + "z": -4.9151411056518555, + "scale": 38.45905685424805 + }, + "grab": { + "grabbable": false, + "equippableLeftRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + }, + "equippableRightRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + } + }, + "damping": 0, + "angularDamping": 0, + "scriptTimestamp": 1598912452582, + "shapeType": "static-mesh", + "modelURL": "qrc:///serverless/Models/temple5.glb", + "blendshapeCoefficients": "{\n}\n", + "animation": { + "allowTranslation": false + }, + "clientOnly": false, + "avatarEntity": false, + "localEntity": false, + "faceCamera": false, + "isFacingAvatar": false +}, + { + "id": "{d344138a-adb8-4ae7-9aae-447266a48869}", + "type": "Light", + "lastEdited": 1617140788480765, + "parentID": "{b9444e0f-1cda-4ad3-80e5-9ef3bf0ec6cd}", + "name": "mirrorLight", + "locked": true, + "position": { + "x": -0.0015339851379394531, + "y": -0.000001519918441772461, + "z": 0.26983165740966797 + }, + "dimensions": { + "x": 3.8637032508850098, + "y": 3.8637032508850098, + "z": 4 + }, + "rotation": { + "x": 0.0000152587890625, + "y": 1, + "z": 0.0000152587890625, + "w": -0.0000152587890625 + }, + "created": 1614453808970411, + "lastEditedBy": "{7f097416-1c40-4cba-aa7c-6e20a7281823}", + "queryAACube": { + "x": 6.681288719177246, + "y": -3.11796498298645, + "z": 35.638336181640625, + "scale": 6.771735668182373 + }, + "grab": { + "grabbable": false, + "equippableLeftRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + }, + "equippableRightRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + } + }, + "damping": 0, + "angularDamping": 0, + "color": { + "red": 255, + "green": 255, + "blue": 235 + }, + "isSpotlight": true, + "intensity": 0.699999988079071, + "exponent": 1, + "cutoff": 75, + "falloffRadius": 10, + "clientOnly": false, + "avatarEntity": false, + "localEntity": false, + "faceCamera": false, + "isFacingAvatar": false +}, + { + "id": "{0d85144d-a15c-4d1b-84a5-b3a379d31798}", + "type": "Light", + "lastEdited": 1617140731977291, + "parentID": "{b9444e0f-1cda-4ad3-80e5-9ef3bf0ec6cd}", + "name": "Mirror Light", + "locked": true, + "position": { + "x": 0.08925724029541016, + "y": 0.4832591116428375, + "z": 0.20032405853271484 + }, + "dimensions": { + "x": 6.747879505157471, + "y": 6.747879505157471, + "z": 6.985918998718262 + }, + "rotation": { + "x": -0.999969482421875, + "y": -0.0001373291015625, + "z": -0.0000762939453125, + "w": 0.00856029987335205 + }, + "created": 1614198986203073, + "lastEditedBy": "{7f097416-1c40-4cba-aa7c-6e20a7281823}", + "queryAACube": { + "x": 4.045637607574463, + "y": -5.162182331085205, + "z": 33.07383346557617, + "scale": 11.826699256896973 + }, + "grab": { + "grabbable": false, + "equippableLeftRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + }, + "equippableRightRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + } + }, + "damping": 0, + "angularDamping": 0, + "isSpotlight": true, + "intensity": 2, + "exponent": 1, + "cutoff": 75, + "falloffRadius": 5.699999809265137, + "clientOnly": false, + "avatarEntity": false, + "localEntity": false, + "faceCamera": false, + "isFacingAvatar": false +}, + { + "id": "{89f2cd0b-782f-4e4e-a674-587ae5893f7d}", + "type": "Light", + "lastEdited": 1617140712801743, + "parentID": "{52c84c1c-6567-4670-9b2b-9aa9bc1456ea}", + "name": "templeLight", "locked": true, "position": { "x": -0.10364770889282227, @@ -819,12 +1415,12 @@ "z": -0.0000152587890625, "w": 1 }, - "created": 1598733516961728, - "lastEditedBy": "{70099fa7-d189-42dc-80a0-02c37d1942d1}", + "created": 1614198986204117, + "lastEditedBy": "{7f097416-1c40-4cba-aa7c-6e20a7281823}", "queryAACube": { - "x": -4.850877285003662, - "y": -7.476483345031738, - "z": -4.915230751037598, + "x": 23.39162826538086, + "y": -2.135477066040039, + "z": 21.969898223876953, "scale": 9.494348526000977 }, "grab": { @@ -860,770 +1456,10 @@ "isFacingAvatar": false }, { - "id": "{74fcc311-ac54-4c92-b658-67b616d89124}", - "type": "Model", - "lastEdited": 1601257562566663, - "parentID": "{ee9b7ff6-97f0-4957-aea1-3b517b6e68b8}", - "locked": true, - "position": { - "x": 2.8377300509419e-13, - "y": -5.038946151733398, - "z": 0 - }, - "dimensions": { - "x": 1.7757656574249268, - "y": 1.2933320999145508, - "z": 1.7757654190063477 - }, - "rotation": { - "x": -0.0000152587890625, - "y": -0.0000152587890625, - "z": -0.0000152587890625, - "w": 1 - }, - "created": 1600122372976180, - "lastEditedBy": "{68e3a576-152f-48c2-adf3-6dde43ee51ba}", - "queryAACube": { - "x": -15.658815383911133, - "y": -20.814706802368164, - "z": -15.639467239379883, - "scale": 31.393596649169922 - }, - "grab": { - "grabbable": false, - "equippableLeftRotation": { - "x": -0.0000152587890625, - "y": -0.0000152587890625, - "z": -0.0000152587890625, - "w": 1 - }, - "equippableRightRotation": { - "x": -0.0000152587890625, - "y": -0.0000152587890625, - "z": -0.0000152587890625, - "w": 1 - } - }, - "damping": 0, - "angularDamping": 0, - "shapeType": "static-mesh", - "modelURL": "https://cdn-1.vircadia.com/us-e-1/DomainContent/Tutorial/Models/bowl2.fbx", - "blendshapeCoefficients": "{\n}\n", - "animation": { - "allowTranslation": false - }, - "clientOnly": false, - "avatarEntity": false, - "localEntity": false, - "faceCamera": false, - "isFacingAvatar": false -}, - { - "id": "{1cfc9c02-50cc-4c22-bf79-9aeb57522b04}", - "type": "Light", - "lastEdited": 1601257171037813, - "parentID": "{ee9b7ff6-97f0-4957-aea1-3b517b6e68b8}", - "name": "TreeLight_1", - "locked": true, - "position": { - "x": 9.000457763671875, - "y": -0.2475719451904297, - "z": 8.999537467956543 - }, - "dimensions": { - "x": 10.24996280670166, - "y": 10.24996280670166, - "z": 10.24996280670166 - }, - "rotation": { - "x": -0.0000152587890625, - "y": -0.0000152587890625, - "z": -0.0000152587890625, - "w": 1 - }, - "created": 1600983484676879, - "lastEditedBy": "{70099fa7-d189-42dc-80a0-02c37d1942d1}", - "queryAACube": { - "x": 0.12341690063476562, - "y": -10.132533073425293, - "z": 0.1231222152709961, - "scale": 17.753456115722656 - }, - "grab": { - "grabbable": false, - "equippableLeftRotation": { - "x": -0.0000152587890625, - "y": -0.0000152587890625, - "z": -0.0000152587890625, - "w": 1 - }, - "equippableRightRotation": { - "x": -0.0000152587890625, - "y": -0.0000152587890625, - "z": -0.0000152587890625, - "w": 1 - } - }, - "damping": 0, - "angularDamping": 0, - "color": { - "red": 69, - "green": 106, - "blue": 255 - }, - "intensity": 17.799999237060547, - "exponent": 1, - "cutoff": 75, - "falloffRadius": 26.100000381469727, - "clientOnly": false, - "avatarEntity": false, - "localEntity": false, - "faceCamera": false, - "isFacingAvatar": false -}, - { - "id": "{8233c8d0-ae61-4b7c-8ac4-8200e897dc86}", - "type": "Light", - "lastEdited": 1601257171037784, - "parentID": "{ee9b7ff6-97f0-4957-aea1-3b517b6e68b8}", - "name": "TreeLight_2", - "locked": true, - "position": { - "x": -8.819664001464844, - "y": -0.24757671356201172, - "z": 8.97313404083252 - }, - "dimensions": { - "x": 10.24996280670166, - "y": 10.24996280670166, - "z": 10.24996280670166 - }, - "rotation": { - "x": -0.0000152587890625, - "y": -0.0000152587890625, - "z": -0.0000152587890625, - "w": 1 - }, - "created": 1600983484676428, - "lastEditedBy": "{70099fa7-d189-42dc-80a0-02c37d1942d1}", - "queryAACube": { - "x": -17.696704864501953, - "y": -10.13199520111084, - "z": 0.0961751937866211, - "scale": 17.753456115722656 - }, - "grab": { - "grabbable": false, - "equippableLeftRotation": { - "x": -0.0000152587890625, - "y": -0.0000152587890625, - "z": -0.0000152587890625, - "w": 1 - }, - "equippableRightRotation": { - "x": -0.0000152587890625, - "y": -0.0000152587890625, - "z": -0.0000152587890625, - "w": 1 - } - }, - "damping": 0, - "angularDamping": 0, - "color": { - "red": 191, - "green": 31, - "blue": 255 - }, - "intensity": 15, - "exponent": 1, - "cutoff": 75, - "falloffRadius": 26.100000381469727, - "clientOnly": false, - "avatarEntity": false, - "localEntity": false, - "faceCamera": false, - "isFacingAvatar": false -}, - { - "id": "{a09d75c8-91d7-470f-a7ff-d49f59d8fd66}", - "type": "Light", - "lastEdited": 1601257171037821, - "locked": true, - "position": { - "x": 20.86223793029785, - "y": 3.7069454193115234, - "z": 22.919116973876953 - }, - "dimensions": { - "x": 7.6550493240356445, - "y": 7.6550493240356445, - "z": 7.6550493240356445 - }, - "rotation": { - "x": -0.0000152587890625, - "y": -0.0000152587890625, - "z": -0.0000152587890625, - "w": 1 - }, - "created": 1601156079314076, - "lastEditedBy": "{70099fa7-d189-42dc-80a0-02c37d1942d1}", - "queryAACube": { - "x": 14.232770919799805, - "y": -2.9225220680236816, - "z": 16.289649963378906, - "scale": 13.25893497467041 - }, - "grab": { - "grabbable": false, - "equippableLeftRotation": { - "x": -0.0000152587890625, - "y": -0.0000152587890625, - "z": -0.0000152587890625, - "w": 1 - }, - "equippableRightRotation": { - "x": -0.0000152587890625, - "y": -0.0000152587890625, - "z": -0.0000152587890625, - "w": 1 - } - }, - "damping": 0, - "angularDamping": 0, - "intensity": 5, - "exponent": 1, - "cutoff": 75, - "falloffRadius": 1, - "clientOnly": false, - "avatarEntity": false, - "localEntity": false, - "faceCamera": false, - "isFacingAvatar": false -}, - { - "id": "{70e655f0-9e82-4be9-a31f-bf8d00798b70}", - "type": "Model", - "lastEdited": 1601257491990357, - "parentID": "{ee9b7ff6-97f0-4957-aea1-3b517b6e68b8}", - "locked": true, - "position": { - "x": 4.238387418808998e-12, - "y": -2.3088181018829346, - "z": -7.275957614183426e-12 - }, - "dimensions": { - "x": 5.688337802886963, - "y": 7.10263204574585, - "z": 5.688361644744873 - }, - "rotation": { - "x": -0.0000152587890625, - "y": -0.0000152587890625, - "z": -0.0000152587890625, - "w": 1 - }, - "created": 1598733420183555, - "lastEditedBy": "{68e3a576-152f-48c2-adf3-6dde43ee51ba}", - "queryAACube": { - "x": -5.365779876708984, - "y": -8.682729721069336, - "z": -5.365577697753906, - "scale": 10.73135757446289 - }, - "grab": { - "grabbable": false, - "equippableLeftRotation": { - "x": -0.0000152587890625, - "y": -0.0000152587890625, - "z": -0.0000152587890625, - "w": 1 - }, - "equippableRightRotation": { - "x": -0.0000152587890625, - "y": -0.0000152587890625, - "z": -0.0000152587890625, - "w": 1 - } - }, - "damping": 0, - "angularDamping": 0, - "scriptTimestamp": 1598912452582, - "shapeType": "static-mesh", - "modelURL": "https://cdn-1.vircadia.com/us-e-1/DomainContent/Tutorial/Models/SmallTemple5.glb", - "blendshapeCoefficients": "{\n}\n", - "animation": { - "allowTranslation": false - }, - "clientOnly": false, - "avatarEntity": false, - "localEntity": false, - "faceCamera": false, - "isFacingAvatar": false -}, - { - "id": "{a700075e-206d-447c-a0f2-cdd2d377c621}", - "type": "ParticleEffect", - "lastEdited": 1601257171034843, - "parentID": "{74fcc311-ac54-4c92-b658-67b616d89124}", - "locked": true, - "position": { - "x": 0.03811454772949219, - "y": 0.9292696714401245, - "z": 0.05720067024230957 - }, - "dimensions": { - "x": 18.12510108947754, - "y": 18.12510108947754, - "z": 18.12510108947754 - }, - "rotation": { - "x": -0.0000152587890625, - "y": -0.0000152587890625, - "z": -0.0000152587890625, - "w": 1 - }, - "created": 1600122719130701, - "lastEditedBy": "{70099fa7-d189-42dc-80a0-02c37d1942d1}", - "queryAACube": { - "x": -15.658815383911133, - "y": -20.814706802368164, - "z": -15.639467239379883, - "scale": 31.393596649169922 - }, - "grab": { - "grabbable": false, - "equippableLeftRotation": { - "x": -0.0000152587890625, - "y": -0.0000152587890625, - "z": -0.0000152587890625, - "w": 1 - }, - "equippableRightRotation": { - "x": -0.0000152587890625, - "y": -0.0000152587890625, - "z": -0.0000152587890625, - "w": 1 - } - }, - "damping": 0, - "angularDamping": 0, - "shapeType": "ellipsoid", - "alpha": 0, - "textures": "http://eu-central-1.linodeobjects.com/vircadia-assets/interface/default/default_particle.png", - "maxParticles": 100, - "lifespan": 2.5, - "emitRate": 20, - "emitSpeed": 0.5, - "speedSpread": 0.10000000149011612, - "emitOrientation": { - "x": -0.0000152587890625, - "y": -0.0000152587890625, - "z": -0.0000152587890625, - "w": 1 - }, - "polarFinish": 3.1415927410125732, - "emitAcceleration": { - "x": 0, - "y": -2, - "z": 0 - }, - "particleRadius": 1.5, - "radiusStart": 0.5, - "radiusFinish": 0.4000000059604645, - "colorStart": { - "red": 0, - "green": 0, - "blue": 0 - }, - "colorFinish": { - "red": 0, - "green": 0, - "blue": 0 - }, - "alphaStart": 0.5, - "alphaFinish": 0, - "emitterShouldTrail": true, - "spinStart": null, - "spinFinish": null, - "clientOnly": false, - "avatarEntity": false, - "localEntity": false, - "faceCamera": false, - "isFacingAvatar": false -}, - { - "id": "{1257cabd-b553-482e-92d8-be6da0a65769}", - "type": "Shape", - "lastEdited": 1601258198368340, - "parentID": "{ee9b7ff6-97f0-4957-aea1-3b517b6e68b8}", - "locked": true, - "position": { - "x": -3.5344172033546783e-11, - "y": -7.235068321228027, - "z": -5.820766091346741e-11 - }, - "dimensions": { - "x": 54.22285461425781, - "y": 0.890187680721283, - "z": 54.22285461425781 - }, - "rotation": { - "x": -0.0000152587890625, - "y": -0.0000152587890625, - "z": -0.0000152587890625, - "w": 1 - }, - "created": 1600721905502275, - "lastEditedBy": "{0ff4c9e5-fb36-4bdd-9fbc-b2ed60e1aa3b}", - "queryAACube": { - "x": -38.34418487548828, - "y": -46.58723449707031, - "z": -38.34368133544922, - "scale": 76.6878662109375 - }, - "grab": { - "grabbable": false, - "equippableLeftRotation": { - "x": -0.0000152587890625, - "y": -0.0000152587890625, - "z": -0.0000152587890625, - "w": 1 - }, - "equippableRightRotation": { - "x": -0.0000152587890625, - "y": -0.0000152587890625, - "z": -0.0000152587890625, - "w": 1 - } - }, - "damping": 0, - "angularDamping": 0, - "color": { - "red": 0, - "green": 0, - "blue": 0 - }, - "shape": "Cylinder", - "clientOnly": false, - "avatarEntity": false, - "localEntity": false, - "faceCamera": false, - "isFacingAvatar": false -}, - { - "id": "{9ca25d38-4e0b-4eee-8736-0f569f053c56}", - "type": "Light", - "lastEdited": 1601257171036649, - "locked": true, - "position": { - "x": 18.585229873657227, - "y": 8.62344741821289, - "z": 20.33745002746582 - }, - "dimensions": { - "x": 61.943946838378906, - "y": 61.943946838378906, - "z": 61.943946838378906 - }, - "rotation": { - "x": -0.0000152587890625, - "y": -0.0000152587890625, - "z": -0.0000152587890625, - "w": 1 - }, - "created": 1600985305517745, - "lastEditedBy": "{70099fa7-d189-42dc-80a0-02c37d1942d1}", - "queryAACube": { - "x": -35.05979919433594, - "y": -45.021583557128906, - "z": -33.307579040527344, - "scale": 107.2900619506836 - }, - "grab": { - "grabbable": false, - "equippableLeftRotation": { - "x": -0.0000152587890625, - "y": -0.0000152587890625, - "z": -0.0000152587890625, - "w": 1 - }, - "equippableRightRotation": { - "x": -0.0000152587890625, - "y": -0.0000152587890625, - "z": -0.0000152587890625, - "w": 1 - } - }, - "damping": 0, - "angularDamping": 0, - "collisionMask": 23, - "collidesWith": "static,dynamic,kinematic,otherAvatar,", - "color": { - "red": 255, - "green": 235, - "blue": 87 - }, - "exponent": 1, - "cutoff": 75, - "falloffRadius": 30, - "clientOnly": false, - "avatarEntity": false, - "localEntity": false, - "faceCamera": false, - "isFacingAvatar": false -}, - { - "id": "{30d38443-925c-44d2-a6dd-bfe90cf03169}", - "type": "Model", - "lastEdited": 1601258262276262, - "parentID": "{ee9b7ff6-97f0-4957-aea1-3b517b6e68b8}", - "name": "Dome Glass", - "locked": true, - "position": { - "x": -0.000016799232980702072, - "y": 3.1790809631347656, - "z": 0.000016798756405478343 - }, - "dimensions": { - "x": 44.38727569580078, - "y": 7.3717122077941895, - "z": 44.38727569580078 - }, - "rotation": { - "x": -0.0000152587890625, - "y": -0.0000152587890625, - "z": -0.0000152587890625, - "w": 1 - }, - "created": 1601235894674966, - "lastEditedBy": "{0ff4c9e5-fb36-4bdd-9fbc-b2ed60e1aa3b}", - "queryAACube": { - "x": -31.602176666259766, - "y": -29.431379318237305, - "z": -31.602275848388672, - "scale": 63.20445251464844 - }, - "grab": { - "grabbable": false, - "equippableLeftRotation": { - "x": -0.0000152587890625, - "y": -0.0000152587890625, - "z": -0.0000152587890625, - "w": 1 - }, - "equippableRightRotation": { - "x": -0.0000152587890625, - "y": -0.0000152587890625, - "z": -0.0000152587890625, - "w": 1 - } - }, - "damping": 0, - "angularDamping": 0, - "shapeType": "static-mesh", - "modelURL": "https://cdn-1.vircadia.com/us-e-1/DomainContent/Tutorial/Models/dome2_glass.glb", - "blendshapeCoefficients": "{\n}\n", - "animation": { - "allowTranslation": false - }, - "clientOnly": false, - "avatarEntity": false, - "localEntity": false, - "faceCamera": false, - "isFacingAvatar": false -}, - { - "id": "{369d555d-f945-4555-9ef3-8f323fea547c}", - "type": "Light", - "lastEdited": 1601257171034893, - "parentID": "{ee9b7ff6-97f0-4957-aea1-3b517b6e68b8}", - "name": "TreeLight_4", - "locked": true, - "position": { - "x": -8.819656372070312, - "y": -0.07544326782226562, - "z": -9.190401077270508 - }, - "dimensions": { - "x": 10.24996280670166, - "y": 10.24996280670166, - "z": 10.24996280670166 - }, - "rotation": { - "x": -0.0000152587890625, - "y": -0.0000152587890625, - "z": -0.0000152587890625, - "w": 1 - }, - "created": 1600983484676513, - "lastEditedBy": "{70099fa7-d189-42dc-80a0-02c37d1942d1}", - "queryAACube": { - "x": -17.696136474609375, - "y": -9.960415840148926, - "z": -18.067365646362305, - "scale": 17.753456115722656 - }, - "grab": { - "grabbable": false, - "equippableLeftRotation": { - "x": -0.0000152587890625, - "y": -0.0000152587890625, - "z": -0.0000152587890625, - "w": 1 - }, - "equippableRightRotation": { - "x": -0.0000152587890625, - "y": -0.0000152587890625, - "z": -0.0000152587890625, - "w": 1 - } - }, - "damping": 0, - "angularDamping": 0, - "color": { - "red": 250, - "green": 214, - "blue": 32 - }, - "intensity": 15, - "exponent": 1, - "cutoff": 75, - "falloffRadius": 26.100000381469727, - "clientOnly": false, - "avatarEntity": false, - "localEntity": false, - "faceCamera": false, - "isFacingAvatar": false -}, - { - "id": "{5cb5d8ee-d17b-4d72-941a-bef2f8d8a91e}", - "type": "Material", - "lastEdited": 1601257171038436, - "parentID": "{523b7462-9a49-4949-8d31-d84749cbab0a}", - "parentJointIndex": 0, - "name": "VClogo", - "locked": true, - "userData": "{\"verticalOffset\":0,\"segments\":16,\"updateInterval\":1000}", - "position": { - "x": -0.00001823902130126953, - "y": -0.0002636909484863281, - "z": 0.10145187377929688 - }, - "rotation": { - "x": 0.0012969970703125, - "y": 0.0000152587890625, - "z": 0.0000457763671875, - "w": 0.999969482421875 - }, - "created": 1600983484676983, - "lastEditedBy": "{70099fa7-d189-42dc-80a0-02c37d1942d1}", - "queryAACube": { - "x": 19.472692489624023, - "y": -4.3051862716674805, - "z": -2.6303162574768066, - "scale": 4.506556510925293 - }, - "canCastShadow": false, - "grab": { - "grabbable": false, - "equippableLeftRotation": { - "x": -0.0000152587890625, - "y": -0.0000152587890625, - "z": -0.0000152587890625, - "w": 1 - }, - "equippableRightRotation": { - "x": -0.0000152587890625, - "y": -0.0000152587890625, - "z": -0.0000152587890625, - "w": 1 - } - }, - "collisionMask": 23, - "collidesWith": "static,dynamic,kinematic,otherAvatar,", - "scriptTimestamp": 1597610738986, - "materialURL": "materialData", - "priority": 3, - "parentMaterialName": "[mat::NeonTubes]", - "materialMappingPos": { - "x": 0.8125, - "y": 0 - }, - "materialData": "{\"materialVersion\":1,\"materials\":[{\"name\":\"baseMaterial2\",\"model\":\"hifi_pbr\",\"opacity\":1,\"albedo\":[0,0,0],\"roughness\":1,\"metallic\":0,\"emissive\":[2.3,2,2],\"scattering\":0,\"unlit\":false,\"opacityMapMode\":\"OPACITY_MAP_MASK\",\"cullFaceMode\":\"CULL_BACK\",\"defaultFallthrough\":false}]}", - "clientOnly": false, - "avatarEntity": false, - "localEntity": false, - "faceCamera": false, - "isFacingAvatar": false -}, - { - "id": "{9bfb2207-70d2-4578-ba34-016449cc1569}", - "type": "Light", - "lastEdited": 1601257171035017, - "parentID": "{ee9b7ff6-97f0-4957-aea1-3b517b6e68b8}", - "name": "TreeLight_3", - "locked": true, - "position": { - "x": 9.418960571289062, - "y": -0.07544326782226562, - "z": -9.190400123596191 - }, - "dimensions": { - "x": 10.24996280670166, - "y": 10.24996280670166, - "z": 10.24996280670166 - }, - "rotation": { - "x": -0.0000152587890625, - "y": -0.0000152587890625, - "z": -0.0000152587890625, - "w": 1 - }, - "created": 1600983484676750, - "lastEditedBy": "{70099fa7-d189-42dc-80a0-02c37d1942d1}", - "queryAACube": { - "x": 0.54248046875, - "y": -9.960972785949707, - "z": -18.06680679321289, - "scale": 17.753456115722656 - }, - "grab": { - "grabbable": false, - "equippableLeftRotation": { - "x": -0.0000152587890625, - "y": -0.0000152587890625, - "z": -0.0000152587890625, - "w": 1 - }, - "equippableRightRotation": { - "x": -0.0000152587890625, - "y": -0.0000152587890625, - "z": -0.0000152587890625, - "w": 1 - } - }, - "damping": 0, - "angularDamping": 0, - "color": { - "red": 69, - "green": 255, - "blue": 69 - }, - "intensity": 20.5, - "exponent": 1, - "cutoff": 75, - "falloffRadius": 26.100000381469727, - "clientOnly": false, - "avatarEntity": false, - "localEntity": false, - "faceCamera": false, - "isFacingAvatar": false -}, - { - "id": "{72cb8c19-406e-4979-b1b2-5a2e4247b278}", + "id": "{3a740728-5d6f-4a3b-a710-49a8c6cb1ae0}", "type": "Zone", - "lastEdited": 1601258385750995, - "parentID": "{ee9b7ff6-97f0-4957-aea1-3b517b6e68b8}", + "lastEdited": 1617140938876740, + "parentID": "{6c76b816-5064-424c-84b2-dbb478e47d5d}", "name": "MainDomeZone", "locked": true, "userData": "{\n \"grabbableKey\": {\n \"grabbable\": false,\n \"ignoreIK\": false\n }\n}", @@ -1638,17 +1474,17 @@ "z": 10000 }, "rotation": { - "x": -0.14595149457454681, - "y": -0.023671336472034454, - "z": 0.0017202693270519376, - "w": 0.9890071153640747 + "x": 0.44721001386642456, + "y": 0.5232430100440979, + "z": 0.06775686889886856, + "w": 0.7222389578819275 }, - "created": 1593477197502695, - "lastEditedBy": "{0ff4c9e5-fb36-4bdd-9fbc-b2ed60e1aa3b}", + "created": 1614198986203133, + "lastEditedBy": "{7f097416-1c40-4cba-aa7c-6e20a7281823}", "queryAACube": { - "x": -25980.759765625, - "y": -25926.40234375, - "z": -25980.763671875, + "x": -25952.515625, + "y": -25921.0625, + "z": -25953.87890625, "scale": 51961.5234375 }, "grab": { @@ -1680,7 +1516,7 @@ "green": 127, "blue": 68 }, - "intensity": 2, + "intensity": 1.5, "direction": { "x": 0.20760862529277802, "y": -0.7512804269790649, @@ -1691,8 +1527,8 @@ "shadowMaxDistance": 57.79999923706055 }, "ambientLight": { - "ambientIntensity": 0.20000000298023224, - "ambientURL": "https://cdn-1.vircadia.com/us-e-1/DomainContent/Tutorial/Images/galaxySkybox.png" + "ambientIntensity": 0.8999999761581421, + "ambientURL": "qrc:///serverless/Textures/galaxySkybox.png" }, "skybox": { "color": { @@ -1700,7 +1536,7 @@ "green": 235, "blue": 235 }, - "url": "https://cdn-1.vircadia.com/us-e-1/DomainContent/Tutorial/Images/galaxySkybox.png" + "url": "qrc:///serverless/Textures/galaxySkybox.png" }, "haze": { "hazeRange": 50, @@ -1738,21 +1574,21 @@ "isFacingAvatar": false }, { - "id": "{a701dd17-68d7-4252-8c50-d18ac081ff1e}", - "type": "Model", - "lastEdited": 1601257171034627, - "parentID": "{ee9b7ff6-97f0-4957-aea1-3b517b6e68b8}", - "name": "trees", + "id": "{c5a35dbf-8253-4782-b121-26d0c609aad5}", + "type": "Shape", + "lastEdited": 1617140925236269, + "parentID": "{6c76b816-5064-424c-84b2-dbb478e47d5d}", + "name": "MainCollision", "locked": true, "position": { - "x": -0.000016800577213871293, - "y": -0.5505132675170898, - "z": 0.000016800084267742932 + "x": 0.00002288818359375, + "y": -6.380376815795898, + "z": -0.00002409383887425065 }, "dimensions": { - "x": 26.59911346435547, - "y": 9.549417495727539, - "z": 26.465896606445312 + "x": 54.22285461425781, + "y": 0.890187680721283, + "z": 54.22285461425781 }, "rotation": { "x": -0.0000152587890625, @@ -1760,13 +1596,13 @@ "z": -0.0000152587890625, "w": 1 }, - "created": 1600983484676798, - "lastEditedBy": "{70099fa7-d189-42dc-80a0-02c37d1942d1}", + "created": 1614198986204167, + "lastEditedBy": "{7f097416-1c40-4cba-aa7c-6e20a7281823}", "queryAACube": { - "x": -19.359479904174805, - "y": -20.918161392211914, - "z": -19.359350204467773, - "scale": 38.71883010864258 + "x": -10.101629257202148, + "y": -40.391536712646484, + "z": -11.458602905273438, + "scale": 76.6878662109375 }, "grab": { "grabbable": false, @@ -1785,11 +1621,12 @@ }, "damping": 0, "angularDamping": 0, - "modelURL": "https://cdn-1.vircadia.com/us-e-1/DomainContent/Tutorial/Models/Trees1.glb", - "blendshapeCoefficients": "{\n}\n", - "animation": { - "allowTranslation": false + "color": { + "red": 0, + "green": 0, + "blue": 0 }, + "shape": "Cylinder", "clientOnly": false, "avatarEntity": false, "localEntity": false, @@ -1797,33 +1634,37 @@ "isFacingAvatar": false }, { - "id": "{3deeadb3-5bab-4d1a-a8df-d3d4b192c76a}", - "type": "Model", - "lastEdited": 1601257171037923, + "id": "{99f186d7-a623-4339-930e-1689d62a23e0}", + "type": "Zone", + "lastEdited": 1617134741129783, + "parentID": "{b9444e0f-1cda-4ad3-80e5-9ef3bf0ec6cd}", + "visible": false, + "name": "mirror_zone", "locked": true, + "userData": "{\"grabbableKey\":{\"grabbable\":false},\"original\":{\"id\":\"{da1e2fcd-d69b-47d7-b861-25b31f1c7175}\"}}", "position": { - "x": 0, - "y": 0.42019224166870117, - "z": 7.884521484375 + "x": -0.01726818084716797, + "y": 0.2113490104675293, + "z": 1.704751968383789 }, "dimensions": { - "x": 2.6655850410461426, - "y": 3.2029099464416504, - "z": 0.21786867082118988 + "x": 2.8482747077941895, + "y": 3.153184413909912, + "z": 3.6725244522094727 }, "rotation": { - "x": -0.0000152587890625, - "y": 0.4771343469619751, - "z": -0.0001068115234375, - "w": 0.8788127899169922 + "x": -0.0161592960357666, + "y": 0.0000152587890625, + "z": -0.006424069404602051, + "w": 0.999847412109375 }, - "created": 1601249822682598, - "lastEditedBy": "{70099fa7-d189-42dc-80a0-02c37d1942d1}", + "created": 1614198986202623, + "lastEditedBy": "{0b759026-5fea-494c-99de-ab6301e73d4c}", "queryAACube": { - "x": -2.086350917816162, - "y": -1.666158676147461, - "z": 5.798170566558838, - "scale": 4.172701835632324 + "x": 8.46190071105957, + "y": -2.328949451446533, + "z": 35.4334716796875, + "scale": 5.6162872314453125 }, "grab": { "grabbable": false, @@ -1840,16 +1681,9 @@ "w": 1 } }, - "damping": 0, - "angularDamping": 0, - "modelURL": "https://cdn-1.vircadia.com/us-e-1/DomainContent/Tutorial/Models/portal2.fbx", - "blendshapeCoefficients": "{\n}\n", - "animation": { - "url": "https://cdn-1.vircadia.com/us-e-1/DomainContent/Tutorial/Models/portal2.fbx", - "allowTranslation": false, - "currentFrame": 57265.5, - "running": true - }, + "script": "qrc:///serverless/Scripts/mirrorReflection.js", + "scriptTimestamp": 1601084668318, + "shapeType": "box", "clientOnly": false, "avatarEntity": false, "localEntity": false, @@ -1857,35 +1691,35 @@ "isFacingAvatar": false }, { - "id": "{9debec8d-26a7-4838-ac32-cce1fe59c72e}", + "id": "{33d5305a-641d-4a4f-baa9-23ec22bb9d48}", "type": "Light", - "lastEdited": 1601257171038206, - "parentID": "{ee9b7ff6-97f0-4957-aea1-3b517b6e68b8}", - "name": "Mirror Light", + "lastEdited": 1617140731977526, + "parentID": "{6c76b816-5064-424c-84b2-dbb478e47d5d}", + "name": "TreeLight_4", "locked": true, "position": { - "x": 20.063940048217773, - "y": -2.7442214488983154, - "z": -8.21159553527832 + "x": -8.819656372070312, + "y": -0.07544326782226562, + "z": -9.190401077270508 }, "dimensions": { - "x": 6.488605499267578, - "y": 6.488605499267578, - "z": 6.488605499267578 + "x": 10.24996280670166, + "y": 10.24996280670166, + "z": 10.24996280670166 }, "rotation": { "x": -0.0000152587890625, - "y": 0.17360186576843262, - "z": -0.0000762939453125, - "w": 0.9848020076751709 + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 }, - "created": 1601081824307531, - "lastEditedBy": "{70099fa7-d189-42dc-80a0-02c37d1942d1}", + "created": 1614198986202730, + "lastEditedBy": "{7f097416-1c40-4cba-aa7c-6e20a7281823}", "queryAACube": { - "x": 14.444778442382812, - "y": -9.372614860534668, - "z": -13.83016586303711, - "scale": 11.238594055175781 + "x": 10.546369552612305, + "y": -4.619409561157227, + "z": 8.817764282226562, + "scale": 17.753456115722656 }, "grab": { "grabbable": false, @@ -1904,10 +1738,15 @@ }, "damping": 0, "angularDamping": 0, - "intensity": 3, + "color": { + "red": 250, + "green": 214, + "blue": 32 + }, + "intensity": 15, "exponent": 1, "cutoff": 75, - "falloffRadius": 16.600000381469727, + "falloffRadius": 26.100000381469727, "clientOnly": false, "avatarEntity": false, "localEntity": false, @@ -1915,10 +1754,395 @@ "isFacingAvatar": false }, { - "id": "{b7a9788d-58a9-4999-8e8f-55fe07acb486}", + "id": "{67b2c758-41ea-4448-80eb-f171d792ab5c}", + "type": "Box", + "lastEdited": 1617140777516274, + "visible": false, + "name": "LandingPoint", + "locked": true, + "position": { + "x": 21.792818069458008, + "y": 0, + "z": 25.644922256469727 + }, + "dimensions": { + "x": 3.2382099628448486, + "y": 0.20000000298023224, + "z": 1.8551445007324219 + }, + "rotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + }, + "created": 1617140160943861, + "lastEditedBy": "{7f097416-1c40-4cba-aa7c-6e20a7281823}", + "queryAACube": { + "x": 19.924158096313477, + "y": -1.8686603307724, + "z": 23.776262283325195, + "scale": 3.7373206615448 + }, + "grab": { + "grabbable": false, + "equippableLeftRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + }, + "equippableRightRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + } + }, + "damping": 0, + "angularDamping": 0, + "color": { + "red": 0, + "green": 180, + "blue": 239 + }, + "shape": "Cube", + "clientOnly": false, + "avatarEntity": false, + "localEntity": false, + "faceCamera": false, + "isFacingAvatar": false +}, + { + "id": "{a4421b2e-123a-4619-8788-e36eef8029ea}", + "type": "Light", + "lastEdited": 1617140788480412, + "parentID": "{6c76b816-5064-424c-84b2-dbb478e47d5d}", + "name": "TreeLight_2", + "locked": true, + "position": { + "x": -8.819664001464844, + "y": -0.24757671356201172, + "z": 8.97313404083252 + }, + "dimensions": { + "x": 10.24996280670166, + "y": 10.24996280670166, + "z": 10.24996280670166 + }, + "rotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + }, + "created": 1614198986202574, + "lastEditedBy": "{7f097416-1c40-4cba-aa7c-6e20a7281823}", + "queryAACube": { + "x": 10.54580307006836, + "y": -4.790988445281982, + "z": 26.981304168701172, + "scale": 17.753456115722656 + }, + "grab": { + "grabbable": false, + "equippableLeftRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + }, + "equippableRightRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + } + }, + "damping": 0, + "angularDamping": 0, + "color": { + "red": 191, + "green": 31, + "blue": 255 + }, + "intensity": 15, + "exponent": 1, + "cutoff": 75, + "falloffRadius": 26.100000381469727, + "clientOnly": false, + "avatarEntity": false, + "localEntity": false, + "faceCamera": false, + "isFacingAvatar": false +}, + { + "id": "{523e1c2d-1603-47bb-80f1-314747b161b0}", + "type": "Material", + "lastEdited": 1617140991884044, + "parentID": "{f3d87e87-a250-42f8-a285-84cbeb777353}", + "parentJointIndex": 4, + "name": "moveMaterial", + "userData": "{\n \"verticalOffset\": 0,\n \"segments\": 64,\n \"updateInterval\": 200\n}", + "position": { + "x": 0.00000476837158203125, + "y": 7.152557373046875e-7, + "z": 0.000003814697265625 + }, + "rotation": { + "x": -0.0000152587890625, + "y": -0.0000457763671875, + "z": -0.0000152587890625, + "w": 1 + }, + "created": 1614382837959471, + "lastEditedBy": "{7f097416-1c40-4cba-aa7c-6e20a7281823}", + "queryAACube": { + "x": -5.742575168609619, + "y": -21.97960662841797, + "z": 11.547750473022461, + "scale": 52.68036651611328 + }, + "canCastShadow": false, + "grab": { + "grabbable": false, + "equippableLeftRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + }, + "equippableRightRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + } + }, + "collisionMask": 23, + "collidesWith": "static,dynamic,kinematic,otherAvatar,", + "script": "qrc:///serverless/Scripts/materialSequencer.js", + "scriptTimestamp": 1601250646975, + "materialURL": "materialData", + "priority": 3, + "parentMaterialName": "[mat::move]", + "materialMappingPos": { + "x": 0.265625, + "y": 0 + }, + "materialData": "{\"materialVersion\":1,\"materials\":[{\"name\":\"moveMaterial\",\"model\":\"hifi_pbr\",\"opacity\":0.8,\"albedo\":[1,1,1],\"roughness\":1,\"metallic\":0,\"emissive\":[0,0,0],\"scattering\":0,\"unlit\":false,\"emissiveMap\":\"qrc:///serverless/Textures/gradient1.jpg\",\"albedoMap\":\"qrc:///serverless/Textures/gradient1.jpg\",\"opacityMapMode\":\"OPACITY_MAP_BLEND\",\"cullFaceMode\":\"CULL_NONE\",\"defaultFallthrough\":false}]}", + "clientOnly": false, + "avatarEntity": false, + "localEntity": false, + "faceCamera": false, + "isFacingAvatar": false +}, + { + "id": "{35eb5c90-08e6-44de-b6b9-46c9fd36494a}", + "type": "Text", + "lastEdited": 1617134723640851, + "name": "(2)", + "locked": true, + "description": "mirror text", + "position": { + "x": 0, + "y": 4.090241432189941, + "z": 4.291414260864258 + }, + "dimensions": { + "x": 3.2473599910736084, + "y": 0.6462407112121582, + "z": 0.009999999776482582 + }, + "rotation": { + "x": 0.0008392333984375, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 0.999969482421875 + }, + "created": 1614453187953099, + "lastEditedBy": "{0b759026-5fea-494c-99de-ab6301e73d4c}", + "queryAACube": { + "x": -1.6555267572402954, + "y": 2.4347147941589355, + "z": 2.635887622833252, + "scale": 3.311053514480591 + }, + "billboardMode": "yaw", + "grab": { + "grabbable": false, + "equippableLeftRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + }, + "equippableRightRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + } + }, + "damping": 0, + "angularDamping": 0, + "collisionMask": 23, + "collidesWith": "static,dynamic,kinematic,otherAvatar,", + "text": "Portal", + "lineHeight": 0.6000000238418579, + "textColor": { + "red": 0, + "green": 0, + "blue": 0 + }, + "backgroundAlpha": 0, + "unlit": true, + "font": "Inconsolata", + "textEffect": "outline fill", + "textEffectColor": { + "red": 0, + "green": 208, + "blue": 255 + }, + "textEffectThickness": 0.30000001192092896, + "alignment": "center", + "clientOnly": false, + "avatarEntity": false, + "localEntity": false, + "faceCamera": true, + "isFacingAvatar": false +}, + { + "id": "{7d040847-617e-494b-9593-05ab35142098}", + "type": "Light", + "lastEdited": 1617140731977921, + "parentID": "{6c76b816-5064-424c-84b2-dbb478e47d5d}", + "name": "TreeLight_3", + "locked": true, + "position": { + "x": 9.418960571289062, + "y": -0.07544326782226562, + "z": -9.190400123596191 + }, + "dimensions": { + "x": 10.24996280670166, + "y": 10.24996280670166, + "z": 10.24996280670166 + }, + "rotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + }, + "created": 1614198986202887, + "lastEditedBy": "{7f097416-1c40-4cba-aa7c-6e20a7281823}", + "queryAACube": { + "x": 28.784984588623047, + "y": -4.61996603012085, + "z": 8.818321228027344, + "scale": 17.753456115722656 + }, + "grab": { + "grabbable": false, + "equippableLeftRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + }, + "equippableRightRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + } + }, + "damping": 0, + "angularDamping": 0, + "color": { + "red": 69, + "green": 255, + "blue": 69 + }, + "intensity": 20.5, + "exponent": 1, + "cutoff": 75, + "falloffRadius": 26.100000381469727, + "clientOnly": false, + "avatarEntity": false, + "localEntity": false, + "faceCamera": false, + "isFacingAvatar": false +}, + { + "id": "{c191dc9f-7a8e-4f98-9974-b23c9bb7992d}", + "type": "Light", + "lastEdited": 1617140788480592, + "parentID": "{6c76b816-5064-424c-84b2-dbb478e47d5d}", + "name": "TreeLight_1", + "locked": true, + "position": { + "x": 9.000457763671875, + "y": -0.2475719451904297, + "z": 8.999537467956543 + }, + "dimensions": { + "x": 10.24996280670166, + "y": 10.24996280670166, + "z": 10.24996280670166 + }, + "rotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + }, + "created": 1614198986203735, + "lastEditedBy": "{7f097416-1c40-4cba-aa7c-6e20a7281823}", + "queryAACube": { + "x": 28.365924835205078, + "y": -4.791526794433594, + "z": 27.008251190185547, + "scale": 17.753456115722656 + }, + "grab": { + "grabbable": false, + "equippableLeftRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + }, + "equippableRightRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + } + }, + "damping": 0, + "angularDamping": 0, + "color": { + "red": 69, + "green": 106, + "blue": 255 + }, + "intensity": 17.799999237060547, + "exponent": 1, + "cutoff": 75, + "falloffRadius": 26.100000381469727, + "clientOnly": false, + "avatarEntity": false, + "localEntity": false, + "faceCamera": false, + "isFacingAvatar": false +}, + { + "id": "{cf666211-2b88-4ee6-af3c-a1a92bd6c513}", "type": "Model", - "lastEdited": 1601257171034676, - "parentID": "{ee9b7ff6-97f0-4957-aea1-3b517b6e68b8}", + "lastEdited": 1617140858220173, + "parentID": "{6c76b816-5064-424c-84b2-dbb478e47d5d}", "name": "Planters", "locked": true, "position": { @@ -1937,12 +2161,12 @@ "z": -0.0000152587890625, "w": 1 }, - "created": 1600983484676673, - "lastEditedBy": "{70099fa7-d189-42dc-80a0-02c37d1942d1}", + "created": 1614198986203890, + "lastEditedBy": "{7f097416-1c40-4cba-aa7c-6e20a7281823}", "queryAACube": { - "x": -13.858329772949219, - "y": -20.452945709228516, - "z": -13.857589721679688, + "x": 14.384176254272461, + "y": -15.1119384765625, + "z": 13.02754020690918, "scale": 27.715923309326172 }, "grab": { @@ -1963,7 +2187,7 @@ "damping": 0, "angularDamping": 0, "shapeType": "static-mesh", - "modelURL": "https://cdn-1.vircadia.com/us-e-1/DomainContent/Tutorial/Models/Planter.glb", + "modelURL": "qrc:///serverless/Models/Planter.glb", "blendshapeCoefficients": "{\n}\n", "animation": { "allowTranslation": false @@ -1973,124 +2197,8 @@ "localEntity": false, "faceCamera": false, "isFacingAvatar": false -}, - { - "id": "{ee9b7ff6-97f0-4957-aea1-3b517b6e68b8}", - "type": "Model", - "lastEdited": 1601258385751160, - "name": "Dome", - "locked": true, - "position": { - "x": 18.58534812927246, - "y": 4.332773208618164, - "z": 20.337331771850586 - }, - "dimensions": { - "x": 54.60203552246094, - "y": 13.734564781188965, - "z": 54.60203552246094 - }, - "rotation": { - "x": -0.0000152587890625, - "y": -0.0000152587890625, - "z": -0.0000152587890625, - "w": 1 - }, - "created": 1600983484676623, - "lastEditedBy": "{0ff4c9e5-fb36-4bdd-9fbc-b2ed60e1aa3b}", - "queryAACube": { - "x": -25980.759765625, - "y": -25926.40234375, - "z": -25980.763671875, - "scale": 51961.5234375 - }, - "grab": { - "grabbable": false, - "equippableLeftRotation": { - "x": -0.0000152587890625, - "y": -0.0000152587890625, - "z": -0.0000152587890625, - "w": 1 - }, - "equippableRightRotation": { - "x": -0.0000152587890625, - "y": -0.0000152587890625, - "z": -0.0000152587890625, - "w": 1 - } - }, - "damping": 0, - "angularDamping": 0, - "shapeType": "static-mesh", - "modelURL": "https://cdn-1.vircadia.com/us-e-1/DomainContent/Tutorial/Models/dome2.glb", - "blendshapeCoefficients": "{\n}\n", - "animation": { - "allowTranslation": false - }, - "clientOnly": false, - "avatarEntity": false, - "localEntity": false, - "faceCamera": false, - "isFacingAvatar": false -}, - { - "id": "{7b9901a2-94ed-48a2-ae33-1ccabd0ee1e5}", - "type": "Light", - "lastEdited": 1601257171037705, - "parentID": "{74fcc311-ac54-4c92-b658-67b616d89124}", - "locked": true, - "position": { - "x": 0.041241057217121124, - "y": 1.0814814567565918, - "z": -0.03974604234099388 - }, - "dimensions": { - "x": 9.067279815673828, - "y": 9.067279815673828, - "z": 9.067279815673828 - }, - "rotation": { - "x": -0.0000152587890625, - "y": -0.0000152587890625, - "z": -0.0000152587890625, - "w": 1 - }, - "created": 1600122409224272, - "lastEditedBy": "{70099fa7-d189-42dc-80a0-02c37d1942d1}", - "queryAACube": { - "x": -7.811369895935059, - "y": -12.818197250366211, - "z": -7.892119884490967, - "scale": 15.704989433288574 - }, - "grab": { - "grabbable": false, - "equippableLeftRotation": { - "x": -0.0000152587890625, - "y": -0.0000152587890625, - "z": -0.0000152587890625, - "w": 1 - }, - "equippableRightRotation": { - "x": -0.0000152587890625, - "y": -0.0000152587890625, - "z": -0.0000152587890625, - "w": 1 - } - }, - "damping": 0, - "angularDamping": 0, - "intensity": 5, - "exponent": 1, - "cutoff": 75, - "falloffRadius": 1, - "clientOnly": false, - "avatarEntity": false, - "localEntity": false, - "faceCamera": false, - "isFacingAvatar": false } ], - "Id": "{190133e9-0517-4f19-b163-786c40f120ec}", - "Version": 128 + "Id": "{2fef14da-af5c-43f2-855c-b36bfa23d90f}", + "Version": 133 } diff --git a/interface/resources/serverless/tutorialqrc.json b/interface/resources/serverless/tutorialqrc.json new file mode 100644 index 0000000000..90d7e91aa3 --- /dev/null +++ b/interface/resources/serverless/tutorialqrc.json @@ -0,0 +1,2204 @@ +{ + "DataVersion": 0, + "Paths": { + "/old": "/0.155245,-0.941538,23.9289/0,0.791589,0,0.611053", + "/": "/21.6727,1.02002,25.1977/0,0.999868,0,-0.016252" + + }, + "Entities": [ + { + "id": "{0a199807-4a83-4286-b09c-f21124627c3e}", + "type": "Box", + "name": "Config Wizard Loader", + "locked": true, + "lastEdited": 1613737207915514, + "visible": false, + "position": { + "x": 21.8, + "y": 1.9, + "z": 28 + }, + "dimensions": { + "x": 0.20000000298023224, + "y": 0.20000000298023224, + "z": 0.20000000298023224 + }, + "rotation": { + "x": 3.5931313391301956e-7, + "y": -0.9996991753578186, + "z": 0.000014645980627392419, + "w": 0.024525845423340797 + }, + "created": 1613736996738696, + "lastEditedBy": "{ff9b500e-e450-4127-b41f-1c42be16f71b}", + "queryAACube": { + "x": -0.17320507764816284, + "y": -0.17320507764816284, + "z": -0.17320507764816284, + "scale": 0.3464101552963257 + }, + "grab": { + "grabbable": false + }, + "damping": 0, + "angularDamping": 0, + "collisionless": true, + "ignoreForCollisions": true, + "script": "qrc:///serverless/Scripts/wizardLoader.js", + "color": { + "red": 0, + "green": 180, + "blue": 239 + }, + "shape": "Cube", + "clientOnly": false, + "avatarEntity": false, + "localEntity": false, + "faceCamera": false, + "isFacingAvatar": false + }, + { + "id": "{b9444e0f-1cda-4ad3-80e5-9ef3bf0ec6cd}", + "type": "Model", + "lastEdited": 1617134731448079, + "name": "mirror_reflectingPlane", + "locked": true, + "userData": "{\"grabbableKey\":{\"grabbable\":false,\"ignoreIK\":false},\"original\":{\"id\":\"{6291b4e5-0dcb-484c-9c11-fe47725a4ad8}\"}}", + "position": { + "x": 3.3984665870666504, + "y": 1.891787052154541, + "z": 20.900876998901367 + }, + "dimensions": { + "x": 1.6291353702545166, + "y": 2.206333875656128, + "z": 0.01092288363724947 + }, + "rotation": { + "x": -0.0000152587890625, + "y": -0.8816205263137817, + "z": 0.0000152587890625, + "w": -0.4719768166542053 + }, + "created": 1614198986204053, + "lastEditedBy": "{0b759026-5fea-494c-99de-ab6301e73d4c}", + "queryAACube": { + "x": 2.0271434783935547, + "y": 0.5204638242721558, + "z": 19.52955436706543, + "scale": 2.7426464557647705 + }, + "grab": { + "grabbable": false, + "grabFollowsController": false, + "equippableLeftRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + }, + "equippableRightRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + } + }, + "collisionless": true, + "ignoreForCollisions": true, + "collisionMask": 0, + "collidesWith": "", + "script": "qrc:///serverless/Scripts/mirrorClient.js", + "scriptTimestamp": 1601084665601, + "modelURL": "qrc:///serverless/Models/mirror_without_backface.baked.fbx", + "blendshapeCoefficients": "{\n}\n", + "clientOnly": false, + "avatarEntity": false, + "localEntity": false, + "faceCamera": false, + "isFacingAvatar": false +}, + { + "id": "{61e0e141-bb95-4e7a-a043-3f4f783e39f4}", + "type": "Text", + "lastEdited": 1617134727215565, + "locked": true, + "description": "mirror text", + "position": { + "x": 3.306519031524658, + "y": 4.0622100830078125, + "z": 20.931333541870117 + }, + "dimensions": { + "x": 3.2473599910736084, + "y": 0.6462407112121582, + "z": 0.009999999776482582 + }, + "rotation": { + "x": 0.0008392333984375, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 0.999969482421875 + }, + "created": 1614383649622836, + "lastEditedBy": "{0b759026-5fea-494c-99de-ab6301e73d4c}", + "queryAACube": { + "x": 1.6509922742843628, + "y": 2.4066834449768066, + "z": 19.275806427001953, + "scale": 3.311053514480591 + }, + "billboardMode": "yaw", + "grab": { + "grabbable": false, + "equippableLeftRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + }, + "equippableRightRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + } + }, + "damping": 0, + "angularDamping": 0, + "collisionMask": 23, + "collidesWith": "static,dynamic,kinematic,otherAvatar,", + "text": "Mirror", + "lineHeight": 0.6000000238418579, + "textColor": { + "red": 0, + "green": 0, + "blue": 0 + }, + "backgroundAlpha": 0, + "unlit": true, + "font": "Inconsolata", + "textEffect": "outline fill", + "textEffectColor": { + "red": 0, + "green": 208, + "blue": 255 + }, + "textEffectThickness": 0.30000001192092896, + "alignment": "center", + "clientOnly": false, + "avatarEntity": false, + "localEntity": false, + "faceCamera": true, + "isFacingAvatar": false +}, + { + "id": "{4b1ac4d3-325b-46a2-9c27-0e94ee1afcaf}", + "type": "Model", + "lastEdited": 1617140845328587, + "name": "Seagull", + "locked": true, + "position": { + "x": 23.798669815063477, + "y": 4.926492214202881, + "z": 10.381175994873047 + }, + "dimensions": { + "x": 0.9342527389526367, + "y": 0.8603132963180542, + "z": 0.47802668809890747 + }, + "rotation": { + "x": -0.017654716968536377, + "y": -0.4898908734321594, + "z": 0.030106067657470703, + "w": 0.8710917234420776 + }, + "created": 1614198986205195, + "lastEditedBy": "{7f097416-1c40-4cba-aa7c-6e20a7281823}", + "queryAACube": { + "x": 23.12016487121582, + "y": 4.247987270355225, + "z": 9.70267105102539, + "scale": 1.3570102453231812 + }, + "grab": { + "grabbable": false, + "equippableLeftRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + }, + "equippableRightRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + } + }, + "damping": 0, + "angularDamping": 0, + "shapeType": "simple-compound", + "modelURL": "qrc:///serverless/Models/seagull-ANI.fbx", + "blendshapeCoefficients": "{\n}\n", + "animation": { + "url": "qrc:///serverless/Models/seagull-ANI.fbx", + "allowTranslation": false, + "currentFrame": 99.81153869628906, + "running": true, + "lastFrame": 120 + }, + "clientOnly": false, + "avatarEntity": false, + "localEntity": false, + "faceCamera": false, + "isFacingAvatar": false +}, + { + "id": "{7c7f80be-4fa3-4615-86f3-5446c6737350}", + "type": "Box", + "lastEdited": 1617140739515673, + "parentID": "{6c76b816-5064-424c-84b2-dbb478e47d5d}", + "visible": false, + "name": "Sound Emitter", + "locked": true, + "userData": "{\"soundURL\":\"qrc:///serverless/Sounds/468407__onderwish__sci-fi-survival-dreamscape.mp3\",\"shouldLoop\":true,\"volume\":0.18,\"refreshInterval\":100,\"grabbableKey\":{\"grabbable\":false}}", + "position": { + "x": 0, + "y": 1.0455207824707031, + "z": 0 + }, + "dimensions": { + "x": 0.20000000298023224, + "y": 0.20000000298023224, + "z": 0.20000000298023224 + }, + "rotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + }, + "created": 1614198017837347, + "lastEditedBy": "{7f097416-1c40-4cba-aa7c-6e20a7281823}", + "queryAACube": { + "x": 28.069303512573242, + "y": 5.205089092254639, + "z": 26.711923599243164, + "scale": 0.3464101552963257 + }, + "grab": { + "grabbable": false, + "equippableLeftRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + }, + "equippableRightRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + } + }, + "damping": 0, + "angularDamping": 0, + "script": "qrc:///serverless/Scripts/soundEmitter.js", + "scriptTimestamp": 1601079357399, + "color": { + "red": 0, + "green": 180, + "blue": 239 + }, + "shape": "Cube", + "clientOnly": false, + "avatarEntity": false, + "localEntity": false, + "faceCamera": false, + "isFacingAvatar": false +}, + { + "id": "{0436152a-b188-4608-abe9-a3fb1c4b283d}", + "type": "Model", + "lastEdited": 1617140818158676, + "name": "Vircadia Sign", + "locked": true, + "position": { + "x": 43.52519226074219, + "y": 4.912969589233398, + "z": 8.236417770385742 + }, + "dimensions": { + "x": 4.443090915679932, + "y": 0.7363157868385315, + "z": 0.16073395311832428 + }, + "rotation": { + "x": -0.0000152587890625, + "y": -0.7019302845001221, + "z": 0.0000152587890625, + "w": 0.7122453451156616 + }, + "created": 1614198986205729, + "lastEditedBy": "{7f097416-1c40-4cba-aa7c-6e20a7281823}", + "queryAACube": { + "x": 41.271915435791016, + "y": 2.659691333770752, + "z": 5.983139514923096, + "scale": 4.506556510925293 + }, + "grab": { + "grabbable": false, + "equippableLeftRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + }, + "equippableRightRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + } + }, + "damping": 0, + "angularDamping": 0, + "modelURL": "qrc:///serverless/Models/VircadiaLogo.fbx", + "blendshapeCoefficients": "{\n}\n", + "animation": { + "allowTranslation": false + }, + "clientOnly": false, + "avatarEntity": false, + "localEntity": false, + "faceCamera": false, + "isFacingAvatar": false +}, + { + "id": "{06b826d4-5385-4c49-92c2-47e24f97b35a}", + "type": "Text", + "lastEdited": 1617134764395172, + "name": "(2)", + "locked": true, + "description": "mirror text", + "position": { + "x": 34.17714309692383, + "y": 4.050739288330078, + "z": 27.204530715942383 + }, + "dimensions": { + "x": 3.2473599910736084, + "y": 0.6462407112121582, + "z": 0.009999999776482582 + }, + "rotation": { + "x": 0.0008392333984375, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 0.999969482421875 + }, + "created": 1614453280539951, + "lastEditedBy": "{0b759026-5fea-494c-99de-ab6301e73d4c}", + "queryAACube": { + "x": 32.5216178894043, + "y": 2.3952126502990723, + "z": 25.54900360107422, + "scale": 3.311053514480591 + }, + "billboardMode": "yaw", + "grab": { + "grabbable": false, + "equippableLeftRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + }, + "equippableRightRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + } + }, + "damping": 0, + "angularDamping": 0, + "collisionMask": 23, + "collidesWith": "static,dynamic,kinematic,otherAvatar,", + "text": "Controls", + "lineHeight": 0.6000000238418579, + "textColor": { + "red": 0, + "green": 0, + "blue": 0 + }, + "backgroundAlpha": 0, + "unlit": true, + "font": "Inconsolata", + "textEffect": "outline fill", + "textEffectColor": { + "red": 0, + "green": 208, + "blue": 255 + }, + "textEffectThickness": 0.30000001192092896, + "alignment": "center", + "clientOnly": false, + "avatarEntity": false, + "localEntity": false, + "faceCamera": true, + "isFacingAvatar": false +}, + { + "id": "{159f2743-d862-47e3-9f27-5de062b09941}", + "type": "Material", + "lastEdited": 1617140810844450, + "parentID": "{0436152a-b188-4608-abe9-a3fb1c4b283d}", + "parentJointIndex": 0, + "name": "VClogo", + "locked": true, + "userData": "{\"verticalOffset\":0,\"segments\":16,\"updateInterval\":1000}", + "position": { + "x": -0.00001823902130126953, + "y": -0.0002636909484863281, + "z": 0.10145187377929688 + }, + "rotation": { + "x": 0.0012969970703125, + "y": 0.0000152587890625, + "z": 0.0000457763671875, + "w": 0.999969482421875 + }, + "created": 1614198986205783, + "lastEditedBy": "{7f097416-1c40-4cba-aa7c-6e20a7281823}", + "queryAACube": { + "x": 47.7151985168457, + "y": 1.0358200073242188, + "z": 24.254812240600586, + "scale": 4.506557464599609 + }, + "canCastShadow": false, + "grab": { + "grabbable": false, + "equippableLeftRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + }, + "equippableRightRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + } + }, + "collisionMask": 23, + "collidesWith": "static,dynamic,kinematic,otherAvatar,", + "scriptTimestamp": 1597610738986, + "materialURL": "materialData", + "priority": 3, + "parentMaterialName": "[mat::NeonTubes]", + "materialMappingPos": { + "x": 0.8125, + "y": 0 + }, + "materialData": "{\"materialVersion\":1,\"materials\":[{\"name\":\"baseMaterial2\",\"model\":\"hifi_pbr\",\"opacity\":1,\"albedo\":[0,0,0],\"roughness\":1,\"metallic\":0,\"emissive\":[2.3,2,2],\"scattering\":0,\"unlit\":false,\"opacityMapMode\":\"OPACITY_MAP_MASK\",\"cullFaceMode\":\"CULL_BACK\",\"defaultFallthrough\":false}]}", + "clientOnly": false, + "avatarEntity": false, + "localEntity": false, + "faceCamera": false, + "isFacingAvatar": false +}, +{ + "id": "{5b6443c5-ec22-4c8a-9581-85134ceb6856}", + "parentID": "{6c76b816-5064-424c-84b2-dbb478e47d5d}", + "type": "Model", + "name": "Bowl", + "locked": true, + "lastEdited": 1617218059378792, + "dimensions": { + "x": 1.7757656574249268, + "y": 1.2933320999145508, + "z": 1.7757654190063477 + }, + "rotation": { + "x": -0.000030517578125, + "y": -0.000030517578125, + "z": -0.000030517578125, + "w": 1 + }, + "created": 1617216882976266, + "lastEditedBy": "{f72b151a-b325-4c9f-805a-7a7a520f82f7}", + "position": { + "x": -0.00001823902130126953, + "y": -5.1002636909484863281, + "z": 0.10145187377929688 + }, + "queryAACube": { + "x": -1.4123910665512085, + "y": -1.4123910665512085, + "z": -1.4123910665512085, + "scale": 2.824782133102417 + }, + "grab": { + "grabbable": false, + "equippableLeftRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + }, + "equippableRightRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + } + }, + "damping": 0, + "angularDamping": 0, + "shapeType": "static-mesh", + "modelURL": "qrc:///serverless/Models/bowl2.fbx", + "blendshapeCoefficients": "{\n}\n", + "animation": { + "allowTranslation": false + }, + "clientOnly": false, + "avatarEntity": false, + "localEntity": false, + "faceCamera": false, + "isFacingAvatar": false +}, + { + "id": "{9c451827-4c87-4bf7-8372-aeb6bbd61eaa}", + "type": "ParticleEffect", + "lastEdited": 1617217817025177, + "parentID": "{5b6443c5-ec22-4c8a-9581-85134ceb6856}", + "name": "Brew", + "locked": true, + "position": { + "x": 0, + "y": 0.44699999690055847, + "z": 0 + }, + "dimensions": { + "x": 16.263307571411133, + "y": 16.263307571411133, + "z": 16.263307571411133 + }, + "rotation": { + "x": 8.988587651970192e-12, + "y": -0.00008631677337689325, + "z": -0.7071500420570374, + "w": 0.7070636749267578 + }, + "created": 1617216898348298, + "lastEditedBy": "{f72b151a-b325-4c9f-805a-7a7a520f82f7}", + "queryAACube": { + "x": 7.714627265930176, + "y": -12.719738006591797, + "z": -5.470824241638184, + "scale": 28.168874740600586 + }, + "grab": { + "grabbable": false, + "equippableLeftRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + }, + "equippableRightRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + } + }, + "damping": 0, + "angularDamping": 0, + "shapeType": "ellipsoid", + "color": { + "red": 4, + "green": 101, + "blue": 143 + }, + "alpha": 0.30000001192092896, + "textures": "qrc:///serverless/Textures/default_particle.png", + "maxParticles": 80, + "lifespan": 2, + "emitRate": 47, + "emitSpeed": 0.30000001192092896, + "speedSpread": 0, + "emitOrientation": { + "x": 0, + "y": 0, + "z": 0, + "w": 1 + }, + "emitDimensions": { + "x": 1, + "y": 1, + "z": 0 + }, + "emitRadiusStart": 0, + "polarStart": 0.8700000047683716, + "polarFinish": 1.2200000286102295, + "azimuthStart": 3.0999999046325684, + "azimuthFinish": 3.140000104904175, + "emitAcceleration": { + "x": 0, + "y": -0.9900000095367432, + "z": 0 + }, + "accelerationSpread": { + "x": 0.10000000149011612, + "y": 0.3400000035762787, + "z": 0.10000000149011612 + }, + "particleRadius": 1.5, + "radiusStart": 0.5, + "radiusFinish": 0.30000001192092896, + "colorSpread": { + "red": 0, + "green": 150, + "blue": 150 + }, + "colorStart": { + "red": 0, + "green": 0, + "blue": 0 + }, + "colorFinish": { + "red": 0, + "green": 0, + "blue": 0 + }, + "alphaStart": 0.5, + "alphaFinish": 0, + "emitterShouldTrail": true, + "spinStart": null, + "spinFinish": null, + "clientOnly": false, + "avatarEntity": false, + "localEntity": false, + "faceCamera": false, + "isFacingAvatar": false +}, + { + "id": "{77cbbb3f-e1fe-436c-8b0a-11b45b96181b}", + "type": "ParticleEffect", + "lastEdited": 1617216897203063, + "parentID": "{5b6443c5-ec22-4c8a-9581-85134ceb6856}", + "name": "steam", + "locked": true, + "position": { + "x": 0.03824615478515625, + "y": 5.34733772277832, + "z": 0.057065125554800034 + }, + "dimensions": { + "x": 14.4042329788208, + "y": 14.4042329788208, + "z": 14.4042329788208 + }, + "rotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + }, + "created": 1617216882977327, + "lastEditedBy": "{7f097416-1c40-4cba-aa7c-6e20a7281823}", + "queryAACube": { + "x": 9.363174438476562, + "y": -6.209394454956055, + "z": -3.8040504455566406, + "scale": 24.948863983154297 + }, + "grab": { + "grabbable": false, + "equippableLeftRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + }, + "equippableRightRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + } + }, + "damping": 0, + "angularDamping": 0, + "shapeType": "ellipsoid", + "alpha": 0.014999999664723873, + "textures": "qrc:///serverless/Textures/default_particle.png", + "maxParticles": 100, + "lifespan": 3.069999933242798, + "emitSpeed": 0.4000000059604645, + "speedSpread": 0.10000000149011612, + "emitOrientation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + }, + "polarFinish": 3.1415927410125732, + "emitAcceleration": { + "x": 0, + "y": -1, + "z": 0 + }, + "particleRadius": 1.5, + "radiusStart": 0.5, + "radiusFinish": 0.4000000059604645, + "colorStart": { + "red": 0, + "green": 0, + "blue": 0 + }, + "colorFinish": { + "red": 0, + "green": 0, + "blue": 0 + }, + "alphaStart": 0.5, + "alphaFinish": 0, + "emitterShouldTrail": true, + "spinStart": null, + "spinFinish": null, + "clientOnly": false, + "avatarEntity": false, + "localEntity": false, + "faceCamera": false, + "isFacingAvatar": false +}, + { + "id": "{463bad19-9d44-479e-af6c-9d86ee76fc45}", + "type": "Light", + "lastEdited": 1617217841543322, + "parentID": "{5b6443c5-ec22-4c8a-9581-85134ceb6856}", + "name": "blacklight", + "locked": true, + "position": { + "x": 0, + "y": 1.6233999729156494, + "z": 0 + }, + "dimensions": { + "x": 3.867255687713623, + "y": 3.867255687713623, + "z": 4.0243144035339355 + }, + "rotation": { + "x": -0.7071176171302795, + "y": 3.849143226375418e-12, + "z": -0.000021579189706244506, + "w": 0.7070960402488708 + }, + "created": 1617217525079443, + "lastEditedBy": "{f72b151a-b325-4c9f-805a-7a7a520f82f7}", + "queryAACube": { + "x": 18.404050827026367, + "y": -0.8539872169494629, + "z": 5.2184553146362305, + "scale": 6.790172100067139 + }, + "grab": { + "grabbable": false, + "equippableLeftRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + }, + "equippableRightRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + } + }, + "damping": 0, + "angularDamping": 0, + "isSpotlight": true, + "intensity": -25.700000762939453, + "exponent": 19.6299991607666, + "cutoff": 73.94000244140625, + "falloffRadius": 72.4000015258789, + "clientOnly": false, + "avatarEntity": false, + "localEntity": false, + "faceCamera": false, + "isFacingAvatar": false +}, + { + "id": "{a80ee618-752e-44e4-a9de-04f089b4fe03}", + "type": "Model", + "lastEdited": 1617140830643374, + "parentID": "{6c76b816-5064-424c-84b2-dbb478e47d5d}", + "name": "Dome Glass", + "locked": true, + "position": { + "x": -0.000016799232980702072, + "y": 3.1790809631347656, + "z": 0.000016798756405478343 + }, + "dimensions": { + "x": 44.38727569580078, + "y": 7.3717122077941895, + "z": 44.38727569580078 + }, + "rotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + }, + "created": 1614198986204337, + "lastEditedBy": "{7f097416-1c40-4cba-aa7c-6e20a7281823}", + "queryAACube": { + "x": -3.359670639038086, + "y": -24.09037208557129, + "z": -4.717145919799805, + "scale": 63.20445251464844 + }, + "grab": { + "grabbable": false, + "equippableLeftRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + }, + "equippableRightRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + } + }, + "damping": 0, + "angularDamping": 0, + "shapeType": "static-mesh", + "modelURL": "qrc:///serverless/Models/dome2_glass.glb", + "blendshapeCoefficients": "{\n}\n", + "animation": { + "allowTranslation": false + }, + "clientOnly": false, + "avatarEntity": false, + "localEntity": false, + "faceCamera": false, + "isFacingAvatar": false +}, + { + "id": "{d2ef46ed-c85f-4ab5-bef3-14feb46e9091}", + "type": "Model", + "lastEdited": 1617134717193282, + "parentID": "{6c76b816-5064-424c-84b2-dbb478e47d5d}", + "name": "trees", + "locked": true, + "position": { + "x": -0.000016800577213871293, + "y": -0.5505132675170898, + "z": 0.000016800084267742932 + }, + "dimensions": { + "x": 26.59911346435547, + "y": 9.549417495727539, + "z": 26.465896606445312 + }, + "rotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + }, + "created": 1614198986202454, + "lastEditedBy": "{0b759026-5fea-494c-99de-ab6301e73d4c}", + "queryAACube": { + "x": 8.883026123046875, + "y": -15.577155113220215, + "z": 7.525779724121094, + "scale": 38.71883010864258 + }, + "grab": { + "grabbable": false, + "equippableLeftRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + }, + "equippableRightRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + } + }, + "damping": 0, + "angularDamping": 0, + "modelURL": "qrc:///serverless/Models/Trees1.glb", + "blendshapeCoefficients": "{\n}\n", + "animation": { + "allowTranslation": false + }, + "clientOnly": false, + "avatarEntity": false, + "localEntity": false, + "faceCamera": false, + "isFacingAvatar": false +}, + { + "id": "{f3d87e87-a250-42f8-a285-84cbeb777353}", + "type": "Model", + "lastEdited": 1617140880548597, + "parentID": "{6c76b816-5064-424c-84b2-dbb478e47d5d}", + "name": "Panels", + "locked": true, + "position": { + "x": -0.0001735687255859375, + "y": -5.685686111450195, + "z": 0.00017449550796300173 + }, + "dimensions": { + "x": 36.70009231567383, + "y": 3.3704721927642822, + "z": 25.731521606445312 + }, + "rotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + }, + "created": 1614377167635894, + "lastEditedBy": "{7f097416-1c40-4cba-aa7c-6e20a7281823}", + "queryAACube": { + "x": -5.742575168609619, + "y": -23.827165603637695, + "z": 4.4112548828125, + "scale": 59.816864013671875 + }, + "grab": { + "grabbable": false, + "equippableLeftRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + }, + "equippableRightRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + } + }, + "damping": 0, + "angularDamping": 0, + "modelURL": "qrc:///serverless/Models/Stands.fbx", + "blendshapeCoefficients": "{\n}\n", + "useOriginalPivot": true, + "animation": { + "url": "qrc:///serverless/Models/Stands.fbx", + "allowTranslation": false, + "currentFrame": 68342.515625, + "running": true + }, + "clientOnly": false, + "avatarEntity": false, + "localEntity": false, + "faceCamera": false, + "isFacingAvatar": false +}, + { + "id": "{25638e51-c19c-420a-a9cc-ff02626b62ef}", + "type": "Box", + "lastEdited": 1617134697724395, + "visible": false, + "name": "portalCube", + "locked": true, + "userData": "{\"destination\":\"hifi://172.104.248.237:40102/154.572,-96.8437,-417.945/0,1,0,-1.52586e-05\"}", + "position": { + "x": 0.06047534942626953, + "y": 1.751168131828308, + "z": 4.2923126220703125 + }, + "dimensions": { + "x": 1.6716244220733643, + "y": 2.5448203086853027, + "z": 0.26420968770980835 + }, + "rotation": { + "x": 0.0000152587890625, + "y": 0.6351872682571411, + "z": -0.0000457763671875, + "w": 0.772335410118103 + }, + "created": 1614454164933827, + "lastEditedBy": "{0b759026-5fea-494c-99de-ab6301e73d4c}", + "queryAACube": { + "x": -1.4676154851913452, + "y": 0.22307729721069336, + "z": 2.764221668243408, + "scale": 3.0561816692352295 + }, + "grab": { + "grabbable": false, + "equippableLeftRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + }, + "equippableRightRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + } + }, + "collisionMask": 23, + "collidesWith": "static,dynamic,kinematic,otherAvatar,", + "damping": 0, + "angularDamping": 0, + "script": "qrc:///serverless/Scripts/portal.js", + "scriptTimestamp": 1617134674001, + "color": { + "red": 0, + "green": 180, + "blue": 239 + }, + "shape": "Cube", + "clientOnly": false, + "avatarEntity": false, + "localEntity": false, + "faceCamera": false, + "isFacingAvatar": false +}, + { + "id": "{e0261cde-c5e0-44bf-a747-787c4c867d79}", + "type": "Light", + "lastEdited": 1617140788480898, + "name": "mainDomeLight", + "locked": true, + "position": { + "x": 21.799074172973633, + "y": 10.247319221496582, + "z": 8.613605499267578 + }, + "dimensions": { + "x": 61.943946838378906, + "y": 61.943946838378906, + "z": 61.943946838378906 + }, + "rotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + }, + "created": 1614198986202528, + "lastEditedBy": "{7f097416-1c40-4cba-aa7c-6e20a7281823}", + "queryAACube": { + "x": -31.845956802368164, + "y": -43.39771270751953, + "z": -45.03142547607422, + "scale": 107.2900619506836 + }, + "grab": { + "grabbable": false, + "equippableLeftRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + }, + "equippableRightRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + } + }, + "damping": 0, + "angularDamping": 0, + "collisionMask": 23, + "collidesWith": "static,dynamic,kinematic,otherAvatar,", + "color": { + "red": 255, + "green": 235, + "blue": 87 + }, + "intensity": 0.8999999761581421, + "exponent": 1, + "cutoff": 75, + "falloffRadius": 30, + "clientOnly": false, + "avatarEntity": false, + "localEntity": false, + "faceCamera": false, + "isFacingAvatar": false +}, + { + "id": "{6c76b816-5064-424c-84b2-dbb478e47d5d}", + "type": "Model", + "lastEdited": 1617134709051164, + "name": "Dome", + "locked": true, + "position": { + "x": 21.799192428588867, + "y": 5.9566450119018555, + "z": 8.613487243652344 + }, + "dimensions": { + "x": 54.60203552246094, + "y": 13.734564781188965, + "z": 54.60203552246094 + }, + "rotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + }, + "created": 1614198986203467, + "lastEditedBy": "{0b759026-5fea-494c-99de-ab6301e73d4c}", + "queryAACube": { + "x": -25952.515625, + "y": -25921.0625, + "z": -25953.87890625, + "scale": 51961.5234375 + }, + "grab": { + "grabbable": false, + "equippableLeftRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + }, + "equippableRightRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + } + }, + "damping": 0, + "angularDamping": 0, + "shapeType": "static-mesh", + "modelURL": "qrc:///serverless/Models/dome2.glb", + "blendshapeCoefficients": "{\n}\n", + "animation": { + "allowTranslation": false + }, + "clientOnly": false, + "avatarEntity": false, + "localEntity": false, + "faceCamera": false, + "isFacingAvatar": false +}, + { + "id": "{52c84c1c-6567-4670-9b2b-9aa9bc1456ea}", + "type": "Model", + "lastEdited": 1617134574674644, + "parentID": "{6c76b816-5064-424c-84b2-dbb478e47d5d}", + "locked": true, + "position": { + "x": 4.238387418808998e-12, + "y": -2.3088181018829346, + "z": -7.275957614183426e-12 + }, + "dimensions": { + "x": 5.688337802886963, + "y": 7.10263204574585, + "z": 5.688361644744873 + }, + "rotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + }, + "created": 1614198986204522, + "lastEditedBy": "{78b82b17-4e7a-410f-95ce-1c3ace1cd609}", + "queryAACube": { + "x": -4.850972652435303, + "y": -3.341723680496216, + "z": -4.9151411056518555, + "scale": 38.45905685424805 + }, + "grab": { + "grabbable": false, + "equippableLeftRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + }, + "equippableRightRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + } + }, + "damping": 0, + "angularDamping": 0, + "scriptTimestamp": 1598912452582, + "shapeType": "static-mesh", + "modelURL": "qrc:///serverless/Models/temple5.glb", + "blendshapeCoefficients": "{\n}\n", + "animation": { + "allowTranslation": false + }, + "clientOnly": false, + "avatarEntity": false, + "localEntity": false, + "faceCamera": false, + "isFacingAvatar": false +}, + { + "id": "{d344138a-adb8-4ae7-9aae-447266a48869}", + "type": "Light", + "lastEdited": 1617140788480765, + "parentID": "{b9444e0f-1cda-4ad3-80e5-9ef3bf0ec6cd}", + "name": "mirrorLight", + "locked": true, + "position": { + "x": -0.0015339851379394531, + "y": -0.000001519918441772461, + "z": 0.26983165740966797 + }, + "dimensions": { + "x": 3.8637032508850098, + "y": 3.8637032508850098, + "z": 4 + }, + "rotation": { + "x": 0.0000152587890625, + "y": 1, + "z": 0.0000152587890625, + "w": -0.0000152587890625 + }, + "created": 1614453808970411, + "lastEditedBy": "{7f097416-1c40-4cba-aa7c-6e20a7281823}", + "queryAACube": { + "x": 6.681288719177246, + "y": -3.11796498298645, + "z": 35.638336181640625, + "scale": 6.771735668182373 + }, + "grab": { + "grabbable": false, + "equippableLeftRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + }, + "equippableRightRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + } + }, + "damping": 0, + "angularDamping": 0, + "color": { + "red": 255, + "green": 255, + "blue": 235 + }, + "isSpotlight": true, + "intensity": 0.699999988079071, + "exponent": 1, + "cutoff": 75, + "falloffRadius": 10, + "clientOnly": false, + "avatarEntity": false, + "localEntity": false, + "faceCamera": false, + "isFacingAvatar": false +}, + { + "id": "{0d85144d-a15c-4d1b-84a5-b3a379d31798}", + "type": "Light", + "lastEdited": 1617140731977291, + "parentID": "{b9444e0f-1cda-4ad3-80e5-9ef3bf0ec6cd}", + "name": "Mirror Light", + "locked": true, + "position": { + "x": 0.08925724029541016, + "y": 0.4832591116428375, + "z": 0.20032405853271484 + }, + "dimensions": { + "x": 6.747879505157471, + "y": 6.747879505157471, + "z": 6.985918998718262 + }, + "rotation": { + "x": -0.999969482421875, + "y": -0.0001373291015625, + "z": -0.0000762939453125, + "w": 0.00856029987335205 + }, + "created": 1614198986203073, + "lastEditedBy": "{7f097416-1c40-4cba-aa7c-6e20a7281823}", + "queryAACube": { + "x": 4.045637607574463, + "y": -5.162182331085205, + "z": 33.07383346557617, + "scale": 11.826699256896973 + }, + "grab": { + "grabbable": false, + "equippableLeftRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + }, + "equippableRightRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + } + }, + "damping": 0, + "angularDamping": 0, + "isSpotlight": true, + "intensity": 2, + "exponent": 1, + "cutoff": 75, + "falloffRadius": 5.699999809265137, + "clientOnly": false, + "avatarEntity": false, + "localEntity": false, + "faceCamera": false, + "isFacingAvatar": false +}, + { + "id": "{89f2cd0b-782f-4e4e-a674-587ae5893f7d}", + "type": "Light", + "lastEdited": 1617140712801743, + "parentID": "{52c84c1c-6567-4670-9b2b-9aa9bc1456ea}", + "name": "templeLight", + "locked": true, + "position": { + "x": -0.10364770889282227, + "y": 0.5877461433410645, + "z": -0.16811557114124298 + }, + "dimensions": { + "x": 5.481564998626709, + "y": 5.481564998626709, + "z": 5.481564998626709 + }, + "rotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + }, + "created": 1614198986204117, + "lastEditedBy": "{7f097416-1c40-4cba-aa7c-6e20a7281823}", + "queryAACube": { + "x": 23.39162826538086, + "y": -2.135477066040039, + "z": 21.969898223876953, + "scale": 9.494348526000977 + }, + "grab": { + "grabbable": false, + "equippableLeftRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + }, + "equippableRightRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + } + }, + "damping": 0, + "angularDamping": 0, + "color": { + "red": 255, + "green": 0, + "blue": 255 + }, + "intensity": 10, + "exponent": 1, + "cutoff": 75, + "falloffRadius": 1, + "clientOnly": false, + "avatarEntity": false, + "localEntity": false, + "faceCamera": false, + "isFacingAvatar": false +}, + { + "id": "{3a740728-5d6f-4a3b-a710-49a8c6cb1ae0}", + "type": "Zone", + "lastEdited": 1617140938876740, + "parentID": "{6c76b816-5064-424c-84b2-dbb478e47d5d}", + "name": "MainDomeZone", + "locked": true, + "userData": "{\n \"grabbableKey\": {\n \"grabbable\": false,\n \"ignoreIK\": false\n }\n}", + "position": { + "x": 0.0006103417836129665, + "y": 55.367820739746094, + "z": -0.0006103613413870335 + }, + "dimensions": { + "x": 10000, + "y": 10000, + "z": 10000 + }, + "rotation": { + "x": 0.44721001386642456, + "y": 0.5232430100440979, + "z": 0.06775686889886856, + "w": 0.7222389578819275 + }, + "created": 1614198986203133, + "lastEditedBy": "{7f097416-1c40-4cba-aa7c-6e20a7281823}", + "queryAACube": { + "x": -25952.515625, + "y": -25921.0625, + "z": -25953.87890625, + "scale": 51961.5234375 + }, + "grab": { + "grabbable": false, + "grabFollowsController": false, + "equippableLeftRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + }, + "equippableRightRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + } + }, + "angularVelocity": { + "x": 0.008699734695255756, + "y": 0.008700265549123287, + "z": 8.107145163527285e-12 + }, + "angularDamping": 0, + "shapeType": "box", + "keyLight": { + "color": { + "red": 158, + "green": 127, + "blue": 68 + }, + "intensity": 1.5, + "direction": { + "x": 0.20760862529277802, + "y": -0.7512804269790649, + "z": 0.6264793872833252 + }, + "castShadows": true, + "shadowBias": 0.20000000298023224, + "shadowMaxDistance": 57.79999923706055 + }, + "ambientLight": { + "ambientIntensity": 0.8999999761581421, + "ambientURL": "qrc:///serverless/Textures/galaxySkybox.png" + }, + "skybox": { + "color": { + "red": 235, + "green": 235, + "blue": 235 + }, + "url": "qrc:///serverless/Textures/galaxySkybox.png" + }, + "haze": { + "hazeRange": 50, + "hazeColor": { + "red": 4, + "green": 25, + "blue": 94 + }, + "hazeGlareColor": { + "red": 255, + "green": 0, + "blue": 255 + }, + "hazeEnableGlare": true, + "hazeGlareAngle": 27, + "hazeAltitudeEffect": true, + "hazeCeiling": -75, + "hazeBaseRef": -250, + "hazeBackgroundBlend": 0.5 + }, + "bloom": { + "bloomIntensity": 0.4000000059604645, + "bloomThreshold": 0.800000011920929, + "bloomSize": 1 + }, + "keyLightMode": "enabled", + "ambientLightMode": "enabled", + "skyboxMode": "enabled", + "hazeMode": "enabled", + "bloomMode": "enabled", + "clientOnly": false, + "avatarEntity": false, + "localEntity": false, + "faceCamera": false, + "isFacingAvatar": false +}, + { + "id": "{c5a35dbf-8253-4782-b121-26d0c609aad5}", + "type": "Shape", + "lastEdited": 1617140925236269, + "parentID": "{6c76b816-5064-424c-84b2-dbb478e47d5d}", + "name": "MainCollision", + "locked": true, + "position": { + "x": 0.00002288818359375, + "y": -6.380376815795898, + "z": -0.00002409383887425065 + }, + "dimensions": { + "x": 54.22285461425781, + "y": 0.890187680721283, + "z": 54.22285461425781 + }, + "rotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + }, + "created": 1614198986204167, + "lastEditedBy": "{7f097416-1c40-4cba-aa7c-6e20a7281823}", + "queryAACube": { + "x": -10.101629257202148, + "y": -40.391536712646484, + "z": -11.458602905273438, + "scale": 76.6878662109375 + }, + "grab": { + "grabbable": false, + "equippableLeftRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + }, + "equippableRightRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + } + }, + "damping": 0, + "angularDamping": 0, + "color": { + "red": 0, + "green": 0, + "blue": 0 + }, + "shape": "Cylinder", + "clientOnly": false, + "avatarEntity": false, + "localEntity": false, + "faceCamera": false, + "isFacingAvatar": false +}, + { + "id": "{99f186d7-a623-4339-930e-1689d62a23e0}", + "type": "Zone", + "lastEdited": 1617134741129783, + "parentID": "{b9444e0f-1cda-4ad3-80e5-9ef3bf0ec6cd}", + "visible": false, + "name": "mirror_zone", + "locked": true, + "userData": "{\"grabbableKey\":{\"grabbable\":false},\"original\":{\"id\":\"{da1e2fcd-d69b-47d7-b861-25b31f1c7175}\"}}", + "position": { + "x": -0.01726818084716797, + "y": 0.2113490104675293, + "z": 1.704751968383789 + }, + "dimensions": { + "x": 2.8482747077941895, + "y": 3.153184413909912, + "z": 3.6725244522094727 + }, + "rotation": { + "x": -0.0161592960357666, + "y": 0.0000152587890625, + "z": -0.006424069404602051, + "w": 0.999847412109375 + }, + "created": 1614198986202623, + "lastEditedBy": "{0b759026-5fea-494c-99de-ab6301e73d4c}", + "queryAACube": { + "x": 8.46190071105957, + "y": -2.328949451446533, + "z": 35.4334716796875, + "scale": 5.6162872314453125 + }, + "grab": { + "grabbable": false, + "equippableLeftRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + }, + "equippableRightRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + } + }, + "script": "qrc:///serverless/Scripts/mirrorReflection.js", + "scriptTimestamp": 1601084668318, + "shapeType": "box", + "clientOnly": false, + "avatarEntity": false, + "localEntity": false, + "faceCamera": false, + "isFacingAvatar": false +}, + { + "id": "{33d5305a-641d-4a4f-baa9-23ec22bb9d48}", + "type": "Light", + "lastEdited": 1617140731977526, + "parentID": "{6c76b816-5064-424c-84b2-dbb478e47d5d}", + "name": "TreeLight_4", + "locked": true, + "position": { + "x": -8.819656372070312, + "y": -0.07544326782226562, + "z": -9.190401077270508 + }, + "dimensions": { + "x": 10.24996280670166, + "y": 10.24996280670166, + "z": 10.24996280670166 + }, + "rotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + }, + "created": 1614198986202730, + "lastEditedBy": "{7f097416-1c40-4cba-aa7c-6e20a7281823}", + "queryAACube": { + "x": 10.546369552612305, + "y": -4.619409561157227, + "z": 8.817764282226562, + "scale": 17.753456115722656 + }, + "grab": { + "grabbable": false, + "equippableLeftRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + }, + "equippableRightRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + } + }, + "damping": 0, + "angularDamping": 0, + "color": { + "red": 250, + "green": 214, + "blue": 32 + }, + "intensity": 15, + "exponent": 1, + "cutoff": 75, + "falloffRadius": 26.100000381469727, + "clientOnly": false, + "avatarEntity": false, + "localEntity": false, + "faceCamera": false, + "isFacingAvatar": false +}, + { + "id": "{67b2c758-41ea-4448-80eb-f171d792ab5c}", + "type": "Box", + "lastEdited": 1617140777516274, + "visible": false, + "name": "LandingPoint", + "locked": true, + "position": { + "x": 21.792818069458008, + "y": 0, + "z": 25.644922256469727 + }, + "dimensions": { + "x": 3.2382099628448486, + "y": 0.20000000298023224, + "z": 1.8551445007324219 + }, + "rotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + }, + "created": 1617140160943861, + "lastEditedBy": "{7f097416-1c40-4cba-aa7c-6e20a7281823}", + "queryAACube": { + "x": 19.924158096313477, + "y": -1.8686603307724, + "z": 23.776262283325195, + "scale": 3.7373206615448 + }, + "grab": { + "grabbable": false, + "equippableLeftRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + }, + "equippableRightRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + } + }, + "damping": 0, + "angularDamping": 0, + "color": { + "red": 0, + "green": 180, + "blue": 239 + }, + "shape": "Cube", + "clientOnly": false, + "avatarEntity": false, + "localEntity": false, + "faceCamera": false, + "isFacingAvatar": false +}, + { + "id": "{a4421b2e-123a-4619-8788-e36eef8029ea}", + "type": "Light", + "lastEdited": 1617140788480412, + "parentID": "{6c76b816-5064-424c-84b2-dbb478e47d5d}", + "name": "TreeLight_2", + "locked": true, + "position": { + "x": -8.819664001464844, + "y": -0.24757671356201172, + "z": 8.97313404083252 + }, + "dimensions": { + "x": 10.24996280670166, + "y": 10.24996280670166, + "z": 10.24996280670166 + }, + "rotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + }, + "created": 1614198986202574, + "lastEditedBy": "{7f097416-1c40-4cba-aa7c-6e20a7281823}", + "queryAACube": { + "x": 10.54580307006836, + "y": -4.790988445281982, + "z": 26.981304168701172, + "scale": 17.753456115722656 + }, + "grab": { + "grabbable": false, + "equippableLeftRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + }, + "equippableRightRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + } + }, + "damping": 0, + "angularDamping": 0, + "color": { + "red": 191, + "green": 31, + "blue": 255 + }, + "intensity": 15, + "exponent": 1, + "cutoff": 75, + "falloffRadius": 26.100000381469727, + "clientOnly": false, + "avatarEntity": false, + "localEntity": false, + "faceCamera": false, + "isFacingAvatar": false +}, + { + "id": "{523e1c2d-1603-47bb-80f1-314747b161b0}", + "type": "Material", + "lastEdited": 1617140991884044, + "parentID": "{f3d87e87-a250-42f8-a285-84cbeb777353}", + "parentJointIndex": 4, + "name": "moveMaterial", + "userData": "{\n \"verticalOffset\": 0,\n \"segments\": 64,\n \"updateInterval\": 200\n}", + "position": { + "x": 0.00000476837158203125, + "y": 7.152557373046875e-7, + "z": 0.000003814697265625 + }, + "rotation": { + "x": -0.0000152587890625, + "y": -0.0000457763671875, + "z": -0.0000152587890625, + "w": 1 + }, + "created": 1614382837959471, + "lastEditedBy": "{7f097416-1c40-4cba-aa7c-6e20a7281823}", + "queryAACube": { + "x": -5.742575168609619, + "y": -21.97960662841797, + "z": 11.547750473022461, + "scale": 52.68036651611328 + }, + "canCastShadow": false, + "grab": { + "grabbable": false, + "equippableLeftRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + }, + "equippableRightRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + } + }, + "collisionMask": 23, + "collidesWith": "static,dynamic,kinematic,otherAvatar,", + "script": "qrc:///serverless/Scripts/materialSequencer.js", + "scriptTimestamp": 1601250646975, + "materialURL": "materialData", + "priority": 3, + "parentMaterialName": "[mat::move]", + "materialMappingPos": { + "x": 0.265625, + "y": 0 + }, + "materialData": "{\"materialVersion\":1,\"materials\":[{\"name\":\"moveMaterial\",\"model\":\"hifi_pbr\",\"opacity\":0.8,\"albedo\":[1,1,1],\"roughness\":1,\"metallic\":0,\"emissive\":[0,0,0],\"scattering\":0,\"unlit\":false,\"emissiveMap\":\"qrc:///serverless/Textures/gradient1.jpg\",\"albedoMap\":\"qrc:///serverless/Textures/gradient1.jpg\",\"opacityMapMode\":\"OPACITY_MAP_BLEND\",\"cullFaceMode\":\"CULL_NONE\",\"defaultFallthrough\":false}]}", + "clientOnly": false, + "avatarEntity": false, + "localEntity": false, + "faceCamera": false, + "isFacingAvatar": false +}, + { + "id": "{35eb5c90-08e6-44de-b6b9-46c9fd36494a}", + "type": "Text", + "lastEdited": 1617134723640851, + "name": "(2)", + "locked": true, + "description": "mirror text", + "position": { + "x": 0, + "y": 4.090241432189941, + "z": 4.291414260864258 + }, + "dimensions": { + "x": 3.2473599910736084, + "y": 0.6462407112121582, + "z": 0.009999999776482582 + }, + "rotation": { + "x": 0.0008392333984375, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 0.999969482421875 + }, + "created": 1614453187953099, + "lastEditedBy": "{0b759026-5fea-494c-99de-ab6301e73d4c}", + "queryAACube": { + "x": -1.6555267572402954, + "y": 2.4347147941589355, + "z": 2.635887622833252, + "scale": 3.311053514480591 + }, + "billboardMode": "yaw", + "grab": { + "grabbable": false, + "equippableLeftRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + }, + "equippableRightRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + } + }, + "damping": 0, + "angularDamping": 0, + "collisionMask": 23, + "collidesWith": "static,dynamic,kinematic,otherAvatar,", + "text": "Portal", + "lineHeight": 0.6000000238418579, + "textColor": { + "red": 0, + "green": 0, + "blue": 0 + }, + "backgroundAlpha": 0, + "unlit": true, + "font": "Inconsolata", + "textEffect": "outline fill", + "textEffectColor": { + "red": 0, + "green": 208, + "blue": 255 + }, + "textEffectThickness": 0.30000001192092896, + "alignment": "center", + "clientOnly": false, + "avatarEntity": false, + "localEntity": false, + "faceCamera": true, + "isFacingAvatar": false +}, + { + "id": "{7d040847-617e-494b-9593-05ab35142098}", + "type": "Light", + "lastEdited": 1617140731977921, + "parentID": "{6c76b816-5064-424c-84b2-dbb478e47d5d}", + "name": "TreeLight_3", + "locked": true, + "position": { + "x": 9.418960571289062, + "y": -0.07544326782226562, + "z": -9.190400123596191 + }, + "dimensions": { + "x": 10.24996280670166, + "y": 10.24996280670166, + "z": 10.24996280670166 + }, + "rotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + }, + "created": 1614198986202887, + "lastEditedBy": "{7f097416-1c40-4cba-aa7c-6e20a7281823}", + "queryAACube": { + "x": 28.784984588623047, + "y": -4.61996603012085, + "z": 8.818321228027344, + "scale": 17.753456115722656 + }, + "grab": { + "grabbable": false, + "equippableLeftRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + }, + "equippableRightRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + } + }, + "damping": 0, + "angularDamping": 0, + "color": { + "red": 69, + "green": 255, + "blue": 69 + }, + "intensity": 20.5, + "exponent": 1, + "cutoff": 75, + "falloffRadius": 26.100000381469727, + "clientOnly": false, + "avatarEntity": false, + "localEntity": false, + "faceCamera": false, + "isFacingAvatar": false +}, + { + "id": "{c191dc9f-7a8e-4f98-9974-b23c9bb7992d}", + "type": "Light", + "lastEdited": 1617140788480592, + "parentID": "{6c76b816-5064-424c-84b2-dbb478e47d5d}", + "name": "TreeLight_1", + "locked": true, + "position": { + "x": 9.000457763671875, + "y": -0.2475719451904297, + "z": 8.999537467956543 + }, + "dimensions": { + "x": 10.24996280670166, + "y": 10.24996280670166, + "z": 10.24996280670166 + }, + "rotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + }, + "created": 1614198986203735, + "lastEditedBy": "{7f097416-1c40-4cba-aa7c-6e20a7281823}", + "queryAACube": { + "x": 28.365924835205078, + "y": -4.791526794433594, + "z": 27.008251190185547, + "scale": 17.753456115722656 + }, + "grab": { + "grabbable": false, + "equippableLeftRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + }, + "equippableRightRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + } + }, + "damping": 0, + "angularDamping": 0, + "color": { + "red": 69, + "green": 106, + "blue": 255 + }, + "intensity": 17.799999237060547, + "exponent": 1, + "cutoff": 75, + "falloffRadius": 26.100000381469727, + "clientOnly": false, + "avatarEntity": false, + "localEntity": false, + "faceCamera": false, + "isFacingAvatar": false +}, + { + "id": "{cf666211-2b88-4ee6-af3c-a1a92bd6c513}", + "type": "Model", + "lastEdited": 1617140858220173, + "parentID": "{6c76b816-5064-424c-84b2-dbb478e47d5d}", + "name": "Planters", + "locked": true, + "position": { + "x": -0.00016648943710606545, + "y": -5.586750030517578, + "z": 0.00017049156303983182 + }, + "dimensions": { + "x": 19.592937469482422, + "y": 0.6371747255325317, + "z": 19.592937469482422 + }, + "rotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + }, + "created": 1614198986203890, + "lastEditedBy": "{7f097416-1c40-4cba-aa7c-6e20a7281823}", + "queryAACube": { + "x": 14.384176254272461, + "y": -15.1119384765625, + "z": 13.02754020690918, + "scale": 27.715923309326172 + }, + "grab": { + "grabbable": false, + "equippableLeftRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + }, + "equippableRightRotation": { + "x": -0.0000152587890625, + "y": -0.0000152587890625, + "z": -0.0000152587890625, + "w": 1 + } + }, + "damping": 0, + "angularDamping": 0, + "shapeType": "static-mesh", + "modelURL": "qrc:///serverless/Models/Planter.glb", + "blendshapeCoefficients": "{\n}\n", + "animation": { + "allowTranslation": false + }, + "clientOnly": false, + "avatarEntity": false, + "localEntity": false, + "faceCamera": false, + "isFacingAvatar": false +} + ], + "Id": "{2fef14da-af5c-43f2-855c-b36bfa23d90f}", + "Version": 133 +} diff --git a/libraries/gpu-gl/CMakeLists.txt b/libraries/gpu-gl/CMakeLists.txt index 3c569f7a44..de651e5116 100644 --- a/libraries/gpu-gl/CMakeLists.txt +++ b/libraries/gpu-gl/CMakeLists.txt @@ -3,7 +3,7 @@ setup_hifi_library(Concurrent) link_hifi_libraries(shared gl gpu gpu-gl-common shaders) if (UNIX AND NOT VIRCADIA_THREAD_DEBUGGING) target_link_libraries(${TARGET_NAME} pthread) -endif(UNIX) +endif(UNIX AND NOT VIRCADIA_THREAD_DEBUGGING) GroupSources("src") set(OpenGL_GL_PREFERENCE "LEGACY") diff --git a/libraries/networking/src/FingerprintUtils.cpp b/libraries/networking/src/FingerprintUtils.cpp index 83a4f19703..cab8cde832 100644 --- a/libraries/networking/src/FingerprintUtils.cpp +++ b/libraries/networking/src/FingerprintUtils.cpp @@ -32,12 +32,25 @@ #include #endif //Q_OS_MAC +// Number of iterations to apply to the hash, for stretching. +// The number is arbitrary and has the only purpose of slowing down brute-force +// attempts. The number here should be low enough not to cause any trouble for +// low-end hardware. +// +// Changing this results in different hardware IDs being computed. +static const int HASH_ITERATIONS = 65535; + +// Salt string for the hardware ID, makes our IDs unique to our project. +// Changing this results in different hardware IDs being computed. +static const QByteArray HASH_SALT{"Vircadia"}; + static const QString FALLBACK_FINGERPRINT_KEY = "fallbackFingerprint"; QUuid FingerprintUtils::_machineFingerprint { QUuid() }; QString FingerprintUtils::getMachineFingerprintString() { - QString uuidString; + QCryptographicHash hash(QCryptographicHash::Keccak_256); + #ifdef Q_OS_LINUX // As per the documentation: // https://man7.org/linux/man-pages/man5/machine-id.5.html @@ -45,8 +58,6 @@ QString FingerprintUtils::getMachineFingerprintString() { // we use the machine id as a base, but add an application-specific key to it. // If machine-id isn't available, we try hardware networking devices instead. - QCryptographicHash hash(QCryptographicHash::Keccak_256); - QFile machineIdFile("/etc/machine-id"); if (!machineIdFile.open(QIODevice::ReadOnly | QIODevice::Text)) { // No machine ID, probably no systemd. @@ -58,7 +69,7 @@ QString FingerprintUtils::getMachineFingerprintString() { if (netDevicesInfo.empty()) { // Let getMachineFingerprint handle this contingency qCWarning(networking) << "Failed to find any hardware networking devices"; - return ""; + return QUuid().toString(); } for(auto& fileInfo : netDevicesInfo) { @@ -84,49 +95,20 @@ QString FingerprintUtils::getMachineFingerprintString() { hash.addData(data); } - // Makes this hash unique to us - hash.addData("Vircadia"); - - // Stretching - for (int i=0; i < 65535; i++) { - hash.addData(hash.result()); - } - - QByteArray result = hash.result(); - result.resize(128 / 8); // GUIDs are 128 bit numbers - - // Set UUID version to 4, ensuring it's a valid UUID - result[6] = (result[6] & 0x0F) | 0x40; - - // Of course, Qt couldn't be nice and just parse something like: - // 1b1b9d6d45c2473bac13dc3011ff58d6 - // - // So we have to turn it into: - // {1b1b9d6d-45c2-473b-ac13-dc3011ff58d6} - - uuidString = result.toHex(); - uuidString.insert(20, '-'); - uuidString.insert(16, '-'); - uuidString.insert(12, '-'); - uuidString.insert(8, '-'); - uuidString.prepend("{"); - uuidString.append("}"); - - qCDebug(networking) << "Linux machine fingerprint:" << uuidString; #endif //Q_OS_LINUX #ifdef Q_OS_MAC io_registry_entry_t ioRegistryRoot = IORegistryEntryFromPath(kIOMasterPortDefault, "IOService:/"); CFStringRef uuidCf = (CFStringRef) IORegistryEntryCreateCFProperty(ioRegistryRoot, CFSTR(kIOPlatformUUIDKey), kCFAllocatorDefault, 0); IOObjectRelease(ioRegistryRoot); - uuidString = QString::fromCFString(uuidCf); + hash.addData(QString::fromCFString(uuidCf).toUtf8()); CFRelease(uuidCf); - qCDebug(networking) << "Mac serial number: " << uuidString; #endif //Q_OS_MAC #ifdef Q_OS_WIN HKEY cryptoKey; - + bool success = false; + // try and open the key that contains the machine GUID if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Cryptography", 0, KEY_READ, &cryptoKey) == ERROR_SUCCESS) { DWORD type; @@ -143,7 +125,8 @@ QString FingerprintUtils::getMachineFingerprintString() { if (RegQueryValueEx(cryptoKey, MACHINE_GUID_KEY, NULL, NULL, reinterpret_cast(&machineGUID[0]), &guidSize) == ERROR_SUCCESS) { - uuidString = QString::fromStdString(machineGUID); + hash.addData(QString::fromStdString(machineGUID).toUtf8()); + success = true; } } } @@ -151,10 +134,43 @@ QString FingerprintUtils::getMachineFingerprintString() { RegCloseKey(cryptoKey); } + if (!success) { + // Let getMachineFingerprint handle this contingency + return QUuid().toString(); + } #endif //Q_OS_WIN - return uuidString; + // Makes this hash unique to us + hash.addData(HASH_SALT); + // Stretching + for (int i = 0; i < HASH_ITERATIONS; i++) { + hash.addData(hash.result()); + } + + QByteArray result = hash.result(); + result.resize(128 / 8); // GUIDs are 128 bit numbers + + // Set UUID version to 4, ensuring it's a valid UUID + result[6] = (result[6] & 0x0F) | 0x40; + + // Of course, Qt couldn't be nice and just parse something like: + // 1b1b9d6d45c2473bac13dc3011ff58d6 + // + // So we have to turn it into: + // {1b1b9d6d-45c2-473b-ac13-dc3011ff58d6} + + QString uuidString = result.toHex(); + uuidString.insert(20, '-'); + uuidString.insert(16, '-'); + uuidString.insert(12, '-'); + uuidString.insert(8, '-'); + uuidString.prepend("{"); + uuidString.append("}"); + + qCDebug(networking) << "Final machine fingerprint:" << uuidString; + + return uuidString; } QUuid FingerprintUtils::getMachineFingerprint() { diff --git a/plugins/CMakeLists.txt b/plugins/CMakeLists.txt index a72371f544..195021e2fe 100644 --- a/plugins/CMakeLists.txt +++ b/plugins/CMakeLists.txt @@ -47,11 +47,14 @@ endif() # server-side plugins set(DIR "pcmCodec") add_subdirectory(${DIR}) -set(DIR "hifiCodec") -add_subdirectory(${DIR}) set(DIR "opusCodec") add_subdirectory(${DIR}) +if (NOT CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64") + set(DIR "hifiCodec") + add_subdirectory(${DIR}) +endif() + # example plugins set(DIR "JSAPIExample") add_subdirectory(${DIR})