diff --git a/package-lock.json b/package-lock.json index a3b92a1..ef5de27 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,7 +14,8 @@ "@vitejs/plugin-vue-jsx": "^3.0.1", "@vueuse/components": "^10.1.2", "@vueuse/core": "^10.1.2", - "echarts": "^5.4.2", + "echarts": "^5.4.3", + "echarts-gl": "^2.0.9", "element-plus": "^2.3.6", "three": "^0.154.0", "vue": "^3.3.4", @@ -2027,6 +2028,11 @@ "node": ">=4" } }, + "node_modules/claygl": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/claygl/-/claygl-1.3.0.tgz", + "integrity": "sha512-+gGtJjT6SSHD2l2yC3MCubW/sCV40tZuSs5opdtn79vFSGUgp/lH139RNEQ6Jy078/L0aV8odCw8RSrUcMfLaQ==" + }, "node_modules/color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", @@ -2156,12 +2162,24 @@ } }, "node_modules/echarts": { - "version": "5.4.2", - "resolved": "https://registry.npmjs.org/echarts/-/echarts-5.4.2.tgz", - "integrity": "sha512-2W3vw3oI2tWJdyAz+b8DuWS0nfXtSDqlDmqgin/lfzbkB01cuMEN66KWBlmur3YMp5nEDEEt5s23pllnAzB4EA==", + "version": "5.4.3", + "resolved": "https://registry.npmjs.org/echarts/-/echarts-5.4.3.tgz", + "integrity": "sha512-mYKxLxhzy6zyTi/FaEbJMOZU1ULGEQHaeIeuMR5L+JnJTpz+YR03mnnpBhbR4+UYJAgiXgpyTVLffPAjOTLkZA==", "dependencies": { "tslib": "2.3.0", - "zrender": "5.4.3" + "zrender": "5.4.4" + } + }, + "node_modules/echarts-gl": { + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/echarts-gl/-/echarts-gl-2.0.9.tgz", + "integrity": "sha512-oKeMdkkkpJGWOzjgZUsF41DOh6cMsyrGGXimbjK2l6Xeq/dBQu4ShG2w2Dzrs/1bD27b2pLTGSaUzouY191gzA==", + "dependencies": { + "claygl": "^1.2.1", + "zrender": "^5.1.1" + }, + "peerDependencies": { + "echarts": "^5.1.2" } }, "node_modules/electron-to-chromium": { @@ -5083,9 +5101,9 @@ } }, "node_modules/zrender": { - "version": "5.4.3", - "resolved": "https://registry.npmjs.org/zrender/-/zrender-5.4.3.tgz", - "integrity": "sha512-DRUM4ZLnoaT0PBVvGBDO9oWIDBKFdAVieNWxWwK0niYzJCMwGchRk21/hsE+RKkIveH3XHCyvXcJDkgLVvfizQ==", + "version": "5.4.4", + "resolved": "https://registry.npmjs.org/zrender/-/zrender-5.4.4.tgz", + "integrity": "sha512-0VxCNJ7AGOMCWeHVyTrGzUgrK4asT4ml9PEkeGirAkKNYXYzoPJCLvmyfdoOXcjTHPs10OZVMfD1Rwg16AZyYw==", "dependencies": { "tslib": "2.3.0" } diff --git a/package.json b/package.json index 5f61115..ee78293 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,8 @@ "@vitejs/plugin-vue-jsx": "^3.0.1", "@vueuse/components": "^10.1.2", "@vueuse/core": "^10.1.2", - "echarts": "^5.4.2", + "echarts": "^5.4.3", + "echarts-gl": "^2.0.9", "element-plus": "^2.3.6", "three": "^0.154.0", "vue": "^3.3.4", diff --git a/public/models/robotic_arm/license.txt b/public/models/robotic_arm/license.txt new file mode 100644 index 0000000..5983a12 --- /dev/null +++ b/public/models/robotic_arm/license.txt @@ -0,0 +1,11 @@ +Model Information: +* title: Robotic Arm - Brazo Robotico +* source: https://sketchfab.com/3d-models/robotic-arm-brazo-robotico-e10b8ba5105b4d5c9ff5ba3de5e649c3 +* author: pcorralr (https://sketchfab.com/pcorralr) + +Model License: +* license type: CC-BY-4.0 (http://creativecommons.org/licenses/by/4.0/) +* requirements: Author must be credited. Commercial use is allowed. + +If you use this 3D model in your project be sure to copy paste this credit wherever you share it: +This work is based on "Robotic Arm - Brazo Robotico" (https://sketchfab.com/3d-models/robotic-arm-brazo-robotico-e10b8ba5105b4d5c9ff5ba3de5e649c3) by pcorralr (https://sketchfab.com/pcorralr) licensed under CC-BY-4.0 (http://creativecommons.org/licenses/by/4.0/) \ No newline at end of file diff --git a/public/models/robotic_arm/scene.bin b/public/models/robotic_arm/scene.bin new file mode 100644 index 0000000..d60862e Binary files /dev/null and b/public/models/robotic_arm/scene.bin differ diff --git a/public/models/robotic_arm/scene.gltf b/public/models/robotic_arm/scene.gltf new file mode 100644 index 0000000..5ae1612 --- /dev/null +++ b/public/models/robotic_arm/scene.gltf @@ -0,0 +1,4163 @@ +{ + "accessors": [ + { + "bufferView": 2, + "componentType": 5126, + "count": 682, + "max": [ + 500.68133544921875, + 500.68133544921875, + 111.28155517578125 + ], + "min": [ + -500.68133544921875, + -500.68133544921875, + 0.0 + ], + "type": "VEC3" + }, + { + "bufferView": 2, + "byteOffset": 8184, + "componentType": 5126, + "count": 682, + "max": [ + 1.0, + 1.0, + 1.0 + ], + "min": [ + -1.0, + -1.0, + -0.542387068271637 + ], + "type": "VEC3" + }, + { + "bufferView": 1, + "componentType": 5126, + "count": 682, + "max": [ + 0.7652646899223328, + 0.7183356285095215 + ], + "min": [ + 0.019999999552965164, + 0.038197144865989685 + ], + "type": "VEC2" + }, + { + "bufferView": 1, + "byteOffset": 5456, + "componentType": 5126, + "count": 682, + "max": [ + 0.7652646899223328, + 0.7183356285095215 + ], + "min": [ + 0.019999999552965164, + 0.038197144865989685 + ], + "type": "VEC2" + }, + { + "bufferView": 0, + "componentType": 5125, + "count": 1626, + "type": "SCALAR" + }, + { + "bufferView": 2, + "byteOffset": 16368, + "componentType": 5126, + "count": 1881, + "max": [ + 106.47113037109375, + 106.47113037109375, + 10.0 + ], + "min": [ + -106.47113037109375, + -330.64739990234375, + -99.27532958984375 + ], + "type": "VEC3" + }, + { + "bufferView": 2, + "byteOffset": 38940, + "componentType": 5126, + "count": 1881, + "max": [ + 1.0, + 1.0, + 1.0 + ], + "min": [ + -1.0, + -1.0, + -1.0 + ], + "type": "VEC3" + }, + { + "bufferView": 1, + "byteOffset": 10912, + "componentType": 5126, + "count": 1881, + "max": [ + 0.9665953516960144, + 0.8210182785987854 + ], + "min": [ + 0.10643641650676727, + 0.2929570972919464 + ], + "type": "VEC2" + }, + { + "bufferView": 1, + "byteOffset": 25960, + "componentType": 5126, + "count": 1881, + "max": [ + 0.9665953516960144, + 0.8210182785987854 + ], + "min": [ + 0.10643641650676727, + 0.2929570972919464 + ], + "type": "VEC2" + }, + { + "bufferView": 0, + "byteOffset": 6504, + "componentType": 5125, + "count": 3384, + "type": "SCALAR" + }, + { + "bufferView": 2, + "byteOffset": 61512, + "componentType": 5126, + "count": 150, + "max": [ + 108.80197143554688, + 107.14903259277344, + 0.0 + ], + "min": [ + -108.80197143554688, + -107.14903259277344, + -44.527313232421875 + ], + "type": "VEC3" + }, + { + "bufferView": 2, + "byteOffset": 63312, + "componentType": 5126, + "count": 150, + "max": [ + 1.0, + 0.9848079085350037, + 1.0 + ], + "min": [ + -1.0, + -0.9848078489303589, + -1.0 + ], + "type": "VEC3" + }, + { + "bufferView": 1, + "byteOffset": 41008, + "componentType": 5126, + "count": 150, + "max": [ + 0.8836376070976257, + 0.9267833232879639 + ], + "min": [ + 0.02454928494989872, + 0.6159562468528748 + ], + "type": "VEC2" + }, + { + "bufferView": 1, + "byteOffset": 42208, + "componentType": 5126, + "count": 150, + "max": [ + 0.8836376070976257, + 0.9267833232879639 + ], + "min": [ + 0.02454928494989872, + 0.6159562468528748 + ], + "type": "VEC2" + }, + { + "bufferView": 0, + "byteOffset": 20040, + "componentType": 5125, + "count": 420, + "type": "SCALAR" + }, + { + "bufferView": 2, + "byteOffset": 65112, + "componentType": 5126, + "count": 38, + "max": [ + 95.26261138916016, + 93.81536102294922, + 45.767242431640625 + ], + "min": [ + -95.26261138916016, + -93.81536865234375, + 0.0 + ], + "type": "VEC3" + }, + { + "bufferView": 2, + "byteOffset": 65568, + "componentType": 5126, + "count": 38, + "max": [ + 1.0, + 0.9848078489303589, + 0.0 + ], + "min": [ + -1.0, + -0.9848079085350037, + 0.0 + ], + "type": "VEC3" + }, + { + "bufferView": 1, + "byteOffset": 43408, + "componentType": 5126, + "count": 38, + "max": [ + 0.4867900013923645, + 0.23459714651107788 + ], + "min": [ + 0.48402705788612366, + 0.11553499102592468 + ], + "type": "VEC2" + }, + { + "bufferView": 1, + "byteOffset": 43712, + "componentType": 5126, + "count": 38, + "max": [ + 0.4867900013923645, + 0.23459714651107788 + ], + "min": [ + 0.48402705788612366, + 0.11553499102592468 + ], + "type": "VEC2" + }, + { + "bufferView": 0, + "byteOffset": 21720, + "componentType": 5125, + "count": 108, + "type": "SCALAR" + }, + { + "bufferView": 2, + "byteOffset": 66024, + "componentType": 5126, + "count": 165, + "max": [ + 76.48653411865234, + 76.48653411865234, + 23.925018310546875 + ], + "min": [ + -76.48653411865234, + -0.0003144160145893693, + -89.50841522216797 + ], + "type": "VEC3" + }, + { + "bufferView": 2, + "byteOffset": 68004, + "componentType": 5126, + "count": 165, + "max": [ + 0.9876883625984192, + 1.0, + 1.0 + ], + "min": [ + -0.987688422203064, + -3.449095942187341e-08, + -1.0 + ], + "type": "VEC3" + }, + { + "bufferView": 1, + "byteOffset": 44016, + "componentType": 5126, + "count": 165, + "max": [ + 0.5028036832809448, + 0.3487233519554138 + ], + "min": [ + 0.47037920355796814, + 0.31570351123809814 + ], + "type": "VEC2" + }, + { + "bufferView": 1, + "byteOffset": 45336, + "componentType": 5126, + "count": 165, + "max": [ + 0.5028036832809448, + 0.3487233519554138 + ], + "min": [ + 0.47037920355796814, + 0.31570351123809814 + ], + "type": "VEC2" + }, + { + "bufferView": 0, + "byteOffset": 22152, + "componentType": 5125, + "count": 240, + "type": "SCALAR" + }, + { + "bufferView": 2, + "byteOffset": 69984, + "componentType": 5126, + "count": 94, + "max": [ + 60.465087890625, + 59.5465087890625, + 42.18867874145508 + ], + "min": [ + -60.465110778808594, + -59.5464973449707, + -59.291770935058594 + ], + "type": "VEC3" + }, + { + "bufferView": 2, + "byteOffset": 71112, + "componentType": 5126, + "count": 94, + "max": [ + 1.0, + 0.9848079085350037, + 3.0367223757821193e-07 + ], + "min": [ + -1.0, + -0.9848078489303589, + -1.0 + ], + "type": "VEC3" + }, + { + "bufferView": 1, + "byteOffset": 46656, + "componentType": 5126, + "count": 94, + "max": [ + 0.7026785612106323, + 0.4865551292896271 + ], + "min": [ + 0.33390069007873535, + 0.37939348816871643 + ], + "type": "VEC2" + }, + { + "bufferView": 1, + "byteOffset": 47408, + "componentType": 5126, + "count": 94, + "max": [ + 0.7026785612106323, + 0.4865551292896271 + ], + "min": [ + 0.33390069007873535, + 0.37939348816871643 + ], + "type": "VEC2" + }, + { + "bufferView": 0, + "byteOffset": 23112, + "componentType": 5125, + "count": 264, + "type": "SCALAR" + }, + { + "bufferView": 2, + "byteOffset": 72240, + "componentType": 5126, + "count": 20, + "max": [ + 22.261444091796875, + 54.49249267578125, + 41.28282928466797 + ], + "min": [ + -22.261444091796875, + -54.49249267578125, + 0.0 + ], + "type": "VEC3" + }, + { + "bufferView": 2, + "byteOffset": 72480, + "componentType": 5126, + "count": 20, + "max": [ + 1.0, + 0.0, + 1.0 + ], + "min": [ + -1.0, + -1.0, + -1.0 + ], + "type": "VEC3" + }, + { + "bufferView": 1, + "byteOffset": 48160, + "componentType": 5126, + "count": 20, + "max": [ + 0.40940484404563904, + 0.20043572783470154 + ], + "min": [ + 0.38394278287887573, + 0.17012639343738556 + ], + "type": "VEC2" + }, + { + "bufferView": 1, + "byteOffset": 48320, + "componentType": 5126, + "count": 20, + "max": [ + 0.40940484404563904, + 0.20043572783470154 + ], + "min": [ + 0.38394278287887573, + 0.17012639343738556 + ], + "type": "VEC2" + }, + { + "bufferView": 0, + "byteOffset": 24168, + "componentType": 5125, + "count": 30, + "type": "SCALAR" + }, + { + "bufferView": 2, + "byteOffset": 72720, + "componentType": 5126, + "count": 16, + "max": [ + 22.261444091796875, + 54.49249267578125, + 41.28282928466797 + ], + "min": [ + -22.261444091796875, + -54.49249267578125, + 0.0 + ], + "type": "VEC3" + }, + { + "bufferView": 2, + "byteOffset": 72912, + "componentType": 5126, + "count": 16, + "max": [ + 1.0, + 0.0, + 1.0 + ], + "min": [ + -1.0, + 0.0, + -1.0 + ], + "type": "VEC3" + }, + { + "bufferView": 1, + "byteOffset": 48480, + "componentType": 5126, + "count": 16, + "max": [ + 0.3012407720088959, + 0.35071778297424316 + ], + "min": [ + 0.274759978055954, + 0.33390069007873535 + ], + "type": "VEC2" + }, + { + "bufferView": 1, + "byteOffset": 48608, + "componentType": 5126, + "count": 16, + "max": [ + 0.3012407720088959, + 0.35071778297424316 + ], + "min": [ + 0.274759978055954, + 0.33390069007873535 + ], + "type": "VEC2" + }, + { + "bufferView": 0, + "byteOffset": 24288, + "componentType": 5125, + "count": 24, + "type": "SCALAR" + }, + { + "bufferView": 2, + "byteOffset": 73104, + "componentType": 5126, + "count": 138, + "max": [ + 22.773792266845703, + 271.2161560058594, + 51.402244567871094 + ], + "min": [ + -22.773792266845703, + -21.444345474243164, + 0.0 + ], + "type": "VEC3" + }, + { + "bufferView": 2, + "byteOffset": 74760, + "componentType": 5126, + "count": 138, + "max": [ + 1.0, + 0.999738335609436, + 1.0 + ], + "min": [ + -1.0, + -1.0, + -1.0 + ], + "type": "VEC3" + }, + { + "bufferView": 1, + "byteOffset": 48736, + "componentType": 5126, + "count": 138, + "max": [ + 0.903915286064148, + 0.8150997757911682 + ], + "min": [ + 0.8161247968673706, + 0.7706320285797119 + ], + "type": "VEC2" + }, + { + "bufferView": 1, + "byteOffset": 49840, + "componentType": 5126, + "count": 138, + "max": [ + 0.903915286064148, + 0.8150997757911682 + ], + "min": [ + 0.8161247968673706, + 0.7706320285797119 + ], + "type": "VEC2" + }, + { + "bufferView": 0, + "byteOffset": 24384, + "componentType": 5125, + "count": 240, + "type": "SCALAR" + }, + { + "bufferView": 2, + "byteOffset": 76416, + "componentType": 5126, + "count": 138, + "max": [ + 22.773792266845703, + 271.2161560058594, + 51.402244567871094 + ], + "min": [ + -22.773792266845703, + -21.444345474243164, + 0.0 + ], + "type": "VEC3" + }, + { + "bufferView": 2, + "byteOffset": 78072, + "componentType": 5126, + "count": 138, + "max": [ + 1.0, + 0.999738335609436, + 1.0 + ], + "min": [ + -1.0, + -1.0, + -1.0 + ], + "type": "VEC3" + }, + { + "bufferView": 1, + "byteOffset": 50944, + "componentType": 5126, + "count": 138, + "max": [ + 0.9221124649047852, + 0.8833391070365906 + ], + "min": [ + 0.834321916103363, + 0.8388712406158447 + ], + "type": "VEC2" + }, + { + "bufferView": 1, + "byteOffset": 52048, + "componentType": 5126, + "count": 138, + "max": [ + 0.9221124649047852, + 0.8833391070365906 + ], + "min": [ + 0.834321916103363, + 0.8388712406158447 + ], + "type": "VEC2" + }, + { + "bufferView": 0, + "byteOffset": 25344, + "componentType": 5125, + "count": 240, + "type": "SCALAR" + }, + { + "bufferView": 2, + "byteOffset": 79728, + "componentType": 5126, + "count": 16, + "max": [ + 22.261444091796875, + 54.49249267578125, + 41.28282928466797 + ], + "min": [ + -22.261444091796875, + -54.49249267578125, + 0.0 + ], + "type": "VEC3" + }, + { + "bufferView": 2, + "byteOffset": 79920, + "componentType": 5126, + "count": 16, + "max": [ + 1.0, + 0.0, + 1.0 + ], + "min": [ + -1.0, + 0.0, + -1.0 + ], + "type": "VEC3" + }, + { + "bufferView": 1, + "byteOffset": 53152, + "componentType": 5126, + "count": 16, + "max": [ + 0.5878456234931946, + 0.4007599651813507 + ], + "min": [ + 0.5613648891448975, + 0.38394278287887573 + ], + "type": "VEC2" + }, + { + "bufferView": 1, + "byteOffset": 53280, + "componentType": 5126, + "count": 16, + "max": [ + 0.5878456234931946, + 0.4007599651813507 + ], + "min": [ + 0.5613648891448975, + 0.38394278287887573 + ], + "type": "VEC2" + }, + { + "bufferView": 0, + "byteOffset": 26304, + "componentType": 5125, + "count": 24, + "type": "SCALAR" + }, + { + "bufferView": 2, + "byteOffset": 80112, + "componentType": 5126, + "count": 20, + "max": [ + 22.261444091796875, + 54.49249267578125, + 41.28282928466797 + ], + "min": [ + -22.261444091796875, + -54.49249267578125, + 0.0 + ], + "type": "VEC3" + }, + { + "bufferView": 2, + "byteOffset": 80352, + "componentType": 5126, + "count": 20, + "max": [ + 1.0, + 0.0, + 1.0 + ], + "min": [ + -1.0, + -1.0, + -1.0 + ], + "type": "VEC3" + }, + { + "bufferView": 1, + "byteOffset": 53408, + "componentType": 5126, + "count": 20, + "max": [ + 0.4455886781215668, + 0.35022860765457153 + ], + "min": [ + 0.41578778624534607, + 0.32480210065841675 + ], + "type": "VEC2" + }, + { + "bufferView": 1, + "byteOffset": 53568, + "componentType": 5126, + "count": 20, + "max": [ + 0.4455886781215668, + 0.35022860765457153 + ], + "min": [ + 0.41578778624534607, + 0.32480210065841675 + ], + "type": "VEC2" + }, + { + "bufferView": 0, + "byteOffset": 26400, + "componentType": 5125, + "count": 30, + "type": "SCALAR" + }, + { + "bufferView": 2, + "byteOffset": 80592, + "componentType": 5126, + "count": 94, + "max": [ + 78.05186462402344, + 76.86610412597656, + 63.62615203857422 + ], + "min": [ + -78.05188751220703, + -76.86609649658203, + -37.85429000854492 + ], + "type": "VEC3" + }, + { + "bufferView": 2, + "byteOffset": 81720, + "componentType": 5126, + "count": 94, + "max": [ + 1.0, + 0.9848079085350037, + 3.336458860303537e-07 + ], + "min": [ + -1.0, + -0.9848077893257141, + -1.0 + ], + "type": "VEC3" + }, + { + "bufferView": 1, + "byteOffset": 53728, + "componentType": 5126, + "count": 94, + "max": [ + 0.9488936066627502, + 0.5979639291763306 + ], + "min": [ + 0.15647855401039124, + 0.47947776317596436 + ], + "type": "VEC2" + }, + { + "bufferView": 1, + "byteOffset": 54480, + "componentType": 5126, + "count": 94, + "max": [ + 0.9488936066627502, + 0.5979639291763306 + ], + "min": [ + 0.15647855401039124, + 0.47947776317596436 + ], + "type": "VEC2" + }, + { + "bufferView": 0, + "byteOffset": 26520, + "componentType": 5125, + "count": 264, + "type": "SCALAR" + }, + { + "bufferView": 2, + "byteOffset": 82848, + "componentType": 5126, + "count": 94, + "max": [ + 89.72779846191406, + 88.36463928222656, + 84.01304626464844 + ], + "min": [ + -89.72779083251953, + -88.36463165283203, + -17.467391967773438 + ], + "type": "VEC3" + }, + { + "bufferView": 2, + "byteOffset": 83976, + "componentType": 5126, + "count": 94, + "max": [ + 1.0, + 0.9848079085350037, + 3.7609598280141654e-07 + ], + "min": [ + -1.0, + -0.9848078489303589, + -1.0 + ], + "type": "VEC3" + }, + { + "bufferView": 1, + "byteOffset": 55232, + "componentType": 5126, + "count": 94, + "max": [ + 0.8131521344184875, + 0.814903974533081 + ], + "min": [ + 0.6250548362731934, + 0.47037920355796814 + ], + "type": "VEC2" + }, + { + "bufferView": 1, + "byteOffset": 55984, + "componentType": 5126, + "count": 94, + "max": [ + 0.8131521344184875, + 0.814903974533081 + ], + "min": [ + 0.6250548362731934, + 0.47037920355796814 + ], + "type": "VEC2" + }, + { + "bufferView": 0, + "byteOffset": 27576, + "componentType": 5125, + "count": 264, + "type": "SCALAR" + }, + { + "bufferView": 2, + "byteOffset": 85104, + "componentType": 5126, + "count": 264, + "max": [ + 79.6983642578125, + 99.61431884765625, + -0.0001660468988120556 + ], + "min": [ + -79.69843292236328, + -79.6983871459961, + -45.39055252075195 + ], + "type": "VEC3" + }, + { + "bufferView": 2, + "byteOffset": 88272, + "componentType": 5126, + "count": 264, + "max": [ + 1.0, + 1.0, + 1.0 + ], + "min": [ + -1.0, + -1.0, + -1.0 + ], + "type": "VEC3" + }, + { + "bufferView": 1, + "byteOffset": 56736, + "componentType": 5126, + "count": 264, + "max": [ + 0.7269895672798157, + 0.6400495171546936 + ], + "min": [ + 0.2019713819026947, + 0.1974221020936966 + ], + "type": "VEC2" + }, + { + "bufferView": 1, + "byteOffset": 58848, + "componentType": 5126, + "count": 264, + "max": [ + 0.7269895672798157, + 0.6400495171546936 + ], + "min": [ + 0.2019713819026947, + 0.1974221020936966 + ], + "type": "VEC2" + }, + { + "bufferView": 0, + "byteOffset": 28632, + "componentType": 5125, + "count": 504, + "type": "SCALAR" + }, + { + "bufferView": 2, + "byteOffset": 91440, + "componentType": 5126, + "count": 150, + "max": [ + 108.80197143554688, + 107.14903259277344, + 0.0 + ], + "min": [ + -108.80197143554688, + -107.14903259277344, + -44.527313232421875 + ], + "type": "VEC3" + }, + { + "bufferView": 2, + "byteOffset": 93240, + "componentType": 5126, + "count": 150, + "max": [ + 1.0, + 0.9848079085350037, + 1.0 + ], + "min": [ + -1.0, + -0.9848078489303589, + -1.0 + ], + "type": "VEC3" + }, + { + "bufferView": 1, + "byteOffset": 60960, + "componentType": 5126, + "count": 150, + "max": [ + 0.5842157602310181, + 0.6201326847076416 + ], + "min": [ + 0.34754854440689087, + 0.24291494488716125 + ], + "type": "VEC2" + }, + { + "bufferView": 1, + "byteOffset": 62160, + "componentType": 5126, + "count": 150, + "max": [ + 0.5842157602310181, + 0.6201326847076416 + ], + "min": [ + 0.34754854440689087, + 0.24291494488716125 + ], + "type": "VEC2" + }, + { + "bufferView": 0, + "byteOffset": 30648, + "componentType": 5125, + "count": 420, + "type": "SCALAR" + }, + { + "bufferView": 2, + "byteOffset": 95040, + "componentType": 5126, + "count": 94, + "max": [ + 57.55388641357422, + 56.6698112487793, + 41.559165954589844 + ], + "min": [ + -57.574981689453125, + -56.66981506347656, + -7.490840435028076 + ], + "type": "VEC3" + }, + { + "bufferView": 2, + "byteOffset": 96168, + "componentType": 5126, + "count": 94, + "max": [ + 0.9999996423721313, + 0.9848244786262512, + 1.0 + ], + "min": [ + -0.9999996423721313, + -0.9848244786262512, + -0.0008799081551842391 + ], + "type": "VEC3" + }, + { + "bufferView": 1, + "byteOffset": 63360, + "componentType": 5126, + "count": 94, + "max": [ + 0.4463443160057068, + 0.4287244975566864 + ], + "min": [ + 0.32480210065841675, + 0.3566471040248871 + ], + "type": "VEC2" + }, + { + "bufferView": 1, + "byteOffset": 64112, + "componentType": 5126, + "count": 94, + "max": [ + 0.4463443160057068, + 0.4287244975566864 + ], + "min": [ + 0.32480210065841675, + 0.3566471040248871 + ], + "type": "VEC2" + }, + { + "bufferView": 0, + "byteOffset": 32328, + "componentType": 5125, + "count": 264, + "type": "SCALAR" + }, + { + "bufferView": 2, + "byteOffset": 97296, + "componentType": 5126, + "count": 18, + "max": [ + 40.78863525390625, + 40.78863525390625, + 361.11846923828125 + ], + "min": [ + -40.78863525390625, + -40.78863525390625, + 0.0 + ], + "type": "VEC3" + }, + { + "bufferView": 2, + "byteOffset": 97512, + "componentType": 5126, + "count": 18, + "max": [ + 1.0, + 1.0, + 0.0 + ], + "min": [ + -1.0, + -1.0, + 0.0 + ], + "type": "VEC3" + }, + { + "bufferView": 1, + "byteOffset": 64864, + "componentType": 5126, + "count": 18, + "max": [ + 0.9545474648475647, + 0.9682350158691406 + ], + "min": [ + 0.8661670088768005, + 0.9071105122566223 + ], + "type": "VEC2" + }, + { + "bufferView": 1, + "byteOffset": 65008, + "componentType": 5126, + "count": 18, + "max": [ + 0.9545474648475647, + 0.9682350158691406 + ], + "min": [ + 0.8661670088768005, + 0.9071105122566223 + ], + "type": "VEC2" + }, + { + "bufferView": 0, + "byteOffset": 33384, + "componentType": 5125, + "count": 48, + "type": "SCALAR" + }, + { + "bufferView": 2, + "byteOffset": 97728, + "componentType": 5126, + "count": 94, + "max": [ + 57.55388641357422, + 56.6698112487793, + 41.559165954589844 + ], + "min": [ + -57.574981689453125, + -56.66981506347656, + -7.490840435028076 + ], + "type": "VEC3" + }, + { + "bufferView": 2, + "byteOffset": 98856, + "componentType": 5126, + "count": 94, + "max": [ + 0.9999996423721313, + 0.9848244786262512, + 1.0 + ], + "min": [ + -0.9999996423721313, + -0.9848244786262512, + -0.0008799081551842391 + ], + "type": "VEC3" + }, + { + "bufferView": 1, + "byteOffset": 65152, + "componentType": 5126, + "count": 94, + "max": [ + 0.9799999594688416, + 0.8757890462875366 + ], + "min": [ + 0.17012637853622437, + 0.12008427083492279 + ], + "type": "VEC2" + }, + { + "bufferView": 1, + "byteOffset": 65904, + "componentType": 5126, + "count": 94, + "max": [ + 0.9799999594688416, + 0.8757890462875366 + ], + "min": [ + 0.17012637853622437, + 0.12008427083492279 + ], + "type": "VEC2" + }, + { + "bufferView": 0, + "byteOffset": 33576, + "componentType": 5125, + "count": 264, + "type": "SCALAR" + }, + { + "bufferView": 2, + "byteOffset": 99984, + "componentType": 5126, + "count": 38, + "max": [ + 57.54403305053711, + 56.6698112487793, + 16.239513397216797 + ], + "min": [ + -57.54403305053711, + -56.66981506347656, + 0.0 + ], + "type": "VEC3" + }, + { + "bufferView": 2, + "byteOffset": 100440, + "componentType": 5126, + "count": 38, + "max": [ + 1.0, + 0.9848078489303589, + 0.0 + ], + "min": [ + -1.0, + -0.9848079085350037, + 0.0 + ], + "type": "VEC3" + }, + { + "bufferView": 1, + "byteOffset": 66656, + "componentType": 5126, + "count": 38, + "max": [ + 0.4562755525112152, + 0.20616061985492706 + ], + "min": [ + 0.4521820843219757, + 0.11553497612476349 + ], + "type": "VEC2" + }, + { + "bufferView": 1, + "byteOffset": 66960, + "componentType": 5126, + "count": 38, + "max": [ + 0.4562755525112152, + 0.20616061985492706 + ], + "min": [ + 0.4521820843219757, + 0.11553497612476349 + ], + "type": "VEC2" + }, + { + "bufferView": 0, + "byteOffset": 34632, + "componentType": 5125, + "count": 108, + "type": "SCALAR" + }, + { + "bufferView": 2, + "byteOffset": 100896, + "componentType": 5126, + "count": 338, + "max": [ + 180.0201416015625, + 201.11404418945313, + 382.08880615234375 + ], + "min": [ + -87.83654022216797, + -82.48674774169922, + 9.966599464416504 + ], + "type": "VEC3" + }, + { + "bufferView": 2, + "byteOffset": 104952, + "componentType": 5126, + "count": 338, + "max": [ + 0.9936104416847229, + 1.0, + 0.9711464643478394 + ], + "min": [ + -1.0, + -1.0, + -0.9638761878013611 + ], + "type": "VEC3" + }, + { + "bufferView": 1, + "byteOffset": 67264, + "componentType": 5126, + "count": 338, + "max": [ + 0.8809950351715088, + 0.9694674015045166 + ], + "min": [ + 0.5158720016479492, + 0.4385342001914978 + ], + "type": "VEC2" + }, + { + "bufferView": 1, + "byteOffset": 69968, + "componentType": 5126, + "count": 338, + "max": [ + 0.8809950351715088, + 0.9694674015045166 + ], + "min": [ + 0.5158720016479492, + 0.4385342001914978 + ], + "type": "VEC2" + }, + { + "bufferView": 0, + "byteOffset": 35064, + "componentType": 5125, + "count": 756, + "type": "SCALAR" + }, + { + "bufferView": 2, + "byteOffset": 109008, + "componentType": 5126, + "count": 184, + "max": [ + 109.70357513427734, + 109.70357513427734, + 169.8992462158203 + ], + "min": [ + -109.70357513427734, + -109.70357513427734, + 0.0 + ], + "type": "VEC3" + }, + { + "bufferView": 2, + "byteOffset": 111216, + "componentType": 5126, + "count": 184, + "max": [ + 1.0, + 1.0, + 1.0 + ], + "min": [ + -1.0, + -1.0, + 0.0 + ], + "type": "VEC3" + }, + { + "bufferView": 1, + "byteOffset": 72672, + "componentType": 5126, + "count": 184, + "max": [ + 0.5365810990333557, + 0.39310920238494873 + ], + "min": [ + 0.07114402949810028, + 0.019999999552965164 + ], + "type": "VEC2" + }, + { + "bufferView": 1, + "byteOffset": 74144, + "componentType": 5126, + "count": 184, + "max": [ + 0.5365810990333557, + 0.39310920238494873 + ], + "min": [ + 0.07004213333129883, + 0.019999999552965164 + ], + "type": "VEC2" + }, + { + "bufferView": 0, + "byteOffset": 38088, + "componentType": 5125, + "count": 534, + "type": "SCALAR" + }, + { + "bufferView": 2, + "byteOffset": 113424, + "componentType": 5126, + "count": 62, + "max": [ + 194.96820068359375, + -118.39031982421875, + 382.0848083496094 + ], + "min": [ + -72.94303894042969, + -179.59835815429688, + 9.95806884765625 + ], + "type": "VEC3" + }, + { + "bufferView": 2, + "byteOffset": 114168, + "componentType": 5126, + "count": 62, + "max": [ + 0.9737647771835327, + 5.78831386519596e-05, + 1.0 + ], + "min": [ + -1.0, + -1.0, + -1.0 + ], + "type": "VEC3" + }, + { + "bufferView": 1, + "byteOffset": 75616, + "componentType": 5126, + "count": 62, + "max": [ + 0.9262850880622864, + 0.5314533114433289 + ], + "min": [ + 0.5158720016479492, + 0.11553497612476349 + ], + "type": "VEC2" + }, + { + "bufferView": 1, + "byteOffset": 76112, + "componentType": 5126, + "count": 62, + "max": [ + 0.9262850880622864, + 0.5314533114433289 + ], + "min": [ + 0.5158720016479492, + 0.11553497612476349 + ], + "type": "VEC2" + }, + { + "bufferView": 0, + "byteOffset": 40224, + "componentType": 5125, + "count": 114, + "type": "SCALAR" + }, + { + "bufferView": 2, + "byteOffset": 114912, + "componentType": 5126, + "count": 56, + "max": [ + 35.94198226928711, + 35.39594268798828, + 27.828262329101563 + ], + "min": [ + -35.94198226928711, + -35.39594650268555, + 0.0 + ], + "type": "VEC3" + }, + { + "bufferView": 2, + "byteOffset": 115584, + "componentType": 5126, + "count": 56, + "max": [ + 1.0, + 0.9848078489303589, + 1.0 + ], + "min": [ + -1.0, + -0.9848079085350037, + 0.0 + ], + "type": "VEC3" + }, + { + "bufferView": 1, + "byteOffset": 76608, + "componentType": 5126, + "count": 56, + "max": [ + 0.693692684173584, + 0.979295015335083 + ], + "min": [ + 0.02454928494989872, + 0.33844995498657227 + ], + "type": "VEC2" + }, + { + "bufferView": 1, + "byteOffset": 77056, + "componentType": 5126, + "count": 56, + "max": [ + 0.693692684173584, + 0.979295015335083 + ], + "min": [ + 0.02454928494989872, + 0.33844995498657227 + ], + "type": "VEC2" + }, + { + "bufferView": 0, + "byteOffset": 40680, + "componentType": 5125, + "count": 156, + "type": "SCALAR" + }, + { + "bufferView": 2, + "byteOffset": 116256, + "componentType": 5126, + "count": 294, + "max": [ + 109.70359802246094, + 109.70359802246094, + 169.8992462158203 + ], + "min": [ + -109.70359802246094, + -109.70359802246094, + 0.0 + ], + "type": "VEC3" + }, + { + "bufferView": 2, + "byteOffset": 119784, + "componentType": 5126, + "count": 294, + "max": [ + 1.0, + 1.0, + 1.0 + ], + "min": [ + -1.0, + -1.0, + -1.0 + ], + "type": "VEC3" + }, + { + "bufferView": 1, + "byteOffset": 77504, + "componentType": 5126, + "count": 294, + "max": [ + 0.9405826330184937, + 0.7358646988868713 + ], + "min": [ + 0.07004214078187943, + 0.39759066700935364 + ], + "type": "VEC2" + }, + { + "bufferView": 1, + "byteOffset": 79856, + "componentType": 5126, + "count": 294, + "max": [ + 0.9405826330184937, + 0.7358646988868713 + ], + "min": [ + 0.07004214078187943, + 0.39759066700935364 + ], + "type": "VEC2" + }, + { + "bufferView": 0, + "byteOffset": 41304, + "componentType": 5125, + "count": 852, + "type": "SCALAR" + }, + { + "bufferView": 2, + "byteOffset": 123312, + "componentType": 5126, + "count": 110, + "max": [ + 109.70357513427734, + 109.70357513427734, + 169.8992462158203 + ], + "min": [ + -109.70357513427734, + -109.70357513427734, + 0.0 + ], + "type": "VEC3" + }, + { + "bufferView": 2, + "byteOffset": 124632, + "componentType": 5126, + "count": 110, + "max": [ + 1.0, + 1.0, + 0.0 + ], + "min": [ + -1.0, + -1.0, + -1.0 + ], + "type": "VEC3" + }, + { + "bufferView": 1, + "byteOffset": 82208, + "componentType": 5126, + "count": 110, + "max": [ + 0.8570070862770081, + 0.5975303053855896 + ], + "min": [ + 0.07004214078187943, + 0.4931256175041199 + ], + "type": "VEC2" + }, + { + "bufferView": 1, + "byteOffset": 83088, + "componentType": 5126, + "count": 110, + "max": [ + 0.8570070862770081, + 0.5975303053855896 + ], + "min": [ + 0.07004214078187943, + 0.4931256175041199 + ], + "type": "VEC2" + }, + { + "bufferView": 0, + "byteOffset": 44712, + "componentType": 5125, + "count": 318, + "type": "SCALAR" + }, + { + "bufferView": 2, + "byteOffset": 125952, + "componentType": 5126, + "count": 640, + "max": [ + 122.6666030883789, + 366.4515686035156, + 124.89019775390625 + ], + "min": [ + -1000.6387939453125, + -122.6666030883789, + 2.8458612177928444e-06 + ], + "type": "VEC3" + }, + { + "bufferView": 2, + "byteOffset": 133632, + "componentType": 5126, + "count": 640, + "max": [ + 1.0, + 1.0, + 1.0 + ], + "min": [ + -1.0, + -1.0, + -1.0 + ], + "type": "VEC3" + }, + { + "bufferView": 1, + "byteOffset": 83968, + "componentType": 5126, + "count": 640, + "max": [ + 0.9664340615272522, + 0.32548391819000244 + ], + "min": [ + 0.07459143549203873, + 0.019999999552965164 + ], + "type": "VEC2" + }, + { + "bufferView": 1, + "byteOffset": 89088, + "componentType": 5126, + "count": 640, + "max": [ + 0.9664340615272522, + 0.32548391819000244 + ], + "min": [ + 0.07459143549203873, + 0.019999999552965164 + ], + "type": "VEC2" + }, + { + "bufferView": 0, + "byteOffset": 45984, + "componentType": 5125, + "count": 1860, + "type": "SCALAR" + }, + { + "bufferView": 2, + "byteOffset": 141312, + "componentType": 5126, + "count": 472, + "max": [ + 27.953916549682617, + 27.953916549682617, + 18.759889602661133 + ], + "min": [ + -27.953916549682617, + -27.953916549682617, + 0.0 + ], + "type": "VEC3" + }, + { + "bufferView": 2, + "byteOffset": 146976, + "componentType": 5126, + "count": 472, + "max": [ + 1.0, + 1.0, + 1.0 + ], + "min": [ + -1.0, + -1.0, + 0.0 + ], + "type": "VEC3" + }, + { + "bufferView": 1, + "byteOffset": 94208, + "componentType": 5126, + "count": 472, + "max": [ + 0.7971087098121643, + 0.8712167739868164 + ], + "min": [ + 0.6250548362731934, + 0.5067734718322754 + ], + "type": "VEC2" + }, + { + "bufferView": 1, + "byteOffset": 97984, + "componentType": 5126, + "count": 472, + "max": [ + 0.7971087098121643, + 0.8712167739868164 + ], + "min": [ + 0.6250548362731934, + 0.5067734718322754 + ], + "type": "VEC2" + }, + { + "bufferView": 0, + "byteOffset": 53424, + "componentType": 5125, + "count": 966, + "type": "SCALAR" + }, + { + "bufferView": 2, + "byteOffset": 152640, + "componentType": 5126, + "count": 768, + "max": [ + 799.6898803710938, + 211.10348510742188, + -12.580184936523438 + ], + "min": [ + -223.6195526123047, + -465.4950256347656, + -272.6370544433594 + ], + "type": "VEC3" + }, + { + "bufferView": 2, + "byteOffset": 161856, + "componentType": 5126, + "count": 768, + "max": [ + 1.0, + 1.0, + 1.0 + ], + "min": [ + -1.0, + -0.9569405913352966, + -1.0 + ], + "type": "VEC3" + }, + { + "bufferView": 1, + "byteOffset": 101760, + "componentType": 5126, + "count": 768, + "max": [ + 0.7797155976295471, + 0.7494584321975708 + ], + "min": [ + 0.1246335506439209, + 0.11553497612476349 + ], + "type": "VEC2" + }, + { + "bufferView": 1, + "byteOffset": 107904, + "componentType": 5126, + "count": 768, + "max": [ + 0.7797155976295471, + 0.7494584321975708 + ], + "min": [ + 0.1246335506439209, + 0.11553497612476349 + ], + "type": "VEC2" + }, + { + "bufferView": 0, + "byteOffset": 57288, + "componentType": 5125, + "count": 1704, + "type": "SCALAR" + }, + { + "bufferView": 2, + "byteOffset": 171072, + "componentType": 5126, + "count": 584, + "max": [ + 151.21044921875, + 151.21044921875, + 211.65963745117188 + ], + "min": [ + -151.21044921875, + -151.21044921875, + 0.0 + ], + "type": "VEC3" + }, + { + "bufferView": 2, + "byteOffset": 178080, + "componentType": 5126, + "count": 584, + "max": [ + 1.0, + 1.0, + 1.0 + ], + "min": [ + -1.0, + -1.0, + -1.0 + ], + "type": "VEC3" + }, + { + "bufferView": 1, + "byteOffset": 114048, + "componentType": 5126, + "count": 584, + "max": [ + 0.9783942103385925, + 0.6977366805076599 + ], + "min": [ + 0.34754854440689087, + 0.3020556569099426 + ], + "type": "VEC2" + }, + { + "bufferView": 1, + "byteOffset": 118720, + "componentType": 5126, + "count": 584, + "max": [ + 0.9783942103385925, + 0.6977366805076599 + ], + "min": [ + 0.34754854440689087, + 0.3020556569099426 + ], + "type": "VEC2" + }, + { + "bufferView": 0, + "byteOffset": 64104, + "componentType": 5125, + "count": 1716, + "type": "SCALAR" + }, + { + "bufferView": 2, + "byteOffset": 185088, + "componentType": 5126, + "count": 164, + "max": [ + 273.5501403808594, + 273.5501403808594, + 126.99469757080078 + ], + "min": [ + -273.5501403808594, + -273.5501403808594, + 0.0 + ], + "type": "VEC3" + }, + { + "bufferView": 2, + "byteOffset": 187056, + "componentType": 5126, + "count": 164, + "max": [ + 1.0, + 1.0, + 1.0 + ], + "min": [ + -1.0, + -1.0, + 0.0 + ], + "type": "VEC3" + }, + { + "bufferView": 1, + "byteOffset": 123392, + "componentType": 5126, + "count": 164, + "max": [ + 0.9495565295219421, + 0.46278300881385803 + ], + "min": [ + 0.07459142059087753, + 0.07459142059087753 + ], + "type": "VEC2" + }, + { + "bufferView": 1, + "byteOffset": 124704, + "componentType": 5126, + "count": 164, + "max": [ + 0.9495565295219421, + 0.46278300881385803 + ], + "min": [ + 0.07459142059087753, + 0.07459142059087753 + ], + "type": "VEC2" + }, + { + "bufferView": 0, + "byteOffset": 70968, + "componentType": 5125, + "count": 474, + "type": "SCALAR" + }, + { + "bufferView": 2, + "byteOffset": 189024, + "componentType": 5126, + "count": 24, + "max": [ + 576.7679443359375, + 576.7679443359375, + -7.62939453125e-06 + ], + "min": [ + -576.7679443359375, + -576.7679443359375, + -40.00000762939453 + ], + "type": "VEC3" + }, + { + "bufferView": 2, + "byteOffset": 189312, + "componentType": 5126, + "count": 24, + "max": [ + 1.0, + 1.0, + 1.0 + ], + "min": [ + -1.0, + -1.0, + -1.0 + ], + "type": "VEC3" + }, + { + "bufferView": 1, + "byteOffset": 126016, + "componentType": 5126, + "count": 24, + "max": [ + 0.7973579168319702, + 0.9665467739105225 + ], + "min": [ + 0.07004212588071823, + 0.03819713741540909 + ], + "type": "VEC2" + }, + { + "bufferView": 1, + "byteOffset": 126208, + "componentType": 5126, + "count": 24, + "max": [ + 0.7973579168319702, + 0.9665467739105225 + ], + "min": [ + 0.07004212588071823, + 0.03819713741540909 + ], + "type": "VEC2" + }, + { + "bufferView": 0, + "byteOffset": 72864, + "componentType": 5125, + "count": 36, + "type": "SCALAR" + } + ], + "asset": { + "extras": { + "author": "pcorralr (https://sketchfab.com/pcorralr)", + "license": "CC-BY-4.0 (http://creativecommons.org/licenses/by/4.0/)", + "source": "https://sketchfab.com/3d-models/robotic-arm-brazo-robotico-e10b8ba5105b4d5c9ff5ba3de5e649c3", + "title": "Robotic Arm - Brazo Robotico" + }, + "generator": "Sketchfab-12.67.0", + "version": "2.0" + }, + "bufferViews": [ + { + "buffer": 0, + "byteLength": 73008, + "name": "floatBufferViews", + "target": 34963 + }, + { + "buffer": 0, + "byteLength": 126400, + "byteOffset": 73008, + "byteStride": 8, + "name": "floatBufferViews", + "target": 34962 + }, + { + "buffer": 0, + "byteLength": 189600, + "byteOffset": 199408, + "byteStride": 12, + "name": "floatBufferViews", + "target": 34962 + } + ], + "buffers": [ + { + "byteLength": 389008, + "uri": "scene.bin" + } + ], + "images": [ + { + "uri": "textures/01_-_Default_baseColor.jpeg" + } + ], + "materials": [ + { + "doubleSided": true, + "name": "01_-_Default", + "pbrMetallicRoughness": { + "baseColorTexture": { + "index": 0 + }, + "metallicFactor": 0.0, + "roughnessFactor": 0.22389481707317072 + } + } + ], + "meshes": [ + { + "name": "Base_01 - Default_0", + "primitives": [ + { + "attributes": { + "NORMAL": 1, + "POSITION": 0, + "TEXCOORD_0": 2, + "TEXCOORD_1": 3 + }, + "indices": 4, + "material": 0, + "mode": 4 + } + ] + }, + { + "name": "Cylinder016_01 - Default_0", + "primitives": [ + { + "attributes": { + "NORMAL": 6, + "POSITION": 5, + "TEXCOORD_0": 7, + "TEXCOORD_1": 8 + }, + "indices": 9, + "material": 0, + "mode": 4 + } + ] + }, + { + "name": "Cylinder020_01 - Default_0", + "primitives": [ + { + "attributes": { + "NORMAL": 11, + "POSITION": 10, + "TEXCOORD_0": 12, + "TEXCOORD_1": 13 + }, + "indices": 14, + "material": 0, + "mode": 4 + } + ] + }, + { + "name": "Cylinder019_01 - Default_0", + "primitives": [ + { + "attributes": { + "NORMAL": 16, + "POSITION": 15, + "TEXCOORD_0": 17, + "TEXCOORD_1": 18 + }, + "indices": 19, + "material": 0, + "mode": 4 + } + ] + }, + { + "name": "Cylinder022_01 - Default_0", + "primitives": [ + { + "attributes": { + "NORMAL": 21, + "POSITION": 20, + "TEXCOORD_0": 22, + "TEXCOORD_1": 23 + }, + "indices": 24, + "material": 0, + "mode": 4 + } + ] + }, + { + "name": "Object003_01 - Default_0", + "primitives": [ + { + "attributes": { + "NORMAL": 26, + "POSITION": 25, + "TEXCOORD_0": 27, + "TEXCOORD_1": 28 + }, + "indices": 29, + "material": 0, + "mode": 4 + } + ] + }, + { + "name": "Box005_01 - Default_0", + "primitives": [ + { + "attributes": { + "NORMAL": 31, + "POSITION": 30, + "TEXCOORD_0": 32, + "TEXCOORD_1": 33 + }, + "indices": 34, + "material": 0, + "mode": 4 + } + ] + }, + { + "name": "Box006_01 - Default_0", + "primitives": [ + { + "attributes": { + "NORMAL": 36, + "POSITION": 35, + "TEXCOORD_0": 37, + "TEXCOORD_1": 38 + }, + "indices": 39, + "material": 0, + "mode": 4 + } + ] + }, + { + "name": "Box007_01 - Default_0", + "primitives": [ + { + "attributes": { + "NORMAL": 41, + "POSITION": 40, + "TEXCOORD_0": 42, + "TEXCOORD_1": 43 + }, + "indices": 44, + "material": 0, + "mode": 4 + } + ] + }, + { + "name": "Box004_01 - Default_0", + "primitives": [ + { + "attributes": { + "NORMAL": 46, + "POSITION": 45, + "TEXCOORD_0": 47, + "TEXCOORD_1": 48 + }, + "indices": 49, + "material": 0, + "mode": 4 + } + ] + }, + { + "name": "Box003_01 - Default_0", + "primitives": [ + { + "attributes": { + "NORMAL": 51, + "POSITION": 50, + "TEXCOORD_0": 52, + "TEXCOORD_1": 53 + }, + "indices": 54, + "material": 0, + "mode": 4 + } + ] + }, + { + "name": "Box002_01 - Default_0", + "primitives": [ + { + "attributes": { + "NORMAL": 56, + "POSITION": 55, + "TEXCOORD_0": 57, + "TEXCOORD_1": 58 + }, + "indices": 59, + "material": 0, + "mode": 4 + } + ] + }, + { + "name": "Object004_01 - Default_0", + "primitives": [ + { + "attributes": { + "NORMAL": 61, + "POSITION": 60, + "TEXCOORD_0": 62, + "TEXCOORD_1": 63 + }, + "indices": 64, + "material": 0, + "mode": 4 + } + ] + }, + { + "name": "Cylinder021_01 - Default_0", + "primitives": [ + { + "attributes": { + "NORMAL": 66, + "POSITION": 65, + "TEXCOORD_0": 67, + "TEXCOORD_1": 68 + }, + "indices": 69, + "material": 0, + "mode": 4 + } + ] + }, + { + "name": "Cylinder017_01 - Default_0", + "primitives": [ + { + "attributes": { + "NORMAL": 71, + "POSITION": 70, + "TEXCOORD_0": 72, + "TEXCOORD_1": 73 + }, + "indices": 74, + "material": 0, + "mode": 4 + } + ] + }, + { + "name": "Cylinder018_01 - Default_0", + "primitives": [ + { + "attributes": { + "NORMAL": 76, + "POSITION": 75, + "TEXCOORD_0": 77, + "TEXCOORD_1": 78 + }, + "indices": 79, + "material": 0, + "mode": 4 + } + ] + }, + { + "name": "Cylinder014_01 - Default_0", + "primitives": [ + { + "attributes": { + "NORMAL": 81, + "POSITION": 80, + "TEXCOORD_0": 82, + "TEXCOORD_1": 83 + }, + "indices": 84, + "material": 0, + "mode": 4 + } + ] + }, + { + "name": "Cylinder013_01 - Default_0", + "primitives": [ + { + "attributes": { + "NORMAL": 86, + "POSITION": 85, + "TEXCOORD_0": 87, + "TEXCOORD_1": 88 + }, + "indices": 89, + "material": 0, + "mode": 4 + } + ] + }, + { + "name": "Cylinder012_01 - Default_0", + "primitives": [ + { + "attributes": { + "NORMAL": 91, + "POSITION": 90, + "TEXCOORD_0": 92, + "TEXCOORD_1": 93 + }, + "indices": 94, + "material": 0, + "mode": 4 + } + ] + }, + { + "name": "Cylinder011_01 - Default_0", + "primitives": [ + { + "attributes": { + "NORMAL": 96, + "POSITION": 95, + "TEXCOORD_0": 97, + "TEXCOORD_1": 98 + }, + "indices": 99, + "material": 0, + "mode": 4 + } + ] + }, + { + "name": "Box001_01 - Default_0", + "primitives": [ + { + "attributes": { + "NORMAL": 101, + "POSITION": 100, + "TEXCOORD_0": 102, + "TEXCOORD_1": 103 + }, + "indices": 104, + "material": 0, + "mode": 4 + } + ] + }, + { + "name": "Cylinder009_01 - Default_0", + "primitives": [ + { + "attributes": { + "NORMAL": 106, + "POSITION": 105, + "TEXCOORD_0": 107, + "TEXCOORD_1": 108 + }, + "indices": 109, + "material": 0, + "mode": 4 + } + ] + }, + { + "name": "Object002_01 - Default_0", + "primitives": [ + { + "attributes": { + "NORMAL": 111, + "POSITION": 110, + "TEXCOORD_0": 112, + "TEXCOORD_1": 113 + }, + "indices": 114, + "material": 0, + "mode": 4 + } + ] + }, + { + "name": "Cylinder010_01 - Default_0", + "primitives": [ + { + "attributes": { + "NORMAL": 116, + "POSITION": 115, + "TEXCOORD_0": 117, + "TEXCOORD_1": 118 + }, + "indices": 119, + "material": 0, + "mode": 4 + } + ] + }, + { + "name": "Cylinder008_01 - Default_0", + "primitives": [ + { + "attributes": { + "NORMAL": 121, + "POSITION": 120, + "TEXCOORD_0": 122, + "TEXCOORD_1": 123 + }, + "indices": 124, + "material": 0, + "mode": 4 + } + ] + }, + { + "name": "Cylinder007_01 - Default_0", + "primitives": [ + { + "attributes": { + "NORMAL": 126, + "POSITION": 125, + "TEXCOORD_0": 127, + "TEXCOORD_1": 128 + }, + "indices": 129, + "material": 0, + "mode": 4 + } + ] + }, + { + "name": "Cylinder005_01 - Default_0", + "primitives": [ + { + "attributes": { + "NORMAL": 131, + "POSITION": 130, + "TEXCOORD_0": 132, + "TEXCOORD_1": 133 + }, + "indices": 134, + "material": 0, + "mode": 4 + } + ] + }, + { + "name": "Cylinder006_01 - Default_0", + "primitives": [ + { + "attributes": { + "NORMAL": 136, + "POSITION": 135, + "TEXCOORD_0": 137, + "TEXCOORD_1": 138 + }, + "indices": 139, + "material": 0, + "mode": 4 + } + ] + }, + { + "name": "Cylinder002_01 - Default_0", + "primitives": [ + { + "attributes": { + "NORMAL": 141, + "POSITION": 140, + "TEXCOORD_0": 142, + "TEXCOORD_1": 143 + }, + "indices": 144, + "material": 0, + "mode": 4 + } + ] + }, + { + "name": "Cylinder003_01 - Default_0", + "primitives": [ + { + "attributes": { + "NORMAL": 146, + "POSITION": 145, + "TEXCOORD_0": 147, + "TEXCOORD_1": 148 + }, + "indices": 149, + "material": 0, + "mode": 4 + } + ] + }, + { + "name": "Cylinder001_01 - Default_0", + "primitives": [ + { + "attributes": { + "NORMAL": 151, + "POSITION": 150, + "TEXCOORD_0": 152, + "TEXCOORD_1": 153 + }, + "indices": 154, + "material": 0, + "mode": 4 + } + ] + }, + { + "name": "Object005_01 - Default_0", + "primitives": [ + { + "attributes": { + "NORMAL": 156, + "POSITION": 155, + "TEXCOORD_0": 157, + "TEXCOORD_1": 158 + }, + "indices": 159, + "material": 0, + "mode": 4 + } + ] + } + ], + "nodes": [ + { + "children": [ + 1 + ], + "matrix": [ + 1.0, + 0.0, + 0.0, + 0.0, + 0.0, + 2.220446049250313e-16, + -1.0, + 0.0, + 0.0, + 1.0, + 2.220446049250313e-16, + 0.0, + 0.0, + 0.0, + 0.0, + 1.0 + ], + "name": "Sketchfab_model" + }, + { + "children": [ + 2 + ], + "matrix": [ + 1.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 1.0, + 0.0, + 0.0, + -1.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 1.0 + ], + "name": "brazo.FBX" + }, + { + "children": [ + 3, + 5, + 78 + ], + "name": "RootNode" + }, + { + "children": [ + 4 + ], + "matrix": [ + 0.8668997883796692, + 0.0, + 0.0, + 0.0, + 0.0, + 1.924904210203569e-16, + -0.8668997883796692, + 0.0, + 0.0, + 1.0, + 2.220446049250313e-16, + 0.0, + 0.0, + 40.00000762939453, + 0.0, + 1.0 + ], + "name": "Base" + }, + { + "mesh": 0, + "name": "Base_01 - Default_0" + }, + { + "children": [ + 6, + 70, + 73, + 76 + ], + "matrix": [ + 4.183074951171875, + 0.0, + 0.0, + 0.0, + 0.0, + 9.288292249047536e-16, + -4.183074951171875, + 0.0, + 0.0, + 4.183074951171875, + 9.288292249047536e-16, + 0.0, + 0.0, + 151.27996826171875, + 0.0, + 1.0 + ], + "name": "Base" + }, + { + "children": [ + 7, + 62, + 64, + 66, + 68 + ], + "matrix": [ + 0.23905816674026342, + -3.384132920528149e-07, + 9.333082537836931e-07, + 0.0, + 3.384138196446063e-07, + 0.23905855417227628, + 5.3433755197890265e-09, + 0.0, + -9.333112864834274e-07, + -5.3420629741580225e-09, + 0.23905894160088498, + 0.0, + 24.07707977294922, + 52.12690353393555, + 72.58599853515625, + 1.0 + ], + "name": "Arm01" + }, + { + "children": [ + 8, + 10, + 46, + 48, + 50, + 52, + 54, + 56, + 58, + 60 + ], + "matrix": [ + 0.1311066895723343, + 6.58425732898763e-15, + -1.3968556135124125e-22, + 0.0, + -1.7041315844209679e-15, + 0.033932913277214816, + -0.12663933609719158, + 0.0, + -6.35990409654943e-15, + 0.12663933609719158, + 0.033932913277214816, + 0.0, + -82.28008270263672, + -847.1983032226563, + 449.5225830078125, + 1.0 + ], + "name": "Arm02" + }, + { + "children": [ + 9 + ], + "matrix": [ + -1.2426611121862782e-06, + -7.6273756027215756, + 2.7418143442823878e-06, + 0.0, + -1.1396064260518958e-05, + 2.741815513581581e-06, + 7.627373695364531, + 0.0, + -11.634041786180711, + 1.8954256857614263e-06, + -1.7382430483487443e-05, + 0.0, + -1117.31640625, + -430.6298828125, + 7484.99951171875, + 1.0 + ], + "name": "Cylinder016" + }, + { + "mesh": 1, + "name": "Cylinder016_01 - Default_0" + }, + { + "children": [ + 11, + 42, + 44 + ], + "matrix": [ + -1.8066475917798134e-06, + -11.089127725426966, + 30.46713116885068, + 0.0, + -3.185548809967761e-07, + 30.46713116885073, + 11.089127725426968, + 0.0, + -32.42244338989253, + 3.185661378906477e-07, + -1.8066456119919393e-06, + 0.0, + -598.2978515625, + -430.6298828125, + 7484.99951171875, + 1.0 + ], + "name": "Arm03" + }, + { + "children": [ + 12, + 14, + 16 + ], + "matrix": [ + 3.4075804531508667e-09, + -1.943005486266128e-18, + -0.017501037567853598, + 0.0, + -0.017501037567853574, + 9.313225710244162e-10, + -3.407580451207861e-09, + 0.0, + 9.313225719959189e-10, + 0.017501037567853903, + 1.7875650473648378e-16, + 0.0, + 1.52587890625e-05, + 42.53497314453125, + -0.009520530700683594, + 1.0 + ], + "name": "Arm03Rotation" + }, + { + "children": [ + 13 + ], + "matrix": [ + -13.442047119118666, + 6.368837606437336e-06, + -2.3449362144239132e-05, + 0.0, + 6.368843193028321e-06, + 13.442051887510562, + -1.9073484954484713e-06, + 0.0, + 3.209807967670826e-05, + -2.6108412187374255e-06, + -18.399814605684714, + 0.0, + -0.00457763671875, + 0.001953125, + 123.865234375, + 1.0 + ], + "name": "Cylinder020" + }, + { + "mesh": 2, + "name": "Cylinder020_01 - Default_0" + }, + { + "children": [ + 15 + ], + "matrix": [ + 13.442049026481618, + -6.40966709397263e-06, + 1.2819337825923772e-05, + 0.0, + 6.409668912964654e-06, + 13.44205188751067, + -4.76837124452345e-07, + 0.0, + -2.580918727285876e-06, + 9.600288388052172e-08, + 2.7062892913806036, + 0.0, + -0.00469970703125, + 0.001953125, + 0.0, + 1.0 + ], + "name": "Cylinder019" + }, + { + "mesh": 3, + "name": "Cylinder019_01 - Default_0" + }, + { + "children": [ + 17, + 40 + ], + "matrix": [ + 0.8983889222145081, + 2.2737364505592508e-13, + 2.2737364452652946e-13, + 0.0, + -2.2737364505592508e-13, + 0.8983889222145081, + 0.0, + 0.0, + -2.2737364452652946e-13, + -5.754609509009851e-26, + 0.8983889222145081, + 0.0, + 0.0, + 0.0029296875, + 801.1953125, + 1.0 + ], + "name": "Expand01" + }, + { + "children": [ + 18, + 38 + ], + "matrix": [ + 0.13900363445281982, + -2.8421709377464445e-14, + -2.8421709390699338e-14, + 0.0, + 2.842171090086496e-14, + 0.13900363445281963, + 7.450579805889924e-09, + 0.0, + 2.842170786729874e-14, + -7.450579805889924e-09, + 0.13900363445281963, + 0.0, + -0.0584716796875, + 0.0048828125, + 466.734375, + 1.0 + ], + "name": "Expand02" + }, + { + "children": [ + 19, + 22, + 24, + 31 + ], + "matrix": [ + 216.9894256591797, + -1.897353801849633e-19, + -5.421010862427521e-20, + 0.0, + 1.8973538209100231e-19, + 216.98942565917955, + 7.629395085473336e-06, + 0.0, + 5.421010195313823e-20, + -7.629395085473336e-06, + 216.98942565917955, + 0.0, + 0.4150390625, + -0.0078125, + 7006.515625, + 1.0 + ], + "name": "Expand03" + }, + { + "children": [ + 20 + ], + "matrix": [ + -1.3925916502629495e-07, + -0.30096814036354147, + -2.6822129985228826e-07, + 0.0, + -2.905065427077409e-07, + -2.682205279616319e-07, + 0.30096742510769625, + 0.0, + -0.30096754431707307, + 1.3925914814244352e-07, + -2.905065336903142e-07, + 0.0, + -6.103515625e-05, + 0.0, + 7.2666168212890625, + 1.0 + ], + "name": "Cylinder022" + }, + { + "children": [ + 21 + ], + "matrix": [ + 1.0, + 0.0, + -0.0, + 0.0, + 0.0, + 1.0, + 0.0, + 0.0, + 0.0, + 0.0, + 1.0, + 0.0, + 1.433370130143885e-06, + 0.0, + 32.79168701171875, + 1.0 + ], + "name": "Object_20" + }, + { + "mesh": 4, + "name": "Cylinder022_01 - Default_0" + }, + { + "children": [ + 23 + ], + "matrix": [ + -0.49606221914153886, + 1.0579694943411505e-06, + -4.948780280483827e-07, + 0.0, + 1.0579701612042058e-06, + 0.49606263637424874, + 2.2351752522810378e-07, + 0.0, + 6.774025496040621e-07, + 3.059548913647595e-07, + -0.6790228486057028, + 0.0, + 5.340576171875e-05, + 0.0, + -32.99415588378906, + 1.0 + ], + "name": "Object003" + }, + { + "mesh": 5, + "name": "Object003_01 - Default_0" + }, + { + "children": [ + 25, + 27, + 29 + ], + "matrix": [ + -8.081886942284227e-08, + -0.4960625469684535, + 2.7537003064929127e-17, + 0.0, + -8.081872248539393e-08, + 1.321776147116598e-14, + 0.4960625469684535, + 0.0, + -0.49606254696844687, + 8.081886942284227e-08, + -8.081872248539393e-08, + 0.0, + -6.103515625e-05, + 0.0, + 7.2666168212890625, + 1.0 + ], + "name": "Finger01" + }, + { + "children": [ + 26 + ], + "matrix": [ + -5.394876885755653e-07, + -9.455545257230002e-17, + -0.851679801940747, + -0.0, + 0.36354887485494897, + -1.192092896732804e-07, + -2.302862433727459e-07, + -0.0, + 2.792697239944513e-07, + 0.8516802191733855, + -1.7710244942923803e-13, + -0.0, + -32.164794921875, + -0.000274658203125, + -0.000244140625, + 1.0 + ], + "name": "Box005" + }, + { + "mesh": 6, + "name": "Box005_01 - Default_0" + }, + { + "children": [ + 28 + ], + "matrix": [ + -4.80030324580829e-07, + -3.658235706645572e-17, + -0.6590091586111227, + -0.0, + 0.603202700614733, + -2.0861625675055698e-07, + -4.393802185576887e-07, + -0.0, + 2.279168733254377e-07, + 0.6590093970298372, + -1.6608396116810865e-13, + -0.0, + -83.0394287109375, + 3.12322998046875, + -0.00048828125, + 1.0 + ], + "name": "Box006" + }, + { + "mesh": 7, + "name": "Box006_01 - Default_0" + }, + { + "children": [ + 30 + ], + "matrix": [ + -6.192726854194306e-07, + -0.0, + -0.9999998211858739, + -0.0, + 6.556511708111782e-07, + 1.0000004768369433, + -4.060269338469014e-13, + -0.0, + -1.0000001192088828, + 6.556509363322849e-07, + 6.192728699771058e-07, + -0.0, + -115.90948486328125, + 21.60797119140625, + -0.00048828125, + 1.0 + ], + "name": "Box007" + }, + { + "mesh": 8, + "name": "Box007_01 - Default_0" + }, + { + "children": [ + 32, + 34, + 36 + ], + "matrix": [ + 0.5632542371749878, + -1.1368683761573692e-13, + -2.273736754432321e-13, + 0.0, + 1.136868376157369e-13, + 0.5632542371749878, + -5.551115123125783e-17, + 0.0, + 2.273736754432321e-13, + 5.551115118536488e-17, + 0.5632542371749878, + 0.0, + -3.552713678800501e-15, + 0.0, + 7.2666168212890625, + 1.0 + ], + "name": "Finger02" + }, + { + "children": [ + 33 + ], + "matrix": [ + 0.8807078599917905, + -8.465574978788409e-07, + 1.1748973065534784e-06, + 0.0, + -1.1748986015457417e-06, + -6.854525638957467e-07, + 0.8807083368290888, + 0.0, + -8.465566980456074e-07, + -0.8807079792015969, + -6.854534148936162e-07, + 0.0, + -0.0001068115234375, + -99.9674072265625, + 19.030731201171875, + 1.0 + ], + "name": "Box004" + }, + { + "mesh": 9, + "name": "Box004_01 - Default_0" + }, + { + "children": [ + 35 + ], + "matrix": [ + 0.5803945064537439, + -5.665116278236657e-07, + 7.20660943670989e-07, + 0.0, + 5.185378872759724e-07, + 0.5312454104420522, + 2.2351741790771476e-07, + 0.0, + -7.206616260834705e-07, + -2.441959688426617e-07, + 0.5803948640818376, + 0.0, + -8.0108642578125e-05, + -71.01861572265625, + 2.750518798828125, + 1.0 + ], + "name": "Box003" + }, + { + "mesh": 10, + "name": "Box003_01 - Default_0" + }, + { + "children": [ + 37 + ], + "matrix": [ + 0.750081062316034, + -7.07492406085532e-07, + 8.890954331518817e-07, + 0.0, + 3.020008171337907e-07, + 0.3201804161070072, + 1.3411045077238446e-07, + 0.0, + -8.890963653530697e-07, + -3.1417759412265903e-07, + 0.7500815987581048, + 0.0, + -4.9591064453125e-05, + -26.21282958984375, + -0.000244140625, + 1.0 + ], + "name": "Box002" + }, + { + "mesh": 11, + "name": "Box002_01 - Default_0" + }, + { + "children": [ + 39 + ], + "matrix": [ + -107.64022827110564, + 0.00026425793660338974, + -0.00010817662013822078, + 0.0, + 0.0002642582724330273, + 107.64038848842995, + 5.7220503605308494e-05, + 0.0, + 0.00014807519411394785, + 7.832444966843942e-05, + -147.3407745360376, + 0.0, + 0.4150390625, + -0.0078125, + 0.0, + 1.0 + ], + "name": "Object004" + }, + { + "mesh": 12, + "name": "Object004_01 - Default_0" + }, + { + "children": [ + 41 + ], + "matrix": [ + -14.962402343714086, + -1.3334728104770745e-05, + -2.9949259072159898e-05, + 0.0, + -1.3334710479065042e-05, + 14.962388992303355, + -2.861021309964972e-06, + 0.0, + 4.0995280685388163e-05, + -3.916202795738032e-06, + -20.480901718098252, + 0.0, + -0.0020751953125, + -0.0009765625, + 466.73046875, + 1.0 + ], + "name": "Cylinder021" + }, + { + "mesh": 13, + "name": "Cylinder021_01 - Default_0" + }, + { + "children": [ + 43 + ], + "matrix": [ + 0.2830557227134065, + 1.3411042251720853e-07, + 1.3497148643179242e-07, + 0.0, + -1.3411014357617417e-07, + 0.2830557823173504, + -6.442054427654279e-07, + 0.0, + -1.121761080546705e-07, + 5.354039987281874e-07, + 0.23524981737073242, + 0.0, + 1.52587890625e-05, + 6.103515625e-05, + 5.329712867736816, + 1.0 + ], + "name": "Cylinder017" + }, + { + "mesh": 14, + "name": "Cylinder017_01 - Default_0" + }, + { + "children": [ + 45 + ], + "matrix": [ + 7.384878879932685e-08, + 2.6117976378455633e-17, + 0.2352498173713568, + 0.0, + -0.2352498620748063, + -1.2665986217855047e-07, + 7.384880284554495e-08, + 0.0, + 1.7337519594343826e-07, + -0.3220159113406668, + -5.441294271386243e-14, + 0.0, + 0.0, + 28.196517944335938, + -0.009276390075683594, + 1.0 + ], + "name": "Cylinder018" + }, + { + "mesh": 15, + "name": "Cylinder018_01 - Default_0" + }, + { + "children": [ + 47 + ], + "matrix": [ + 8.079594454553805, + -0.1936323604968644, + 0.010046291900454226, + 0.0, + -0.19363242962770302, + -8.079595928965036, + 2.717972127304321e-05, + 0.0, + 0.00947792539184042, + -0.000252802667173755, + -7.627365895102928, + 0.0, + -598.0875244140625, + -430.6298828125, + 5065.76318359375, + 1.0 + ], + "name": "Cylinder014" + }, + { + "mesh": 16, + "name": "Cylinder014_01 - Default_0" + }, + { + "children": [ + 49 + ], + "matrix": [ + 7.627383948514046, + 2.337623973757905e-07, + -0.010617450835869156, + 0.0, + -2.3774473521812838e-07, + 7.627375602721628, + -2.8610229647618728e-06, + 0.0, + 0.010617407691058513, + 2.8613454131061746e-06, + 7.627352954128258, + 0.0, + -602.3084716796875, + -430.734375, + 2029.24169921875, + 1.0 + ], + "name": "Cylinder013" + }, + { + "mesh": 17, + "name": "Cylinder013_01 - Default_0" + }, + { + "children": [ + 51 + ], + "matrix": [ + 8.079588759484047, + 0.19363237705183692, + -0.010022925554444248, + 0.0, + -0.1936325292959656, + 8.079595926606816, + 1.573563195567118e-05, + 0.0, + 0.009456857805336179, + 0.00021178458349015012, + 7.627366876177125, + 0.0, + -602.6658935546875, + -430.7431640625, + 1712.2529296875, + 1.0 + ], + "name": "Cylinder012" + }, + { + "mesh": 18, + "name": "Cylinder012_01 - Default_0" + }, + { + "children": [ + 53 + ], + "matrix": [ + 8.079588759484047, + 0.19363237705183692, + -0.010022925554444248, + 0.0, + -0.1936325292959656, + 8.079595926606816, + 1.573563195567118e-05, + 0.0, + 0.009456857805336179, + 0.00021178458349015012, + 7.627366876177125, + 0.0, + -602.919677734375, + -430.75, + 1530.70947265625, + 1.0 + ], + "name": "Cylinder011" + }, + { + "mesh": 19, + "name": "Cylinder011_01 - Default_0" + }, + { + "children": [ + 55 + ], + "matrix": [ + -8.583399330335721e-05, + -7.62737607907627, + -1.1920931184693543e-06, + 0.0, + 0.0006273547127188853, + -1.1991526961971412e-06, + 7.627374146410506, + 0.0, + -3.0853912724033736, + 3.472113457404875e-05, + 0.00025377472768543807, + 0.0, + -0.000579833984375, + 0.0009765625, + -0.00048828125, + 1.0 + ], + "name": "Box001" + }, + { + "mesh": 20, + "name": "Box001_01 - Default_0" + }, + { + "children": [ + 57 + ], + "matrix": [ + -4.879680552175606e-06, + -7.627375602720472, + 1.4305117426636759e-06, + 0.0, + -1.6926400663395386e-06, + 1.4305122891478294e-06, + 7.627372741698897, + 0.0, + -0.17725318670268764, + 1.1339927605221499e-07, + -3.933543279478869e-08, + 0.0, + -0.0001220703125, + -9.094947017729282e-13, + 0.00048828125, + 1.0 + ], + "name": "Cylinder009" + }, + { + "mesh": 21, + "name": "Cylinder009_01 - Default_0" + }, + { + "children": [ + 59 + ], + "matrix": [ + -5.979898005185203e-05, + -5.313855647704289, + -3.576279007107273e-07, + 0.0, + 0.0004370666364212539, + -3.6254629307387866e-07, + 5.313854199554832, + 0.0, + -2.149536602242605, + 2.4189598229885674e-05, + 0.00017680024819918347, + 0.0, + -188.90426635742188, + 0.013671875, + 0.0146484375, + 1.0 + ], + "name": "Object002" + }, + { + "mesh": 22, + "name": "Object002_01 - Default_0" + }, + { + "children": [ + 61 + ], + "matrix": [ + -7.6273593897283325, + -7.105640435184127e-05, + 5.5162940831947334e-05, + 0.0, + -7.105658324058656e-05, + 7.627376556065052, + -2.6226046996021365e-06, + 0.0, + -5.516313710798612e-05, + -2.6231231897946635e-06, + -7.627389907636987, + 0.0, + -593.3447265625, + -399.0166015625, + -954.31640625, + 1.0 + ], + "name": "Cylinder010" + }, + { + "mesh": 23, + "name": "Cylinder010_01 - Default_0" + }, + { + "children": [ + 63 + ], + "matrix": [ + -6.500004588273616e-07, + -1.0160101652143305, + -1.12799787867439e-16, + 0.0, + 3.4680051367916053e-06, + -2.2187713066919604e-12, + 1.0160099267900407, + 0.0, + -0.10979530215197159, + 7.024240427873178e-08, + 3.7477062164923195e-07, + 0.0, + -65.60008239746094, + -847.1983642578125, + 449.5225830078125, + 1.0 + ], + "name": "Cylinder008" + }, + { + "mesh": 24, + "name": "Cylinder008_01 - Default_0" + }, + { + "children": [ + 65 + ], + "matrix": [ + -1.629208421058481e-07, + -0.9999998211860353, + -1.8626395126296094e-07, + 0.0, + -2.3542172849536196e-06, + -1.8626353459649173e-07, + 0.999999642369343, + 0.0, + -0.02323907800012317, + 3.786141023207981e-09, + -5.470985797326251e-08, + 0.0, + -63.62598419189453, + -847.1983642578125, + 449.5225830078125, + 1.0 + ], + "name": "Cylinder007" + }, + { + "mesh": 25, + "name": "Cylinder007_01 - Default_0" + }, + { + "children": [ + 67 + ], + "matrix": [ + -8.718468647488735e-07, + 0.9813754715472789, + -0.1921012730318603, + 0.0, + 1.9375324262869388e-07, + 0.1921015478350726, + 0.9813768754159718, + 0.0, + 0.9999983906741923, + 8.183870341449059e-07, + -3.576264693285692e-07, + 0.0, + -65.60167694091797, + 9.1552734375e-05, + -0.000244140625, + 1.0 + ], + "name": "Cylinder005" + }, + { + "mesh": 26, + "name": "Cylinder005_01 - Default_0" + }, + { + "children": [ + 69 + ], + "matrix": [ + 3.2042639840977503e-07, + 3.998519420623727, + -5.666243280038158e-07, + 0.0, + 9.124871073881024e-07, + 5.666241529544644e-07, + 3.998518705367898, + 0.0, + 3.834773778915294, + -3.0730455978191165e-07, + -8.751194429142739e-07, + 0.0, + 0.0, + 3.0517578125e-05, + 0.0, + 1.0 + ], + "name": "Cylinder006" + }, + { + "mesh": 27, + "name": "Cylinder006_01 - Default_0" + }, + { + "children": [ + 71 + ], + "matrix": [ + -2.3769546373031352e-08, + -0.14589643478393363, + 8.098879055392391e-18, + 0.0, + -1.6290724317375968e-07, + 2.6531927785465473e-14, + 0.14589643478384462, + 0.0, + -0.09445346146815962, + 1.5388422155258294e-08, + -1.0546627161831608e-07, + 0.0, + -14.143759727478027, + 48.88691329956055, + 73.74624633789063, + 1.0 + ], + "name": "Cylinder002" + }, + { + "children": [ + 72 + ], + "matrix": [ + 1.0, + 0.0, + -0.0, + 0.0, + 0.0, + 1.0, + 0.0, + 0.0, + 0.0, + 0.0, + 1.0, + 0.0, + -88.77874755859375, + 73.97308349609375, + 142.60855102539063, + 1.0 + ], + "name": "Object_71" + }, + { + "mesh": 28, + "name": "Cylinder002_01 - Default_0" + }, + { + "children": [ + 74 + ], + "matrix": [ + -3.894752380465508e-08, + 0.23905852437018768, + -3.5622503681253695e-08, + 0.0, + 1.4396567481561037e-07, + 3.562254043949255e-08, + 0.23905861377711465, + 0.0, + 0.18550619482990469, + 3.022273719367594e-08, + -1.1171538719080574e-07, + 0.0, + -12.733936309814453, + 52.12690734863281, + 72.5859375, + 1.0 + ], + "name": "Cylinder003" + }, + { + "children": [ + 75 + ], + "matrix": [ + 1.0, + 0.0, + -0.0, + 0.0, + 0.0, + 1.0, + 0.0, + 0.0, + 0.0, + 0.0, + 1.0, + 0.0, + -1.7210186342708766e-07, + -8.718889148440212e-06, + -97.76383972167969, + 1.0 + ], + "name": "Object_74" + }, + { + "mesh": 29, + "name": "Cylinder003_01 - Default_0" + }, + { + "children": [ + 77 + ], + "matrix": [ + 0.23905856907367706, + 0.0, + -1.2247121270616658e-15, + 0.0, + 1.5786656921118277e-47, + 0.23905856907367706, + 3.0814879110195774e-33, + 0.0, + 6.955290759269579e-16, + -1.7500148744127055e-33, + 0.13576430082321167, + 0.0, + 0.0, + 0.0, + 1.52587890625e-05, + 1.0 + ], + "name": "Cylinder001" + }, + { + "mesh": 30, + "name": "Cylinder001_01 - Default_0" + }, + { + "children": [ + 79 + ], + "matrix": [ + 0.8668997883796692, + 0.0, + 0.0, + 0.0, + 0.0, + 1.924904210203569e-16, + -0.8668997883796692, + 0.0, + 0.0, + 1.0, + 2.220446049250313e-16, + 0.0, + 0.0, + 40.00000762939453, + 0.0, + 1.0 + ], + "name": "Object005" + }, + { + "mesh": 31, + "name": "Object005_01 - Default_0" + } + ], + "samplers": [ + { + "magFilter": 9729, + "minFilter": 9987, + "wrapS": 10497, + "wrapT": 10497 + } + ], + "scene": 0, + "scenes": [ + { + "name": "Sketchfab_Scene", + "nodes": [ + 0 + ] + } + ], + "textures": [ + { + "sampler": 0, + "source": 0 + } + ] +} diff --git a/public/models/robotic_arm/textures/01_-_Default_baseColor.jpeg b/public/models/robotic_arm/textures/01_-_Default_baseColor.jpeg new file mode 100644 index 0000000..3ece8c4 Binary files /dev/null and b/public/models/robotic_arm/textures/01_-_Default_baseColor.jpeg differ diff --git a/public/models/sensor/license.txt b/public/models/sensor/license.txt new file mode 100644 index 0000000..52608d6 --- /dev/null +++ b/public/models/sensor/license.txt @@ -0,0 +1,11 @@ +Model Information: +* title: Security Camera +* source: https://sketchfab.com/3d-models/security-camera-03aa77b6c6864f3e93fc3deecbd79309 +* author: Vladyslav Holhanov (https://sketchfab.com/vladicom08) + +Model License: +* license type: CC-BY-4.0 (http://creativecommons.org/licenses/by/4.0/) +* requirements: Author must be credited. Commercial use is allowed. + +If you use this 3D model in your project be sure to copy paste this credit wherever you share it: +This work is based on "Security Camera" (https://sketchfab.com/3d-models/security-camera-03aa77b6c6864f3e93fc3deecbd79309) by Vladyslav Holhanov (https://sketchfab.com/vladicom08) licensed under CC-BY-4.0 (http://creativecommons.org/licenses/by/4.0/) \ No newline at end of file diff --git a/public/models/sensor/scene.bin b/public/models/sensor/scene.bin new file mode 100644 index 0000000..d613546 Binary files /dev/null and b/public/models/sensor/scene.bin differ diff --git a/public/models/sensor/scene.gltf b/public/models/sensor/scene.gltf new file mode 100644 index 0000000..5d60727 --- /dev/null +++ b/public/models/sensor/scene.gltf @@ -0,0 +1,663 @@ +{ + "accessors": [ + { + "bufferView": 2, + "componentType": 5126, + "count": 22234, + "max": [ + 0.9676374197006226, + 0.9796046018600464, + 0.8089432120323181 + ], + "min": [ + -0.9676378965377808, + -0.9676375985145569, + -0.9908630847930908 + ], + "type": "VEC3" + }, + { + "bufferView": 2, + "byteOffset": 266808, + "componentType": 5126, + "count": 22234, + "max": [ + 1.0, + 1.0, + 1.0 + ], + "min": [ + -1.0, + -1.0, + -1.0 + ], + "type": "VEC3" + }, + { + "bufferView": 1, + "componentType": 5126, + "count": 22234, + "max": [ + 0.9956167340278625, + 0.8686246871948242 + ], + "min": [ + 0.001953125, + 0.001953125 + ], + "type": "VEC2" + }, + { + "bufferView": 0, + "componentType": 5125, + "count": 119328, + "type": "SCALAR" + }, + { + "bufferView": 2, + "byteOffset": 533616, + "componentType": 5126, + "count": 1520, + "max": [ + 0.3981478810310364, + 0.05236194655299187, + 0.05236194655299187 + ], + "min": [ + -0.3981478810310364, + -0.7798631191253662, + -0.05236194655299187 + ], + "type": "VEC3" + }, + { + "bufferView": 2, + "byteOffset": 551856, + "componentType": 5126, + "count": 1520, + "max": [ + 1.0, + 1.0, + 0.994147777557373 + ], + "min": [ + -1.0, + -1.0, + 0.0 + ], + "type": "VEC3" + }, + { + "bufferView": 1, + "byteOffset": 177872, + "componentType": 5126, + "count": 1520, + "max": [ + 0.948782205581665, + 0.7309250831604004 + ], + "min": [ + 0.001953125, + 0.001953125 + ], + "type": "VEC2" + }, + { + "bufferView": 0, + "byteOffset": 477312, + "componentType": 5125, + "count": 5220, + "type": "SCALAR" + }, + { + "bufferView": 2, + "byteOffset": 570096, + "componentType": 5126, + "count": 49, + "max": [ + 1.0, + 1.0, + 0.5088424682617188 + ], + "min": [ + -1.0, + -1.0, + 0.14030812680721283 + ], + "type": "VEC3" + }, + { + "bufferView": 2, + "byteOffset": 570684, + "componentType": 5126, + "count": 49, + "max": [ + 0.30805838108062744, + 0.30805838108062744, + 1.0 + ], + "min": [ + -0.30805838108062744, + -0.30805838108062744, + 0.9454177021980286 + ], + "type": "VEC3" + }, + { + "bufferView": 1, + "byteOffset": 190032, + "componentType": 5126, + "count": 49, + "max": [ + 0.11482230573892593, + 0.6809145212173462 + ], + "min": [ + 0.05209394171833992, + 0.618148684501648 + ], + "type": "VEC2" + }, + { + "bufferView": 0, + "byteOffset": 498192, + "componentType": 5125, + "count": 216, + "type": "SCALAR" + }, + { + "bufferView": 2, + "byteOffset": 571272, + "componentType": 5126, + "count": 6432, + "max": [ + 1.0426695346832275, + 1.0426691770553589, + 0.49606871604919434 + ], + "min": [ + -1.0426692962646484, + -1.0426422357559204, + -0.2453860640525818 + ], + "type": "VEC3" + }, + { + "bufferView": 2, + "byteOffset": 648456, + "componentType": 5126, + "count": 6432, + "max": [ + 0.9999982118606567, + 0.9999998807907104, + 0.9999828338623047 + ], + "min": [ + -0.9999982118606567, + -0.9999988079071045, + -0.9959748983383179 + ], + "type": "VEC3" + }, + { + "bufferView": 1, + "byteOffset": 190424, + "componentType": 5126, + "count": 6432, + "max": [ + 0.998046875, + 0.9271726608276367 + ], + "min": [ + 0.001953125, + 0.001953125 + ], + "type": "VEC2" + }, + { + "bufferView": 0, + "byteOffset": 499056, + "componentType": 5125, + "count": 33600, + "type": "SCALAR" + }, + { + "bufferView": 2, + "byteOffset": 725640, + "componentType": 5126, + "count": 3690, + "max": [ + 1.254111647605896, + 1.2541104555130005, + -0.2964184284210205 + ], + "min": [ + -1.2541115283966064, + -1.2541019916534424, + -0.9171618819236755 + ], + "type": "VEC3" + }, + { + "bufferView": 2, + "byteOffset": 769920, + "componentType": 5126, + "count": 3690, + "max": [ + 1.0, + 1.0, + 0.9999982118606567 + ], + "min": [ + -1.0, + -1.0, + -0.9999984502792358 + ], + "type": "VEC3" + }, + { + "bufferView": 1, + "byteOffset": 241880, + "componentType": 5126, + "count": 3690, + "max": [ + 0.46055126190185547, + 0.9659651517868042 + ], + "min": [ + 0.18428337574005127, + 0.38238927721977234 + ], + "type": "VEC2" + }, + { + "bufferView": 0, + "byteOffset": 633456, + "componentType": 5125, + "count": 21120, + "type": "SCALAR" + } + ], + "asset": { + "extras": { + "author": "Vladyslav Holhanov (https://sketchfab.com/vladicom08)", + "license": "CC-BY-4.0 (http://creativecommons.org/licenses/by/4.0/)", + "source": "https://sketchfab.com/3d-models/security-camera-03aa77b6c6864f3e93fc3deecbd79309", + "title": "Security Camera" + }, + "generator": "Sketchfab-14.6.0", + "version": "2.0" + }, + "bufferViews": [ + { + "buffer": 0, + "byteLength": 717936, + "name": "floatBufferViews", + "target": 34963 + }, + { + "buffer": 0, + "byteLength": 271400, + "byteOffset": 717936, + "byteStride": 8, + "name": "floatBufferViews", + "target": 34962 + }, + { + "buffer": 0, + "byteLength": 814200, + "byteOffset": 989336, + "byteStride": 12, + "name": "floatBufferViews", + "target": 34962 + } + ], + "buffers": [ + { + "byteLength": 1803536, + "uri": "scene.bin" + } + ], + "images": [ + { + "uri": "textures/Scene_-_Root_baseColor.png" + }, + { + "uri": "textures/Scene_-_Root_metallicRoughness.png" + }, + { + "uri": "textures/Scene_-_Root_emissive.png" + } + ], + "materials": [ + { + "doubleSided": true, + "emissiveFactor": [ + 1.0, + 1.0, + 1.0 + ], + "emissiveTexture": { + "index": 2 + }, + "name": "Scene_-_Root", + "pbrMetallicRoughness": { + "baseColorTexture": { + "index": 0 + }, + "metallicRoughnessTexture": { + "index": 1 + }, + "roughnessFactor": 0.3094512195121951 + } + } + ], + "meshes": [ + { + "name": "Sphere.002__0", + "primitives": [ + { + "attributes": { + "NORMAL": 1, + "POSITION": 0, + "TEXCOORD_0": 2 + }, + "indices": 3, + "material": 0, + "mode": 4 + } + ] + }, + { + "name": "Cylinder__0", + "primitives": [ + { + "attributes": { + "NORMAL": 5, + "POSITION": 4, + "TEXCOORD_0": 6 + }, + "indices": 7, + "material": 0, + "mode": 4 + } + ] + }, + { + "name": "Plane__0", + "primitives": [ + { + "attributes": { + "NORMAL": 9, + "POSITION": 8, + "TEXCOORD_0": 10 + }, + "indices": 11, + "material": 0, + "mode": 4 + } + ] + }, + { + "name": "Sphere__0", + "primitives": [ + { + "attributes": { + "NORMAL": 13, + "POSITION": 12, + "TEXCOORD_0": 14 + }, + "indices": 15, + "material": 0, + "mode": 4 + } + ] + }, + { + "name": "Sphere.001__0", + "primitives": [ + { + "attributes": { + "NORMAL": 17, + "POSITION": 16, + "TEXCOORD_0": 18 + }, + "indices": 19, + "material": 0, + "mode": 4 + } + ] + } + ], + "nodes": [ + { + "children": [ + 1 + ], + "matrix": [ + 1.0, + 0.0, + 0.0, + 0.0, + 0.0, + 2.220446049250313e-16, + -1.0, + 0.0, + 0.0, + 1.0, + 2.220446049250313e-16, + 0.0, + 0.0, + 0.0, + 0.0, + 1.0 + ], + "name": "Sketchfab_model" + }, + { + "children": [ + 2 + ], + "matrix": [ + 0.009999999776482582, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.009999999776482582, + 0.0, + 0.0, + -0.009999999776482582, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 1.0 + ], + "name": "7753a399fa7a4cb4935d6f20a29b1484.fbx" + }, + { + "children": [ + 3, + 5, + 7, + 9, + 11 + ], + "name": "RootNode" + }, + { + "children": [ + 4 + ], + "matrix": [ + 89.09976196289063, + -6.782561509268415e-15, + -4.326657775644804e-15, + 0.0, + 1.6357326979866193e-15, + 62.19013289541116, + -63.80560282839485, + 0.0, + 7.87702270374375e-15, + 63.80560282839485, + 62.19013289541116, + 0.0, + 0.0, + 96.58325958251953, + -0.8378736972808838, + 1.0 + ], + "name": "Sphere.002" + }, + { + "mesh": 0, + "name": "Sphere.002__0" + }, + { + "children": [ + 6 + ], + "matrix": [ + 100.0, + -7.612322154665843e-15, + -4.855970072565206e-15, + 0.0, + 1.835843609916839e-15, + 69.79831542233848, + -71.61141783405594, + 0.0, + 8.840677133115588e-15, + 71.61141783405594, + 69.79831542233848, + 0.0, + 0.0, + 167.83177185058594, + 17.81170654296875, + 1.0 + ], + "name": "Cylinder" + }, + { + "mesh": 1, + "name": "Cylinder__0" + }, + { + "children": [ + 8 + ], + "matrix": [ + 19.624774932861328, + -1.4939010900175114e-15, + -9.529731975480243e-16, + 0.0, + 3.6028031499329666e-16, + 13.697764477518456, + -14.053580125593436, + 0.0, + 1.7349631370630286e-15, + 14.053580125593436, + 13.697764477518456, + 0.0, + 1.8812717144101043e-06, + 130.5634765625, + 32.83354187011719, + 1.0 + ], + "name": "Plane" + }, + { + "mesh": 2, + "name": "Plane__0" + }, + { + "children": [ + 10 + ], + "matrix": [ + 100.0, + 0.0, + 0.0, + 0.0, + 0.0, + -1.629206793918314e-05, + -99.99999999999868, + 0.0, + 0.0, + 99.99999999999868, + -1.629206793918314e-05, + 0.0, + 0.0, + 84.99791717529297, + 0.0, + 1.0 + ], + "name": "Sphere" + }, + { + "mesh": 3, + "name": "Sphere__0" + }, + { + "children": [ + 12 + ], + "matrix": [ + 100.0, + 0.0, + 0.0, + 0.0, + 0.0, + -1.629206793918314e-05, + -99.99999999999868, + 0.0, + 0.0, + 99.99999999999868, + -1.629206793918314e-05, + 0.0, + 0.0, + 90.17996978759766, + 0.0, + 1.0 + ], + "name": "Sphere.001" + }, + { + "mesh": 4, + "name": "Sphere.001__0" + } + ], + "samplers": [ + { + "magFilter": 9729, + "minFilter": 9987, + "wrapS": 10497, + "wrapT": 10497 + } + ], + "scene": 0, + "scenes": [ + { + "name": "Sketchfab_Scene", + "nodes": [ + 0 + ] + } + ], + "textures": [ + { + "sampler": 0, + "source": 0 + }, + { + "sampler": 0, + "source": 1 + }, + { + "sampler": 0, + "source": 2 + } + ] +} diff --git a/public/models/sensor/textures/Scene_-_Root_baseColor.png b/public/models/sensor/textures/Scene_-_Root_baseColor.png new file mode 100644 index 0000000..aa945a1 Binary files /dev/null and b/public/models/sensor/textures/Scene_-_Root_baseColor.png differ diff --git a/public/models/sensor/textures/Scene_-_Root_emissive.png b/public/models/sensor/textures/Scene_-_Root_emissive.png new file mode 100644 index 0000000..72e3ee0 Binary files /dev/null and b/public/models/sensor/textures/Scene_-_Root_emissive.png differ diff --git a/public/models/sensor/textures/Scene_-_Root_metallicRoughness.png b/public/models/sensor/textures/Scene_-_Root_metallicRoughness.png new file mode 100644 index 0000000..f25bf06 Binary files /dev/null and b/public/models/sensor/textures/Scene_-_Root_metallicRoughness.png differ diff --git a/public/models/server/license.txt b/public/models/server/license.txt new file mode 100644 index 0000000..7f50d56 --- /dev/null +++ b/public/models/server/license.txt @@ -0,0 +1,11 @@ +Model Information: +* title: Server Rack +* source: https://sketchfab.com/3d-models/server-rack-62f6779cb7e448b19aaf58544c3c7218 +* author: Spellkaze (https://sketchfab.com/Spellkaze) + +Model License: +* license type: CC-BY-4.0 (http://creativecommons.org/licenses/by/4.0/) +* requirements: Author must be credited. Commercial use is allowed. + +If you use this 3D model in your project be sure to copy paste this credit wherever you share it: +This work is based on "Server Rack" (https://sketchfab.com/3d-models/server-rack-62f6779cb7e448b19aaf58544c3c7218) by Spellkaze (https://sketchfab.com/Spellkaze) licensed under CC-BY-4.0 (http://creativecommons.org/licenses/by/4.0/) \ No newline at end of file diff --git a/public/models/server/scene.bin b/public/models/server/scene.bin new file mode 100644 index 0000000..dfd7f0e Binary files /dev/null and b/public/models/server/scene.bin differ diff --git a/public/models/server/scene.gltf b/public/models/server/scene.gltf new file mode 100644 index 0000000..4b298f8 --- /dev/null +++ b/public/models/server/scene.gltf @@ -0,0 +1,278 @@ +{ + "accessors": [ + { + "bufferView": 2, + "componentType": 5126, + "count": 816, + "max": [ + 0.3235290050506592, + 1.0, + 0.323529988527298 + ], + "min": [ + -0.3235290050506592, + -1.0, + -0.323529988527298 + ], + "type": "VEC3" + }, + { + "bufferView": 2, + "byteOffset": 9792, + "componentType": 5126, + "count": 816, + "max": [ + 0.9238797426223755, + 0.8755810260772705, + 0.9238797426223755 + ], + "min": [ + -0.9238797426223755, + -0.8755802512168884, + -0.9238797426223755 + ], + "type": "VEC3" + }, + { + "bufferView": 3, + "componentType": 5126, + "count": 816, + "max": [ + 0.9534627795219421, + 0.9534627795219421, + 0.9398505687713623, + 1.0 + ], + "min": [ + -0.9534627795219421, + -0.9534627199172974, + -0.9398506283760071, + 1.0 + ], + "type": "VEC4" + }, + { + "bufferView": 1, + "componentType": 5126, + "count": 816, + "max": [ + 0.9955019950866699, + 0.995402991771698 + ], + "min": [ + 0.004497520159929991, + 0.004596559796482325 + ], + "type": "VEC2" + }, + { + "bufferView": 0, + "componentType": 5125, + "count": 2232, + "type": "SCALAR" + } + ], + "asset": { + "extras": { + "author": "Spellkaze (https://sketchfab.com/Spellkaze)", + "license": "CC-BY-4.0 (http://creativecommons.org/licenses/by/4.0/)", + "source": "https://sketchfab.com/3d-models/server-rack-62f6779cb7e448b19aaf58544c3c7218", + "title": "Server Rack" + }, + "generator": "Sketchfab-12.66.0", + "version": "2.0" + }, + "bufferViews": [ + { + "buffer": 0, + "byteLength": 8928, + "name": "floatBufferViews", + "target": 34963 + }, + { + "buffer": 0, + "byteLength": 6528, + "byteOffset": 8928, + "byteStride": 8, + "name": "floatBufferViews", + "target": 34962 + }, + { + "buffer": 0, + "byteLength": 19584, + "byteOffset": 15456, + "byteStride": 12, + "name": "floatBufferViews", + "target": 34962 + }, + { + "buffer": 0, + "byteLength": 13056, + "byteOffset": 35040, + "byteStride": 16, + "name": "floatBufferViews", + "target": 34962 + } + ], + "buffers": [ + { + "byteLength": 48096, + "uri": "scene.bin" + } + ], + "images": [ + { + "uri": "textures/ServerMaterial_baseColor.jpeg" + }, + { + "uri": "textures/ServerMaterial_metallicRoughness.png" + }, + { + "uri": "textures/ServerMaterial_emissive.jpeg" + }, + { + "uri": "textures/ServerMaterial_normal.png" + } + ], + "materials": [ + { + "doubleSided": true, + "emissiveFactor": [ + 1.0, + 1.0, + 1.0 + ], + "emissiveTexture": { + "index": 2 + }, + "name": "ServerMaterial", + "normalTexture": { + "index": 3 + }, + "occlusionTexture": { + "index": 1 + }, + "pbrMetallicRoughness": { + "baseColorTexture": { + "index": 0 + }, + "metallicRoughnessTexture": { + "index": 1 + } + } + } + ], + "meshes": [ + { + "name": "defaultMaterial", + "primitives": [ + { + "attributes": { + "NORMAL": 1, + "POSITION": 0, + "TANGENT": 2, + "TEXCOORD_0": 3 + }, + "indices": 4, + "material": 0, + "mode": 4 + } + ] + } + ], + "nodes": [ + { + "children": [ + 1 + ], + "matrix": [ + 1.0, + 0.0, + 0.0, + 0.0, + 0.0, + 2.220446049250313e-16, + -1.0, + 0.0, + 0.0, + 1.0, + 2.220446049250313e-16, + 0.0, + 0.0, + 0.0, + 0.0, + 1.0 + ], + "name": "Sketchfab_model" + }, + { + "children": [ + 2 + ], + "matrix": [ + 1.0, + 0.0, + 0.0, + 0.0, + 0.0, + -4.371139006309477e-08, + 0.999999999999999, + 0.0, + 0.0, + -0.999999999999999, + -4.371139006309477e-08, + 0.0, + 0.0, + 0.0, + 0.0, + 1.0 + ], + "name": "Collada visual scene group" + }, + { + "children": [ + 3 + ], + "name": "Server_lp" + }, + { + "mesh": 0, + "name": "defaultMaterial" + } + ], + "samplers": [ + { + "magFilter": 9729, + "minFilter": 9987, + "wrapS": 10497, + "wrapT": 10497 + } + ], + "scene": 0, + "scenes": [ + { + "name": "Sketchfab_Scene", + "nodes": [ + 0 + ] + } + ], + "textures": [ + { + "sampler": 0, + "source": 0 + }, + { + "sampler": 0, + "source": 1 + }, + { + "sampler": 0, + "source": 2 + }, + { + "sampler": 0, + "source": 3 + } + ] +} diff --git a/public/models/server/textures/ServerMaterial_baseColor.jpeg b/public/models/server/textures/ServerMaterial_baseColor.jpeg new file mode 100644 index 0000000..ccedc5c Binary files /dev/null and b/public/models/server/textures/ServerMaterial_baseColor.jpeg differ diff --git a/public/models/server/textures/ServerMaterial_emissive.jpeg b/public/models/server/textures/ServerMaterial_emissive.jpeg new file mode 100644 index 0000000..af83d71 Binary files /dev/null and b/public/models/server/textures/ServerMaterial_emissive.jpeg differ diff --git a/public/models/server/textures/ServerMaterial_metallicRoughness.png b/public/models/server/textures/ServerMaterial_metallicRoughness.png new file mode 100644 index 0000000..b790cae Binary files /dev/null and b/public/models/server/textures/ServerMaterial_metallicRoughness.png differ diff --git a/public/models/server/textures/ServerMaterial_normal.png b/public/models/server/textures/ServerMaterial_normal.png new file mode 100644 index 0000000..df402ad Binary files /dev/null and b/public/models/server/textures/ServerMaterial_normal.png differ diff --git a/src/components/ScheduleTable.vue b/src/components/ScheduleTable.vue index 0d647d4..ee69ebb 100644 --- a/src/components/ScheduleTable.vue +++ b/src/components/ScheduleTable.vue @@ -1,12 +1,12 @@ @@ -18,7 +18,7 @@ onMounted(() => { diff --git a/src/hooks/useDrawSchedule3D.ts b/src/hooks/useDrawSchedule3D.ts new file mode 100644 index 0000000..20c603b --- /dev/null +++ b/src/hooks/useDrawSchedule3D.ts @@ -0,0 +1,117 @@ +import * as echarts from 'echarts' +import 'echarts-gl' + +import { Network } from './useStates' + +export function useDrawSchedule3D(chartDom: HTMLElement): any { + const chart = echarts.init(chartDom) + + const zCategories = ['Shared', 'Mgmt', 'Data']; + + const option: any = { + dataset: { + dimensions: ['slot', 'channel', 'type'], + source: [] + }, + yAxis3D: { + type: 'category', + name: 'Channels', + nameTextStyle: { + color: 'white' + }, + data: Array.from({length: Network.SchConfig.value.num_slots}, (_, i) => i + 1), + axisTick: { + interval: 1 + }, + axisLabel: { + color: 'white' + }, + min: 0, + max: 10 + }, + xAxis3D: { + type: 'category', + name: 'Slots', + nameTextStyle: { + color: 'white' + }, + data: Array.from({length: Network.SchConfig.value.num_channels}, (_, i) => i + 1), + axisTick: { + interval: 1 + }, + axisLabel: { + color: 'white' + }, + min: 0, + max: 20 + }, + zAxis3D: { + type: 'category', + data: zCategories, + axisTick: { + interval: 1 + }, + axisLabel: { + color: 'white' + }, + min: 0, + max: 2 + }, + grid3D: { + light: { + main: { + shadow: true, + quality: 'ultra', + intensity: 1.5 + } + }, + borderColor: 'white' + }, + series: [{ + type: 'bar3D', + + xAxisIndex: 0, + yAxisIndex: 0, + zAxisIndex: 0, + + seriesIndex: 0, + itemStyle: { + depth: 20, + height: 20 + }, + encode: { + x: 'slot', + y: 'channel', + z: { + field: 'type', + ordinal: 'true', + }, + color: 'color' + } + }], + visualMap: { + show: false, + dimension: 2, + categories: [0, 1, 2], + inRange: { + color: ['green', 'red', 'blue'] + } + }, + responsive: true + } + + for (let slot = 1; slot <= Network.SchConfig.value.num_slots; slot++) { + for (let channel = 1; channel <= Network.SchConfig.value.num_channels; channel++) { + const cell = Network.Schedule.value[slot][channel] + if (cell) { + option.dataset.source.push({ + slot: `${slot}`, + channel: `${channel}`, + type: cell.type + }) + } + } + } + console.log(option.dataset.source) + chart.setOption(option) +} \ No newline at end of file diff --git a/src/hooks/useDrawTopology.ts b/src/hooks/useDrawTopology.ts index d76b65d..53be181 100644 --- a/src/hooks/useDrawTopology.ts +++ b/src/hooks/useDrawTopology.ts @@ -335,6 +335,67 @@ export function useDrawTopology(dom: HTMLElement) { } }) } + + const drawEndSystems = () => { + const loader = new GLTFLoader(); + + const loadAndPlaceModel = async (modelPath: any, scale: any, rotationY: any, positionY: any, labelY: any, typeVal: any) => { + const gltf: any = await new Promise((resolve) => { + loader.load(modelPath, (gltf: any) => resolve(gltf)); + }); + + const modelTemplate = gltf.scene; + + modelTemplate.scale.set(...scale); + modelTemplate.rotation.y = rotationY; + modelTemplate.traverse((object: any) => { + if (object.isMesh) { + object.castShadow = true; + object.receiveShadow = true; + object.material.color = new THREE.Color('#999'); + } + }); + + const box = new THREE.Box3().setFromObject(modelTemplate); + const size = new THREE.Vector3(); + box.getSize(size); + + for (const es of Network.EndSystems.value) { + if (es.type !== typeVal) continue; + + const model = modelTemplate.clone(); + model.position.set(es.pos[0], positionY, es.pos[1]); + model.traverse((object: any) => { + if (object.isMesh) { + object.userData.type = NODE_TYPE[4]; // EndSystem + object.userData.node_id = es.id; + } + }); + scene.add(model); + + const label = createLabel(`${NODE_TYPE[4]}-${es.id}`); + label.position.set(model.position.x, labelY, model.position.z); + scene.add(label); + + const { dragBox, dragBoxHelper } = createDragBox(node, model) + + drawnNodes[`${NODE_TYPE[4]}-${es.id}`] = { + model, + label, + modelGroup: model, + dragBox, + boxHelper, + }; + } + }; + + // Load and place models + loadAndPlaceModel('/models/server/scene.gltf', [3, 3, 3], -Math.PI / 2, 3, 7, 0); + loadAndPlaceModel('/models/robotic_arm/scene.gltf', [0.004, 0.004, 0.004], -Math.PI / 2, 0, 7, 1); + loadAndPlaceModel('/models/sensor/scene.gltf', [2, 2, 2], -Math.PI / 2, 0, 5, 2); + }; + + const createDragBox = (node: any, model: any): any => { const box = new THREE.Box3().setFromObject(model) const size = new THREE.Vector3() diff --git a/src/networks/common.ts b/src/networks/common.ts index 411817a..f19fb7b 100644 --- a/src/networks/common.ts +++ b/src/networks/common.ts @@ -1,4 +1,5 @@ import { ref, type Ref } from 'vue' +import { SeededRandom } from '@/hooks/useSeed' export class Network { ID: number @@ -31,7 +32,29 @@ export class Network { }) this.createEndSystems() } - createEndSystems = () => {} + createEndSystems = () => { + // initialize ref array if it does not already exist + this.EndSystems = ref([]) + const rand = new SeededRandom(this.TopoConfig.value.seed) + + this.EndSystems.value = [] // clear any old end systems + + for (let i = 1; i <= this.TopoConfig.value.num_es; i++) { + const es = { + id: i, + type: Math.floor(rand.next() * Object.keys(END_SYSTEM_TYPE).filter(key => isNaN(Number(key))).length), // Object.keys(...).filter(...) is used to count # of elements in enum + pos: [ + Math.floor(rand.next() * this.TopoConfig.value.grid_size) - + this.TopoConfig.value.grid_size / 2, + Math.floor(rand.next() * this.TopoConfig.value.grid_size) - + this.TopoConfig.value.grid_size / 2 + ], + neighbor: 1 + Math.floor(rand.next() * this.TopoConfig.value.num_nodes) // range from 1 to num_nodes inclusive + } + + this.EndSystems.value.push(es) + } + } Run = () => { this.Step() diff --git a/tsconfig.app.json b/tsconfig.app.json index 709c09f..2832479 100644 --- a/tsconfig.app.json +++ b/tsconfig.app.json @@ -4,6 +4,7 @@ "exclude": ["src/**/__tests__/*"], "compilerOptions": { "composite": true, + "moduleResolution": "node", "baseUrl": ".", "paths": { "@/*": ["./src/*"] diff --git a/tsconfig.json b/tsconfig.json index 78f134a..829cb63 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -8,4 +8,17 @@ "path": "./tsconfig.app.json" } ], + "compilerOptions": { + "resolveJsonModule": true, + "moduleResolution": "node", + "paths": { + "echarts": [ + "./node_modules/echarts/dist/echarts.min.js" + ], + "echarts-gl": [ + "./node_modules/echarts-gl/dist/echarts-gl.min.js" + ] + } + }, + }