@lampdotdev/lamp 0.0.0-stage → 0.36.2-nightly.16

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 (470) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +397 -2
  3. package/Resources/Devices/roku.json +410 -0
  4. package/Resources/Devices/xbox-one.json +367 -0
  5. package/Resources/GameKit/NOTICE.md +63 -0
  6. package/Resources/GameKit/apple/LampPage.swift +1813 -0
  7. package/Resources/GameKit/apple/LampPlayer.swift +46 -0
  8. package/Resources/GameKit/apple/LampWebApp.swift +63 -0
  9. package/Resources/GameKit/apple/LampWebGame.swift +87 -0
  10. package/Resources/GameKit/apple/Native.swift +12 -0
  11. package/Resources/GameKit/build.sh +55 -0
  12. package/Resources/GameKit/lamp_game.h +116 -0
  13. package/Resources/GameKit/lamp_host.h +19 -0
  14. package/Resources/GameKit/lamp_kit.cpp +61 -0
  15. package/Resources/GameKit/lamp_sound.cpp +455 -0
  16. package/Resources/GameKit/lamp_xbox.cpp +374 -0
  17. package/Resources/GameKit/libraries/HandmadeMath.h +3940 -0
  18. package/Resources/GameKit/libraries/cgltf.h +7240 -0
  19. package/Resources/GameKit/libraries/dr_mp3.h +5430 -0
  20. package/Resources/GameKit/libraries/dr_wav.h +9209 -0
  21. package/Resources/GameKit/libraries/sokol_debugtext.h +4754 -0
  22. package/Resources/GameKit/libraries/sokol_gfx.h +29558 -0
  23. package/Resources/GameKit/libraries/sokol_gl.h +4538 -0
  24. package/Resources/GameKit/libraries/sokol_log.h +335 -0
  25. package/Resources/GameKit/libraries/sokol_shape.h +1531 -0
  26. package/Resources/GameKit/libraries/stb_image.h +7988 -0
  27. package/Resources/GameKit/libraries/stb_vorbis.c +5584 -0
  28. package/Resources/GameKit/page/lamp-live.js +672 -0
  29. package/Resources/GameKit/scaffold/Game/game.cpp +142 -0
  30. package/Resources/GameKit/scaffold/Game/scene.glsl +49 -0
  31. package/Resources/GameKit/scaffold-web/Web/game.js +31 -0
  32. package/Resources/GameKit/scaffold-web/Web/index.html +13 -0
  33. package/Resources/GameKit/scaffold-web/Web/making.js +33 -0
  34. package/Resources/GameKit/scaffold-web/Web/world.js +33 -0
  35. package/Resources/GameKit/web/lamp-game.js +3042 -0
  36. package/Resources/GameKit/web/lamp-phaser.js +128 -0
  37. package/Resources/WebHost/App.exe +0 -0
  38. package/Resources/WebHost/Microsoft.Web.WebView2.Core.dll +0 -0
  39. package/Resources/WebHost/WebView2-LICENSE.txt +27 -0
  40. package/Resources/WebHost/lamp_controllers.h +1506 -0
  41. package/Resources/WebHost/lamp_web_host.cpp +1173 -0
  42. package/Resources/WebLibraries/earlier.txt +318 -0
  43. package/Resources/WebLibraries/phaser/LICENSE.md +20 -0
  44. package/Resources/WebLibraries/phaser/NOTICE.md +2 -0
  45. package/Resources/WebLibraries/phaser/phaser.esm.min.js +1 -0
  46. package/Resources/WebLibraries/qrcode/LICENSE +21 -0
  47. package/Resources/WebLibraries/qrcode/NOTICE.md +4 -0
  48. package/Resources/WebLibraries/qrcode/qrcode.js +2297 -0
  49. package/Resources/WebLibraries/rapier/LICENSE +201 -0
  50. package/Resources/WebLibraries/rapier/NOTICE.md +3 -0
  51. package/Resources/WebLibraries/rapier/rapier.js +2 -0
  52. package/Resources/WebLibraries/three/LICENSE +21 -0
  53. package/Resources/WebLibraries/three/NOTICE.md +4 -0
  54. package/Resources/WebLibraries/three/addons/animation/AnimationClipCreator.js +168 -0
  55. package/Resources/WebLibraries/three/addons/animation/CCDIKSolver.js +607 -0
  56. package/Resources/WebLibraries/three/addons/controls/ArcballControls.js +3543 -0
  57. package/Resources/WebLibraries/three/addons/controls/DragControls.js +452 -0
  58. package/Resources/WebLibraries/three/addons/controls/FirstPersonControls.js +512 -0
  59. package/Resources/WebLibraries/three/addons/controls/FlyControls.js +384 -0
  60. package/Resources/WebLibraries/three/addons/controls/MapControls.js +116 -0
  61. package/Resources/WebLibraries/three/addons/controls/OrbitControls.js +1985 -0
  62. package/Resources/WebLibraries/three/addons/controls/PointerLockControls.js +264 -0
  63. package/Resources/WebLibraries/three/addons/controls/TrackballControls.js +1106 -0
  64. package/Resources/WebLibraries/three/addons/controls/TransformControls.js +2003 -0
  65. package/Resources/WebLibraries/three/addons/curves/CurveExtras.js +694 -0
  66. package/Resources/WebLibraries/three/addons/curves/NURBSCurve.js +169 -0
  67. package/Resources/WebLibraries/three/addons/curves/NURBSSurface.js +98 -0
  68. package/Resources/WebLibraries/three/addons/curves/NURBSUtils.js +532 -0
  69. package/Resources/WebLibraries/three/addons/curves/NURBSVolume.js +82 -0
  70. package/Resources/WebLibraries/three/addons/effects/AnaglyphEffect.js +274 -0
  71. package/Resources/WebLibraries/three/addons/effects/AsciiEffect.js +323 -0
  72. package/Resources/WebLibraries/three/addons/effects/OutlineEffect.js +489 -0
  73. package/Resources/WebLibraries/three/addons/effects/ParallaxBarrierEffect.js +155 -0
  74. package/Resources/WebLibraries/three/addons/effects/StereoEffect.js +91 -0
  75. package/Resources/WebLibraries/three/addons/environments/ColorEnvironment.js +59 -0
  76. package/Resources/WebLibraries/three/addons/environments/DebugEnvironment.js +102 -0
  77. package/Resources/WebLibraries/three/addons/environments/RoomEnvironment.js +185 -0
  78. package/Resources/WebLibraries/three/addons/geometries/BoxLineGeometry.js +92 -0
  79. package/Resources/WebLibraries/three/addons/geometries/ConvexGeometry.js +72 -0
  80. package/Resources/WebLibraries/three/addons/geometries/DecalGeometry.js +420 -0
  81. package/Resources/WebLibraries/three/addons/geometries/LoftGeometry.js +355 -0
  82. package/Resources/WebLibraries/three/addons/geometries/ParametricFunctions.js +100 -0
  83. package/Resources/WebLibraries/three/addons/geometries/ParametricGeometry.js +172 -0
  84. package/Resources/WebLibraries/three/addons/geometries/RoundedBoxGeometry.js +216 -0
  85. package/Resources/WebLibraries/three/addons/geometries/TeapotGeometry.js +689 -0
  86. package/Resources/WebLibraries/three/addons/geometries/TextGeometry.js +102 -0
  87. package/Resources/WebLibraries/three/addons/helpers/AnimationPathHelper.js +302 -0
  88. package/Resources/WebLibraries/three/addons/helpers/LightProbeGridHelper.js +166 -0
  89. package/Resources/WebLibraries/three/addons/helpers/LightProbeGridHelperWebGL.js +221 -0
  90. package/Resources/WebLibraries/three/addons/helpers/LightProbeHelper.js +166 -0
  91. package/Resources/WebLibraries/three/addons/helpers/LightProbeHelperGPU.js +102 -0
  92. package/Resources/WebLibraries/three/addons/helpers/OctreeHelper.js +109 -0
  93. package/Resources/WebLibraries/three/addons/helpers/PositionalAudioHelper.js +169 -0
  94. package/Resources/WebLibraries/three/addons/helpers/RapierHelper.js +59 -0
  95. package/Resources/WebLibraries/three/addons/helpers/RectAreaLightHelper.js +118 -0
  96. package/Resources/WebLibraries/three/addons/helpers/TextureHelper.js +265 -0
  97. package/Resources/WebLibraries/three/addons/helpers/TextureHelperGPU.js +214 -0
  98. package/Resources/WebLibraries/three/addons/helpers/VertexNormalsHelper.js +155 -0
  99. package/Resources/WebLibraries/three/addons/helpers/VertexTangentsHelper.js +133 -0
  100. package/Resources/WebLibraries/three/addons/helpers/ViewHelper.js +529 -0
  101. package/Resources/WebLibraries/three/addons/interactive/HTMLMesh.js +617 -0
  102. package/Resources/WebLibraries/three/addons/interactive/InteractiveGroup.js +224 -0
  103. package/Resources/WebLibraries/three/addons/interactive/SelectionBox.js +324 -0
  104. package/Resources/WebLibraries/three/addons/interactive/SelectionHelper.js +150 -0
  105. package/Resources/WebLibraries/three/addons/libs/fflate.module.js +2699 -0
  106. package/Resources/WebLibraries/three/addons/libs/lil-gui.module.min.js +8 -0
  107. package/Resources/WebLibraries/three/addons/libs/meshopt_decoder.module.js +196 -0
  108. package/Resources/WebLibraries/three/addons/libs/potpack.module.js +125 -0
  109. package/Resources/WebLibraries/three/addons/libs/stats.module.js +167 -0
  110. package/Resources/WebLibraries/three/addons/libs/tween.module.js +876 -0
  111. package/Resources/WebLibraries/three/addons/lighting/ClusteredLighting.js +153 -0
  112. package/Resources/WebLibraries/three/addons/lighting/DynamicLighting.js +82 -0
  113. package/Resources/WebLibraries/three/addons/lighting/LightMapper.js +295 -0
  114. package/Resources/WebLibraries/three/addons/lighting/LightProbeGrid.js +923 -0
  115. package/Resources/WebLibraries/three/addons/lighting/LightProbeGridUtils.js +107 -0
  116. package/Resources/WebLibraries/three/addons/lighting/LightProbeGridWebGL.js +846 -0
  117. package/Resources/WebLibraries/three/addons/lighting/vxgi/VXGIConeTracer.js +243 -0
  118. package/Resources/WebLibraries/three/addons/lighting/vxgi/VXGIIrradiance.js +43 -0
  119. package/Resources/WebLibraries/three/addons/lighting/vxgi/VXGINode.js +617 -0
  120. package/Resources/WebLibraries/three/addons/lighting/vxgi/VXGISceneCollector.js +793 -0
  121. package/Resources/WebLibraries/three/addons/lighting/vxgi/VXGIVolume.js +1440 -0
  122. package/Resources/WebLibraries/three/addons/lights/LightProbeGenerator.js +337 -0
  123. package/Resources/WebLibraries/three/addons/lights/RectAreaLightTexturesLib.js +127 -0
  124. package/Resources/WebLibraries/three/addons/lights/RectAreaLightUniformsLib.js +40 -0
  125. package/Resources/WebLibraries/three/addons/lights/SunLight.js +100 -0
  126. package/Resources/WebLibraries/three/addons/lights/SunLightNode.js +56 -0
  127. package/Resources/WebLibraries/three/addons/lights/SunLightShadow.js +319 -0
  128. package/Resources/WebLibraries/three/addons/lights/SunShadowNode.js +312 -0
  129. package/Resources/WebLibraries/three/addons/lines/Line2.js +56 -0
  130. package/Resources/WebLibraries/three/addons/lines/LineGeometry.js +157 -0
  131. package/Resources/WebLibraries/three/addons/lines/LineMaterial.js +742 -0
  132. package/Resources/WebLibraries/three/addons/lines/LineSegments2.js +434 -0
  133. package/Resources/WebLibraries/three/addons/lines/LineSegmentsGeometry.js +298 -0
  134. package/Resources/WebLibraries/three/addons/lines/Wireframe.js +108 -0
  135. package/Resources/WebLibraries/three/addons/lines/WireframeGeometry2.js +49 -0
  136. package/Resources/WebLibraries/three/addons/lines/webgpu/Line2.js +46 -0
  137. package/Resources/WebLibraries/three/addons/lines/webgpu/LineSegments2.js +419 -0
  138. package/Resources/WebLibraries/three/addons/lines/webgpu/Wireframe.js +86 -0
  139. package/Resources/WebLibraries/three/addons/loaders/EXRLoader.js +3411 -0
  140. package/Resources/WebLibraries/three/addons/loaders/FBXLoader.js +4660 -0
  141. package/Resources/WebLibraries/three/addons/loaders/FontLoader.js +262 -0
  142. package/Resources/WebLibraries/three/addons/loaders/GLTFLoader.js +5006 -0
  143. package/Resources/WebLibraries/three/addons/loaders/HDRLoader.js +463 -0
  144. package/Resources/WebLibraries/three/addons/loaders/MTLLoader.js +601 -0
  145. package/Resources/WebLibraries/three/addons/loaders/OBJLoader.js +961 -0
  146. package/Resources/WebLibraries/three/addons/loaders/PLYLoader.js +992 -0
  147. package/Resources/WebLibraries/three/addons/loaders/RGBELoader.js +18 -0
  148. package/Resources/WebLibraries/three/addons/loaders/STLLoader.js +423 -0
  149. package/Resources/WebLibraries/three/addons/loaders/SVGLoader.js +3297 -0
  150. package/Resources/WebLibraries/three/addons/loaders/TGALoader.js +539 -0
  151. package/Resources/WebLibraries/three/addons/loaders/UltraHDRLoader.js +757 -0
  152. package/Resources/WebLibraries/three/addons/math/Capsule.js +159 -0
  153. package/Resources/WebLibraries/three/addons/math/ColorConverter.js +62 -0
  154. package/Resources/WebLibraries/three/addons/math/ColorSpaces.js +147 -0
  155. package/Resources/WebLibraries/three/addons/math/ConvexHull.js +1695 -0
  156. package/Resources/WebLibraries/three/addons/math/ImprovedNoise.js +88 -0
  157. package/Resources/WebLibraries/three/addons/math/Lut.js +317 -0
  158. package/Resources/WebLibraries/three/addons/math/MeshSurfaceSampler.js +315 -0
  159. package/Resources/WebLibraries/three/addons/math/OBB.js +535 -0
  160. package/Resources/WebLibraries/three/addons/math/Octree.js +825 -0
  161. package/Resources/WebLibraries/three/addons/math/SimplexNoise.js +470 -0
  162. package/Resources/WebLibraries/three/addons/misc/ConvexObjectBreaker.js +539 -0
  163. package/Resources/WebLibraries/three/addons/misc/GPUComputationRenderer.js +508 -0
  164. package/Resources/WebLibraries/three/addons/misc/Gyroscope.js +78 -0
  165. package/Resources/WebLibraries/three/addons/misc/MorphAnimMesh.js +119 -0
  166. package/Resources/WebLibraries/three/addons/misc/MorphBlendMesh.js +425 -0
  167. package/Resources/WebLibraries/three/addons/misc/ProgressiveLightMap.js +370 -0
  168. package/Resources/WebLibraries/three/addons/misc/ProgressiveLightMapGPU.js +322 -0
  169. package/Resources/WebLibraries/three/addons/misc/RollerCoaster.js +661 -0
  170. package/Resources/WebLibraries/three/addons/misc/Sculptor.js +1679 -0
  171. package/Resources/WebLibraries/three/addons/misc/SculptorMesh.js +1504 -0
  172. package/Resources/WebLibraries/three/addons/misc/SculptorTools.js +1180 -0
  173. package/Resources/WebLibraries/three/addons/misc/SculptorUtils.js +345 -0
  174. package/Resources/WebLibraries/three/addons/misc/TileCreasedNormalsPlugin.js +270 -0
  175. package/Resources/WebLibraries/three/addons/misc/TubePainter.js +611 -0
  176. package/Resources/WebLibraries/three/addons/misc/Volume.js +520 -0
  177. package/Resources/WebLibraries/three/addons/misc/VolumeSlice.js +275 -0
  178. package/Resources/WebLibraries/three/addons/modifiers/CurveModifier.js +374 -0
  179. package/Resources/WebLibraries/three/addons/modifiers/CurveModifierGPU.js +256 -0
  180. package/Resources/WebLibraries/three/addons/modifiers/EdgeSplitModifier.js +299 -0
  181. package/Resources/WebLibraries/three/addons/modifiers/TessellateModifier.js +340 -0
  182. package/Resources/WebLibraries/three/addons/objects/GroundedSkybox.js +69 -0
  183. package/Resources/WebLibraries/three/addons/objects/Lensflare.js +489 -0
  184. package/Resources/WebLibraries/three/addons/objects/LensflareMesh.js +376 -0
  185. package/Resources/WebLibraries/three/addons/objects/MarchingCubes.js +1261 -0
  186. package/Resources/WebLibraries/three/addons/objects/Reflector.js +390 -0
  187. package/Resources/WebLibraries/three/addons/objects/ReflectorForSSRPass.js +393 -0
  188. package/Resources/WebLibraries/three/addons/objects/Refractor.js +389 -0
  189. package/Resources/WebLibraries/three/addons/objects/ShadowMesh.js +130 -0
  190. package/Resources/WebLibraries/three/addons/objects/Sky.js +342 -0
  191. package/Resources/WebLibraries/three/addons/objects/SkyMesh.js +403 -0
  192. package/Resources/WebLibraries/three/addons/objects/Water.js +374 -0
  193. package/Resources/WebLibraries/three/addons/objects/Water2.js +403 -0
  194. package/Resources/WebLibraries/three/addons/objects/Water2Mesh.js +199 -0
  195. package/Resources/WebLibraries/three/addons/objects/WaterMesh.js +194 -0
  196. package/Resources/WebLibraries/three/addons/postprocessing/AfterimagePass.js +187 -0
  197. package/Resources/WebLibraries/three/addons/postprocessing/BloomPass.js +274 -0
  198. package/Resources/WebLibraries/three/addons/postprocessing/BokehPass.js +218 -0
  199. package/Resources/WebLibraries/three/addons/postprocessing/ClearPass.js +97 -0
  200. package/Resources/WebLibraries/three/addons/postprocessing/CubeTexturePass.js +146 -0
  201. package/Resources/WebLibraries/three/addons/postprocessing/DotScreenPass.js +114 -0
  202. package/Resources/WebLibraries/three/addons/postprocessing/EffectComposer.js +365 -0
  203. package/Resources/WebLibraries/three/addons/postprocessing/FXAAPass.js +40 -0
  204. package/Resources/WebLibraries/three/addons/postprocessing/FilmPass.js +113 -0
  205. package/Resources/WebLibraries/three/addons/postprocessing/GTAOPass.js +735 -0
  206. package/Resources/WebLibraries/three/addons/postprocessing/GlitchPass.js +177 -0
  207. package/Resources/WebLibraries/three/addons/postprocessing/HalftonePass.js +134 -0
  208. package/Resources/WebLibraries/three/addons/postprocessing/LUTPass.js +138 -0
  209. package/Resources/WebLibraries/three/addons/postprocessing/MaskPass.js +195 -0
  210. package/Resources/WebLibraries/three/addons/postprocessing/OutlinePass.js +776 -0
  211. package/Resources/WebLibraries/three/addons/postprocessing/OutputPass.js +148 -0
  212. package/Resources/WebLibraries/three/addons/postprocessing/Pass.js +191 -0
  213. package/Resources/WebLibraries/three/addons/postprocessing/RenderPass.js +193 -0
  214. package/Resources/WebLibraries/three/addons/postprocessing/RenderPixelatedPass.js +314 -0
  215. package/Resources/WebLibraries/three/addons/postprocessing/RenderTransitionPass.js +267 -0
  216. package/Resources/WebLibraries/three/addons/postprocessing/SAOPass.js +407 -0
  217. package/Resources/WebLibraries/three/addons/postprocessing/SMAAPass.js +230 -0
  218. package/Resources/WebLibraries/three/addons/postprocessing/SSAARenderPass.js +313 -0
  219. package/Resources/WebLibraries/three/addons/postprocessing/SSAOPass.js +527 -0
  220. package/Resources/WebLibraries/three/addons/postprocessing/SSRPass.js +858 -0
  221. package/Resources/WebLibraries/three/addons/postprocessing/SavePass.js +132 -0
  222. package/Resources/WebLibraries/three/addons/postprocessing/ShaderPass.js +135 -0
  223. package/Resources/WebLibraries/three/addons/postprocessing/TAARenderPass.js +243 -0
  224. package/Resources/WebLibraries/three/addons/postprocessing/TexturePass.js +131 -0
  225. package/Resources/WebLibraries/three/addons/postprocessing/UnrealBloomPass.js +541 -0
  226. package/Resources/WebLibraries/three/addons/shaders/ACESFilmicToneMappingShader.js +96 -0
  227. package/Resources/WebLibraries/three/addons/shaders/AfterimageShader.js +63 -0
  228. package/Resources/WebLibraries/three/addons/shaders/BasicShader.js +36 -0
  229. package/Resources/WebLibraries/three/addons/shaders/BleachBypassShader.js +68 -0
  230. package/Resources/WebLibraries/three/addons/shaders/BlendShader.js +56 -0
  231. package/Resources/WebLibraries/three/addons/shaders/BokehShader.js +151 -0
  232. package/Resources/WebLibraries/three/addons/shaders/BokehShader2.js +404 -0
  233. package/Resources/WebLibraries/three/addons/shaders/BrightnessContrastShader.js +62 -0
  234. package/Resources/WebLibraries/three/addons/shaders/ColorCorrectionShader.js +59 -0
  235. package/Resources/WebLibraries/three/addons/shaders/ColorifyShader.js +57 -0
  236. package/Resources/WebLibraries/three/addons/shaders/ConvolutionShader.js +74 -0
  237. package/Resources/WebLibraries/three/addons/shaders/CopyShader.js +52 -0
  238. package/Resources/WebLibraries/three/addons/shaders/DOFMipMapShader.js +63 -0
  239. package/Resources/WebLibraries/three/addons/shaders/DepthLimitedBlurShader.js +183 -0
  240. package/Resources/WebLibraries/three/addons/shaders/DigitalGlitch.js +104 -0
  241. package/Resources/WebLibraries/three/addons/shaders/DotScreenShader.js +75 -0
  242. package/Resources/WebLibraries/three/addons/shaders/ExposureShader.js +51 -0
  243. package/Resources/WebLibraries/three/addons/shaders/FXAAShader.js +298 -0
  244. package/Resources/WebLibraries/three/addons/shaders/FilmShader.js +73 -0
  245. package/Resources/WebLibraries/three/addons/shaders/FocusShader.js +94 -0
  246. package/Resources/WebLibraries/three/addons/shaders/FreiChenShader.js +103 -0
  247. package/Resources/WebLibraries/three/addons/shaders/GTAOShader.js +437 -0
  248. package/Resources/WebLibraries/three/addons/shaders/GammaCorrectionShader.js +52 -0
  249. package/Resources/WebLibraries/three/addons/shaders/HalftoneShader.js +332 -0
  250. package/Resources/WebLibraries/three/addons/shaders/HorizontalBlurShader.js +68 -0
  251. package/Resources/WebLibraries/three/addons/shaders/HorizontalTiltShiftShader.js +70 -0
  252. package/Resources/WebLibraries/three/addons/shaders/HueSaturationShader.js +74 -0
  253. package/Resources/WebLibraries/three/addons/shaders/KaleidoShader.js +65 -0
  254. package/Resources/WebLibraries/three/addons/shaders/LuminosityHighPassShader.js +68 -0
  255. package/Resources/WebLibraries/three/addons/shaders/LuminosityShader.js +54 -0
  256. package/Resources/WebLibraries/three/addons/shaders/MirrorShader.js +62 -0
  257. package/Resources/WebLibraries/three/addons/shaders/NormalMapShader.js +60 -0
  258. package/Resources/WebLibraries/three/addons/shaders/OutputShader.js +103 -0
  259. package/Resources/WebLibraries/three/addons/shaders/PoissonDenoiseShader.js +230 -0
  260. package/Resources/WebLibraries/three/addons/shaders/RGBShiftShader.js +61 -0
  261. package/Resources/WebLibraries/three/addons/shaders/SAOShader.js +201 -0
  262. package/Resources/WebLibraries/three/addons/shaders/SMAAShader.js +489 -0
  263. package/Resources/WebLibraries/three/addons/shaders/SSAOShader.js +331 -0
  264. package/Resources/WebLibraries/three/addons/shaders/SSRShader.js +396 -0
  265. package/Resources/WebLibraries/three/addons/shaders/SepiaShader.js +57 -0
  266. package/Resources/WebLibraries/three/addons/shaders/SobelOperatorShader.js +98 -0
  267. package/Resources/WebLibraries/three/addons/shaders/SubsurfaceScatteringShader.js +95 -0
  268. package/Resources/WebLibraries/three/addons/shaders/TechnicolorShader.js +51 -0
  269. package/Resources/WebLibraries/three/addons/shaders/ToonShader.js +349 -0
  270. package/Resources/WebLibraries/three/addons/shaders/TriangleBlurShader.js +79 -0
  271. package/Resources/WebLibraries/three/addons/shaders/UnpackDepthRGBAShader.js +60 -0
  272. package/Resources/WebLibraries/three/addons/shaders/VelocityShader.js +137 -0
  273. package/Resources/WebLibraries/three/addons/shaders/VerticalBlurShader.js +66 -0
  274. package/Resources/WebLibraries/three/addons/shaders/VerticalTiltShiftShader.js +70 -0
  275. package/Resources/WebLibraries/three/addons/shaders/VignetteShader.js +56 -0
  276. package/Resources/WebLibraries/three/addons/shaders/VolumeShader.js +285 -0
  277. package/Resources/WebLibraries/three/addons/shaders/WaterRefractionShader.js +106 -0
  278. package/Resources/WebLibraries/three/addons/textures/FlakesTexture.js +54 -0
  279. package/Resources/WebLibraries/three/addons/tsl/WebGLNodesHandler.js +607 -0
  280. package/Resources/WebLibraries/three/addons/tsl/display/AfterImageNode.js +256 -0
  281. package/Resources/WebLibraries/three/addons/tsl/display/AnaglyphPassNode.js +550 -0
  282. package/Resources/WebLibraries/three/addons/tsl/display/BilateralBlurNode.js +377 -0
  283. package/Resources/WebLibraries/three/addons/tsl/display/BleachBypass.js +33 -0
  284. package/Resources/WebLibraries/three/addons/tsl/display/BloomNode.js +599 -0
  285. package/Resources/WebLibraries/three/addons/tsl/display/CRT.js +150 -0
  286. package/Resources/WebLibraries/three/addons/tsl/display/ChromaticAberrationNode.js +163 -0
  287. package/Resources/WebLibraries/three/addons/tsl/display/DenoiseNode.js +354 -0
  288. package/Resources/WebLibraries/three/addons/tsl/display/DepthOfFieldNode.js +572 -0
  289. package/Resources/WebLibraries/three/addons/tsl/display/DotScreenNode.js +104 -0
  290. package/Resources/WebLibraries/three/addons/tsl/display/FSR1Node.js +481 -0
  291. package/Resources/WebLibraries/three/addons/tsl/display/FXAANode.js +357 -0
  292. package/Resources/WebLibraries/three/addons/tsl/display/FilmNode.js +101 -0
  293. package/Resources/WebLibraries/three/addons/tsl/display/GTAONode.js +727 -0
  294. package/Resources/WebLibraries/three/addons/tsl/display/GaussianBlurNode.js +412 -0
  295. package/Resources/WebLibraries/three/addons/tsl/display/GodraysNode.js +604 -0
  296. package/Resources/WebLibraries/three/addons/tsl/display/ImportanceSampledEnvironment.js +564 -0
  297. package/Resources/WebLibraries/three/addons/tsl/display/LensflareNode.js +282 -0
  298. package/Resources/WebLibraries/three/addons/tsl/display/Lut3DNode.js +109 -0
  299. package/Resources/WebLibraries/three/addons/tsl/display/MotionBlur.js +33 -0
  300. package/Resources/WebLibraries/three/addons/tsl/display/OITPassNode.js +341 -0
  301. package/Resources/WebLibraries/three/addons/tsl/display/OutlineNode.js +916 -0
  302. package/Resources/WebLibraries/three/addons/tsl/display/ParallaxBarrierPassNode.js +90 -0
  303. package/Resources/WebLibraries/three/addons/tsl/display/PixelationPassNode.js +227 -0
  304. package/Resources/WebLibraries/three/addons/tsl/display/RGBShiftNode.js +96 -0
  305. package/Resources/WebLibraries/three/addons/tsl/display/RecurrentDenoiseNode.js +812 -0
  306. package/Resources/WebLibraries/three/addons/tsl/display/RetroPassNode.js +263 -0
  307. package/Resources/WebLibraries/three/addons/tsl/display/SMAANode.js +729 -0
  308. package/Resources/WebLibraries/three/addons/tsl/display/SSAAPassNode.js +344 -0
  309. package/Resources/WebLibraries/three/addons/tsl/display/SSAONode.js +422 -0
  310. package/Resources/WebLibraries/three/addons/tsl/display/SSGINode.js +698 -0
  311. package/Resources/WebLibraries/three/addons/tsl/display/SSRNode.js +1430 -0
  312. package/Resources/WebLibraries/three/addons/tsl/display/SSSNode.js +479 -0
  313. package/Resources/WebLibraries/three/addons/tsl/display/Sepia.js +24 -0
  314. package/Resources/WebLibraries/three/addons/tsl/display/Shape.js +29 -0
  315. package/Resources/WebLibraries/three/addons/tsl/display/SharpenNode.js +284 -0
  316. package/Resources/WebLibraries/three/addons/tsl/display/SobelOperatorNode.js +168 -0
  317. package/Resources/WebLibraries/three/addons/tsl/display/StereoCompositePassNode.js +190 -0
  318. package/Resources/WebLibraries/three/addons/tsl/display/StereoPassNode.js +117 -0
  319. package/Resources/WebLibraries/three/addons/tsl/display/TAAUNode.js +700 -0
  320. package/Resources/WebLibraries/three/addons/tsl/display/TRAANode.js +609 -0
  321. package/Resources/WebLibraries/three/addons/tsl/display/TemporalReprojectNode.js +1024 -0
  322. package/Resources/WebLibraries/three/addons/tsl/display/TransitionNode.js +141 -0
  323. package/Resources/WebLibraries/three/addons/tsl/display/boxBlur.js +65 -0
  324. package/Resources/WebLibraries/three/addons/tsl/display/depthAwareBlend.js +80 -0
  325. package/Resources/WebLibraries/three/addons/tsl/display/depthAwareBlur.js +63 -0
  326. package/Resources/WebLibraries/three/addons/tsl/display/hashBlur.js +55 -0
  327. package/Resources/WebLibraries/three/addons/tsl/display/lensDirt.js +30 -0
  328. package/Resources/WebLibraries/three/addons/tsl/display/radialBlur.js +68 -0
  329. package/Resources/WebLibraries/three/addons/tsl/lighting/ClusteredLightsNode.js +994 -0
  330. package/Resources/WebLibraries/three/addons/tsl/lighting/DynamicLightsNode.js +201 -0
  331. package/Resources/WebLibraries/three/addons/tsl/lighting/LightProbeGridNode.js +183 -0
  332. package/Resources/WebLibraries/three/addons/tsl/lighting/data/AmbientLightDataNode.js +67 -0
  333. package/Resources/WebLibraries/three/addons/tsl/lighting/data/DirectionalLightDataNode.js +117 -0
  334. package/Resources/WebLibraries/three/addons/tsl/lighting/data/HemisphereLightDataNode.js +105 -0
  335. package/Resources/WebLibraries/three/addons/tsl/lighting/data/PointLightDataNode.js +140 -0
  336. package/Resources/WebLibraries/three/addons/tsl/lighting/data/SpotLightDataNode.js +167 -0
  337. package/Resources/WebLibraries/three/addons/tsl/math/Bayer.js +84 -0
  338. package/Resources/WebLibraries/three/addons/tsl/math/curlNoise.js +107 -0
  339. package/Resources/WebLibraries/three/addons/tsl/math/voronoiNoise.js +112 -0
  340. package/Resources/WebLibraries/three/addons/tsl/shadows/TileShadowNode.js +542 -0
  341. package/Resources/WebLibraries/three/addons/tsl/shadows/TileShadowNodeHelper.js +212 -0
  342. package/Resources/WebLibraries/three/addons/tsl/utils/GroundedSkybox.js +62 -0
  343. package/Resources/WebLibraries/three/addons/tsl/utils/RNoise.js +51 -0
  344. package/Resources/WebLibraries/three/addons/tsl/utils/Raymarching.js +70 -0
  345. package/Resources/WebLibraries/three/addons/tsl/utils/SoftParticles.js +53 -0
  346. package/Resources/WebLibraries/three/addons/tsl/utils/SpecularHelpers.js +302 -0
  347. package/Resources/WebLibraries/three/addons/tsl/utils/TAAUtils.js +184 -0
  348. package/Resources/WebLibraries/three/addons/utils/BufferGeometryUtils.js +1523 -0
  349. package/Resources/WebLibraries/three/addons/utils/CameraUtils.js +82 -0
  350. package/Resources/WebLibraries/three/addons/utils/ColorUtils.js +76 -0
  351. package/Resources/WebLibraries/three/addons/utils/GaussianSplatUtils.js +229 -0
  352. package/Resources/WebLibraries/three/addons/utils/GeometryCompressionUtils.js +547 -0
  353. package/Resources/WebLibraries/three/addons/utils/GeometryUtils.js +226 -0
  354. package/Resources/WebLibraries/three/addons/utils/LDrawUtils.js +211 -0
  355. package/Resources/WebLibraries/three/addons/utils/SceneOptimizer.js +459 -0
  356. package/Resources/WebLibraries/three/addons/utils/SceneUtils.js +363 -0
  357. package/Resources/WebLibraries/three/addons/utils/ShadowMapViewer.js +244 -0
  358. package/Resources/WebLibraries/three/addons/utils/ShadowMapViewerGPU.js +233 -0
  359. package/Resources/WebLibraries/three/addons/utils/SkeletonUtils.js +496 -0
  360. package/Resources/WebLibraries/three/addons/utils/SortUtils.js +175 -0
  361. package/Resources/WebLibraries/three/addons/utils/UVsDebug.js +173 -0
  362. package/Resources/WebLibraries/three/addons/utils/WebGLTextureUtils.js +115 -0
  363. package/Resources/WebLibraries/three/addons/utils/WebGPUTextureUtils.js +81 -0
  364. package/Resources/WebLibraries/three/addons/utils/WorkerPool.js +167 -0
  365. package/Resources/WebLibraries/three/addons/utils/unwrapUVs.js +865 -0
  366. package/Resources/WebLibraries/three/three.core.js +61162 -0
  367. package/Resources/WebLibraries/three/three.module.js +19537 -0
  368. package/Resources/WebLibraries/three/three.tsl.js +41903 -0
  369. package/Resources/WebLibraries/three/three.webgpu.js +53714 -0
  370. package/Resources/share-rules.json +64 -0
  371. package/Resources/skills/2d-game/SKILL.md +305 -0
  372. package/Resources/skills/3d-game/SKILL.md +274 -0
  373. package/Resources/skills/accounts/SKILL.md +41 -0
  374. package/Resources/skills/android-design/SKILL.md +159 -0
  375. package/Resources/skills/app-ai/SKILL.md +154 -0
  376. package/Resources/skills/app-intents/SKILL.md +31 -0
  377. package/Resources/skills/app-kinds/SKILL.md +122 -0
  378. package/Resources/skills/apple-watch/SKILL.md +43 -0
  379. package/Resources/skills/assets/SKILL.md +183 -0
  380. package/Resources/skills/building-blocks/SKILL.md +97 -0
  381. package/Resources/skills/device-control/SKILL.md +56 -0
  382. package/Resources/skills/device-integrations/SKILL.md +278 -0
  383. package/Resources/skills/finder-files/SKILL.md +19 -0
  384. package/Resources/skills/game/SKILL.md +416 -0
  385. package/Resources/skills/game-3d/SKILL.md +12 -0
  386. package/Resources/skills/game-art/SKILL.md +11 -0
  387. package/Resources/skills/game-feel/SKILL.md +13 -0
  388. package/Resources/skills/game-levels/SKILL.md +12 -0
  389. package/Resources/skills/game-live/SKILL.md +12 -0
  390. package/Resources/skills/game-physics/SKILL.md +13 -0
  391. package/Resources/skills/game-playtest/SKILL.md +26 -0
  392. package/Resources/skills/game-ui/SKILL.md +278 -0
  393. package/Resources/skills/github-projects/SKILL.md +62 -0
  394. package/Resources/skills/icloud-sync/SKILL.md +30 -0
  395. package/Resources/skills/iphone-hardware/SKILL.md +57 -0
  396. package/Resources/skills/iphone-widgets/SKILL.md +53 -0
  397. package/Resources/skills/lg-developer-mode/SKILL.md +152 -0
  398. package/Resources/skills/mac-widgets/SKILL.md +60 -0
  399. package/Resources/skills/maps/SKILL.md +8 -0
  400. package/Resources/skills/menu-bar/SKILL.md +36 -0
  401. package/Resources/skills/more-apps/SKILL.md +53 -0
  402. package/Resources/skills/phone-controllers/SKILL.md +79 -0
  403. package/Resources/skills/phone-pages/SKILL.md +173 -0
  404. package/Resources/skills/roku-developer-mode/SKILL.md +106 -0
  405. package/Resources/skills/scene-3d/SKILL.md +27 -0
  406. package/Resources/skills/scripting/SKILL.md +17 -0
  407. package/Resources/skills/share-extension/SKILL.md +22 -0
  408. package/Resources/skills/tv-design/SKILL.md +72 -0
  409. package/Resources/skills/web-app/SKILL.md +170 -0
  410. package/Resources/skills/web-game/SKILL.md +95 -0
  411. package/Resources/skills/web-or-native/SKILL.md +108 -0
  412. package/Resources/skills/wish-links/SKILL.md +156 -0
  413. package/THIRD_PARTY_NOTICES.md +170 -0
  414. package/cli/ai.mjs +237 -0
  415. package/cli/android.mjs +941 -0
  416. package/cli/app-ai.mjs +473 -0
  417. package/cli/browser.mjs +284 -0
  418. package/cli/calls.mjs +594 -0
  419. package/cli/dev.mjs +820 -0
  420. package/cli/devices.mjs +984 -0
  421. package/cli/lamp.mjs +1326 -0
  422. package/cli/lampapp.mjs +332 -0
  423. package/cli/lamps/android-host/LampPageGateway.kt +345 -0
  424. package/cli/lamps/android-host/app/build.gradle.kts +40 -0
  425. package/cli/lamps/android-host/build.gradle.kts +4 -0
  426. package/cli/lamps/android-host/game/AndroidManifest.xml +33 -0
  427. package/cli/lamps/android-host/game/MainActivity.kt +173 -0
  428. package/cli/lamps/android-host/gradle/libs.versions.toml +39 -0
  429. package/cli/lamps/android-host/gradle.properties +8 -0
  430. package/cli/lamps/android-host/page/AndroidManifest.xml +35 -0
  431. package/cli/lamps/android-host/page/MainActivity.kt +193 -0
  432. package/cli/lamps/android-host/settings.gradle.kts +30 -0
  433. package/cli/lamps/android-host/tools.json +43 -0
  434. package/cli/lamps/lamp-controllers.js +2 -0
  435. package/cli/lamps/lamp-for-games.js +6922 -0
  436. package/cli/lamps/lamp.js +7082 -0
  437. package/cli/lamps/mac-starter/.lamp/meta.json +1 -0
  438. package/cli/lamps/mac-starter/APP.md +12 -0
  439. package/cli/lamps/mac-starter/Package.swift +8 -0
  440. package/cli/lamps/mac-starter/Sources/App.swift +11 -0
  441. package/cli/lamps/mac-starter/Sources/ContentView.swift +17 -0
  442. package/cli/lamps/mac-starter/Sources/LampSupport.swift +18215 -0
  443. package/cli/lamps/mac-starter/build.sh +336 -0
  444. package/cli/lamps/mac-starter/gitignore +3 -0
  445. package/cli/lamps/mac-starter/lamp-starter.json +6 -0
  446. package/cli/lamps/web-starter/APP.md +8 -0
  447. package/cli/lamps/web-starter/app.js +1 -0
  448. package/cli/lamps/web-starter/index.html +17 -0
  449. package/cli/lamps/web-starter/lamp-starter.json +5 -0
  450. package/cli/lamps/web-starter/lamp.js +7082 -0
  451. package/cli/lamps/web-starter/style.css +25 -0
  452. package/cli/link.mjs +202 -0
  453. package/cli/local-ai.mjs +193 -0
  454. package/cli/mac.mjs +621 -0
  455. package/cli/mdns.mjs +205 -0
  456. package/cli/msix.mjs +413 -0
  457. package/cli/network.mjs +209 -0
  458. package/cli/openrouter.mjs +133 -0
  459. package/cli/outside.mjs +203 -0
  460. package/cli/page.js +317 -0
  461. package/cli/place.mjs +298 -0
  462. package/cli/png.mjs +184 -0
  463. package/cli/share.mjs +270 -0
  464. package/cli/skill/SKILL.md +280 -0
  465. package/cli/skills.mjs +71 -0
  466. package/cli/state.mjs +176 -0
  467. package/cli/update.mjs +162 -0
  468. package/package.json +20 -4
  469. package/site/lib/quota.js +59 -0
  470. package/site/lib/shared-wishes.js +1727 -0
@@ -0,0 +1,694 @@
1
+ import {
2
+ Curve,
3
+ Vector3
4
+ } from 'three';
5
+
6
+ /**
7
+ * A bunch of parametric curves
8
+ *
9
+ * Formulas collected from various sources
10
+ * http://mathworld.wolfram.com/HeartCurve.html
11
+ * http://en.wikipedia.org/wiki/Viviani%27s_curve
12
+ * http://www.mi.sanu.ac.rs/vismath/taylorapril2011/Taylor.pdf
13
+ * https://prideout.net/blog/old/blog/index.html@p=44.html
14
+ */
15
+
16
+ /**
17
+ * A Granny Knot curve.
18
+ *
19
+ * @augments Curve
20
+ * @three_import import { GrannyKnot } from 'three/addons/curves/CurveExtras.js';
21
+ */
22
+ class GrannyKnot extends Curve {
23
+
24
+ /**
25
+ * This method returns a vector in 3D space for the given interpolation factor.
26
+ *
27
+ * @param {number} t - A interpolation factor representing a position on the curve. Must be in the range `[0,1]`.
28
+ * @param {Vector3} [optionalTarget] - The optional target vector the result is written to.
29
+ * @return {Vector3} The position on the curve.
30
+ */
31
+ getPoint( t, optionalTarget = new Vector3() ) {
32
+
33
+ const point = optionalTarget;
34
+
35
+ t = 2 * Math.PI * t;
36
+
37
+ const x = - 0.22 * Math.cos( t ) - 1.28 * Math.sin( t ) - 0.44 * Math.cos( 3 * t ) - 0.78 * Math.sin( 3 * t );
38
+ const y = - 0.1 * Math.cos( 2 * t ) - 0.27 * Math.sin( 2 * t ) + 0.38 * Math.cos( 4 * t ) + 0.46 * Math.sin( 4 * t );
39
+ const z = 0.7 * Math.cos( 3 * t ) - 0.4 * Math.sin( 3 * t );
40
+
41
+ return point.set( x, y, z ).multiplyScalar( 20 );
42
+
43
+ }
44
+
45
+ }
46
+
47
+ /**
48
+ * A heart curve.
49
+ *
50
+ * @augments Curve
51
+ * @three_import import { HeartCurve } from 'three/addons/curves/CurveExtras.js';
52
+ */
53
+ class HeartCurve extends Curve {
54
+
55
+ /**
56
+ * Constructs a new heart curve.
57
+ *
58
+ * @param {number} [scale=5] - The curve's scale.
59
+ */
60
+ constructor( scale = 5 ) {
61
+
62
+ super();
63
+
64
+ /**
65
+ * The curve's scale.
66
+ *
67
+ * @type {number}
68
+ * @default 5
69
+ */
70
+ this.scale = scale;
71
+
72
+ }
73
+
74
+ /**
75
+ * This method returns a vector in 3D space for the given interpolation factor.
76
+ *
77
+ * @param {number} t - A interpolation factor representing a position on the curve. Must be in the range `[0,1]`.
78
+ * @param {Vector3} [optionalTarget] - The optional target vector the result is written to.
79
+ * @return {Vector3} The position on the curve.
80
+ */
81
+ getPoint( t, optionalTarget = new Vector3() ) {
82
+
83
+ const point = optionalTarget;
84
+
85
+ t *= 2 * Math.PI;
86
+
87
+ const x = 16 * Math.pow( Math.sin( t ), 3 );
88
+ const y = 13 * Math.cos( t ) - 5 * Math.cos( 2 * t ) - 2 * Math.cos( 3 * t ) - Math.cos( 4 * t );
89
+ const z = 0;
90
+
91
+ return point.set( x, y, z ).multiplyScalar( this.scale );
92
+
93
+ }
94
+
95
+ }
96
+
97
+ /**
98
+ * A Viviani curve.
99
+ *
100
+ * @augments Curve
101
+ * @three_import import { VivianiCurve } from 'three/addons/curves/CurveExtras.js';
102
+ */
103
+ class VivianiCurve extends Curve {
104
+
105
+ /**
106
+ * Constructs a new Viviani curve.
107
+ *
108
+ * @param {number} [scale=70] - The curve's scale.
109
+ */
110
+ constructor( scale = 70 ) {
111
+
112
+ super();
113
+
114
+ /**
115
+ * The curve's scale.
116
+ *
117
+ * @type {number}
118
+ * @default 70
119
+ */
120
+ this.scale = scale;
121
+
122
+ }
123
+
124
+ /**
125
+ * This method returns a vector in 3D space for the given interpolation factor.
126
+ *
127
+ * @param {number} t - A interpolation factor representing a position on the curve. Must be in the range `[0,1]`.
128
+ * @param {Vector3} [optionalTarget] - The optional target vector the result is written to.
129
+ * @return {Vector3} The position on the curve.
130
+ */
131
+ getPoint( t, optionalTarget = new Vector3() ) {
132
+
133
+ const point = optionalTarget;
134
+
135
+ t = t * 4 * Math.PI; // normalized to 0..1
136
+ const a = this.scale / 2;
137
+
138
+ const x = a * ( 1 + Math.cos( t ) );
139
+ const y = a * Math.sin( t );
140
+ const z = 2 * a * Math.sin( t / 2 );
141
+
142
+ return point.set( x, y, z );
143
+
144
+ }
145
+
146
+ }
147
+
148
+ /**
149
+ * A knot curve.
150
+ *
151
+ * @augments Curve
152
+ * @three_import import { KnotCurve } from 'three/addons/curves/CurveExtras.js';
153
+ */
154
+ class KnotCurve extends Curve {
155
+
156
+ /**
157
+ * This method returns a vector in 3D space for the given interpolation factor.
158
+ *
159
+ * @param {number} t - A interpolation factor representing a position on the curve. Must be in the range `[0,1]`.
160
+ * @param {Vector3} [optionalTarget] - The optional target vector the result is written to.
161
+ * @return {Vector3} The position on the curve.
162
+ */
163
+ getPoint( t, optionalTarget = new Vector3() ) {
164
+
165
+ const point = optionalTarget;
166
+
167
+ t *= 2 * Math.PI;
168
+
169
+ const R = 10;
170
+ const s = 50;
171
+
172
+ const x = s * Math.sin( t );
173
+ const y = Math.cos( t ) * ( R + s * Math.cos( t ) );
174
+ const z = Math.sin( t ) * ( R + s * Math.cos( t ) );
175
+
176
+ return point.set( x, y, z );
177
+
178
+ }
179
+
180
+ }
181
+
182
+ /**
183
+ * A helix curve.
184
+ *
185
+ * @augments Curve
186
+ * @three_import import { HelixCurve } from 'three/addons/curves/CurveExtras.js';
187
+ */
188
+ class HelixCurve extends Curve {
189
+
190
+ /**
191
+ * This method returns a vector in 3D space for the given interpolation factor.
192
+ *
193
+ * @param {number} t - A interpolation factor representing a position on the curve. Must be in the range `[0,1]`.
194
+ * @param {Vector3} [optionalTarget] - The optional target vector the result is written to.
195
+ * @return {Vector3} The position on the curve.
196
+ */
197
+ getPoint( t, optionalTarget = new Vector3() ) {
198
+
199
+ const point = optionalTarget;
200
+
201
+ const a = 30; // radius
202
+ const b = 150; // height
203
+
204
+ const t2 = 2 * Math.PI * t * b / 30;
205
+
206
+ const x = Math.cos( t2 ) * a;
207
+ const y = Math.sin( t2 ) * a;
208
+ const z = b * t;
209
+
210
+ return point.set( x, y, z );
211
+
212
+ }
213
+
214
+ }
215
+
216
+ /**
217
+ * A Trefoil Knot.
218
+ *
219
+ * @augments Curve
220
+ * @three_import import { TrefoilKnot } from 'three/addons/curves/CurveExtras.js';
221
+ */
222
+ class TrefoilKnot extends Curve {
223
+
224
+ /**
225
+ * Constructs a new Trefoil Knot.
226
+ *
227
+ * @param {number} [scale=10] - The curve's scale.
228
+ */
229
+ constructor( scale = 10 ) {
230
+
231
+ super();
232
+
233
+ /**
234
+ * The curve's scale.
235
+ *
236
+ * @type {number}
237
+ * @default 10
238
+ */
239
+ this.scale = scale;
240
+
241
+ }
242
+
243
+ /**
244
+ * This method returns a vector in 3D space for the given interpolation factor.
245
+ *
246
+ * @param {number} t - A interpolation factor representing a position on the curve. Must be in the range `[0,1]`.
247
+ * @param {Vector3} [optionalTarget] - The optional target vector the result is written to.
248
+ * @return {Vector3} The position on the curve.
249
+ */
250
+ getPoint( t, optionalTarget = new Vector3() ) {
251
+
252
+ const point = optionalTarget;
253
+
254
+ t *= Math.PI * 2;
255
+
256
+ const x = ( 2 + Math.cos( 3 * t ) ) * Math.cos( 2 * t );
257
+ const y = ( 2 + Math.cos( 3 * t ) ) * Math.sin( 2 * t );
258
+ const z = Math.sin( 3 * t );
259
+
260
+ return point.set( x, y, z ).multiplyScalar( this.scale );
261
+
262
+ }
263
+
264
+ }
265
+
266
+ /**
267
+ * A torus knot.
268
+ *
269
+ * @augments Curve
270
+ * @three_import import { TorusKnot } from 'three/addons/curves/CurveExtras.js';
271
+ */
272
+ class TorusKnot extends Curve {
273
+
274
+ /**
275
+ * Constructs a new torus knot.
276
+ *
277
+ * @param {number} [scale=10] - The curve's scale.
278
+ */
279
+ constructor( scale = 10 ) {
280
+
281
+ super();
282
+
283
+ /**
284
+ * The curve's scale.
285
+ *
286
+ * @type {number}
287
+ * @default 10
288
+ */
289
+ this.scale = scale;
290
+
291
+ }
292
+
293
+ /**
294
+ * This method returns a vector in 3D space for the given interpolation factor.
295
+ *
296
+ * @param {number} t - A interpolation factor representing a position on the curve. Must be in the range `[0,1]`.
297
+ * @param {Vector3} [optionalTarget] - The optional target vector the result is written to.
298
+ * @return {Vector3} The position on the curve.
299
+ */
300
+ getPoint( t, optionalTarget = new Vector3() ) {
301
+
302
+ const point = optionalTarget;
303
+
304
+ const p = 3;
305
+ const q = 4;
306
+
307
+ t *= Math.PI * 2;
308
+
309
+ const x = ( 2 + Math.cos( q * t ) ) * Math.cos( p * t );
310
+ const y = ( 2 + Math.cos( q * t ) ) * Math.sin( p * t );
311
+ const z = Math.sin( q * t );
312
+
313
+ return point.set( x, y, z ).multiplyScalar( this.scale );
314
+
315
+ }
316
+
317
+ }
318
+
319
+ /**
320
+ * A Cinquefoil Knot.
321
+ *
322
+ * @augments Curve
323
+ * @three_import import { CinquefoilKnot } from 'three/addons/curves/CurveExtras.js';
324
+ */
325
+ class CinquefoilKnot extends Curve {
326
+
327
+ /**
328
+ * Constructs a new Cinquefoil Knot.
329
+ *
330
+ * @param {number} [scale=10] - The curve's scale.
331
+ */
332
+ constructor( scale = 10 ) {
333
+
334
+ super();
335
+
336
+ /**
337
+ * The curve's scale.
338
+ *
339
+ * @type {number}
340
+ * @default 10
341
+ */
342
+ this.scale = scale;
343
+
344
+ }
345
+
346
+ /**
347
+ * This method returns a vector in 3D space for the given interpolation factor.
348
+ *
349
+ * @param {number} t - A interpolation factor representing a position on the curve. Must be in the range `[0,1]`.
350
+ * @param {Vector3} [optionalTarget] - The optional target vector the result is written to.
351
+ * @return {Vector3} The position on the curve.
352
+ */
353
+ getPoint( t, optionalTarget = new Vector3() ) {
354
+
355
+ const point = optionalTarget;
356
+
357
+ const p = 2;
358
+ const q = 5;
359
+
360
+ t *= Math.PI * 2;
361
+
362
+ const x = ( 2 + Math.cos( q * t ) ) * Math.cos( p * t );
363
+ const y = ( 2 + Math.cos( q * t ) ) * Math.sin( p * t );
364
+ const z = Math.sin( q * t );
365
+
366
+ return point.set( x, y, z ).multiplyScalar( this.scale );
367
+
368
+ }
369
+
370
+ }
371
+
372
+ /**
373
+ * A Trefoil Polynomial Knot.
374
+ *
375
+ * @augments Curve
376
+ * @three_import import { TrefoilPolynomialKnot } from 'three/addons/curves/CurveExtras.js';
377
+ */
378
+ class TrefoilPolynomialKnot extends Curve {
379
+
380
+ /**
381
+ * Constructs a new Trefoil Polynomial Knot.
382
+ *
383
+ * @param {number} [scale=10] - The curve's scale.
384
+ */
385
+ constructor( scale = 10 ) {
386
+
387
+ super();
388
+
389
+ /**
390
+ * The curve's scale.
391
+ *
392
+ * @type {number}
393
+ * @default 10
394
+ */
395
+ this.scale = scale;
396
+
397
+ }
398
+
399
+ /**
400
+ * This method returns a vector in 3D space for the given interpolation factor.
401
+ *
402
+ * @param {number} t - A interpolation factor representing a position on the curve. Must be in the range `[0,1]`.
403
+ * @param {Vector3} [optionalTarget] - The optional target vector the result is written to.
404
+ * @return {Vector3} The position on the curve.
405
+ */
406
+ getPoint( t, optionalTarget = new Vector3() ) {
407
+
408
+ const point = optionalTarget;
409
+
410
+ t = t * 4 - 2;
411
+
412
+ const x = Math.pow( t, 3 ) - 3 * t;
413
+ const y = Math.pow( t, 4 ) - 4 * t * t;
414
+ const z = 1 / 5 * Math.pow( t, 5 ) - 2 * t;
415
+
416
+ return point.set( x, y, z ).multiplyScalar( this.scale );
417
+
418
+ }
419
+
420
+ }
421
+
422
+ function scaleTo( x, y, t ) {
423
+
424
+ const r = y - x;
425
+ return t * r + x;
426
+
427
+ }
428
+
429
+ /**
430
+ * A Figure Eight Polynomial Knot.
431
+ *
432
+ * @augments Curve
433
+ * @three_import import { FigureEightPolynomialKnot } from 'three/addons/curves/CurveExtras.js';
434
+ */
435
+ class FigureEightPolynomialKnot extends Curve {
436
+
437
+ /**
438
+ * Constructs a new Figure Eight Polynomial Knot.
439
+ *
440
+ * @param {number} [scale=1] - The curve's scale.
441
+ */
442
+ constructor( scale = 1 ) {
443
+
444
+ super();
445
+
446
+ /**
447
+ * The curve's scale.
448
+ *
449
+ * @type {number}
450
+ * @default 1
451
+ */
452
+ this.scale = scale;
453
+
454
+ }
455
+
456
+ /**
457
+ * This method returns a vector in 3D space for the given interpolation factor.
458
+ *
459
+ * @param {number} t - A interpolation factor representing a position on the curve. Must be in the range `[0,1]`.
460
+ * @param {Vector3} [optionalTarget] - The optional target vector the result is written to.
461
+ * @return {Vector3} The position on the curve.
462
+ */
463
+ getPoint( t, optionalTarget = new Vector3() ) {
464
+
465
+ const point = optionalTarget;
466
+
467
+ t = scaleTo( - 4, 4, t );
468
+
469
+ const x = 2 / 5 * t * ( t * t - 7 ) * ( t * t - 10 );
470
+ const y = Math.pow( t, 4 ) - 13 * t * t;
471
+ const z = 1 / 10 * t * ( t * t - 4 ) * ( t * t - 9 ) * ( t * t - 12 );
472
+
473
+ return point.set( x, y, z ).multiplyScalar( this.scale );
474
+
475
+ }
476
+
477
+ }
478
+
479
+ /**
480
+ * A Decorated Torus Knot 4a.
481
+ *
482
+ * @augments Curve
483
+ * @three_import import { DecoratedTorusKnot4a } from 'three/addons/curves/CurveExtras.js';
484
+ */
485
+ class DecoratedTorusKnot4a extends Curve {
486
+
487
+ /**
488
+ * Constructs a new Decorated Torus Knot 4a.
489
+ *
490
+ * @param {number} [scale=40] - The curve's scale.
491
+ */
492
+ constructor( scale = 40 ) {
493
+
494
+ super();
495
+
496
+ /**
497
+ * The curve's scale.
498
+ *
499
+ * @type {number}
500
+ * @default 40
501
+ */
502
+ this.scale = scale;
503
+
504
+ }
505
+
506
+ /**
507
+ * This method returns a vector in 3D space for the given interpolation factor.
508
+ *
509
+ * @param {number} t - A interpolation factor representing a position on the curve. Must be in the range `[0,1]`.
510
+ * @param {Vector3} [optionalTarget] - The optional target vector the result is written to.
511
+ * @return {Vector3} The position on the curve.
512
+ */
513
+ getPoint( t, optionalTarget = new Vector3() ) {
514
+
515
+ const point = optionalTarget;
516
+
517
+ t *= Math.PI * 2;
518
+
519
+ const x = Math.cos( 2 * t ) * ( 1 + 0.6 * ( Math.cos( 5 * t ) + 0.75 * Math.cos( 10 * t ) ) );
520
+ const y = Math.sin( 2 * t ) * ( 1 + 0.6 * ( Math.cos( 5 * t ) + 0.75 * Math.cos( 10 * t ) ) );
521
+ const z = 0.35 * Math.sin( 5 * t );
522
+
523
+ return point.set( x, y, z ).multiplyScalar( this.scale );
524
+
525
+ }
526
+
527
+ }
528
+
529
+ /**
530
+ * A Decorated Torus Knot 4b.
531
+ *
532
+ * @augments Curve
533
+ * @three_import import { DecoratedTorusKnot4b } from 'three/addons/curves/CurveExtras.js';
534
+ */
535
+ class DecoratedTorusKnot4b extends Curve {
536
+
537
+ /**
538
+ * Constructs a new Decorated Torus Knot 4b.
539
+ *
540
+ * @param {number} [scale=40] - The curve's scale.
541
+ */
542
+ constructor( scale = 40 ) {
543
+
544
+ super();
545
+
546
+ /**
547
+ * The curve's scale.
548
+ *
549
+ * @type {number}
550
+ * @default 40
551
+ */
552
+ this.scale = scale;
553
+
554
+ }
555
+
556
+ /**
557
+ * This method returns a vector in 3D space for the given interpolation factor.
558
+ *
559
+ * @param {number} t - A interpolation factor representing a position on the curve. Must be in the range `[0,1]`.
560
+ * @param {Vector3} [optionalTarget] - The optional target vector the result is written to.
561
+ * @return {Vector3} The position on the curve.
562
+ */
563
+ getPoint( t, optionalTarget = new Vector3() ) {
564
+
565
+ const point = optionalTarget;
566
+
567
+ const fi = t * Math.PI * 2;
568
+
569
+ const x = Math.cos( 2 * fi ) * ( 1 + 0.45 * Math.cos( 3 * fi ) + 0.4 * Math.cos( 9 * fi ) );
570
+ const y = Math.sin( 2 * fi ) * ( 1 + 0.45 * Math.cos( 3 * fi ) + 0.4 * Math.cos( 9 * fi ) );
571
+ const z = 0.2 * Math.sin( 9 * fi );
572
+
573
+ return point.set( x, y, z ).multiplyScalar( this.scale );
574
+
575
+ }
576
+
577
+ }
578
+
579
+ /**
580
+ * A Decorated Torus Knot 5a.
581
+ *
582
+ * @augments Curve
583
+ * @three_import import { DecoratedTorusKnot5a } from 'three/addons/curves/CurveExtras.js';
584
+ */
585
+ class DecoratedTorusKnot5a extends Curve {
586
+
587
+ /**
588
+ * Constructs a new Decorated Torus Knot 5a.
589
+ *
590
+ * @param {number} [scale=40] - The curve's scale.
591
+ */
592
+ constructor( scale = 40 ) {
593
+
594
+ super();
595
+
596
+ /**
597
+ * The curve's scale.
598
+ *
599
+ * @type {number}
600
+ * @default 40
601
+ */
602
+ this.scale = scale;
603
+
604
+ }
605
+
606
+ /**
607
+ * This method returns a vector in 3D space for the given interpolation factor.
608
+ *
609
+ * @param {number} t - A interpolation factor representing a position on the curve. Must be in the range `[0,1]`.
610
+ * @param {Vector3} [optionalTarget] - The optional target vector the result is written to.
611
+ * @return {Vector3} The position on the curve.
612
+ */
613
+ getPoint( t, optionalTarget = new Vector3() ) {
614
+
615
+ const point = optionalTarget;
616
+
617
+ const fi = t * Math.PI * 2;
618
+
619
+ const x = Math.cos( 3 * fi ) * ( 1 + 0.3 * Math.cos( 5 * fi ) + 0.5 * Math.cos( 10 * fi ) );
620
+ const y = Math.sin( 3 * fi ) * ( 1 + 0.3 * Math.cos( 5 * fi ) + 0.5 * Math.cos( 10 * fi ) );
621
+ const z = 0.2 * Math.sin( 20 * fi );
622
+
623
+ return point.set( x, y, z ).multiplyScalar( this.scale );
624
+
625
+ }
626
+
627
+ }
628
+
629
+ /**
630
+ * A Decorated Torus Knot 5c.
631
+ *
632
+ * @augments Curve
633
+ * @three_import import { DecoratedTorusKnot5c } from 'three/addons/curves/CurveExtras.js';
634
+ */
635
+ class DecoratedTorusKnot5c extends Curve {
636
+
637
+ /**
638
+ * Constructs a new Decorated Torus Knot 5c.
639
+ *
640
+ * @param {number} [scale=40] - The curve's scale.
641
+ */
642
+ constructor( scale = 40 ) {
643
+
644
+ super();
645
+
646
+ /**
647
+ * The curve's scale.
648
+ *
649
+ * @type {number}
650
+ * @default 40
651
+ */
652
+ this.scale = scale;
653
+
654
+ }
655
+
656
+ /**
657
+ * This method returns a vector in 3D space for the given interpolation factor.
658
+ *
659
+ * @param {number} t - A interpolation factor representing a position on the curve. Must be in the range `[0,1]`.
660
+ * @param {Vector3} [optionalTarget] - The optional target vector the result is written to.
661
+ * @return {Vector3} The position on the curve.
662
+ */
663
+ getPoint( t, optionalTarget = new Vector3() ) {
664
+
665
+ const point = optionalTarget;
666
+
667
+ const fi = t * Math.PI * 2;
668
+
669
+ const x = Math.cos( 4 * fi ) * ( 1 + 0.5 * ( Math.cos( 5 * fi ) + 0.4 * Math.cos( 20 * fi ) ) );
670
+ const y = Math.sin( 4 * fi ) * ( 1 + 0.5 * ( Math.cos( 5 * fi ) + 0.4 * Math.cos( 20 * fi ) ) );
671
+ const z = 0.35 * Math.sin( 15 * fi );
672
+
673
+ return point.set( x, y, z ).multiplyScalar( this.scale );
674
+
675
+ }
676
+
677
+ }
678
+
679
+ export {
680
+ GrannyKnot,
681
+ HeartCurve,
682
+ VivianiCurve,
683
+ KnotCurve,
684
+ HelixCurve,
685
+ TrefoilKnot,
686
+ TorusKnot,
687
+ CinquefoilKnot,
688
+ TrefoilPolynomialKnot,
689
+ FigureEightPolynomialKnot,
690
+ DecoratedTorusKnot4a,
691
+ DecoratedTorusKnot4b,
692
+ DecoratedTorusKnot5a,
693
+ DecoratedTorusKnot5c
694
+ };