matrix-engine-wgpu 1.3.17 → 1.3.18

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 (273) hide show
  1. package/.codesandbox/tasks.json +46 -0
  2. package/.devcontainer/devcontainer.json +22 -0
  3. package/.github/dependabot.yml +12 -0
  4. package/REFERENCE.md +59 -0
  5. package/app-worker.js +45 -0
  6. package/dev.md +541 -0
  7. package/empty.js +17 -0
  8. package/examples/camera-texture.js +60 -0
  9. package/examples/games/jamb/html-content.js +128 -0
  10. package/examples/games/jamb/jamb.js +1341 -0
  11. package/examples/games/jamb/readme.md +3 -0
  12. package/examples/load-jamb.js +6 -0
  13. package/examples/load-obj-file.js +95 -0
  14. package/examples/load-objs-sequence.js +68 -0
  15. package/examples/unlit-textures.js +31 -0
  16. package/examples/video-texture.js +61 -0
  17. package/examples.js +73 -0
  18. package/main.js +635 -0
  19. package/non-project-files/cubebuffer-example.js +51 -0
  20. package/non-project-files/dev.txt +21 -0
  21. package/non-project-files/image1.png +0 -0
  22. package/non-project-files/image6.png +0 -0
  23. package/package.json +1 -4
  24. package/public/ammojs/ammo.js +957 -0
  25. package/public/ammojs/ammo.wasm.js +921 -0
  26. package/public/ammojs/ammo.wasm.wasm +0 -0
  27. package/public/app-worker.js +47 -0
  28. package/public/app.js +12744 -0
  29. package/public/css/style.css +711 -0
  30. package/public/empty.html +25 -0
  31. package/public/empty.js +10453 -0
  32. package/public/examples.html +30 -0
  33. package/public/examples.js +11217 -0
  34. package/public/index.html +20 -0
  35. package/public/manifest copy.web +35 -0
  36. package/public/manifest.web +25 -0
  37. package/public/res/audios/block.mp3 +0 -0
  38. package/public/res/audios/dice-roll.mp3 +0 -0
  39. package/public/res/audios/dice1.mp3 +0 -0
  40. package/public/res/audios/dice2.mp3 +0 -0
  41. package/public/res/audios/kenney/Kenney.url +2 -0
  42. package/public/res/audios/kenney/License.txt +22 -0
  43. package/public/res/audios/kenney/Patreon.url +2 -0
  44. package/public/res/audios/kenney/audios/back_001.ogg +0 -0
  45. package/public/res/audios/kenney/audios/back_002.ogg +0 -0
  46. package/public/res/audios/kenney/audios/back_003.ogg +0 -0
  47. package/public/res/audios/kenney/audios/back_004.ogg +0 -0
  48. package/public/res/audios/kenney/audios/bong_001.ogg +0 -0
  49. package/public/res/audios/kenney/audios/click_001.ogg +0 -0
  50. package/public/res/audios/kenney/audios/click_002.ogg +0 -0
  51. package/public/res/audios/kenney/audios/click_003.ogg +0 -0
  52. package/public/res/audios/kenney/audios/click_004.ogg +0 -0
  53. package/public/res/audios/kenney/audios/click_005.ogg +0 -0
  54. package/public/res/audios/kenney/audios/close_001.ogg +0 -0
  55. package/public/res/audios/kenney/audios/close_002.ogg +0 -0
  56. package/public/res/audios/kenney/audios/close_003.ogg +0 -0
  57. package/public/res/audios/kenney/audios/close_004.ogg +0 -0
  58. package/public/res/audios/kenney/audios/confirmation_001.ogg +0 -0
  59. package/public/res/audios/kenney/audios/confirmation_002.ogg +0 -0
  60. package/public/res/audios/kenney/audios/confirmation_003.ogg +0 -0
  61. package/public/res/audios/kenney/audios/confirmation_004.ogg +0 -0
  62. package/public/res/audios/kenney/audios/drop_001.ogg +0 -0
  63. package/public/res/audios/kenney/audios/drop_002.ogg +0 -0
  64. package/public/res/audios/kenney/audios/drop_003.ogg +0 -0
  65. package/public/res/audios/kenney/audios/drop_004.ogg +0 -0
  66. package/public/res/audios/kenney/audios/error_001.ogg +0 -0
  67. package/public/res/audios/kenney/audios/error_002.ogg +0 -0
  68. package/public/res/audios/kenney/audios/error_003.ogg +0 -0
  69. package/public/res/audios/kenney/audios/error_004.ogg +0 -0
  70. package/public/res/audios/kenney/audios/error_005.ogg +0 -0
  71. package/public/res/audios/kenney/audios/error_006.ogg +0 -0
  72. package/public/res/audios/kenney/audios/error_007.ogg +0 -0
  73. package/public/res/audios/kenney/audios/error_008.ogg +0 -0
  74. package/public/res/audios/kenney/audios/glass_001.ogg +0 -0
  75. package/public/res/audios/kenney/audios/glass_002.ogg +0 -0
  76. package/public/res/audios/kenney/audios/glass_003.ogg +0 -0
  77. package/public/res/audios/kenney/audios/glass_004.ogg +0 -0
  78. package/public/res/audios/kenney/audios/glass_005.ogg +0 -0
  79. package/public/res/audios/kenney/audios/glass_006.ogg +0 -0
  80. package/public/res/audios/kenney/audios/glitch_001.ogg +0 -0
  81. package/public/res/audios/kenney/audios/glitch_002.ogg +0 -0
  82. package/public/res/audios/kenney/audios/glitch_003.ogg +0 -0
  83. package/public/res/audios/kenney/audios/glitch_004.ogg +0 -0
  84. package/public/res/audios/kenney/audios/maximize_001.ogg +0 -0
  85. package/public/res/audios/kenney/audios/maximize_002.ogg +0 -0
  86. package/public/res/audios/kenney/audios/maximize_003.ogg +0 -0
  87. package/public/res/audios/kenney/audios/maximize_004.ogg +0 -0
  88. package/public/res/audios/kenney/audios/maximize_005.ogg +0 -0
  89. package/public/res/audios/kenney/audios/maximize_006.ogg +0 -0
  90. package/public/res/audios/kenney/audios/maximize_007.ogg +0 -0
  91. package/public/res/audios/kenney/audios/maximize_008.ogg +0 -0
  92. package/public/res/audios/kenney/audios/maximize_009.ogg +0 -0
  93. package/public/res/audios/kenney/audios/minimize_001.ogg +0 -0
  94. package/public/res/audios/kenney/audios/minimize_002.ogg +0 -0
  95. package/public/res/audios/kenney/audios/minimize_003.ogg +0 -0
  96. package/public/res/audios/kenney/audios/minimize_004.ogg +0 -0
  97. package/public/res/audios/kenney/audios/minimize_005.ogg +0 -0
  98. package/public/res/audios/kenney/audios/minimize_006.ogg +0 -0
  99. package/public/res/audios/kenney/audios/minimize_007.ogg +0 -0
  100. package/public/res/audios/kenney/audios/minimize_008.ogg +0 -0
  101. package/public/res/audios/kenney/audios/minimize_009.ogg +0 -0
  102. package/public/res/audios/kenney/audios/open_001.ogg +0 -0
  103. package/public/res/audios/kenney/audios/open_002.ogg +0 -0
  104. package/public/res/audios/kenney/audios/open_003.ogg +0 -0
  105. package/public/res/audios/kenney/audios/open_004.ogg +0 -0
  106. package/public/res/audios/kenney/audios/pluck_001.ogg +0 -0
  107. package/public/res/audios/kenney/audios/pluck_002.ogg +0 -0
  108. package/public/res/audios/kenney/audios/question_001.ogg +0 -0
  109. package/public/res/audios/kenney/audios/question_002.ogg +0 -0
  110. package/public/res/audios/kenney/audios/question_003.ogg +0 -0
  111. package/public/res/audios/kenney/audios/question_004.ogg +0 -0
  112. package/public/res/audios/kenney/audios/scratch_001.ogg +0 -0
  113. package/public/res/audios/kenney/audios/scratch_002.ogg +0 -0
  114. package/public/res/audios/kenney/audios/scratch_003.ogg +0 -0
  115. package/public/res/audios/kenney/audios/scratch_004.ogg +0 -0
  116. package/public/res/audios/kenney/audios/scratch_005.ogg +0 -0
  117. package/public/res/audios/kenney/audios/scroll_001.ogg +0 -0
  118. package/public/res/audios/kenney/audios/scroll_002.ogg +0 -0
  119. package/public/res/audios/kenney/audios/scroll_003.ogg +0 -0
  120. package/public/res/audios/kenney/audios/scroll_004.ogg +0 -0
  121. package/public/res/audios/kenney/audios/scroll_005.ogg +0 -0
  122. package/public/res/audios/kenney/audios/select_001.ogg +0 -0
  123. package/public/res/audios/kenney/audios/select_002.ogg +0 -0
  124. package/public/res/audios/kenney/audios/select_003.ogg +0 -0
  125. package/public/res/audios/kenney/audios/select_004.ogg +0 -0
  126. package/public/res/audios/kenney/audios/select_005.ogg +0 -0
  127. package/public/res/audios/kenney/audios/select_006.ogg +0 -0
  128. package/public/res/audios/kenney/audios/select_007.ogg +0 -0
  129. package/public/res/audios/kenney/audios/select_008.ogg +0 -0
  130. package/public/res/audios/kenney/audios/switch_001.ogg +0 -0
  131. package/public/res/audios/kenney/audios/switch_002.ogg +0 -0
  132. package/public/res/audios/kenney/audios/switch_003.ogg +0 -0
  133. package/public/res/audios/kenney/audios/switch_004.ogg +0 -0
  134. package/public/res/audios/kenney/audios/switch_005.ogg +0 -0
  135. package/public/res/audios/kenney/audios/switch_006.ogg +0 -0
  136. package/public/res/audios/kenney/audios/switch_007.ogg +0 -0
  137. package/public/res/audios/kenney/audios/tick_001.ogg +0 -0
  138. package/public/res/audios/kenney/audios/tick_002.ogg +0 -0
  139. package/public/res/audios/kenney/audios/tick_004.ogg +0 -0
  140. package/public/res/audios/kenney/audios/toggle_001.ogg +0 -0
  141. package/public/res/audios/kenney/audios/toggle_002.ogg +0 -0
  142. package/public/res/audios/kenney/audios/toggle_003.ogg +0 -0
  143. package/public/res/audios/kenney/audios/toggle_004.ogg +0 -0
  144. package/public/res/audios/start.mp3 +0 -0
  145. package/public/res/audios/toggle_002.mp3 +0 -0
  146. package/public/res/fonts/Accuratist.ttf +0 -0
  147. package/public/res/fonts/Closeness.ttf +0 -0
  148. package/public/res/fonts/WARGAMES.TTF +0 -0
  149. package/public/res/fonts/readme.txt +5 -0
  150. package/public/res/fonts/stormfaze.ttf +0 -0
  151. package/public/res/icons/512.png +0 -0
  152. package/public/res/icons/webgpu-horizontal.svg +45 -0
  153. package/public/res/meshes/blender/cube.blend +0 -0
  154. package/public/res/meshes/blender/cube.blend1 +0 -0
  155. package/public/res/meshes/blender/cube.mtl +12 -0
  156. package/public/res/meshes/blender/cube.obj +46 -0
  157. package/public/res/meshes/blender/cube.png +0 -0
  158. package/public/res/meshes/blender/cubeSmartUV.blend +0 -0
  159. package/public/res/meshes/blender/cubeSmartUV.mtl +12 -0
  160. package/public/res/meshes/blender/cubeSmartUV.obj +46 -0
  161. package/public/res/meshes/blender/lopta.mtl +10 -0
  162. package/public/res/meshes/blender/lopta.obj +3402 -0
  163. package/public/res/meshes/blender/piramyd.blend +0 -0
  164. package/public/res/meshes/blender/piramyd.blend1 +0 -0
  165. package/public/res/meshes/blender/piramyd.js +42 -0
  166. package/public/res/meshes/blender/piramyd.mtl +10 -0
  167. package/public/res/meshes/blender/piramyd.obj +18696 -0
  168. package/public/res/meshes/blender/piramyd1.js +42 -0
  169. package/public/res/meshes/blender/sphepe.blend +0 -0
  170. package/public/res/meshes/blender/sphepe.blend1 +0 -0
  171. package/public/res/meshes/blender/sphere.mtl +10 -0
  172. package/public/res/meshes/blender/sphere.obj +3402 -0
  173. package/public/res/meshes/blender/welcomeTextblend.blend +0 -0
  174. package/public/res/meshes/dragon/stanfordDragonData.js +5 -0
  175. package/public/res/meshes/jamb/bg.blend +0 -0
  176. package/public/res/meshes/jamb/bg.blend1 +0 -0
  177. package/public/res/meshes/jamb/bg.mtl +12 -0
  178. package/public/res/meshes/jamb/bg.obj +17 -0
  179. package/public/res/meshes/jamb/bg.png +0 -0
  180. package/public/res/meshes/jamb/dice-default.png +0 -0
  181. package/public/res/meshes/jamb/dice-mark.png +0 -0
  182. package/public/res/meshes/jamb/dice.mtl +12 -0
  183. package/public/res/meshes/jamb/dice.obj +40 -0
  184. package/public/res/meshes/jamb/dice.png +0 -0
  185. package/public/res/meshes/jamb/jamb-title.mtl +12 -0
  186. package/public/res/meshes/jamb/jamb-title.obj +26008 -0
  187. package/public/res/meshes/jamb/jamb.blend +0 -0
  188. package/public/res/meshes/jamb/jamb.blend1 +0 -0
  189. package/public/res/meshes/jamb/logo.png +0 -0
  190. package/public/res/meshes/jamb/nidzaDice.blend +0 -0
  191. package/public/res/meshes/jamb/nidzaDice.blend1 +0 -0
  192. package/public/res/meshes/jamb/pile.blend +0 -0
  193. package/public/res/meshes/jamb/simpleCube.blend +0 -0
  194. package/public/res/meshes/jamb/simpleCube.blend1 +0 -0
  195. package/public/res/meshes/jamb/sounds/roll1.wav +0 -0
  196. package/public/res/meshes/jamb/text.png +0 -0
  197. package/public/res/meshes/obj/armor.obj +319 -0
  198. package/public/res/meshes/obj/armor.png +0 -0
  199. package/public/res/meshes/objs-sequence/swat-walk-pistol_000001.mtl +22 -0
  200. package/public/res/meshes/objs-sequence/swat-walk-pistol_000001.obj +23264 -0
  201. package/public/res/meshes/objs-sequence/swat-walk-pistol_000002.mtl +22 -0
  202. package/public/res/meshes/objs-sequence/swat-walk-pistol_000002.obj +23261 -0
  203. package/public/res/meshes/objs-sequence/swat-walk-pistol_000003.mtl +22 -0
  204. package/public/res/meshes/objs-sequence/swat-walk-pistol_000003.obj +23264 -0
  205. package/public/res/meshes/objs-sequence/swat-walk-pistol_000004.mtl +22 -0
  206. package/public/res/meshes/objs-sequence/swat-walk-pistol_000004.obj +23261 -0
  207. package/public/res/meshes/objs-sequence/swat-walk-pistol_000005.mtl +22 -0
  208. package/public/res/meshes/objs-sequence/swat-walk-pistol_000005.obj +23261 -0
  209. package/public/res/meshes/objs-sequence/swat-walk-pistol_000006.mtl +22 -0
  210. package/public/res/meshes/objs-sequence/swat-walk-pistol_000006.obj +23261 -0
  211. package/public/res/meshes/objs-sequence/swat-walk-pistol_000007.mtl +22 -0
  212. package/public/res/meshes/objs-sequence/swat-walk-pistol_000007.obj +23264 -0
  213. package/public/res/meshes/objs-sequence/swat-walk-pistol_000008.mtl +22 -0
  214. package/public/res/meshes/objs-sequence/swat-walk-pistol_000008.obj +23263 -0
  215. package/public/res/meshes/objs-sequence/swat-walk-pistol_000009.mtl +22 -0
  216. package/public/res/meshes/objs-sequence/swat-walk-pistol_000009.obj +23264 -0
  217. package/public/res/meshes/objs-sequence/swat-walk-pistol_000010.mtl +22 -0
  218. package/public/res/meshes/objs-sequence/swat-walk-pistol_000010.obj +23260 -0
  219. package/public/res/meshes/objs-sequence/swat-walk-pistol_000011.mtl +22 -0
  220. package/public/res/meshes/objs-sequence/swat-walk-pistol_000011.obj +23262 -0
  221. package/public/res/meshes/objs-sequence/swat-walk-pistol_000012.mtl +22 -0
  222. package/public/res/meshes/objs-sequence/swat-walk-pistol_000012.obj +23262 -0
  223. package/public/res/meshes/objs-sequence/swat-walk-pistol_000013.mtl +22 -0
  224. package/public/res/meshes/objs-sequence/swat-walk-pistol_000013.obj +23263 -0
  225. package/public/res/meshes/objs-sequence/swat-walk-pistol_000014.mtl +22 -0
  226. package/public/res/meshes/objs-sequence/swat-walk-pistol_000014.obj +23262 -0
  227. package/public/res/meshes/objs-sequence/swat-walk-pistol_000015.mtl +22 -0
  228. package/public/res/meshes/objs-sequence/swat-walk-pistol_000015.obj +23263 -0
  229. package/public/res/meshes/objs-sequence/swat-walk-pistol_000016.mtl +22 -0
  230. package/public/res/meshes/objs-sequence/swat-walk-pistol_000016.obj +23264 -0
  231. package/public/res/meshes/objs-sequence/swat-walk-pistol_000017.mtl +22 -0
  232. package/public/res/meshes/objs-sequence/swat-walk-pistol_000017.obj +23263 -0
  233. package/public/res/meshes/objs-sequence/swat-walk-pistol_000018.mtl +22 -0
  234. package/public/res/meshes/objs-sequence/swat-walk-pistol_000018.obj +23261 -0
  235. package/public/res/meshes/objs-sequence/swat-walk-pistol_000019.mtl +22 -0
  236. package/public/res/meshes/objs-sequence/swat-walk-pistol_000019.obj +23263 -0
  237. package/public/res/meshes/objs-sequence/swat-walk-pistol_000020.mtl +22 -0
  238. package/public/res/meshes/objs-sequence/swat-walk-pistol_000020.obj +23261 -0
  239. package/public/res/meshes/shapes/star1.obj +60 -0
  240. package/public/res/multilang/en.json +39 -0
  241. package/public/res/multilang/sr.json +39 -0
  242. package/public/res/textures/default.png +0 -0
  243. package/public/res/textures/rust.jpg +0 -0
  244. package/public/res/textures/tex1.jpg +0 -0
  245. package/public/res/videos/readme.txt +2 -0
  246. package/public/res/videos/tunel.mp4 +0 -0
  247. package/public/test.html +636 -0
  248. package/public/three-test.js +165 -0
  249. package/public/worker.html +25 -0
  250. package/src/engine/ball.js +482 -0
  251. package/src/engine/cube.js +496 -0
  252. package/src/engine/engine.js +404 -0
  253. package/src/engine/final/adaptJSON1.js +53 -0
  254. package/src/engine/final/utils2.js +63 -0
  255. package/src/engine/lights.js +153 -0
  256. package/src/engine/loader-obj.js +473 -0
  257. package/src/engine/materials.js +295 -0
  258. package/src/engine/matrix-class.js +252 -0
  259. package/src/engine/mesh-obj.js +574 -0
  260. package/src/engine/raycast.js +218 -0
  261. package/src/engine/utils.js +881 -0
  262. package/src/libs/mat.js +0 -0
  263. package/src/multilang/lang.js +35 -0
  264. package/src/physics/matrix-ammo.js +363 -0
  265. package/src/shaders/fragment.video.wgsl.js +83 -0
  266. package/src/shaders/fragment.wgsl.js +75 -0
  267. package/src/shaders/shaders.js +51 -0
  268. package/src/shaders/standard-matrix-engine-shaders/standard-matrix-engine-fs.glsl +56 -0
  269. package/src/shaders/standard-matrix-engine-shaders/standard-matrix-engine-vs.glsl +75 -0
  270. package/src/shaders/vertex.wgsl.js +54 -0
  271. package/src/shaders/vertexShadow.wgsl.js +20 -0
  272. package/src/sounds/sounds.js +69 -0
  273. package/src/world.js +474 -0
@@ -0,0 +1,711 @@
1
+ @font-face {
2
+ font-family: stormfaze;
3
+ src: url(../../public/res/fonts/stormfaze.ttf),
4
+ url(../res/fonts/stormfaze.ttf);
5
+ }
6
+
7
+ @font-face {
8
+ font-family: wargames;
9
+ src: url(../../public/res/fonts/wargames.ttf);
10
+ }
11
+
12
+ body {
13
+ color: white;
14
+ background-color: #95003d;
15
+ font-family: "stormfaze";
16
+ font-size: 14px;
17
+ margin: 0;
18
+ padding: 0;
19
+ overflow: hidden;
20
+ text-align: center;
21
+
22
+ -webkit-user-select: none;
23
+ /* Safari */
24
+ -ms-user-select: none;
25
+ /* IE 10 and IE 11 */
26
+ user-select: none;
27
+ /* Standard syntax */
28
+
29
+ -webkit-text-stroke-width: 1px;
30
+ -webkit-text-stroke-color: rgba(0, 0, 0, 0.575);
31
+ }
32
+
33
+ .meBody {
34
+ font-family: stormfaze;
35
+ }
36
+
37
+ .noselection {
38
+ -webkit-touch-callout: none;
39
+ /* Safari */
40
+ user-select: none;
41
+ /* standard syntax */
42
+ -webkit-user-select: none;
43
+ /* webkit (safari, chrome) browsers */
44
+ -moz-user-select: none;
45
+ /* mozilla browsers */
46
+ -khtml-user-select: none;
47
+ /* webkit (konqueror) browsers */
48
+ -ms-user-select: none;
49
+ /* IE10+ */
50
+ }
51
+
52
+ *::-webkit-media-controls-panel {
53
+ display: none !important;
54
+ -webkit-appearance: none;
55
+ }
56
+
57
+ /* Old shadow dom for play button */
58
+ *::-webkit-media-controls-play-button {
59
+ display: none !important;
60
+ -webkit-appearance: none;
61
+ }
62
+
63
+ /* This one works! */
64
+ *::-webkit-media-controls-start-playback-button {
65
+ display: none !important;
66
+ -webkit-appearance: none;
67
+ }
68
+
69
+ ::-webkit-scrollbar {
70
+ width: 5px;
71
+ }
72
+
73
+ ::-webkit-scrollbar-track {
74
+ box-shadow: inset 0 0 5px rgb(102, 102, 102);
75
+ border-radius: 8px;
76
+ }
77
+
78
+ body::-webkit-scrollbar-thumb {
79
+ background: rgba(0, 0, 0, 0.1);
80
+ border-radius: 9px;
81
+ }
82
+
83
+ body::-webkit-scrollbar-thumb:hover {
84
+ background: rgba(0, 0, 0, 0.6);
85
+ }
86
+
87
+
88
+ textarea:focus,
89
+ input:focus {
90
+ outline: none;
91
+ }
92
+
93
+ a {
94
+ font-family: stormfaze;
95
+ color: #0080ff;
96
+ }
97
+
98
+ button {
99
+ font-family: stormfaze;
100
+ }
101
+
102
+ iframe {
103
+ border: none;
104
+ }
105
+
106
+ .noselect {
107
+ -webkit-touch-callout: none;
108
+ /* iOS Safari */
109
+ -webkit-user-select: none;
110
+ /* Safari */
111
+ -khtml-user-select: none;
112
+ /* Konqueror HTML */
113
+ -moz-user-select: none;
114
+ /* Old versions of Firefox */
115
+ -ms-user-select: none;
116
+ /* Internet Explorer/Edge */
117
+ user-select: none;
118
+ /* Non-prefixed version, currently
119
+ supported by Chrome, Edge, Opera and Firefox */
120
+ }
121
+
122
+ #matrix-editor {
123
+ position: absolute;
124
+ left: 0;
125
+ top: 0;
126
+ width: 400px;
127
+ }
128
+
129
+ .debugBox {
130
+ position: absolute;
131
+ left: 5px;
132
+ bottom: 0;
133
+ font-size: 12px;
134
+ width: 200px;
135
+ height: 15px;
136
+ background-color: black;
137
+ color: lime;
138
+ }
139
+
140
+ .textEditor {
141
+ font-size: 10px;
142
+ width: 100%;
143
+ max-width: 850px !important;
144
+ min-width: 550px !important;
145
+ }
146
+
147
+ div {
148
+ cursor: default;
149
+ }
150
+
151
+ .header {
152
+ text-shadow: 0px 0px 14px #ffd52e;
153
+ background-color: black;
154
+ color: rgb(255, 255, 255);
155
+ }
156
+
157
+ textarea {
158
+ -webkit-box-shadow: inset 0px 0px 22px 2px rgba(0, 255, 30, 1);
159
+ -moz-box-shadow: inset 0px 0px 22px 2px rgba(0, 255, 30, 1);
160
+ box-shadow: inset 0px 0px 22px 1px rgba(0, 255, 30, 1);
161
+ background-color: black;
162
+ color: lime;
163
+ }
164
+
165
+ .textureCanvas2d {
166
+ display: none;
167
+ position: absolute;
168
+ left: -3000px;
169
+ top: 0px;
170
+ width: 512px;
171
+ height: 512px;
172
+ }
173
+
174
+ /** Style for UI system hud controls */
175
+
176
+ .matrixTagHolder {
177
+ display: flex;
178
+ flex-direction: column;
179
+ position: absolute;
180
+ left: 0;
181
+ top: 0;
182
+ background-color: black;
183
+ color: #0080ff;
184
+ font-family: stormfaze;
185
+ }
186
+
187
+ span {
188
+ cursor: inherit;
189
+ width: 100px;
190
+ }
191
+
192
+ .mLightInput {
193
+ width: 150px;
194
+ font-size: 26px;
195
+ }
196
+
197
+ .mLightCom {
198
+ display: flex;
199
+ flex-direction: row;
200
+ text-align: center;
201
+ align-items: center;
202
+ border: solid #0c2540 3px;
203
+ }
204
+
205
+ #matrix-net {
206
+ position: absolute;
207
+ display: none;
208
+ right: 0;
209
+ height: 100%;
210
+ width: 40vh;
211
+ font-family: stormfaze;
212
+ background-color: crimson;
213
+ }
214
+
215
+ .timeLine {
216
+ display: flex;
217
+ position: absolute;
218
+ left: 5%;
219
+ top: 85%;
220
+ width: 90%;
221
+ flex-direction: column;
222
+ }
223
+
224
+
225
+ .timeLineSlider {
226
+ display: flex;
227
+ flex-direction: row;
228
+ }
229
+
230
+ .timeLineSlider,
231
+ p {
232
+ background: rgba(12, 122, 22, 0.5);
233
+ width: 100%;
234
+ margin: 5px 5px 5px 5px;
235
+ }
236
+
237
+ /* For animation Line */
238
+ .slider {
239
+ -webkit-appearance: none;
240
+ width: 100%;
241
+ height: 15px;
242
+ border-radius: 5px;
243
+ background: #d3d3d3;
244
+ outline: none;
245
+ opacity: 0.7;
246
+ -webkit-transition: .2s;
247
+ transition: opacity .2s;
248
+ }
249
+
250
+ .slider::-webkit-slider-thumb {
251
+ -webkit-appearance: none;
252
+ appearance: none;
253
+ width: 25px;
254
+ height: 25px;
255
+ border-radius: 50%;
256
+ background: #04AA6D;
257
+ cursor: pointer;
258
+ }
259
+
260
+ .slider::-moz-range-thumb {
261
+ width: 25px;
262
+ height: 25px;
263
+ border-radius: 50%;
264
+ background: #04AA6D;
265
+ cursor: pointer;
266
+ }
267
+
268
+ .btn {
269
+ font-family: 'Orbitron', sans-serif;
270
+ font-weight: 600;
271
+ font-size: 16px;
272
+ color: #00ffff;
273
+ text-transform: uppercase;
274
+ letter-spacing: 1.5px;
275
+ padding: 12px 24px;
276
+ background: linear-gradient(145deg, #0f0f0f, #1a1a1a);
277
+ border: 2px solid #00ffff;
278
+ border-radius: 12px;
279
+ box-shadow: 0 0 10px #00ffff44, 0 0 20px #00ffff22 inset;
280
+ cursor: pointer;
281
+ transition: all 0.25s ease-in-out;
282
+ display: inline-block;
283
+ text-align: center;
284
+ }
285
+
286
+ .btn:hover {
287
+ background: #00ffff22;
288
+ box-shadow: 0 0 20px #00ffffaa, 0 0 30px #00ffff55 inset;
289
+ color: #ffffff;
290
+ transform: scale(1.05);
291
+ }
292
+
293
+ .btn span::before {
294
+ content: '▶ ';
295
+ color: #00ffffaa;
296
+ }
297
+
298
+ .fancy-label {
299
+ font-family: 'Orbitron', sans-serif;
300
+ font-weight: 500;
301
+ font-size: 14px;
302
+ color: #00ffff;
303
+ letter-spacing: 1px;
304
+ text-shadow: 0 0 4px #00ffffaa;
305
+ padding: 2px 6px;
306
+ background-color: #111111cc;
307
+ border: 1px solid #00ffff66;
308
+ border-radius: 6px;
309
+ box-shadow: 0 0 6px #00ffff33;
310
+ display: inline-block;
311
+ user-select: none;
312
+ }
313
+
314
+ .fancy-title {
315
+ width: 100%;
316
+ font-family: 'Orbitron', sans-serif;
317
+ font-weight: 700;
318
+ font-size: 32px;
319
+ color: #00ffff;
320
+ text-transform: uppercase;
321
+ letter-spacing: 2px;
322
+ background: transparent;
323
+ text-shadow: 0 0 4px #00ffffaa, 0 0 8px #00ffff55;
324
+ border: none;
325
+ padding: 8px 16px;
326
+ display: inline-block;
327
+ user-select: none;
328
+ }
329
+
330
+ .btn2 {
331
+ cursor: pointer;
332
+ background: #d93434;
333
+ background-image: -webkit-linear-gradient(top, orangered, #0a027a);
334
+ background-image: -moz-linear-gradient(top, orangered, #0a027a);
335
+ background-image: -ms-linear-gradient(top, orangered, #0a027a);
336
+ background-image: -o-linear-gradient(top, orangered, #0a027a);
337
+ background-image: linear-gradient(to bottom, orangered, #0a027a);
338
+ -webkit-border-radius: 28;
339
+ -moz-border-radius: 28;
340
+ border-radius: 28px;
341
+ text-shadow: 0px 0px 14px #ffd52e;
342
+ -webkit-box-shadow: 0px 1px 26px #666666;
343
+ -moz-box-shadow: 0px 1px 26px #666666;
344
+ box-shadow: 0px 1px 26px #666666;
345
+ color: #ffffff;
346
+ font-size: 13px;
347
+ padding: 4px 8px 4px 8px;
348
+ text-decoration: none;
349
+ }
350
+
351
+ .btn2:hover {
352
+ background: #0a027a;
353
+ background-image: -webkit-linear-gradient(top, #0a027a, #6e34d9);
354
+ background-image: -moz-linear-gradient(top, #0a027a, #6e34d9);
355
+ background-image: -ms-linear-gradient(top, #0a027a, #6e34d9);
356
+ background-image: -o-linear-gradient(top, #0a027a, #6e34d9);
357
+ background-image: linear-gradient(to bottom, #0a027a, #6e34d9);
358
+ text-decoration: none;
359
+ }
360
+
361
+ #blocker {
362
+ z-index: 2;
363
+ flex-direction: column;
364
+ position: absolute;
365
+ left: 0;
366
+ top: 0;
367
+ width: 100%;
368
+ height: 100%;
369
+ display: flex;
370
+
371
+ background: linear-gradient(291deg, #2960bb, #b22710, #b22710);
372
+ background-size: 600% 600%;
373
+
374
+ -webkit-animation: bganim 10s ease infinite;
375
+ -moz-animation: bganim 10s ease infinite;
376
+ -o-animation: bganim 10s ease infinite;
377
+ animation: bganim 10s ease infinite;
378
+ }
379
+
380
+ #messageBox {
381
+ font-size: large;
382
+ padding: 10%;
383
+ align-items: center;
384
+ text-align: center;
385
+ vertical-align: middle;
386
+ }
387
+
388
+ #msgBox {
389
+ text-shadow: 0px 4px 4px #282828;
390
+ -webkit-user-select: none;
391
+ /* Safari */
392
+ -ms-user-select: none;
393
+ /* IE 10 and IE 11 */
394
+ user-select: none;
395
+ /* Standard syntax */
396
+ background: rgb(2, 0, 36);
397
+ background: radial-gradient(circle, rgba(2, 0, 36, 1) 0%, rgba(9, 81, 121, 0.8463760504201681) 34%, rgba(0, 212, 255, 1) 100%);
398
+ }
399
+
400
+ .msg-box {
401
+ display: none;
402
+ position: absolute;
403
+ top: 30px;
404
+ left: 50%;
405
+ translate: -50%;
406
+ border-radius: 6px !important;
407
+ font-size: 15px !important;
408
+ width: 300px;
409
+ padding: 10px;
410
+ font-family: Arial, Helvetica, sans-serif;
411
+
412
+ &.error {
413
+ /* background-color: rgb(93, 4, 5); */
414
+ color: rgb(255, 0, 30);
415
+ }
416
+
417
+ &.success {
418
+ /* background-color: rgb(220, 14, 14); */
419
+ color: rgb(32, 255, 84);
420
+ text-align: center;
421
+ margin-left: -150px;
422
+ z-index: 20;
423
+ }
424
+ }
425
+
426
+ .canPlay {
427
+ border: solid limegreen 1px;
428
+ }
429
+
430
+ .canNotPlay {
431
+ border: unset;
432
+ }
433
+
434
+
435
+ .myTheme1 {
436
+ background: rgb(235, 1, 110);
437
+ background: radial-gradient(circle, rgb(255, 73, 179) 7%, rgba(0, 144, 224, 0.9332107843137255) 57%, rgba(0, 212, 255, 1) 85%);
438
+ }
439
+
440
+ .stroke {
441
+
442
+ text-shadow: 0px 4px 4px #282828;
443
+
444
+ -webkit-text-stroke-width: 1px;
445
+ -webkit-text-stroke-color: black;
446
+ }
447
+
448
+ .animate1 {
449
+ text-shadow: 0px 4px 4px #282828;
450
+ -webkit-text-stroke-width: 1px;
451
+ -webkit-text-stroke-color: black;
452
+
453
+ background: linear-gradient(270deg, #ff0270, #02c5ff);
454
+ background-size: 50% 50%;
455
+
456
+ -webkit-animation: AnimationName 2s ease infinite;
457
+ -moz-animation: AnimationName 2s ease infinite;
458
+ animation: AnimationName 2s ease infinite;
459
+ }
460
+
461
+ @-webkit-keyframes AnimationName {
462
+ 0% {
463
+ background-position: 0% 50%
464
+ }
465
+
466
+ 50% {
467
+ background-position: 100% 50%
468
+ }
469
+
470
+ 100% {
471
+ background-position: 0% 50%
472
+ }
473
+ }
474
+
475
+ @-moz-keyframes AnimationName {
476
+ 0% {
477
+ background-position: 0% 50%
478
+ }
479
+
480
+ 50% {
481
+ background-position: 100% 50%
482
+ }
483
+
484
+ 100% {
485
+ background-position: 0% 50%
486
+ }
487
+ }
488
+
489
+ @keyframes AnimationName {
490
+ 0% {
491
+ background-position: 0% 50%
492
+ }
493
+
494
+ 50% {
495
+ background-position: 100% 50%
496
+ }
497
+
498
+ 100% {
499
+ background-position: 0% 50%
500
+ }
501
+ }
502
+
503
+
504
+ .bganim1 {
505
+ background: linear-gradient(291deg, #2960bb, #b22710, #b22710);
506
+ background-size: 600% 600%;
507
+
508
+ -webkit-animation: bganim 10s ease infinite;
509
+ -moz-animation: bganim 10s ease infinite;
510
+ -o-animation: bganim 10s ease infinite;
511
+ animation: bganim 10s ease infinite;
512
+ }
513
+
514
+ @-webkit-keyframes bganim {
515
+ 0% {
516
+ background-position: 0% 45%
517
+ }
518
+
519
+ 50% {
520
+ background-position: 100% 56%
521
+ }
522
+
523
+ 100% {
524
+ background-position: 0% 45%
525
+ }
526
+ }
527
+
528
+ @-moz-keyframes bganim {
529
+ 0% {
530
+ background-position: 0% 45%
531
+ }
532
+
533
+ 50% {
534
+ background-position: 100% 56%
535
+ }
536
+
537
+ 100% {
538
+ background-position: 0% 45%
539
+ }
540
+ }
541
+
542
+ @-o-keyframes bganim {
543
+ 0% {
544
+ background-position: 0% 45%
545
+ }
546
+
547
+ 50% {
548
+ background-position: 100% 56%
549
+ }
550
+
551
+ 100% {
552
+ background-position: 0% 45%
553
+ }
554
+ }
555
+
556
+ @keyframes bganim {
557
+ 0% {
558
+ background-position: 0% 45%
559
+ }
560
+
561
+ 50% {
562
+ background-position: 100% 56%
563
+ }
564
+
565
+ 100% {
566
+ background-position: 0% 45%
567
+ }
568
+ }
569
+
570
+ .switch {
571
+ position: relative;
572
+ display: inline-block;
573
+ width: 60px;
574
+ /* You can adjust */
575
+ height: 32px;
576
+ }
577
+
578
+ .switch input {
579
+ opacity: 0;
580
+ width: 0;
581
+ height: 0;
582
+ position: absolute;
583
+ }
584
+
585
+ /* Force span to fill the label exactly */
586
+ .sliderSwitch {
587
+ position: absolute;
588
+ top: 0;
589
+ left: 0;
590
+ width: 100%;
591
+ height: 100%;
592
+ display: block;
593
+ background-color: #111;
594
+ border-radius: 34px;
595
+ border: 2px solid #00ffee;
596
+ box-shadow: 0 0 10px #00ffee55;
597
+ transition: all 0.4s ease;
598
+ overflow: hidden;
599
+ z-index: 1;
600
+ }
601
+
602
+ /* The circle inside the slider */
603
+ .sliderSwitch::before {
604
+ content: "";
605
+ position: absolute;
606
+ width: 24px;
607
+ height: 24px;
608
+ left: 4px;
609
+ bottom: 4px;
610
+ background-color: #00bbff;
611
+ border-radius: 50%;
612
+ transition: transform 0.4s ease;
613
+ z-index: 2;
614
+ box-shadow: 0 0 10px #00bbff;
615
+ }
616
+
617
+ /* ON state */
618
+ .switch input:checked+.sliderSwitch {
619
+ background-color: #002233;
620
+ border-color: #00ffee;
621
+ box-shadow: 0 0 12px #00ffee;
622
+ }
623
+
624
+ .switch input:checked+.sliderSwitch::before {
625
+ transform: translateX(28px);
626
+ background-color: #00ffee;
627
+ box-shadow: 0 0 10px #00ffee;
628
+ }
629
+
630
+ select {
631
+ appearance: none;
632
+ /* Remove default arrow */
633
+ background-color: #111;
634
+ color: #00ffee;
635
+ border: 2px solid #00ffee55;
636
+ border-radius: 8px;
637
+ padding: 8px 12px;
638
+ font-size: 16px;
639
+ font-family: 'Orbitron', sans-serif;
640
+ /* Optional futuristic font */
641
+ box-shadow: 0 0 8px #00ffee33;
642
+ outline: none;
643
+ transition: 0.3s ease;
644
+ cursor: pointer;
645
+ }
646
+
647
+ select:hover {
648
+ border-color: #00ffee;
649
+ box-shadow: 0 0 12px #00ffeeaa;
650
+ }
651
+
652
+ select:focus {
653
+ border-color: #00ff88;
654
+ box-shadow: 0 0 16px #00ff88aa;
655
+ }
656
+
657
+ option {
658
+ background-color: #111;
659
+ color: #00ffee;
660
+ padding: 6px;
661
+ font-family: 'Orbitron', sans-serif;
662
+ }
663
+
664
+ #jambTable {
665
+ position: absolute;
666
+ display: flex;
667
+ top: 15%;
668
+ left: 2%;
669
+ width: 370px;
670
+ transform: scale(1);
671
+ /* translate(-50%, -50%) */
672
+ background: rgba(0, 0, 0, 0.9);
673
+ border: 2px solid #0ff;
674
+ padding: 15px;
675
+ border-radius: 12px;
676
+ transform-origin: center center;
677
+ transition: transform 0.4s ease, opacity 0.3s ease;
678
+ font-family: 'Orbitron', sans-serif;
679
+ }
680
+
681
+ /* Visible state */
682
+ #jambTable.show {
683
+ display: flex;
684
+ transform: scale(1);
685
+ /* translate(-50%, -50%) */
686
+ opacity: 1;
687
+ }
688
+
689
+ /* Hidden state */
690
+ #jambTable.hide {
691
+ transform: scale(0);
692
+ /* translate(-50%, -50%) */
693
+ opacity: 0;
694
+ pointer-events: none;
695
+ }
696
+
697
+ #dragHandler {
698
+ width: 100%;
699
+ height: 20px;
700
+ background: #333;
701
+ cursor: move;
702
+ position: absolute;
703
+ top: 0;
704
+ left: 0;
705
+ z-index: 10;
706
+ opacity: 0.8;
707
+ color: white;
708
+ text-align: center;
709
+ font-size: 12px;
710
+ line-height: 20px;
711
+ }
@@ -0,0 +1,25 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <link rel="manifest" href="manifest.web" />
5
+ <title>Matrix Engine webGPU variant. Created by Nikola Lukic zlatnaspirala@gmail.com </title>
6
+ <meta name="description" content="The benefits of this project is offering an overview of the entire application logic, easy native implementations (hybrid app), object structural. " />
7
+ <meta http-equiv="content-type" content="text/html; charset=utf-8" />
8
+ <link defer rel="stylesheet" href="css/style.css" />
9
+ <link rel="apple-touch-icon" href="res/icons/512.png" />
10
+ <meta name="mobile-web-app-capable" content="yes" />
11
+ <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
12
+ <meta name="theme-color" content="#000000" />
13
+ <!-- <script defer src="./lib/gl-matrix-min.js"></script> -->
14
+ <meta name="viewport" content="width=device-width,initial-scale=1.0,minimal-ui" />
15
+ <!-- <link rel="icon" type="image/png" sizes="96x96" href="res/icons/favicon-96x96.png" /> -->
16
+ <link rel="icon" type="image/png" sizes="512x512" href="res/icons/512.png" />
17
+ <!-- <link rel="icon" href="res/icons/favicon.ico" type="image/x-icon" /> -->
18
+ <!-- <meta name="msapplication-TileImage" content="res/icons/ms-icon.png" /> -->
19
+ <!-- <script src="https://webglfundamentals.org/webgl/resources/m4.js"></script> -->
20
+ </head>
21
+ <body allow="autoplay">
22
+ <div id="shaders"></div>
23
+ <script src="empty.js"></script>
24
+ </body>
25
+ </html>