janusweb 1.5.39 → 1.5.42

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (243) hide show
  1. package/css/janusweb.css +3 -0
  2. package/media/assets/webui/apps/avatar/avatar.js +25 -8
  3. package/media/assets/webui/apps/buttons/buttons.js +0 -40
  4. package/media/assets/webui/apps/buttons/buttons.json +0 -1
  5. package/media/assets/webui/apps/comms/chat.html +1 -0
  6. package/media/assets/webui/apps/comms/chat_message.html +1 -1
  7. package/media/assets/webui/apps/comms/comms.html +1 -1
  8. package/media/assets/webui/apps/comms/comms.js +34 -12
  9. package/media/assets/webui/apps/comms/external/naf-shim.js +1 -1
  10. package/media/assets/webui/apps/comms/userlist.html +8 -5
  11. package/media/assets/webui/apps/comms/voip.css +20 -0
  12. package/media/assets/webui/apps/comms/voip.js +175 -6
  13. package/media/assets/webui/apps/editor/editor.js +78 -8
  14. package/media/assets/webui/apps/inventory/inventory.css +2 -1
  15. package/media/assets/webui/apps/locomotion/teleporter.js +18 -8
  16. package/media/assets/webui/apps/virtualgamepad/virtualgamepad.js +1 -1
  17. package/media/assets/webui/apps/xrmenu/xrmenu.js +10 -5
  18. package/media/lib/basis/basis_transcoder.js +8 -8
  19. package/media/lib/basis/basis_transcoder.wasm +0 -0
  20. package/media/lib/three-icosa/brushes/BlocksBasic-0e87b49c-6546-3a34-3a44-8a556d7d6c3e/BlocksBasic-0e87b49c-6546-3a34-3a44-8a556d7d6c3e-v10.0-fragment.glsl +284 -0
  21. package/media/lib/three-icosa/brushes/BlocksBasic-0e87b49c-6546-3a34-3a44-8a556d7d6c3e/BlocksBasic-0e87b49c-6546-3a34-3a44-8a556d7d6c3e-v10.0-vertex.glsl +60 -0
  22. package/media/lib/three-icosa/brushes/BlocksGem-232998f8-d357-47a2-993a-53415df9be10/BlocksGem-232998f8-d357-47a2-993a-53415df9be10-v10.0-fragment.glsl +334 -0
  23. package/media/lib/three-icosa/brushes/BlocksGem-232998f8-d357-47a2-993a-53415df9be10/BlocksGem-232998f8-d357-47a2-993a-53415df9be10-v10.0-vertex.glsl +46 -0
  24. package/media/lib/three-icosa/brushes/BlocksGlass-3d813d82-5839-4450-8ddc-8e889ecd96c7/BlocksGlass-3d813d82-5839-4450-8ddc-8e889ecd96c7-v10.0-fragment.glsl +248 -0
  25. package/media/lib/three-icosa/brushes/BlocksGlass-3d813d82-5839-4450-8ddc-8e889ecd96c7/BlocksGlass-3d813d82-5839-4450-8ddc-8e889ecd96c7-v10.0-vertex.glsl +60 -0
  26. package/media/lib/three-icosa/brushes/Bubbles-89d104cd-d012-426b-b5b3-bbaee63ac43c/Bubbles-89d104cd-d012-426b-b5b3-bbaee63ac43c-v10.0-MainTex.png +0 -0
  27. package/media/lib/three-icosa/brushes/Bubbles-89d104cd-d012-426b-b5b3-bbaee63ac43c/Bubbles-89d104cd-d012-426b-b5b3-bbaee63ac43c-v10.0-fragment.glsl +34 -0
  28. package/media/lib/three-icosa/brushes/Bubbles-89d104cd-d012-426b-b5b3-bbaee63ac43c/Bubbles-89d104cd-d012-426b-b5b3-bbaee63ac43c-v10.0-vertex.glsl +120 -0
  29. package/media/lib/three-icosa/brushes/CelVinyl-700f3aa8-9a7c-2384-8b8a-ea028905dd8c/CelVinyl-700f3aa8-9a7c-2384-8b8a-ea028905dd8c-v10.0-MainTex.png +0 -0
  30. package/media/lib/three-icosa/brushes/CelVinyl-700f3aa8-9a7c-2384-8b8a-ea028905dd8c/CelVinyl-700f3aa8-9a7c-2384-8b8a-ea028905dd8c-v10.0-fragment.glsl +89 -0
  31. package/media/lib/three-icosa/brushes/CelVinyl-700f3aa8-9a7c-2384-8b8a-ea028905dd8c/CelVinyl-700f3aa8-9a7c-2384-8b8a-ea028905dd8c-v10.0-vertex.glsl +60 -0
  32. package/media/lib/three-icosa/brushes/ChromaticWave-0f0ff7b2-a677-45eb-a7d6-0cd7206f4816/ChromaticWave-0f0ff7b2-a677-45eb-a7d6-0cd7206f4816-v10.0-fragment.glsl +69 -0
  33. package/media/lib/three-icosa/brushes/ChromaticWave-0f0ff7b2-a677-45eb-a7d6-0cd7206f4816/ChromaticWave-0f0ff7b2-a677-45eb-a7d6-0cd7206f4816-v10.0-vertex.glsl +60 -0
  34. package/media/lib/three-icosa/brushes/CoarseBristles-1161af82-50cf-47db-9706-0c3576d43c43/CoarseBristles-1161af82-50cf-47db-9706-0c3576d43c43-v10.0-MainTex.png +0 -0
  35. package/media/lib/three-icosa/brushes/CoarseBristles-1161af82-50cf-47db-9706-0c3576d43c43/CoarseBristles-1161af82-50cf-47db-9706-0c3576d43c43-v10.0-fragment.glsl +289 -0
  36. package/media/lib/three-icosa/brushes/CoarseBristles-1161af82-50cf-47db-9706-0c3576d43c43/CoarseBristles-1161af82-50cf-47db-9706-0c3576d43c43-v10.0-vertex.glsl +60 -0
  37. package/media/lib/three-icosa/brushes/CoarseBristles-79168f10-6961-464a-8be1-57ed364c5600/CoarseBristles-79168f10-6961-464a-8be1-57ed364c5600-v10.0-MainTex.png +0 -0
  38. package/media/lib/three-icosa/brushes/CoarseBristles-79168f10-6961-464a-8be1-57ed364c5600/CoarseBristles-79168f10-6961-464a-8be1-57ed364c5600-v10.0-fragment.glsl +292 -0
  39. package/media/lib/three-icosa/brushes/CoarseBristles-79168f10-6961-464a-8be1-57ed364c5600/CoarseBristles-79168f10-6961-464a-8be1-57ed364c5600-v10.0-vertex.glsl +60 -0
  40. package/media/lib/three-icosa/brushes/Comet-1caa6d7d-f015-3f54-3a4b-8b5354d39f81/Comet-1caa6d7d-f015-3f54-3a4b-8b5354d39f81-v10.0-AlphaMask.png +0 -0
  41. package/media/lib/three-icosa/brushes/Comet-1caa6d7d-f015-3f54-3a4b-8b5354d39f81/Comet-1caa6d7d-f015-3f54-3a4b-8b5354d39f81-v10.0-MainTex.png +0 -0
  42. package/media/lib/three-icosa/brushes/Comet-1caa6d7d-f015-3f54-3a4b-8b5354d39f81/Comet-1caa6d7d-f015-3f54-3a4b-8b5354d39f81-v10.0-fragment.glsl +65 -0
  43. package/media/lib/three-icosa/brushes/Comet-1caa6d7d-f015-3f54-3a4b-8b5354d39f81/Comet-1caa6d7d-f015-3f54-3a4b-8b5354d39f81-v10.0-vertex.glsl +60 -0
  44. package/media/lib/three-icosa/brushes/DiamondHull-c8313697-2563-47fc-832e-290f4c04b901/DiamondHull-c8313697-2563-47fc-832e-290f4c04b901-v10.0-MainTex.png +0 -0
  45. package/media/lib/three-icosa/brushes/DiamondHull-c8313697-2563-47fc-832e-290f4c04b901/DiamondHull-c8313697-2563-47fc-832e-290f4c04b901-v10.0-fragment.glsl +481 -0
  46. package/media/lib/three-icosa/brushes/DiamondHull-c8313697-2563-47fc-832e-290f4c04b901/DiamondHull-c8313697-2563-47fc-832e-290f4c04b901-v10.0-vertex.glsl +57 -0
  47. package/media/lib/three-icosa/brushes/Disco-4391aaaa-df73-4396-9e33-31e4e4930b27/Disco-4391aaaa-df73-4396-9e33-31e4e4930b27-v10.0-fragment.glsl +290 -0
  48. package/media/lib/three-icosa/brushes/Disco-4391aaaa-df73-4396-9e33-31e4e4930b27/Disco-4391aaaa-df73-4396-9e33-31e4e4930b27-v10.0-vertex.glsl +70 -0
  49. package/media/lib/three-icosa/brushes/DotMarker-d1d991f2-e7a0-4cf1-b328-f57e915e6260/DotMarker-d1d991f2-e7a0-4cf1-b328-f57e915e6260-v10.0-MainTex.png +0 -0
  50. package/media/lib/three-icosa/brushes/DotMarker-d1d991f2-e7a0-4cf1-b328-f57e915e6260/DotMarker-d1d991f2-e7a0-4cf1-b328-f57e915e6260-v10.0-fragment.glsl +113 -0
  51. package/media/lib/three-icosa/brushes/DotMarker-d1d991f2-e7a0-4cf1-b328-f57e915e6260/DotMarker-d1d991f2-e7a0-4cf1-b328-f57e915e6260-v10.0-vertex.glsl +60 -0
  52. package/media/lib/three-icosa/brushes/Dots-6a1cf9f9-032c-45ec-9b1d-a6680bee30f7/Dots-6a1cf9f9-032c-45ec-9b1d-a6680bee30f7-v10.0-MainTex.png +0 -0
  53. package/media/lib/three-icosa/brushes/Dots-6a1cf9f9-032c-45ec-9b1d-a6680bee30f7/Dots-6a1cf9f9-032c-45ec-9b1d-a6680bee30f7-v10.0-fragment.glsl +35 -0
  54. package/media/lib/three-icosa/brushes/Dots-6a1cf9f9-032c-45ec-9b1d-a6680bee30f7/Dots-6a1cf9f9-032c-45ec-9b1d-a6680bee30f7-v10.0-vertex.glsl +120 -0
  55. package/media/lib/three-icosa/brushes/DoubleTaperedFlat-0d3889f3-3ede-470c-8af4-f44813306126/DoubleTaperedFlat-0d3889f3-3ede-470c-8af4-f44813306126-v10.0-fragment.glsl +286 -0
  56. package/media/lib/three-icosa/brushes/DoubleTaperedFlat-0d3889f3-3ede-470c-8af4-f44813306126/DoubleTaperedFlat-0d3889f3-3ede-470c-8af4-f44813306126-v10.0-vertex.glsl +54 -0
  57. package/media/lib/three-icosa/brushes/DoubleTaperedMarker-0d3889f3-3ede-470c-8af4-de4813306126/DoubleTaperedMarker-0d3889f3-3ede-470c-8af4-de4813306126-v10.0-fragment.glsl +81 -0
  58. package/media/lib/three-icosa/brushes/DoubleTaperedMarker-0d3889f3-3ede-470c-8af4-de4813306126/DoubleTaperedMarker-0d3889f3-3ede-470c-8af4-de4813306126-v10.0-vertex.glsl +54 -0
  59. package/media/lib/three-icosa/brushes/DuctTape-3ca16e2f-bdcd-4da2-8631-dcef342f40f1/DuctTape-3ca16e2f-bdcd-4da2-8631-dcef342f40f1-v10.0-BumpMap.png +0 -0
  60. package/media/lib/three-icosa/brushes/DuctTape-3ca16e2f-bdcd-4da2-8631-dcef342f40f1/DuctTape-3ca16e2f-bdcd-4da2-8631-dcef342f40f1-v10.0-MainTex.png +0 -0
  61. package/media/lib/three-icosa/brushes/DuctTape-3ca16e2f-bdcd-4da2-8631-dcef342f40f1/DuctTape-3ca16e2f-bdcd-4da2-8631-dcef342f40f1-v10.0-fragment.glsl +376 -0
  62. package/media/lib/three-icosa/brushes/DuctTape-3ca16e2f-bdcd-4da2-8631-dcef342f40f1/DuctTape-3ca16e2f-bdcd-4da2-8631-dcef342f40f1-v10.0-vertex.glsl +60 -0
  63. package/media/lib/three-icosa/brushes/DuctTape-d0262945-853c-4481-9cbd-88586bed93cb/DuctTape-d0262945-853c-4481-9cbd-88586bed93cb-v10.0-BumpMap.png +0 -0
  64. package/media/lib/three-icosa/brushes/DuctTape-d0262945-853c-4481-9cbd-88586bed93cb/DuctTape-d0262945-853c-4481-9cbd-88586bed93cb-v10.0-MainTex.png +0 -0
  65. package/media/lib/three-icosa/brushes/DuctTape-d0262945-853c-4481-9cbd-88586bed93cb/DuctTape-d0262945-853c-4481-9cbd-88586bed93cb-v10.0-fragment.glsl +378 -0
  66. package/media/lib/three-icosa/brushes/DuctTape-d0262945-853c-4481-9cbd-88586bed93cb/DuctTape-d0262945-853c-4481-9cbd-88586bed93cb-v10.0-vertex.glsl +60 -0
  67. package/media/lib/three-icosa/brushes/Electricity-f6e85de3-6dcc-4e7f-87fd-cee8c3d25d51/Electricity-f6e85de3-6dcc-4e7f-87fd-cee8c3d25d51-v10.0-fragment.glsl +50 -0
  68. package/media/lib/three-icosa/brushes/Electricity-f6e85de3-6dcc-4e7f-87fd-cee8c3d25d51/Electricity-f6e85de3-6dcc-4e7f-87fd-cee8c3d25d51-v10.0-vertex.glsl +79 -0
  69. package/media/lib/three-icosa/brushes/Embers-02ffb866-7fb2-4d15-b761-1012cefb1360/Embers-02ffb866-7fb2-4d15-b761-1012cefb1360-v10.0-MainTex.png +0 -0
  70. package/media/lib/three-icosa/brushes/Embers-02ffb866-7fb2-4d15-b761-1012cefb1360/Embers-02ffb866-7fb2-4d15-b761-1012cefb1360-v10.0-fragment.glsl +32 -0
  71. package/media/lib/three-icosa/brushes/Embers-02ffb866-7fb2-4d15-b761-1012cefb1360/Embers-02ffb866-7fb2-4d15-b761-1012cefb1360-v10.0-vertex.glsl +152 -0
  72. package/media/lib/three-icosa/brushes/EnvironmentDiffuse-0ad58bbd-42bc-484e-ad9a-b61036ff4ce7/EnvironmentDiffuse-0ad58bbd-42bc-484e-ad9a-b61036ff4ce7-v1.0-fragment.glsl +288 -0
  73. package/media/lib/three-icosa/brushes/EnvironmentDiffuse-0ad58bbd-42bc-484e-ad9a-b61036ff4ce7/EnvironmentDiffuse-0ad58bbd-42bc-484e-ad9a-b61036ff4ce7-v1.0-vertex.glsl +47 -0
  74. package/media/lib/three-icosa/brushes/EnvironmentDiffuseLightMap-d01d9d6c-9a61-4aba-8146-5891fafb013b/EnvironmentDiffuseLightMap-d01d9d6c-9a61-4aba-8146-5891fafb013b-v1.0-fragment.glsl +288 -0
  75. package/media/lib/three-icosa/brushes/EnvironmentDiffuseLightMap-d01d9d6c-9a61-4aba-8146-5891fafb013b/EnvironmentDiffuseLightMap-d01d9d6c-9a61-4aba-8146-5891fafb013b-v1.0-vertex.glsl +50 -0
  76. package/media/lib/three-icosa/brushes/Fire-cb92b597-94ca-4255-b017-0e3f42f12f9e/Fire-cb92b597-94ca-4255-b017-0e3f42f12f9e-v10.0-MainTex.png +0 -0
  77. package/media/lib/three-icosa/brushes/Fire-cb92b597-94ca-4255-b017-0e3f42f12f9e/Fire-cb92b597-94ca-4255-b017-0e3f42f12f9e-v10.0-fragment.glsl +61 -0
  78. package/media/lib/three-icosa/brushes/Fire-cb92b597-94ca-4255-b017-0e3f42f12f9e/Fire-cb92b597-94ca-4255-b017-0e3f42f12f9e-v10.0-vertex.glsl +60 -0
  79. package/media/lib/three-icosa/brushes/Flat-280c0a7a-aad8-416c-a7d2-df63d129ca70/Flat-280c0a7a-aad8-416c-a7d2-df63d129ca70-v10.0-fragment.glsl +285 -0
  80. package/media/lib/three-icosa/brushes/Flat-280c0a7a-aad8-416c-a7d2-df63d129ca70/Flat-280c0a7a-aad8-416c-a7d2-df63d129ca70-v10.0-vertex.glsl +60 -0
  81. package/media/lib/three-icosa/brushes/Flat-2d35bcf0-e4d8-452c-97b1-3311be063130/Flat-2d35bcf0-e4d8-452c-97b1-3311be063130-v10.0-fragment.glsl +286 -0
  82. package/media/lib/three-icosa/brushes/Flat-2d35bcf0-e4d8-452c-97b1-3311be063130/Flat-2d35bcf0-e4d8-452c-97b1-3311be063130-v10.0-vertex.glsl +60 -0
  83. package/media/lib/three-icosa/brushes/FlatDeprecated-55303bc4-c749-4a72-98d9-d23e68e76e18/FlatDeprecated-55303bc4-c749-4a72-98d9-d23e68e76e18-v10.0-fragment.glsl +285 -0
  84. package/media/lib/three-icosa/brushes/FlatDeprecated-55303bc4-c749-4a72-98d9-d23e68e76e18/FlatDeprecated-55303bc4-c749-4a72-98d9-d23e68e76e18-v10.0-vertex.glsl +60 -0
  85. package/media/lib/three-icosa/brushes/Highlighter-cf019139-d41c-4eb0-a1d0-5cf54b0a42f3/Highlighter-cf019139-d41c-4eb0-a1d0-5cf54b0a42f3-v10.0-MainTex.png +0 -0
  86. package/media/lib/three-icosa/brushes/Highlighter-cf019139-d41c-4eb0-a1d0-5cf54b0a42f3/Highlighter-cf019139-d41c-4eb0-a1d0-5cf54b0a42f3-v10.0-fragment.glsl +40 -0
  87. package/media/lib/three-icosa/brushes/Highlighter-cf019139-d41c-4eb0-a1d0-5cf54b0a42f3/Highlighter-cf019139-d41c-4eb0-a1d0-5cf54b0a42f3-v10.0-vertex.glsl +60 -0
  88. package/media/lib/three-icosa/brushes/HyperGrid-6a1cf9f9-032c-45ec-9b6e-a6680bee32e9/HyperGrid-6a1cf9f9-032c-45ec-9b6e-a6680bee32e9-v10.0-MainTex.png +0 -0
  89. package/media/lib/three-icosa/brushes/HyperGrid-6a1cf9f9-032c-45ec-9b6e-a6680bee32e9/HyperGrid-6a1cf9f9-032c-45ec-9b6e-a6680bee32e9-v10.0-fragment.glsl +33 -0
  90. package/media/lib/three-icosa/brushes/HyperGrid-6a1cf9f9-032c-45ec-9b6e-a6680bee32e9/HyperGrid-6a1cf9f9-032c-45ec-9b6e-a6680bee32e9-v10.0-vertex.glsl +60 -0
  91. package/media/lib/three-icosa/brushes/Hypercolor-dce872c2-7b49-4684-b59b-c45387949c5c/Hypercolor-dce872c2-7b49-4684-b59b-c45387949c5c-v10.0-BumpMap.png +0 -0
  92. package/media/lib/three-icosa/brushes/Hypercolor-dce872c2-7b49-4684-b59b-c45387949c5c/Hypercolor-dce872c2-7b49-4684-b59b-c45387949c5c-v10.0-MainTex.png +0 -0
  93. package/media/lib/three-icosa/brushes/Hypercolor-dce872c2-7b49-4684-b59b-c45387949c5c/Hypercolor-dce872c2-7b49-4684-b59b-c45387949c5c-v10.0-fragment.glsl +386 -0
  94. package/media/lib/three-icosa/brushes/Hypercolor-dce872c2-7b49-4684-b59b-c45387949c5c/Hypercolor-dce872c2-7b49-4684-b59b-c45387949c5c-v10.0-vertex.glsl +60 -0
  95. package/media/lib/three-icosa/brushes/Hypercolor-e8ef32b1-baa8-460a-9c2c-9cf8506794f5/Hypercolor-e8ef32b1-baa8-460a-9c2c-9cf8506794f5-v10.0-BumpMap.png +0 -0
  96. package/media/lib/three-icosa/brushes/Hypercolor-e8ef32b1-baa8-460a-9c2c-9cf8506794f5/Hypercolor-e8ef32b1-baa8-460a-9c2c-9cf8506794f5-v10.0-MainTex.png +0 -0
  97. package/media/lib/three-icosa/brushes/Hypercolor-e8ef32b1-baa8-460a-9c2c-9cf8506794f5/Hypercolor-e8ef32b1-baa8-460a-9c2c-9cf8506794f5-v10.0-fragment.glsl +385 -0
  98. package/media/lib/three-icosa/brushes/Hypercolor-e8ef32b1-baa8-460a-9c2c-9cf8506794f5/Hypercolor-e8ef32b1-baa8-460a-9c2c-9cf8506794f5-v10.0-vertex.glsl +60 -0
  99. package/media/lib/three-icosa/brushes/Icing-2f212815-f4d3-c1a4-681a-feeaf9c6dc37/Icing-2f212815-f4d3-c1a4-681a-feeaf9c6dc37-v10.0-BumpMap.png +0 -0
  100. package/media/lib/three-icosa/brushes/Icing-2f212815-f4d3-c1a4-681a-feeaf9c6dc37/Icing-2f212815-f4d3-c1a4-681a-feeaf9c6dc37-v10.0-fragment.glsl +376 -0
  101. package/media/lib/three-icosa/brushes/Icing-2f212815-f4d3-c1a4-681a-feeaf9c6dc37/Icing-2f212815-f4d3-c1a4-681a-feeaf9c6dc37-v10.0-vertex.glsl +60 -0
  102. package/media/lib/three-icosa/brushes/Ink-c0012095-3ffd-4040-8ee1-fc180d346eaa/Ink-c0012095-3ffd-4040-8ee1-fc180d346eaa-v10.0-BumpMap.png +0 -0
  103. package/media/lib/three-icosa/brushes/Ink-c0012095-3ffd-4040-8ee1-fc180d346eaa/Ink-c0012095-3ffd-4040-8ee1-fc180d346eaa-v10.0-MainTex.png +0 -0
  104. package/media/lib/three-icosa/brushes/Ink-c0012095-3ffd-4040-8ee1-fc180d346eaa/Ink-c0012095-3ffd-4040-8ee1-fc180d346eaa-v10.0-fragment.glsl +376 -0
  105. package/media/lib/three-icosa/brushes/Ink-c0012095-3ffd-4040-8ee1-fc180d346eaa/Ink-c0012095-3ffd-4040-8ee1-fc180d346eaa-v10.0-vertex.glsl +60 -0
  106. package/media/lib/three-icosa/brushes/Ink-f5c336cf-5108-4b40-ade9-c687504385ab/Ink-f5c336cf-5108-4b40-ade9-c687504385ab-v10.0-BumpMap.png +0 -0
  107. package/media/lib/three-icosa/brushes/Ink-f5c336cf-5108-4b40-ade9-c687504385ab/Ink-f5c336cf-5108-4b40-ade9-c687504385ab-v10.0-MainTex.png +0 -0
  108. package/media/lib/three-icosa/brushes/Ink-f5c336cf-5108-4b40-ade9-c687504385ab/Ink-f5c336cf-5108-4b40-ade9-c687504385ab-v10.0-fragment.glsl +377 -0
  109. package/media/lib/three-icosa/brushes/Ink-f5c336cf-5108-4b40-ade9-c687504385ab/Ink-f5c336cf-5108-4b40-ade9-c687504385ab-v10.0-vertex.glsl +60 -0
  110. package/media/lib/three-icosa/brushes/Leaves-ea19de07-d0c0-4484-9198-18489a3c1487/Leaves-ea19de07-d0c0-4484-9198-18489a3c1487-v10.0-BumpMap.png +0 -0
  111. package/media/lib/three-icosa/brushes/Leaves-ea19de07-d0c0-4484-9198-18489a3c1487/Leaves-ea19de07-d0c0-4484-9198-18489a3c1487-v10.0-MainTex.png +0 -0
  112. package/media/lib/three-icosa/brushes/Leaves-ea19de07-d0c0-4484-9198-18489a3c1487/Leaves-ea19de07-d0c0-4484-9198-18489a3c1487-v10.0-fragment.glsl +319 -0
  113. package/media/lib/three-icosa/brushes/Leaves-ea19de07-d0c0-4484-9198-18489a3c1487/Leaves-ea19de07-d0c0-4484-9198-18489a3c1487-v10.0-vertex.glsl +60 -0
  114. package/media/lib/three-icosa/brushes/Light-2241cd32-8ba2-48a5-9ee7-2caef7e9ed62/Light-2241cd32-8ba2-48a5-9ee7-2caef7e9ed62-v10.0-MainTex.png +0 -0
  115. package/media/lib/three-icosa/brushes/Light-2241cd32-8ba2-48a5-9ee7-2caef7e9ed62/Light-2241cd32-8ba2-48a5-9ee7-2caef7e9ed62-v10.0-fragment.glsl +47 -0
  116. package/media/lib/three-icosa/brushes/Light-2241cd32-8ba2-48a5-9ee7-2caef7e9ed62/Light-2241cd32-8ba2-48a5-9ee7-2caef7e9ed62-v10.0-vertex.glsl +60 -0
  117. package/media/lib/three-icosa/brushes/LightWire-4391aaaa-df81-4396-9e33-31e4e4930b27/LightWire-4391aaaa-df81-4396-9e33-31e4e4930b27-v10.0-MainTex.png +0 -0
  118. package/media/lib/three-icosa/brushes/LightWire-4391aaaa-df81-4396-9e33-31e4e4930b27/LightWire-4391aaaa-df81-4396-9e33-31e4e4930b27-v10.0-fragment.glsl +330 -0
  119. package/media/lib/three-icosa/brushes/LightWire-4391aaaa-df81-4396-9e33-31e4e4930b27/LightWire-4391aaaa-df81-4396-9e33-31e4e4930b27-v10.0-vertex.glsl +64 -0
  120. package/media/lib/three-icosa/brushes/Lofted-d381e0f5-3def-4a0d-8853-31e9200bcbda/Lofted-d381e0f5-3def-4a0d-8853-31e9200bcbda-v10.0-fragment.glsl +285 -0
  121. package/media/lib/three-icosa/brushes/Lofted-d381e0f5-3def-4a0d-8853-31e9200bcbda/Lofted-d381e0f5-3def-4a0d-8853-31e9200bcbda-v10.0-vertex.glsl +60 -0
  122. package/media/lib/three-icosa/brushes/Marker-429ed64a-4e97-4466-84d3-145a861ef684/Marker-429ed64a-4e97-4466-84d3-145a861ef684-v10.0-MainTex.png +0 -0
  123. package/media/lib/three-icosa/brushes/Marker-429ed64a-4e97-4466-84d3-145a861ef684/Marker-429ed64a-4e97-4466-84d3-145a861ef684-v10.0-fragment.glsl +87 -0
  124. package/media/lib/three-icosa/brushes/Marker-429ed64a-4e97-4466-84d3-145a861ef684/Marker-429ed64a-4e97-4466-84d3-145a861ef684-v10.0-vertex.glsl +60 -0
  125. package/media/lib/three-icosa/brushes/MatteHull-79348357-432d-4746-8e29-0e25c112e3aa/MatteHull-79348357-432d-4746-8e29-0e25c112e3aa-v10.0-fragment.glsl +285 -0
  126. package/media/lib/three-icosa/brushes/MatteHull-79348357-432d-4746-8e29-0e25c112e3aa/MatteHull-79348357-432d-4746-8e29-0e25c112e3aa-v10.0-vertex.glsl +60 -0
  127. package/media/lib/three-icosa/brushes/NeonPulse-b2ffef01-eaaa-4ab5-aa64-95a2c4f5dbc6/NeonPulse-b2ffef01-eaaa-4ab5-aa64-95a2c4f5dbc6-v10.0-fragment.glsl +267 -0
  128. package/media/lib/three-icosa/brushes/NeonPulse-b2ffef01-eaaa-4ab5-aa64-95a2c4f5dbc6/NeonPulse-b2ffef01-eaaa-4ab5-aa64-95a2c4f5dbc6-v10.0-vertex.glsl +60 -0
  129. package/media/lib/three-icosa/brushes/OilPaint-f72ec0e7-a844-4e38-82e3-140c44772699/OilPaint-f72ec0e7-a844-4e38-82e3-140c44772699-v10.0-BumpMap.png +0 -0
  130. package/media/lib/three-icosa/brushes/OilPaint-f72ec0e7-a844-4e38-82e3-140c44772699/OilPaint-f72ec0e7-a844-4e38-82e3-140c44772699-v10.0-MainTex.png +0 -0
  131. package/media/lib/three-icosa/brushes/OilPaint-f72ec0e7-a844-4e38-82e3-140c44772699/OilPaint-f72ec0e7-a844-4e38-82e3-140c44772699-v10.0-fragment.glsl +377 -0
  132. package/media/lib/three-icosa/brushes/OilPaint-f72ec0e7-a844-4e38-82e3-140c44772699/OilPaint-f72ec0e7-a844-4e38-82e3-140c44772699-v10.0-vertex.glsl +60 -0
  133. package/media/lib/three-icosa/brushes/Paper-759f1ebd-20cd-4720-8d41-234e0da63716/Paper-759f1ebd-20cd-4720-8d41-234e0da63716-v10.0-BumpMap.png +0 -0
  134. package/media/lib/three-icosa/brushes/Paper-759f1ebd-20cd-4720-8d41-234e0da63716/Paper-759f1ebd-20cd-4720-8d41-234e0da63716-v10.0-MainTex.png +0 -0
  135. package/media/lib/three-icosa/brushes/Paper-759f1ebd-20cd-4720-8d41-234e0da63716/Paper-759f1ebd-20cd-4720-8d41-234e0da63716-v10.0-fragment.glsl +376 -0
  136. package/media/lib/three-icosa/brushes/Paper-759f1ebd-20cd-4720-8d41-234e0da63716/Paper-759f1ebd-20cd-4720-8d41-234e0da63716-v10.0-vertex.glsl +60 -0
  137. package/media/lib/three-icosa/brushes/Paper-f1114e2e-eb8d-4fde-915a-6e653b54e9f5/Paper-f1114e2e-eb8d-4fde-915a-6e653b54e9f5-v10.0-BumpMap.png +0 -0
  138. package/media/lib/three-icosa/brushes/Paper-f1114e2e-eb8d-4fde-915a-6e653b54e9f5/Paper-f1114e2e-eb8d-4fde-915a-6e653b54e9f5-v10.0-MainTex.png +0 -0
  139. package/media/lib/three-icosa/brushes/Paper-f1114e2e-eb8d-4fde-915a-6e653b54e9f5/Paper-f1114e2e-eb8d-4fde-915a-6e653b54e9f5-v10.0-fragment.glsl +377 -0
  140. package/media/lib/three-icosa/brushes/Paper-f1114e2e-eb8d-4fde-915a-6e653b54e9f5/Paper-f1114e2e-eb8d-4fde-915a-6e653b54e9f5-v10.0-vertex.glsl +60 -0
  141. package/media/lib/three-icosa/brushes/PbrTemplate-f86a096c-2f4f-4f9d-ae19-81b99f2944e0/PbrTemplate-f86a096c-2f4f-4f9d-ae19-81b99f2944e0-v1.0-fragment.glsl +370 -0
  142. package/media/lib/three-icosa/brushes/PbrTemplate-f86a096c-2f4f-4f9d-ae19-81b99f2944e0/PbrTemplate-f86a096c-2f4f-4f9d-ae19-81b99f2944e0-v1.0-vertex.glsl +48 -0
  143. package/media/lib/three-icosa/brushes/PbrTransparentTemplate-19826f62-42ac-4a9e-8b77-4231fbd0cfbf/PbrTransparentTemplate-19826f62-42ac-4a9e-8b77-4231fbd0cfbf-v1.0-fragment.glsl +374 -0
  144. package/media/lib/three-icosa/brushes/PbrTransparentTemplate-19826f62-42ac-4a9e-8b77-4231fbd0cfbf/PbrTransparentTemplate-19826f62-42ac-4a9e-8b77-4231fbd0cfbf-v1.0-vertex.glsl +48 -0
  145. package/media/lib/three-icosa/brushes/Petal-e0abbc80-0f80-e854-4970-8924a0863dcc/Petal-e0abbc80-0f80-e854-4970-8924a0863dcc-v10.0-fragment.glsl +367 -0
  146. package/media/lib/three-icosa/brushes/Petal-e0abbc80-0f80-e854-4970-8924a0863dcc/Petal-e0abbc80-0f80-e854-4970-8924a0863dcc-v10.0-vertex.glsl +60 -0
  147. package/media/lib/three-icosa/brushes/Plasma-c33714d1-b2f9-412e-bd50-1884c9d46336/Plasma-c33714d1-b2f9-412e-bd50-1884c9d46336-v10.0-MainTex.png +0 -0
  148. package/media/lib/three-icosa/brushes/Plasma-c33714d1-b2f9-412e-bd50-1884c9d46336/Plasma-c33714d1-b2f9-412e-bd50-1884c9d46336-v10.0-fragment.glsl +64 -0
  149. package/media/lib/three-icosa/brushes/Plasma-c33714d1-b2f9-412e-bd50-1884c9d46336/Plasma-c33714d1-b2f9-412e-bd50-1884c9d46336-v10.0-vertex.glsl +60 -0
  150. package/media/lib/three-icosa/brushes/Rainbow-ad1ad437-76e2-450d-a23a-e17f8310b960/Rainbow-ad1ad437-76e2-450d-a23a-e17f8310b960-v10.0-fragment.glsl +70 -0
  151. package/media/lib/three-icosa/brushes/Rainbow-ad1ad437-76e2-450d-a23a-e17f8310b960/Rainbow-ad1ad437-76e2-450d-a23a-e17f8310b960-v10.0-vertex.glsl +60 -0
  152. package/media/lib/three-icosa/brushes/ShinyHull-faaa4d44-fcfb-4177-96be-753ac0421ba3/ShinyHull-faaa4d44-fcfb-4177-96be-753ac0421ba3-v10.0-fragment.glsl +367 -0
  153. package/media/lib/three-icosa/brushes/ShinyHull-faaa4d44-fcfb-4177-96be-753ac0421ba3/ShinyHull-faaa4d44-fcfb-4177-96be-753ac0421ba3-v10.0-vertex.glsl +60 -0
  154. package/media/lib/three-icosa/brushes/Smoke-70d79cca-b159-4f35-990c-f02193947fe8/Smoke-70d79cca-b159-4f35-990c-f02193947fe8-v10.0-MainTex.png +0 -0
  155. package/media/lib/three-icosa/brushes/Smoke-70d79cca-b159-4f35-990c-f02193947fe8/Smoke-70d79cca-b159-4f35-990c-f02193947fe8-v10.0-fragment.glsl +30 -0
  156. package/media/lib/three-icosa/brushes/Smoke-70d79cca-b159-4f35-990c-f02193947fe8/Smoke-70d79cca-b159-4f35-990c-f02193947fe8-v10.0-vertex.glsl +125 -0
  157. package/media/lib/three-icosa/brushes/Snow-d902ed8b-d0d1-476c-a8de-878a79e3a34c/Snow-d902ed8b-d0d1-476c-a8de-878a79e3a34c-v10.0-MainTex.png +0 -0
  158. package/media/lib/three-icosa/brushes/Snow-d902ed8b-d0d1-476c-a8de-878a79e3a34c/Snow-d902ed8b-d0d1-476c-a8de-878a79e3a34c-v10.0-fragment.glsl +31 -0
  159. package/media/lib/three-icosa/brushes/Snow-d902ed8b-d0d1-476c-a8de-878a79e3a34c/Snow-d902ed8b-d0d1-476c-a8de-878a79e3a34c-v10.0-vertex.glsl +143 -0
  160. package/media/lib/three-icosa/brushes/SoftHighlighter-accb32f5-4509-454f-93f8-1df3fd31df1b/SoftHighlighter-accb32f5-4509-454f-93f8-1df3fd31df1b-v10.0-MainTex.png +0 -0
  161. package/media/lib/three-icosa/brushes/SoftHighlighter-accb32f5-4509-454f-93f8-1df3fd31df1b/SoftHighlighter-accb32f5-4509-454f-93f8-1df3fd31df1b-v10.0-fragment.glsl +34 -0
  162. package/media/lib/three-icosa/brushes/SoftHighlighter-accb32f5-4509-454f-93f8-1df3fd31df1b/SoftHighlighter-accb32f5-4509-454f-93f8-1df3fd31df1b-v10.0-vertex.glsl +60 -0
  163. package/media/lib/three-icosa/brushes/Spikes-cf7f0059-7aeb-53a4-2b67-c83d863a9ffa/Spikes-cf7f0059-7aeb-53a4-2b67-c83d863a9ffa-v10.0-fragment.glsl +285 -0
  164. package/media/lib/three-icosa/brushes/Spikes-cf7f0059-7aeb-53a4-2b67-c83d863a9ffa/Spikes-cf7f0059-7aeb-53a4-2b67-c83d863a9ffa-v10.0-vertex.glsl +60 -0
  165. package/media/lib/three-icosa/brushes/Splatter-7a1c8107-50c5-4b70-9a39-421576d6617e/Splatter-7a1c8107-50c5-4b70-9a39-421576d6617e-v10.0-MainTex.png +0 -0
  166. package/media/lib/three-icosa/brushes/Splatter-7a1c8107-50c5-4b70-9a39-421576d6617e/Splatter-7a1c8107-50c5-4b70-9a39-421576d6617e-v10.0-fragment.glsl +290 -0
  167. package/media/lib/three-icosa/brushes/Splatter-7a1c8107-50c5-4b70-9a39-421576d6617e/Splatter-7a1c8107-50c5-4b70-9a39-421576d6617e-v10.0-vertex.glsl +60 -0
  168. package/media/lib/three-icosa/brushes/Splatter-8dc4a70c-d558-4efd-a5ed-d4e860f40dc3/Splatter-8dc4a70c-d558-4efd-a5ed-d4e860f40dc3-v10.0-MainTex.png +0 -0
  169. package/media/lib/three-icosa/brushes/Splatter-8dc4a70c-d558-4efd-a5ed-d4e860f40dc3/Splatter-8dc4a70c-d558-4efd-a5ed-d4e860f40dc3-v10.0-fragment.glsl +291 -0
  170. package/media/lib/three-icosa/brushes/Splatter-8dc4a70c-d558-4efd-a5ed-d4e860f40dc3/Splatter-8dc4a70c-d558-4efd-a5ed-d4e860f40dc3-v10.0-vertex.glsl +60 -0
  171. package/media/lib/three-icosa/brushes/Stars-0eb4db27-3f82-408d-b5a1-19ebd7d5b711/Stars-0eb4db27-3f82-408d-b5a1-19ebd7d5b711-v10.0-MainTex.png +0 -0
  172. package/media/lib/three-icosa/brushes/Stars-0eb4db27-3f82-408d-b5a1-19ebd7d5b711/Stars-0eb4db27-3f82-408d-b5a1-19ebd7d5b711-v10.0-fragment.glsl +31 -0
  173. package/media/lib/three-icosa/brushes/Stars-0eb4db27-3f82-408d-b5a1-19ebd7d5b711/Stars-0eb4db27-3f82-408d-b5a1-19ebd7d5b711-v10.0-vertex.glsl +128 -0
  174. package/media/lib/three-icosa/brushes/Streamers-44bb800a-fbc3-4592-8426-94ecb05ddec3/Streamers-44bb800a-fbc3-4592-8426-94ecb05ddec3-v10.0-MainTex.png +0 -0
  175. package/media/lib/three-icosa/brushes/Streamers-44bb800a-fbc3-4592-8426-94ecb05ddec3/Streamers-44bb800a-fbc3-4592-8426-94ecb05ddec3-v10.0-fragment.glsl +63 -0
  176. package/media/lib/three-icosa/brushes/Streamers-44bb800a-fbc3-4592-8426-94ecb05ddec3/Streamers-44bb800a-fbc3-4592-8426-94ecb05ddec3-v10.0-vertex.glsl +60 -0
  177. package/media/lib/three-icosa/brushes/Taffy-0077f88c-d93a-42f3-b59b-b31c50cdb414/Taffy-0077f88c-d93a-42f3-b59b-b31c50cdb414-v10.0-MainTex.png +0 -0
  178. package/media/lib/three-icosa/brushes/Taffy-0077f88c-d93a-42f3-b59b-b31c50cdb414/Taffy-0077f88c-d93a-42f3-b59b-b31c50cdb414-v10.0-fragment.glsl +113 -0
  179. package/media/lib/three-icosa/brushes/Taffy-0077f88c-d93a-42f3-b59b-b31c50cdb414/Taffy-0077f88c-d93a-42f3-b59b-b31c50cdb414-v10.0-vertex.glsl +62 -0
  180. package/media/lib/three-icosa/brushes/TaperedFlat-b468c1fb-f254-41ed-8ec9-57030bc5660c/TaperedFlat-b468c1fb-f254-41ed-8ec9-57030bc5660c-v10.0-MainTex.png +0 -0
  181. package/media/lib/three-icosa/brushes/TaperedFlat-b468c1fb-f254-41ed-8ec9-57030bc5660c/TaperedFlat-b468c1fb-f254-41ed-8ec9-57030bc5660c-v10.0-fragment.glsl +292 -0
  182. package/media/lib/three-icosa/brushes/TaperedFlat-b468c1fb-f254-41ed-8ec9-57030bc5660c/TaperedFlat-b468c1fb-f254-41ed-8ec9-57030bc5660c-v10.0-vertex.glsl +60 -0
  183. package/media/lib/three-icosa/brushes/TaperedFlat-c8ccb53d-ae13-45ef-8afb-b730d81394eb/TaperedFlat-c8ccb53d-ae13-45ef-8afb-b730d81394eb-v10.0-MainTex.png +0 -0
  184. package/media/lib/three-icosa/brushes/TaperedFlat-c8ccb53d-ae13-45ef-8afb-b730d81394eb/TaperedFlat-c8ccb53d-ae13-45ef-8afb-b730d81394eb-v10.0-fragment.glsl +287 -0
  185. package/media/lib/three-icosa/brushes/TaperedFlat-c8ccb53d-ae13-45ef-8afb-b730d81394eb/TaperedFlat-c8ccb53d-ae13-45ef-8afb-b730d81394eb-v10.0-vertex.glsl +58 -0
  186. package/media/lib/three-icosa/brushes/TaperedMarker-d90c6ad8-af0f-4b54-b422-e0f92abe1b3c/TaperedMarker-d90c6ad8-af0f-4b54-b422-e0f92abe1b3c-v10.0-MainTex.png +0 -0
  187. package/media/lib/three-icosa/brushes/TaperedMarker-d90c6ad8-af0f-4b54-b422-e0f92abe1b3c/TaperedMarker-d90c6ad8-af0f-4b54-b422-e0f92abe1b3c-v10.0-fragment.glsl +113 -0
  188. package/media/lib/three-icosa/brushes/TaperedMarker-d90c6ad8-af0f-4b54-b422-e0f92abe1b3c/TaperedMarker-d90c6ad8-af0f-4b54-b422-e0f92abe1b3c-v10.0-vertex.glsl +60 -0
  189. package/media/lib/three-icosa/brushes/TaperedMarker_Flat-1a26b8c0-8a07-4f8a-9fac-d2ef36e0cad0/TaperedMarker_Flat-1a26b8c0-8a07-4f8a-9fac-d2ef36e0cad0-v10.0-MainTex.png +0 -0
  190. package/media/lib/three-icosa/brushes/TaperedMarker_Flat-1a26b8c0-8a07-4f8a-9fac-d2ef36e0cad0/TaperedMarker_Flat-1a26b8c0-8a07-4f8a-9fac-d2ef36e0cad0-v10.0-fragment.glsl +314 -0
  191. package/media/lib/three-icosa/brushes/TaperedMarker_Flat-1a26b8c0-8a07-4f8a-9fac-d2ef36e0cad0/TaperedMarker_Flat-1a26b8c0-8a07-4f8a-9fac-d2ef36e0cad0-v10.0-vertex.glsl +60 -0
  192. package/media/lib/three-icosa/brushes/ThickPaint-75b32cf0-fdd6-4d89-a64b-e2a00b247b0f/ThickPaint-75b32cf0-fdd6-4d89-a64b-e2a00b247b0f-v10.0-BumpMap.png +0 -0
  193. package/media/lib/three-icosa/brushes/ThickPaint-75b32cf0-fdd6-4d89-a64b-e2a00b247b0f/ThickPaint-75b32cf0-fdd6-4d89-a64b-e2a00b247b0f-v10.0-MainTex.png +0 -0
  194. package/media/lib/three-icosa/brushes/ThickPaint-75b32cf0-fdd6-4d89-a64b-e2a00b247b0f/ThickPaint-75b32cf0-fdd6-4d89-a64b-e2a00b247b0f-v10.0-fragment.glsl +378 -0
  195. package/media/lib/three-icosa/brushes/ThickPaint-75b32cf0-fdd6-4d89-a64b-e2a00b247b0f/ThickPaint-75b32cf0-fdd6-4d89-a64b-e2a00b247b0f-v10.0-vertex.glsl +60 -0
  196. package/media/lib/three-icosa/brushes/ThickPaint-fdf0326a-c0d1-4fed-b101-9db0ff6d071f/ThickPaint-fdf0326a-c0d1-4fed-b101-9db0ff6d071f-v10.0-BumpMap.png +0 -0
  197. package/media/lib/three-icosa/brushes/ThickPaint-fdf0326a-c0d1-4fed-b101-9db0ff6d071f/ThickPaint-fdf0326a-c0d1-4fed-b101-9db0ff6d071f-v10.0-MainTex.png +0 -0
  198. package/media/lib/three-icosa/brushes/ThickPaint-fdf0326a-c0d1-4fed-b101-9db0ff6d071f/ThickPaint-fdf0326a-c0d1-4fed-b101-9db0ff6d071f-v10.0-fragment.glsl +380 -0
  199. package/media/lib/three-icosa/brushes/ThickPaint-fdf0326a-c0d1-4fed-b101-9db0ff6d071f/ThickPaint-fdf0326a-c0d1-4fed-b101-9db0ff6d071f-v10.0-vertex.glsl +58 -0
  200. package/media/lib/three-icosa/brushes/Toon-4391385a-df73-4396-9e33-31e4e4930b27/Toon-4391385a-df73-4396-9e33-31e4e4930b27-v10.0-fragment.glsl +85 -0
  201. package/media/lib/three-icosa/brushes/Toon-4391385a-df73-4396-9e33-31e4e4930b27/Toon-4391385a-df73-4396-9e33-31e4e4930b27-v10.0-vertex.glsl +60 -0
  202. package/media/lib/three-icosa/brushes/UnlitHull-a8fea537-da7c-4d4b-817f-24f074725d6d/UnlitHull-a8fea537-da7c-4d4b-817f-24f074725d6d-v10.0-fragment.glsl +81 -0
  203. package/media/lib/three-icosa/brushes/UnlitHull-a8fea537-da7c-4d4b-817f-24f074725d6d/UnlitHull-a8fea537-da7c-4d4b-817f-24f074725d6d-v10.0-vertex.glsl +60 -0
  204. package/media/lib/three-icosa/brushes/VelvetInk-d229d335-c334-495a-a801-660ac8a87360/VelvetInk-d229d335-c334-495a-a801-660ac8a87360-v10.0-MainTex.png +0 -0
  205. package/media/lib/three-icosa/brushes/VelvetInk-d229d335-c334-495a-a801-660ac8a87360/VelvetInk-d229d335-c334-495a-a801-660ac8a87360-v10.0-fragment.glsl +80 -0
  206. package/media/lib/three-icosa/brushes/VelvetInk-d229d335-c334-495a-a801-660ac8a87360/VelvetInk-d229d335-c334-495a-a801-660ac8a87360-v10.0-vertex.glsl +60 -0
  207. package/media/lib/three-icosa/brushes/Waveform-10201aa3-ebc2-42d8-84b7-2e63f6eeb8ab/Waveform-10201aa3-ebc2-42d8-84b7-2e63f6eeb8ab-v10.0-MainTex.png +0 -0
  208. package/media/lib/three-icosa/brushes/Waveform-10201aa3-ebc2-42d8-84b7-2e63f6eeb8ab/Waveform-10201aa3-ebc2-42d8-84b7-2e63f6eeb8ab-v10.0-fragment.glsl +82 -0
  209. package/media/lib/three-icosa/brushes/Waveform-10201aa3-ebc2-42d8-84b7-2e63f6eeb8ab/Waveform-10201aa3-ebc2-42d8-84b7-2e63f6eeb8ab-v10.0-vertex.glsl +55 -0
  210. package/media/lib/three-icosa/brushes/WetPaint-b67c0e81-ce6d-40a8-aeb0-ef036b081aa3/WetPaint-b67c0e81-ce6d-40a8-aeb0-ef036b081aa3-v10.0-BumpMap.png +0 -0
  211. package/media/lib/three-icosa/brushes/WetPaint-b67c0e81-ce6d-40a8-aeb0-ef036b081aa3/WetPaint-b67c0e81-ce6d-40a8-aeb0-ef036b081aa3-v10.0-MainTex.png +0 -0
  212. package/media/lib/three-icosa/brushes/WetPaint-b67c0e81-ce6d-40a8-aeb0-ef036b081aa3/WetPaint-b67c0e81-ce6d-40a8-aeb0-ef036b081aa3-v10.0-fragment.glsl +376 -0
  213. package/media/lib/three-icosa/brushes/WetPaint-b67c0e81-ce6d-40a8-aeb0-ef036b081aa3/WetPaint-b67c0e81-ce6d-40a8-aeb0-ef036b081aa3-v10.0-vertex.glsl +60 -0
  214. package/media/lib/three-icosa/brushes/WetPaint-dea67637-cd1a-27e4-c9b1-52f4bbcb84e5/WetPaint-dea67637-cd1a-27e4-c9b1-52f4bbcb84e5-v10.0-BumpMap.png +0 -0
  215. package/media/lib/three-icosa/brushes/WetPaint-dea67637-cd1a-27e4-c9b1-52f4bbcb84e5/WetPaint-dea67637-cd1a-27e4-c9b1-52f4bbcb84e5-v10.0-MainTex.png +0 -0
  216. package/media/lib/three-icosa/brushes/WetPaint-dea67637-cd1a-27e4-c9b1-52f4bbcb84e5/WetPaint-dea67637-cd1a-27e4-c9b1-52f4bbcb84e5-v10.0-fragment.glsl +313 -0
  217. package/media/lib/three-icosa/brushes/WetPaint-dea67637-cd1a-27e4-c9b1-52f4bbcb84e5/WetPaint-dea67637-cd1a-27e4-c9b1-52f4bbcb84e5-v10.0-vertex.glsl +58 -0
  218. package/media/lib/three-icosa/brushes/WigglyGraphite-5347acf0-a8e2-47b6-8346-30c70719d763/WigglyGraphite-5347acf0-a8e2-47b6-8346-30c70719d763-v10.0-MainTex.png +0 -0
  219. package/media/lib/three-icosa/brushes/WigglyGraphite-5347acf0-a8e2-47b6-8346-30c70719d763/WigglyGraphite-5347acf0-a8e2-47b6-8346-30c70719d763-v10.0-fragment.glsl +377 -0
  220. package/media/lib/three-icosa/brushes/WigglyGraphite-5347acf0-a8e2-47b6-8346-30c70719d763/WigglyGraphite-5347acf0-a8e2-47b6-8346-30c70719d763-v10.0-vertex.glsl +60 -0
  221. package/media/lib/three-icosa/brushes/WigglyGraphite-e814fef1-97fd-7194-4a2f-50c2bb918be2/WigglyGraphite-e814fef1-97fd-7194-4a2f-50c2bb918be2-v10.0-MainTex.png +0 -0
  222. package/media/lib/three-icosa/brushes/WigglyGraphite-e814fef1-97fd-7194-4a2f-50c2bb918be2/WigglyGraphite-e814fef1-97fd-7194-4a2f-50c2bb918be2-v10.0-fragment.glsl +107 -0
  223. package/media/lib/three-icosa/brushes/WigglyGraphite-e814fef1-97fd-7194-4a2f-50c2bb918be2/WigglyGraphite-e814fef1-97fd-7194-4a2f-50c2bb918be2-v10.0-vertex.glsl +58 -0
  224. package/media/lib/three-icosa/brushes/Wire-4391385a-cf83-4396-9e33-31e4e4930b27/Wire-4391385a-cf83-4396-9e33-31e4e4930b27-v10.0-fragment.glsl +75 -0
  225. package/media/lib/three-icosa/brushes/Wire-4391385a-cf83-4396-9e33-31e4e4930b27/Wire-4391385a-cf83-4396-9e33-31e4e4930b27-v10.0-vertex.glsl +60 -0
  226. package/media/manifest.json +1 -1
  227. package/package.json +1 -1
  228. package/scripts/client.js +19 -2
  229. package/scripts/elements/outliner.js +176 -0
  230. package/scripts/external/JanusFireboxParser.js +2 -1
  231. package/scripts/janusbase.js +3 -2
  232. package/scripts/janusghost.js +32 -10
  233. package/scripts/janusparticle.js +5 -2
  234. package/scripts/janusplayer.js +121 -84
  235. package/scripts/janusweb.js +8 -4
  236. package/scripts/janusxrplayer.js +49 -7
  237. package/scripts/multiplayermanager.js +4 -0
  238. package/scripts/object.js +21 -9
  239. package/scripts/room.js +24 -10
  240. package/scripts/sound.js +8 -3
  241. package/scripts/text.js +2 -0
  242. package/scripts/tracking.js +1 -1
  243. package/scripts/ui/main.js +6 -2
@@ -18,7 +18,11 @@ elation.require(['engine.things.player', 'janusweb.external.JanusVOIP', 'ui.butt
18
18
  this.postinit = function() {
19
19
  elation.engine.things.janusplayer.extendclass.postinit.call(this);
20
20
 
21
- this.settings = elation.collection.localindexed({storagekey: 'janusweb.player.settings', index: 'key'});
21
+ try {
22
+ this.settings = elation.collection.localindexed({storagekey: 'janusweb.player.settings', index: 'key'});
23
+ } catch (e) {
24
+ this.settings = elation.collection.indexed({storagekey: 'janusweb.player.settings', index: 'key'});
25
+ }
22
26
 
23
27
  this.defineProperties({
24
28
  janus: {type: 'object' },
@@ -127,6 +131,7 @@ elation.require(['engine.things.player', 'janusweb.external.JanusVOIP', 'ui.butt
127
131
  this.party_mode = this.getSetting('partymode.enabled', false);
128
132
  this.currentavatar = '';
129
133
  this.getAvatarData().then(d => this.currentavatar = d);
134
+ this.morphtargetchanges = {};
130
135
  }
131
136
  this.createChildren = function() {
132
137
  elation.engine.things.janusplayer.extendclass.createChildren.call(this);
@@ -283,10 +288,10 @@ elation.require(['engine.things.player', 'janusweb.external.JanusVOIP', 'ui.butt
283
288
  }
284
289
  }
285
290
  if (this.ghost && !this.decouplehead) {
286
- this.ghost.setHeadOrientation(this.head.orientation);
291
+ this.ghost.setHeadOrientation(this.head.orientation, true);
287
292
  if (this.ghost._target.head) {
288
293
  //this.ghost._target.face.position.copy(this.head.position);
289
- this.ghost.head.orientation.copy(this.head.orientation);
294
+ this.ghost.head.orientation.copy(this.head.orientation).invert();
290
295
  }
291
296
  }
292
297
  }
@@ -490,7 +495,7 @@ elation.require(['engine.things.player', 'janusweb.external.JanusVOIP', 'ui.butt
490
495
  avatar_src: 'data:text/plain,' + encodeURIComponent(avatar),
491
496
  showlabel: false,
492
497
  //pos: V(0, -this.fatness, 0),
493
- //rotation: V(0, 180, 0),
498
+ rotation: V(0, 180, 0),
494
499
  renderorder: 101,
495
500
  });
496
501
  this.ghost.orientation.set(0,1,0,0);
@@ -541,81 +546,83 @@ elation.require(['engine.things.player', 'janusweb.external.JanusVOIP', 'ui.butt
541
546
  this.stop = function() {
542
547
  }
543
548
  this.getProxyObject = function() {
544
- var proxy = new elation.proxy(this, {
545
- parent: ['accessor', 'parent.getProxyObject'],
546
- room: ['property', 'room'],
547
- pos: ['property', 'position'],
548
- vel: ['property', 'velocity'],
549
- accel: ['property', 'acceleration'],
550
- eye_pos: ['property', 'vectors.eye_pos'],
551
- head_pos: ['property', 'vectors.head_pos'],
552
- cursor_pos: ['property', 'vectors.cursor_pos'],
553
- cursor_xdir: ['property', 'vectors.cursor_xdir'],
554
- cursor_ydir: ['property', 'vectors.cursor_ydir'],
555
- cursor_zdir: ['property', 'vectors.cursor_zdir'],
556
- view_dir: ['property', 'vectors.view_zdir'],
557
- dir: ['property', 'vectors.zdir'],
558
- up_dir: ['property', 'vectors.ydir'],
559
- userid: ['property', 'janus.userId'],
560
- enabled: ['property', 'enabled'],
561
- flying: ['property', 'flying'],
562
- walking: ['property', 'walking'],
563
- running: ['property', 'running'],
564
- //url: ['property', 'currenturl'],
565
- //hmd_enabled: ['property', 'hmd_enabled'],
566
- cursor_active: ['property', 'cursor_active'],
567
- cursor_visible: ['property', 'cursor_visible'],
568
- cursor_opacity: ['property', 'cursor_opacity'],
569
- cursor_style: ['property', 'cursor_style'],
570
- cursor_object: ['property', 'cursor_object'],
571
- lookat_object: ['property', 'lookat_object'],
572
- lookat_pos: ['property', 'vectors.lookat_pos'],
573
- //lookat_xdir: ['property', 'properties.lookat_xdir'],
574
- //lookat_ydir: ['property', 'properties.lookat_ydir'],
575
- //lookat_zdir: ['property', 'properties.lookat_zdir'],
576
- hand0_active: ['property', 'hands.left.isactive'],
577
- hand0_pos: ['property', 'hands.left.handpos'],
578
- hand0_xdir: ['property', 'hands.left.xdir'],
579
- hand0_ydir: ['property', 'hands.left.ydir'],
580
- hand0_zdir: ['property', 'hands.left.zdir'],
581
- hand0_p0: ['property', 'hands.left.p0'],
582
- hand0_p1: ['property', 'hands.left.p1'],
583
- hand0_p2: ['property', 'hands.left.p2'],
584
- hand0_p3: ['property', 'hands.left.p3'],
585
- hand0_p4: ['property', 'hands.left.p4'],
549
+ if (!this._proxyobject) {
550
+ this._proxyobject = new elation.proxy(this, {
551
+ parent: ['accessor', 'parent.getProxyObject'],
552
+ room: ['property', 'room'],
553
+ pos: ['property', 'position'],
554
+ vel: ['property', 'velocity'],
555
+ accel: ['property', 'acceleration'],
556
+ eye_pos: ['property', 'vectors.eye_pos'],
557
+ head_pos: ['property', 'vectors.head_pos'],
558
+ cursor_pos: ['property', 'vectors.cursor_pos'],
559
+ cursor_xdir: ['property', 'vectors.cursor_xdir'],
560
+ cursor_ydir: ['property', 'vectors.cursor_ydir'],
561
+ cursor_zdir: ['property', 'vectors.cursor_zdir'],
562
+ view_dir: ['property', 'vectors.view_zdir'],
563
+ dir: ['property', 'vectors.zdir'],
564
+ up_dir: ['property', 'vectors.ydir'],
565
+ userid: ['property', 'janus.userId'],
566
+ enabled: ['property', 'enabled'],
567
+ flying: ['property', 'flying'],
568
+ walking: ['property', 'walking'],
569
+ running: ['property', 'running'],
570
+ //url: ['property', 'currenturl'],
571
+ //hmd_enabled: ['property', 'hmd_enabled'],
572
+ cursor_active: ['property', 'cursor_active'],
573
+ cursor_visible: ['property', 'cursor_visible'],
574
+ cursor_opacity: ['property', 'cursor_opacity'],
575
+ cursor_style: ['property', 'cursor_style'],
576
+ cursor_object: ['property', 'cursor_object'],
577
+ lookat_object: ['property', 'lookat_object'],
578
+ lookat_pos: ['property', 'vectors.lookat_pos'],
579
+ //lookat_xdir: ['property', 'properties.lookat_xdir'],
580
+ //lookat_ydir: ['property', 'properties.lookat_ydir'],
581
+ //lookat_zdir: ['property', 'properties.lookat_zdir'],
582
+ hand0_active: ['property', 'hands.left.isactive'],
583
+ hand0_pos: ['property', 'hands.left.handpos'],
584
+ hand0_xdir: ['property', 'hands.left.xdir'],
585
+ hand0_ydir: ['property', 'hands.left.ydir'],
586
+ hand0_zdir: ['property', 'hands.left.zdir'],
587
+ hand0_p0: ['property', 'hands.left.p0'],
588
+ hand0_p1: ['property', 'hands.left.p1'],
589
+ hand0_p2: ['property', 'hands.left.p2'],
590
+ hand0_p3: ['property', 'hands.left.p3'],
591
+ hand0_p4: ['property', 'hands.left.p4'],
586
592
 
587
- hand1_active: ['property', 'hands.right.isactive'],
588
- hand1_pos: ['property', 'hands.right.handpos'],
589
- hand1_xdir: ['property', 'hands.right.xdir'],
590
- hand1_ydir: ['property', 'hands.right.ydir'],
591
- hand1_zdir: ['property', 'hands.right.zdir'],
592
- hand1_p0: ['property', 'hands.right.p0'],
593
- hand1_p1: ['property', 'hands.right.p1'],
594
- hand1_p2: ['property', 'hands.right.p2'],
595
- hand1_p3: ['property', 'hands.right.p3'],
596
- hand1_p4: ['property', 'hands.right.p4'],
597
- url: ['property', 'parent.currentroom.url'],
593
+ hand1_active: ['property', 'hands.right.isactive'],
594
+ hand1_pos: ['property', 'hands.right.handpos'],
595
+ hand1_xdir: ['property', 'hands.right.xdir'],
596
+ hand1_ydir: ['property', 'hands.right.ydir'],
597
+ hand1_zdir: ['property', 'hands.right.zdir'],
598
+ hand1_p0: ['property', 'hands.right.p0'],
599
+ hand1_p1: ['property', 'hands.right.p1'],
600
+ hand1_p2: ['property', 'hands.right.p2'],
601
+ hand1_p3: ['property', 'hands.right.p3'],
602
+ hand1_p4: ['property', 'hands.right.p4'],
603
+ url: ['property', 'parent.currentroom.url'],
598
604
 
599
- collision_radius: ['property', 'collision_radius'],
605
+ collision_radius: ['property', 'collision_radius'],
600
606
 
601
- currentavatar: ['property', 'currentavatar'],
602
- defaultanimation: ['property', 'defaultanimation'],
607
+ currentavatar: ['property', 'currentavatar'],
608
+ defaultanimation: ['property', 'defaultanimation'],
603
609
 
604
- localToWorld: ['function', 'localToWorld'],
605
- worldToLocal: ['function', 'worldToLocal'],
606
- appendChild: ['function', 'appendChild'],
607
- removeChild: ['function', 'removeChild'],
608
- addForce: ['function', 'addForce'],
609
- removeForce: ['function', 'removeForce'],
610
- raycast: ['function', 'raycast'],
611
- getViewFrustum:['function', 'getViewFrustum'],
612
- getUsername: ['function', 'getUsername'],
613
- setUsername: ['function', 'setUsername'],
614
- getSetting: ['function', 'getSetting'],
615
- setSetting: ['function', 'setSetting'],
616
- setAvatar: ['function', 'setAvatar'],
617
- });
618
- return proxy;
610
+ localToWorld: ['function', 'localToWorld'],
611
+ worldToLocal: ['function', 'worldToLocal'],
612
+ appendChild: ['function', 'appendChild'],
613
+ removeChild: ['function', 'removeChild'],
614
+ addForce: ['function', 'addForce'],
615
+ removeForce: ['function', 'removeForce'],
616
+ raycast: ['function', 'raycast'],
617
+ getViewFrustum:['function', 'getViewFrustum'],
618
+ getUsername: ['function', 'getUsername'],
619
+ setUsername: ['function', 'setUsername'],
620
+ getSetting: ['function', 'getSetting'],
621
+ setSetting: ['function', 'setSetting'],
622
+ setAvatar: ['function', 'setAvatar'],
623
+ });
624
+ }
625
+ return this._proxyobject;
619
626
  }
620
627
  this.getAvatarData = function() {
621
628
  return new Promise((resolve, reject) => {
@@ -654,7 +661,7 @@ elation.require(['engine.things.player', 'janusweb.external.JanusVOIP', 'ui.butt
654
661
  avatar_src: 'data:text/plain,' + encodeURIComponent(avatar),
655
662
  showlabel: false,
656
663
  //pos: V(0, -this.fatness, 0),
657
- //rotation: V(0, 180, 0),
664
+ rotation: V(0, 180, 0),
658
665
  renderorder: 101,
659
666
  });
660
667
 
@@ -725,6 +732,29 @@ elation.require(['engine.things.player', 'janusweb.external.JanusVOIP', 'ui.butt
725
732
  }
726
733
  return handData;
727
734
  }
735
+ this.hasMorphTargetData = function() {
736
+ return Object.keys(this.morphtargetchanges).length > 0;
737
+ }
738
+ this.setMorphTargetInfluence = function(morphtarget, value) {
739
+ if (this.ghost && this.ghost.body) {
740
+ this.ghost.body.setMorphTargetInfluence(morphtarget, value);
741
+ //if (this.morphtargetchanges.indexOf(morphtarget) == -1) {
742
+ this.morphtargetchanges[morphtarget] = value;
743
+ //}
744
+ }
745
+ }
746
+ this.getMorphTargetData = function() {
747
+ if (this.hasMorphTargetData()) {
748
+ let data = {};
749
+ let body = this.ghost.body;
750
+ for (let morphtarget in this.morphtargetchanges) {
751
+ data[morphtarget] = this.morphtargetchanges[morphtarget];
752
+ delete this.morphtargetchanges[morphtarget];
753
+ }
754
+ return data;
755
+ }
756
+ return false;
757
+ }
728
758
  this.getRandomUsername = function() {
729
759
  var adjectives = [
730
760
  "Adorable", "Beautiful", "Clean", "Drab", "Elegant", "Fancy", "Glamorous", "Handsome", "Long", "Magnificent",
@@ -999,16 +1029,23 @@ elation.require(['engine.things.player', 'janusweb.external.JanusVOIP', 'ui.butt
999
1029
  return function(newscale, scaletime, scalecurve) {
1000
1030
  if (newscale != this.scale) {
1001
1031
  startscale.copy(this.properties.scale);
1002
- let start = performance.now();
1003
- let timer = setInterval(() => {
1004
- let n = (performance.now() - start) / scaletime;
1032
+ if (scaletime) {
1033
+ let start = performance.now();
1034
+ let timer = setInterval(() => {
1035
+ let n = (performance.now() - start) / scaletime;
1005
1036
 
1006
- this.scale = tmpvec.set(newscale, newscale, newscale).sub(startscale).multiplyScalar(n).add(startscale);
1037
+ this.scale = tmpvec.set(newscale, newscale, newscale).sub(startscale).multiplyScalar(n).add(startscale);
1038
+ this.camera.scale = camscale.set(1 / this.scale.x, 1 / this.scale.y, 1 / this.scale.z);
1039
+ if (n >= 1) {
1040
+ clearInterval(timer);
1041
+ this.scale.set(newscale, newscale, newscale);
1042
+ this.camera.scale = camscale.set(1 / this.scale.x, 1 / this.scale.y, 1 / this.scale.z);
1043
+ }
1044
+ }, 16);
1045
+ } else {
1046
+ this.scale.set(newscale, newscale, newscale);
1007
1047
  this.camera.scale = camscale.set(1 / this.scale.x, 1 / this.scale.y, 1 / this.scale.z);
1008
- if (n >= 1) {
1009
- clearInterval(timer);
1010
- }
1011
- }, 16);
1048
+ }
1012
1049
  }
1013
1050
  };
1014
1051
  })();
@@ -1,6 +1,6 @@
1
1
  elation.require([
2
2
  'janusweb.config', 'engine.things.generic','janusweb.remoteplayer', 'janusweb.room', 'janusweb.tracking', 'janusweb.multiplayermanager', 'janusweb.external.JanusFireboxParser', 'utils.proxy',
3
- 'janusweb.elements.raycaster', 'janusweb.elements.teleporter', 'janusweb.elements.linesegments'], function() {
3
+ 'janusweb.elements.raycaster', 'janusweb.elements.teleporter', 'janusweb.elements.linesegments', 'janusweb.elements.outliner'], function() {
4
4
 
5
5
  elation.requireCSS('janusweb.janusweb');
6
6
  elation.component.add('engine.things.janusweb', function() {
@@ -74,7 +74,11 @@ elation.require([
74
74
  });
75
75
  elation.events.add(window, 'popstate', elation.bind(this, this.handlePopstate));
76
76
 
77
- this.bookmarks = elation.collection.localindexed({index: 'url', storagekey: 'janusweb.bookmarks'});
77
+ try {
78
+ this.bookmarks = elation.collection.localindexed({index: 'url', storagekey: 'janusweb.bookmarks'});
79
+ } catch (e) {
80
+ this.bookmarks = elation.collection.indexed({index: 'url', storagekey: 'janusweb.bookmarks'});
81
+ }
78
82
 
79
83
  if (this.corsproxy != '') {
80
84
  elation.engine.assets.setCORSProxy(this.corsproxy);
@@ -108,7 +112,7 @@ elation.require([
108
112
 
109
113
  this.assetpack.executeWhenLoaded(() => {
110
114
  // TODO - this should be config-driven
111
- this.registerAdditionalElements(['raycaster', 'linesegments']);
115
+ this.registerAdditionalElements(['raycaster', 'linesegments', 'outliner']);
112
116
 
113
117
  if (this.networking) {
114
118
  this.network = elation.janusweb.multiplayermanager({
@@ -620,7 +624,7 @@ elation.require([
620
624
  this.registerElement = function(tagname, classobj, extendclass) {
621
625
  if (!extendclass || !elation.engine.things[extendclass]) extendclass = 'janusbase';
622
626
  tagname = tagname.toLowerCase();
623
- console.log('Register new SYSTEM tag type:', tagname, classobj, extendclass);
627
+ //console.log('Register new SYSTEM tag type:', tagname, classobj, extendclass);
624
628
  elation.component.add('engine.things.' + tagname, classobj, elation.engine.things[extendclass]);
625
629
  /*
626
630
  this.typemap[tagname] = tagname;
@@ -282,7 +282,7 @@ elation.require(['engine.things.generic', 'janusweb.external.webxr-input-profile
282
282
  janus.engine.systems.controls.removeVirtualGamepad(this.device.gamepad);
283
283
  },
284
284
  async createMotionController(xrInputSource) {
285
- let uri = 'https://baicoianu.com/~bai/webxr-input-profiles/packages/assets/dist/profiles';
285
+ let uri = 'https://cdn.jsdelivr.net/npm/@webxr-input-profiles/assets@latest/dist/profiles';
286
286
  const { profile, assetPath } = await elation.janusweb.external.webxrinput.fetchProfile(xrInputSource, uri);
287
287
  const motionController = new elation.janusweb.external.webxrinput.MotionController(xrInputSource, profile, assetPath);
288
288
  this.motionController = motionController;
@@ -291,6 +291,7 @@ elation.require(['engine.things.generic', 'janusweb.external.webxr-input-profile
291
291
 
292
292
  this.controller = this.createObject('object', {
293
293
  id: 'blah-' + this.device.handedness,
294
+ cull_face: 'back',
294
295
  visible: true,
295
296
  });
296
297
  this.controller.addEventListener('load', (ev) => { this.controller.visible = true; });
@@ -375,7 +376,10 @@ elation.require(['engine.things.generic', 'janusweb.external.webxr-input-profile
375
376
  if (this.controller) this.controller.visible = false;
376
377
  if (this.skeleton) this.skeleton.visible = true;
377
378
  } else {
378
- if (this.controller) this.controller.visible = true;
379
+ if (this.controller) {
380
+ this.controller.visible = true;
381
+ this.controller.opacity = player.cursor_opacity;
382
+ }
379
383
  if (this.skeleton) {
380
384
  this.skeleton.die();
381
385
  this.skeleton = false;
@@ -389,6 +393,7 @@ elation.require(['engine.things.generic', 'janusweb.external.webxr-input-profile
389
393
  if (this.pointer && raypose) {
390
394
  this.pointer.pos.copy(raypose.transform.position);
391
395
  this.pointer.orientation.copy(raypose.transform.orientation);
396
+ this.pointer.updateCursorOpacity();
392
397
  }
393
398
  },
394
399
  createButtons() {
@@ -541,6 +546,7 @@ elation.require(['engine.things.generic', 'janusweb.external.webxr-input-profile
541
546
  opacity: .8,
542
547
  col: this.lasercolor,
543
548
  visible: false,
549
+ transparent: true,
544
550
  });
545
551
  this.bonk = this.createObject('object', {
546
552
  id: 'cylinder',
@@ -563,6 +569,7 @@ elation.require(['engine.things.generic', 'janusweb.external.webxr-input-profile
563
569
  opacity: .5,
564
570
  cull_face: 'none',
565
571
  billboard: 'y',
572
+ transparent: true,
566
573
  });
567
574
  this.raycaster = this.createObject('raycaster', {});
568
575
  this.raycaster.addEventListener('raycastenter', (ev) => this.handleRaycastEnter(ev));
@@ -581,6 +588,41 @@ elation.require(['engine.things.generic', 'janusweb.external.webxr-input-profile
581
588
  //this.cursor.zdir = normal;
582
589
  this.cursor.visible = true;
583
590
  },
591
+ updateCursorOpacity() {
592
+ if (!this.activeobject) return;
593
+ let proxyobj = this.activeobject,
594
+ obj = proxyobj._target;
595
+ if (obj && proxyobj && (
596
+ obj.onclick ||
597
+ elation.events.hasEventListener(obj, 'click') ||
598
+ elation.events.hasEventListener(proxyobj, 'click') ||
599
+ obj.onmousedown ||
600
+ elation.events.hasEventListener(obj, 'mousedown') ||
601
+ elation.events.hasEventListener(proxyobj, 'mousedown')
602
+ )) {
603
+ this.laser.col.setRGB(0,255,0);
604
+ this.laser.opacity = player.cursor_opacity * .8;
605
+ this.laser.updateColor();
606
+ this.cursor.image_id = 'cursor_dot_active';
607
+ this.cursor.opacity = player.cursor_opacity;
608
+ //this.laser.visible = false; // FIXME - hack to disable laser without breaking things
609
+
610
+ /*
611
+ let gamepad = this.device.gamepad;
612
+ if ("hapticActuators" in gamepad && gamepad.hapticActuators.length > 0) {
613
+ gamepad.hapticActuators[0].pulse(1, 100);
614
+ }
615
+ */
616
+
617
+ } else {
618
+ this.laser.col.setRGB(255,0,0);
619
+ this.laser.opacity = player.cursor_opacity * .4;
620
+ this.laser.updateColor();
621
+ this.cursor.image_id = 'cursor_dot_inactive';
622
+ this.cursor.opacity = player.cursor_opacity / 2;
623
+ //this.laser.visible = false; // FIXME - hack to disable laser without breaking things
624
+ }
625
+ },
584
626
  handleRaycastEnter(ev) {
585
627
  let proxyobj = ev.data.object,
586
628
  obj = proxyobj._target;
@@ -607,10 +649,10 @@ elation.require(['engine.things.generic', 'janusweb.external.webxr-input-profile
607
649
  elation.events.hasEventListener(proxyobj, 'mousedown')
608
650
  )) {
609
651
  this.laser.col.setRGB(0,1,0);
610
- this.laser.opacity = .8;
652
+ this.laser.opacity = player.cursor_opacity * .8;
611
653
  this.laser.updateColor();
612
654
  this.cursor.image_id = 'cursor_dot_active';
613
- this.cursor.opacity = 1;
655
+ this.cursor.opacity = player.cursor_opacity;
614
656
  //this.laser.visible = false; // FIXME - hack to disable laser without breaking things
615
657
 
616
658
  /*
@@ -622,10 +664,10 @@ elation.require(['engine.things.generic', 'janusweb.external.webxr-input-profile
622
664
 
623
665
  } else {
624
666
  this.laser.col.setRGB(1,0,0);
625
- this.laser.opacity = .4;
667
+ this.laser.opacity = player.cursor_opacity * .4;
626
668
  this.laser.updateColor();
627
669
  this.cursor.image_id = 'cursor_dot_inactive';
628
- this.cursor.opacity = .5;
670
+ this.cursor.opacity = player.cursor_opacity / 2;
629
671
  //this.laser.visible = false; // FIXME - hack to disable laser without breaking things
630
672
  }
631
673
 
@@ -669,7 +711,7 @@ elation.require(['engine.things.generic', 'janusweb.external.webxr-input-profile
669
711
  },
670
712
  handleRaycastLeave(ev) {
671
713
  this.laser.col.setRGB(0,1,1);
672
- this.laser.opacity = .2;
714
+ this.laser.opacity = player.cursor_opacity * .2;
673
715
  this.laser.updateColor();
674
716
  },
675
717
  handleSelectStart(ev) {
@@ -272,6 +272,10 @@ console.log('[MultiplayerManager] set active room:', room, this.activeroom);
272
272
  };
273
273
  }
274
274
  }
275
+ let morphtargetdata = player.getMorphTargetData();
276
+ if (morphtargetdata) {
277
+ moveData.morphtargets = morphtargetdata
278
+ }
275
279
 
276
280
  //console.log(moveData, server, room);
277
281
  server.send({'method': 'move', 'data': moveData});
package/scripts/object.js CHANGED
@@ -191,6 +191,7 @@ elation.require(['janusweb.janusbase', 'janusweb.websurface'], function() {
191
191
  if (this.animations && this.anim_id && this.animations[this.anim_id]) {
192
192
  console.log('start animation', this);
193
193
  this.animations[this.anim_id].play();
194
+ this.activeanimation = this.animations[this.anim_id];
194
195
  }
195
196
  }
196
197
  if (this.loadingindicator) {
@@ -843,8 +844,9 @@ elation.require(['janusweb.janusbase', 'janusweb.websurface'], function() {
843
844
  m.emissiveMap = textureEmissive;
844
845
  textureEmissive.encoding = THREE.sRGBEncoding;
845
846
  m.emissive = new THREE.Color(0xffffff);
846
- } else {
847
+ } else if (this.emissive) {
847
848
  //m.emissive = this.emissive.clone();
849
+ m.emissive.copy(this.emissive)
848
850
  }
849
851
  m.emissiveIntensity = this.emissive_intensity;
850
852
  }
@@ -863,7 +865,7 @@ elation.require(['janusweb.janusbase', 'janusweb.websurface'], function() {
863
865
  m.metalness = this.metalness;
864
866
  }
865
867
 
866
- if (this.isUsingPBR()) {
868
+ if (this.isUsingPBR() && !this.isUsingToonShader()) {
867
869
  m.envMap = this.getEnvmap();
868
870
  }
869
871
 
@@ -881,7 +883,7 @@ elation.require(['janusweb.janusbase', 'janusweb.websurface'], function() {
881
883
  m.transparent = true;
882
884
  }
883
885
  } else {
884
- m.blending = THREE.NormalBlending;
886
+ //m.blending = THREE.NormalBlending;
885
887
  }
886
888
  if (this.depth_write !== null) {
887
889
  m.depthWrite = this.depth_write;
@@ -973,9 +975,10 @@ elation.require(['janusweb.janusbase', 'janusweb.websurface'], function() {
973
975
  var m = materials;
974
976
  } else if (oldmat instanceof THREE.PointsMaterial ||
975
977
  oldmat instanceof THREE.LineBasicMaterial ||
976
- oldmat instanceof THREE.LineDashedMaterial
978
+ oldmat instanceof THREE.LineDashedMaterial ||
979
+ oldmat instanceof THREE.ShaderMaterial
977
980
  ) {
978
- var m = oldmat.clone();
981
+ var m = oldmat;
979
982
  } else {
980
983
  var m = this.allocateMaterial();
981
984
  m.dithering = true;
@@ -1009,7 +1012,7 @@ elation.require(['janusweb.janusbase', 'janusweb.websurface'], function() {
1009
1012
  }
1010
1013
  m.transmission = oldmat.transmission;
1011
1014
  m.transmissionMap = oldmat.transmissionMap;
1012
- m.transparent = m.opacity < 1;
1015
+ m.transparent = oldmat.transparent || m.opacity < 1;
1013
1016
  m.alphaTest = oldmat.alphaTest;
1014
1017
  m.skinning = oldmat.skinning;
1015
1018
 
@@ -1019,11 +1022,12 @@ elation.require(['janusweb.janusbase', 'janusweb.websurface'], function() {
1019
1022
  if (oldmat.roughnessMap !== undefined) m.roughnessMap = oldmat.roughnessMap;
1020
1023
  if (oldmat.clearcoat !== undefined) m.clearcoat = oldmat.clearcoat;
1021
1024
  if (oldmat.clearcoatMap !== undefined) m.clearcoatMap = oldmat.clearcoatMap;
1022
- if (oldmat.clearcoatRoughness !== undefined) m.clearcoatcoughness = oldmat.clearcoatRoughness;
1025
+ if (oldmat.clearcoatRoughness !== undefined) m.clearcoatRoughness = oldmat.clearcoatRoughness;
1023
1026
  if (oldmat.clearcoatRoughnessMap !== undefined) m.clearcoatRoughnessMap = oldmat.clearcoatRoughnessMap;
1024
1027
  if (oldmat.clearcoatNormalMap !== undefined) m.clearcoatNormalMap = oldmat.clearcoatNormalMap;
1025
1028
  if (oldmat.clearcoatNormalScale !== undefined) m.clearcoatNormalScale = oldmat.clearcoatNormalScale;
1026
1029
  if (oldmat.attenuationTint !== undefined) m.attenuationTint = oldmat.attenuationTint;
1030
+ if (oldmat.attenuationColor !== undefined) m.attenuationColor = oldmat.attenuationColor;
1027
1031
  if (oldmat.attenuationDistance !== undefined) m.attenuationDistance = oldmat.attenuationDistance;
1028
1032
  if (oldmat.thickness !== undefined) m.thickness = oldmat.thickness;
1029
1033
  if (oldmat.thicknessMap !== undefined) m.thicknessMap = oldmat.thicknessMap;
@@ -1108,10 +1112,10 @@ elation.require(['janusweb.janusbase', 'janusweb.websurface'], function() {
1108
1112
  if (this.shader_id) {
1109
1113
  } else if (!this.lighting) {
1110
1114
  return new THREE.MeshBasicMaterial();
1111
- } else if (this.isUsingPBR()) {
1112
- return new THREE.MeshPhysicalMaterial();
1113
1115
  } else if (this.isUsingToonShader()) {
1114
1116
  return new THREE.MeshToonMaterial();
1117
+ } else if (this.isUsingPBR()) {
1118
+ return new THREE.MeshPhysicalMaterial();
1115
1119
  }
1116
1120
  return new THREE.MeshPhongMaterial();
1117
1121
  }
@@ -1407,6 +1411,14 @@ elation.require(['janusweb.janusbase', 'janusweb.websurface'], function() {
1407
1411
  }
1408
1412
 
1409
1413
  }
1414
+ this.cloneAnimations = function(object) {
1415
+ if (object.animations && this.animationmixer) {
1416
+ for (let k in object.animations) {
1417
+ let action = this.animationmixer.clipAction(object.animations[k]._clip);
1418
+ this.animations[k] = action;
1419
+ }
1420
+ }
1421
+ }
1410
1422
  this.getProxyObject = function(classdef) {
1411
1423
  if (!this._proxyobject) {
1412
1424
  this._proxyobject = elation.engine.things.janusobject.extendclass.getProxyObject.call(this, classdef);
package/scripts/room.js CHANGED
@@ -53,8 +53,8 @@ elation.require([
53
53
  'defaultlights': { type: 'bool', default: true, set: this.updateLights },
54
54
  'shadows': { type: 'bool', default: false, set: this.updateShadows },
55
55
  'party_mode': { type: 'bool', default: true },
56
- 'walk_speed': { type: 'float', default: 1.8 },
57
- 'run_speed': { type: 'float', default: 5.4 },
56
+ 'walk_speed': { type: 'float', default: 1.8, set: this.updatePlayerSpeed },
57
+ 'run_speed': { type: 'float', default: 5.4, set: this.updatePlayerSpeed },
58
58
  'jump_velocity': { type: 'float', default: 5.0 },
59
59
  'flying': { type: 'boolean', default: true, set: this.updateFlying },
60
60
  'gravity': { type: 'float', default: 0, set: this.updateGravity },
@@ -306,6 +306,7 @@ elation.require([
306
306
  let equi = this.getAsset('image', this.skybox_equi);
307
307
  elation.events.add(equi, 'asset_load', ev => {
308
308
  this.skyboxtexture = ev.target._texture;
309
+ this.skyboxtexture.mapping = THREE.EquirectangularReflectionMapping;
309
310
  if (this.janus.currentroom === this) {
310
311
  this.skyboxobj.setTexture(this.skyboxtexture);
311
312
  }
@@ -705,9 +706,9 @@ elation.require([
705
706
  }
706
707
  this.parseSource = function(data) {
707
708
  this.fullsource = data;
708
- var titlere = /<title>([\s\S]*?)<\/title>/mi;
709
- var re = /<fireboxroom>[\s\S]*?<\/fireboxroom>/mi;
710
- var re2 = /<janus-viewer[^>]*>[\s\S]*?<\/janus-viewer>/mi;
709
+ var titlere = /<title>([\s\S]*?)<\/title>/si;
710
+ var re = /<fireboxroom>[\s\S]*?<\/fireboxroom>/si;
711
+ var re2 = /<janus-viewer[^>]*>[\s\S]*?<\/janus-viewer>/si;
711
712
  var mtitle = data.match(titlere);
712
713
  var parsed = {
713
714
  title: 'Untitled Room',
@@ -957,8 +958,12 @@ elation.require([
957
958
  this.properties.cursor_opacity = room.cursor_opacity;
958
959
 
959
960
  let cookieStorageID = 'cookies.' + this.url;
960
- if (cookieStorageID in localStorage) {
961
- this.cookies = JSON.parse(localStorage['cookies.' + this.url]);
961
+ try {
962
+ if (cookieStorageID in localStorage) {
963
+ this.cookies = JSON.parse(localStorage['cookies.' + this.url]);
964
+ }
965
+ } catch (e) {
966
+ this.cookies = [];
962
967
  }
963
968
 
964
969
  if (room.onload) {
@@ -1632,7 +1637,10 @@ console.log('connect room audio to graph', this.audionodes.gain, this.audionodes
1632
1637
  }
1633
1638
  this.addCookie = function(name, value) {
1634
1639
  this.cookies[name] = value;
1635
- localStorage['cookies.' + this.url] = JSON.stringify(this.cookies);
1640
+ try {
1641
+ localStorage['cookies.' + this.url] = JSON.stringify(this.cookies);
1642
+ } catch (e) {
1643
+ }
1636
1644
  }
1637
1645
  this.doScriptOnload = function() {
1638
1646
  if (--this.pendingScripts <= 0) {
@@ -1971,11 +1979,17 @@ console.log('connect room audio to graph', this.audionodes.gain, this.audionodes
1971
1979
  this.updateFlying = function() {
1972
1980
  if (typeof player != 'undefined') {
1973
1981
  player.flying = this.flying;
1974
- console.log('Toggle player flying', this.flying);
1982
+ //console.log('Toggle player flying', this.flying);
1983
+ }
1984
+ }
1985
+ this.updatePlayerSpeed = function() {
1986
+ if (typeof player != 'undefined') {
1987
+ player.properties.movestrength = 80 * this.properties.walk_speed;
1988
+ player.properties.runstrength = 80 * this.properties.run_speed;
1975
1989
  }
1976
1990
  }
1977
1991
  this.updateTeleport = function() {
1978
- console.log('Toggle player teleport', this.teleport);
1992
+ //console.log('Toggle player teleport', this.teleport);
1979
1993
  }
1980
1994
  this.updateGravity = function() {
1981
1995
  if (this.loaded) {