@needle-tools/engine 4.13.0 → 4.13.1-beta

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 (410) hide show
  1. package/CHANGELOG.md +2 -1
  2. package/README.md +37 -0
  3. package/components.needle.json +1 -1
  4. package/custom-elements.json +138 -4
  5. package/dist/{needle-engine.bundle-CxaKFQVS.min.js → needle-engine.bundle-6774fXoY.min.js} +107 -107
  6. package/dist/{needle-engine.bundle-Dl3TFYyv.js → needle-engine.bundle-CGtsEhyJ.js} +2346 -1844
  7. package/dist/{needle-engine.bundle-J4k4znv8.umd.cjs → needle-engine.bundle-fbFZTOKP.umd.cjs} +108 -108
  8. package/dist/needle-engine.d.ts +3769 -397
  9. package/dist/needle-engine.js +2 -2
  10. package/dist/needle-engine.min.js +1 -1
  11. package/dist/needle-engine.umd.cjs +1 -1
  12. package/lib/engine/engine_context.d.ts +16 -0
  13. package/lib/engine/engine_context.js +16 -0
  14. package/lib/engine/engine_context.js.map +1 -1
  15. package/lib/engine/engine_gameobject.d.ts +72 -0
  16. package/lib/engine/engine_gameobject.js +38 -0
  17. package/lib/engine/engine_gameobject.js.map +1 -1
  18. package/lib/engine/engine_input.d.ts +80 -4
  19. package/lib/engine/engine_input.js +78 -2
  20. package/lib/engine/engine_input.js.map +1 -1
  21. package/lib/engine/engine_math.d.ts +81 -2
  22. package/lib/engine/engine_math.js +68 -2
  23. package/lib/engine/engine_math.js.map +1 -1
  24. package/lib/engine/engine_networking.d.ts +181 -14
  25. package/lib/engine/engine_networking.js +181 -14
  26. package/lib/engine/engine_networking.js.map +1 -1
  27. package/lib/engine/engine_networking_auto.d.ts +35 -8
  28. package/lib/engine/engine_networking_auto.js +35 -8
  29. package/lib/engine/engine_networking_auto.js.map +1 -1
  30. package/lib/engine/engine_physics.d.ts +35 -1
  31. package/lib/engine/engine_physics.js +35 -1
  32. package/lib/engine/engine_physics.js.map +1 -1
  33. package/lib/engine/engine_physics_rapier.d.ts +76 -0
  34. package/lib/engine/engine_physics_rapier.js +76 -0
  35. package/lib/engine/engine_physics_rapier.js.map +1 -1
  36. package/lib/engine/engine_serialization_decorator.d.ts +28 -2
  37. package/lib/engine/engine_serialization_decorator.js +28 -2
  38. package/lib/engine/engine_serialization_decorator.js.map +1 -1
  39. package/lib/engine/engine_time.d.ts +23 -3
  40. package/lib/engine/engine_time.js +23 -3
  41. package/lib/engine/engine_time.js.map +1 -1
  42. package/lib/engine/engine_util_decorator.d.ts +31 -1
  43. package/lib/engine/engine_util_decorator.js +31 -1
  44. package/lib/engine/engine_util_decorator.js.map +1 -1
  45. package/lib/engine/engine_utils.d.ts +21 -5
  46. package/lib/engine/engine_utils.js +21 -5
  47. package/lib/engine/engine_utils.js.map +1 -1
  48. package/lib/engine/extensions/NEEDLE_materialx.d.ts +2 -2
  49. package/lib/engine/extensions/NEEDLE_materialx.js +2 -2
  50. package/lib/engine/extensions/NEEDLE_materialx.js.map +1 -1
  51. package/lib/engine/extensions/index.d.ts +1 -1
  52. package/lib/engine/extensions/index.js +1 -1
  53. package/lib/engine/extensions/index.js.map +1 -1
  54. package/lib/engine-components/AlignmentConstraint.d.ts +23 -3
  55. package/lib/engine-components/AlignmentConstraint.js +23 -3
  56. package/lib/engine-components/AlignmentConstraint.js.map +1 -1
  57. package/lib/engine-components/Animation.d.ts +42 -0
  58. package/lib/engine-components/Animation.js +36 -0
  59. package/lib/engine-components/Animation.js.map +1 -1
  60. package/lib/engine-components/Animator.d.ts +37 -4
  61. package/lib/engine-components/Animator.js +37 -4
  62. package/lib/engine-components/Animator.js.map +1 -1
  63. package/lib/engine-components/AudioListener.d.ts +1 -1
  64. package/lib/engine-components/AudioListener.js +1 -1
  65. package/lib/engine-components/AudioSource.d.ts +32 -10
  66. package/lib/engine-components/AudioSource.js +32 -10
  67. package/lib/engine-components/AudioSource.js.map +1 -1
  68. package/lib/engine-components/AxesHelper.d.ts +22 -3
  69. package/lib/engine-components/AxesHelper.js +22 -3
  70. package/lib/engine-components/AxesHelper.js.map +1 -1
  71. package/lib/engine-components/BasicIKConstraint.d.ts +27 -4
  72. package/lib/engine-components/BasicIKConstraint.js +27 -4
  73. package/lib/engine-components/BasicIKConstraint.js.map +1 -1
  74. package/lib/engine-components/Camera.d.ts +32 -2
  75. package/lib/engine-components/Camera.js +32 -2
  76. package/lib/engine-components/Camera.js.map +1 -1
  77. package/lib/engine-components/CharacterController.d.ts +68 -4
  78. package/lib/engine-components/CharacterController.js +68 -4
  79. package/lib/engine-components/CharacterController.js.map +1 -1
  80. package/lib/engine-components/Collider.d.ts +69 -12
  81. package/lib/engine-components/Collider.js +69 -12
  82. package/lib/engine-components/Collider.js.map +1 -1
  83. package/lib/engine-components/ContactShadows.d.ts +26 -6
  84. package/lib/engine-components/ContactShadows.js +31 -8
  85. package/lib/engine-components/ContactShadows.js.map +1 -1
  86. package/lib/engine-components/DeleteBox.d.ts +43 -2
  87. package/lib/engine-components/DeleteBox.js +43 -2
  88. package/lib/engine-components/DeleteBox.js.map +1 -1
  89. package/lib/engine-components/DeviceFlag.d.ts +21 -2
  90. package/lib/engine-components/DeviceFlag.js +21 -2
  91. package/lib/engine-components/DeviceFlag.js.map +1 -1
  92. package/lib/engine-components/DragControls.d.ts +32 -2
  93. package/lib/engine-components/DragControls.js +32 -2
  94. package/lib/engine-components/DragControls.js.map +1 -1
  95. package/lib/engine-components/DropListener.d.ts +33 -21
  96. package/lib/engine-components/DropListener.js +33 -21
  97. package/lib/engine-components/DropListener.js.map +1 -1
  98. package/lib/engine-components/Duplicatable.d.ts +36 -5
  99. package/lib/engine-components/Duplicatable.js +36 -5
  100. package/lib/engine-components/Duplicatable.js.map +1 -1
  101. package/lib/engine-components/EventList.d.ts +38 -10
  102. package/lib/engine-components/EventList.js +38 -10
  103. package/lib/engine-components/EventList.js.map +1 -1
  104. package/lib/engine-components/EventTrigger.d.ts +1 -1
  105. package/lib/engine-components/EventTrigger.js +1 -1
  106. package/lib/engine-components/Fog.d.ts +23 -1
  107. package/lib/engine-components/Fog.js +23 -1
  108. package/lib/engine-components/Fog.js.map +1 -1
  109. package/lib/engine-components/GridHelper.d.ts +18 -2
  110. package/lib/engine-components/GridHelper.js +18 -2
  111. package/lib/engine-components/GridHelper.js.map +1 -1
  112. package/lib/engine-components/GroundProjection.d.ts +24 -2
  113. package/lib/engine-components/GroundProjection.js +24 -2
  114. package/lib/engine-components/GroundProjection.js.map +1 -1
  115. package/lib/engine-components/Interactable.d.ts +17 -2
  116. package/lib/engine-components/Interactable.js +17 -2
  117. package/lib/engine-components/Interactable.js.map +1 -1
  118. package/lib/engine-components/Joints.d.ts +50 -7
  119. package/lib/engine-components/Joints.js +50 -7
  120. package/lib/engine-components/Joints.js.map +1 -1
  121. package/lib/engine-components/LODGroup.d.ts +36 -14
  122. package/lib/engine-components/LODGroup.js +43 -11
  123. package/lib/engine-components/LODGroup.js.map +1 -1
  124. package/lib/engine-components/Light.d.ts +30 -5
  125. package/lib/engine-components/Light.js +30 -5
  126. package/lib/engine-components/Light.js.map +1 -1
  127. package/lib/engine-components/LookAtConstraint.d.ts +22 -7
  128. package/lib/engine-components/LookAtConstraint.js +22 -7
  129. package/lib/engine-components/LookAtConstraint.js.map +1 -1
  130. package/lib/engine-components/NeedleMenu.d.ts +27 -5
  131. package/lib/engine-components/NeedleMenu.js +27 -5
  132. package/lib/engine-components/NeedleMenu.js.map +1 -1
  133. package/lib/engine-components/NestedGltf.d.ts +39 -4
  134. package/lib/engine-components/NestedGltf.js +42 -4
  135. package/lib/engine-components/NestedGltf.js.map +1 -1
  136. package/lib/engine-components/OffsetConstraint.d.ts +27 -3
  137. package/lib/engine-components/OffsetConstraint.js +27 -3
  138. package/lib/engine-components/OffsetConstraint.js.map +1 -1
  139. package/lib/engine-components/OrbitControls.d.ts +41 -3
  140. package/lib/engine-components/OrbitControls.js +41 -3
  141. package/lib/engine-components/OrbitControls.js.map +1 -1
  142. package/lib/engine-components/PlayerColor.d.ts +1 -1
  143. package/lib/engine-components/PlayerColor.js +1 -1
  144. package/lib/engine-components/ReflectionProbe.d.ts +17 -2
  145. package/lib/engine-components/ReflectionProbe.js +17 -3
  146. package/lib/engine-components/ReflectionProbe.js.map +1 -1
  147. package/lib/engine-components/Renderer.d.ts +34 -0
  148. package/lib/engine-components/Renderer.js +35 -2
  149. package/lib/engine-components/Renderer.js.map +1 -1
  150. package/lib/engine-components/SceneSwitcher.d.ts +11 -0
  151. package/lib/engine-components/SceneSwitcher.js +11 -0
  152. package/lib/engine-components/SceneSwitcher.js.map +1 -1
  153. package/lib/engine-components/ScreenCapture.d.ts +38 -6
  154. package/lib/engine-components/ScreenCapture.js +38 -6
  155. package/lib/engine-components/ScreenCapture.js.map +1 -1
  156. package/lib/engine-components/Skybox.d.ts +1 -1
  157. package/lib/engine-components/Skybox.js +1 -1
  158. package/lib/engine-components/SmoothFollow.d.ts +66 -7
  159. package/lib/engine-components/SmoothFollow.js +66 -7
  160. package/lib/engine-components/SmoothFollow.js.map +1 -1
  161. package/lib/engine-components/SpatialTrigger.d.ts +48 -1
  162. package/lib/engine-components/SpatialTrigger.js +48 -1
  163. package/lib/engine-components/SpatialTrigger.js.map +1 -1
  164. package/lib/engine-components/SpectatorCamera.d.ts +21 -3
  165. package/lib/engine-components/SpectatorCamera.js +21 -3
  166. package/lib/engine-components/SpectatorCamera.js.map +1 -1
  167. package/lib/engine-components/SyncedRoom.d.ts +7 -1
  168. package/lib/engine-components/SyncedRoom.js +7 -1
  169. package/lib/engine-components/SyncedRoom.js.map +1 -1
  170. package/lib/engine-components/SyncedTransform.d.ts +55 -6
  171. package/lib/engine-components/SyncedTransform.js +55 -6
  172. package/lib/engine-components/SyncedTransform.js.map +1 -1
  173. package/lib/engine-components/TransformGizmo.d.ts +30 -3
  174. package/lib/engine-components/TransformGizmo.js +30 -3
  175. package/lib/engine-components/TransformGizmo.js.map +1 -1
  176. package/lib/engine-components/VideoPlayer.d.ts +33 -6
  177. package/lib/engine-components/VideoPlayer.js +45 -6
  178. package/lib/engine-components/VideoPlayer.js.map +1 -1
  179. package/lib/engine-components/Voip.d.ts +33 -2
  180. package/lib/engine-components/Voip.js +33 -2
  181. package/lib/engine-components/Voip.js.map +1 -1
  182. package/lib/engine-components/export/usdz/USDZExporter.d.ts +47 -13
  183. package/lib/engine-components/export/usdz/USDZExporter.js +47 -13
  184. package/lib/engine-components/export/usdz/USDZExporter.js.map +1 -1
  185. package/lib/engine-components/particlesystem/ParticleSystem.d.ts +82 -3
  186. package/lib/engine-components/particlesystem/ParticleSystem.js +82 -3
  187. package/lib/engine-components/particlesystem/ParticleSystem.js.map +1 -1
  188. package/lib/engine-components/postprocessing/Effects/Antialiasing.d.ts +1 -0
  189. package/lib/engine-components/postprocessing/Effects/Antialiasing.js +1 -0
  190. package/lib/engine-components/postprocessing/Effects/Antialiasing.js.map +1 -1
  191. package/lib/engine-components/postprocessing/Effects/BloomEffect.d.ts +1 -1
  192. package/lib/engine-components/postprocessing/Effects/BloomEffect.js +1 -1
  193. package/lib/engine-components/postprocessing/Effects/ChromaticAberration.d.ts +1 -1
  194. package/lib/engine-components/postprocessing/Effects/ChromaticAberration.js +1 -1
  195. package/lib/engine-components/postprocessing/Effects/ColorAdjustments.d.ts +1 -1
  196. package/lib/engine-components/postprocessing/Effects/ColorAdjustments.js +1 -1
  197. package/lib/engine-components/postprocessing/Effects/DepthOfField.d.ts +1 -1
  198. package/lib/engine-components/postprocessing/Effects/DepthOfField.js +1 -1
  199. package/lib/engine-components/postprocessing/Effects/EffectWrapper.d.ts +1 -0
  200. package/lib/engine-components/postprocessing/Effects/EffectWrapper.js +1 -0
  201. package/lib/engine-components/postprocessing/Effects/EffectWrapper.js.map +1 -1
  202. package/lib/engine-components/postprocessing/Effects/Pixelation.d.ts +1 -1
  203. package/lib/engine-components/postprocessing/Effects/Pixelation.js +1 -1
  204. package/lib/engine-components/postprocessing/Effects/ScreenspaceAmbientOcclusion.d.ts +1 -1
  205. package/lib/engine-components/postprocessing/Effects/ScreenspaceAmbientOcclusion.js +1 -1
  206. package/lib/engine-components/postprocessing/Effects/ScreenspaceAmbientOcclusionN8.d.ts +1 -1
  207. package/lib/engine-components/postprocessing/Effects/ScreenspaceAmbientOcclusionN8.js +1 -1
  208. package/lib/engine-components/postprocessing/Effects/Sharpening.d.ts +1 -1
  209. package/lib/engine-components/postprocessing/Effects/Sharpening.js +1 -1
  210. package/lib/engine-components/postprocessing/Effects/TiltShiftEffect.d.ts +1 -1
  211. package/lib/engine-components/postprocessing/Effects/TiltShiftEffect.js +1 -1
  212. package/lib/engine-components/postprocessing/Effects/Tonemapping.d.ts +1 -1
  213. package/lib/engine-components/postprocessing/Effects/Tonemapping.js +1 -1
  214. package/lib/engine-components/postprocessing/Effects/Vignette.d.ts +1 -1
  215. package/lib/engine-components/postprocessing/Effects/Vignette.js +1 -1
  216. package/lib/engine-components/postprocessing/PostProcessingHandler.d.ts +1 -1
  217. package/lib/engine-components/postprocessing/PostProcessingHandler.js +1 -1
  218. package/lib/engine-components/postprocessing/Volume.d.ts +1 -1
  219. package/lib/engine-components/postprocessing/Volume.js +1 -1
  220. package/lib/engine-components/splines/Spline.d.ts +409 -12
  221. package/lib/engine-components/splines/Spline.js +409 -12
  222. package/lib/engine-components/splines/Spline.js.map +1 -1
  223. package/lib/engine-components/splines/SplineUtils.d.ts +1 -0
  224. package/lib/engine-components/splines/SplineUtils.js +1 -0
  225. package/lib/engine-components/splines/SplineUtils.js.map +1 -1
  226. package/lib/engine-components/splines/SplineWalker.d.ts +3 -1
  227. package/lib/engine-components/splines/SplineWalker.js +3 -1
  228. package/lib/engine-components/splines/SplineWalker.js.map +1 -1
  229. package/lib/engine-components/timeline/PlayableDirector.d.ts +99 -14
  230. package/lib/engine-components/timeline/PlayableDirector.js +91 -25
  231. package/lib/engine-components/timeline/PlayableDirector.js.map +1 -1
  232. package/lib/engine-components/ui/Button.d.ts +29 -3
  233. package/lib/engine-components/ui/Button.js +29 -3
  234. package/lib/engine-components/ui/Button.js.map +1 -1
  235. package/lib/engine-components/ui/Canvas.d.ts +29 -4
  236. package/lib/engine-components/ui/Canvas.js +29 -4
  237. package/lib/engine-components/ui/Canvas.js.map +1 -1
  238. package/lib/engine-components/ui/CanvasGroup.d.ts +1 -1
  239. package/lib/engine-components/ui/CanvasGroup.js +1 -1
  240. package/lib/engine-components/ui/EventSystem.d.ts +1 -1
  241. package/lib/engine-components/ui/EventSystem.js +1 -1
  242. package/lib/engine-components/ui/Graphic.d.ts +1 -0
  243. package/lib/engine-components/ui/Graphic.js +1 -0
  244. package/lib/engine-components/ui/Graphic.js.map +1 -1
  245. package/lib/engine-components/ui/Image.d.ts +22 -3
  246. package/lib/engine-components/ui/Image.js +22 -3
  247. package/lib/engine-components/ui/Image.js.map +1 -1
  248. package/lib/engine-components/ui/InputField.d.ts +1 -1
  249. package/lib/engine-components/ui/InputField.js +1 -1
  250. package/lib/engine-components/ui/Layout.d.ts +3 -0
  251. package/lib/engine-components/ui/Layout.js +3 -0
  252. package/lib/engine-components/ui/Layout.js.map +1 -1
  253. package/lib/engine-components/ui/Outline.d.ts +1 -1
  254. package/lib/engine-components/ui/Outline.js +1 -1
  255. package/lib/engine-components/ui/PointerEvents.d.ts +1 -1
  256. package/lib/engine-components/ui/PointerEvents.js +1 -1
  257. package/lib/engine-components/ui/Raycaster.d.ts +55 -6
  258. package/lib/engine-components/ui/Raycaster.js +55 -6
  259. package/lib/engine-components/ui/Raycaster.js.map +1 -1
  260. package/lib/engine-components/ui/RectTransform.d.ts +1 -1
  261. package/lib/engine-components/ui/RectTransform.js +1 -1
  262. package/lib/engine-components/ui/SpatialHtml.d.ts +1 -1
  263. package/lib/engine-components/ui/SpatialHtml.js +1 -1
  264. package/lib/engine-components/ui/Text.d.ts +23 -1
  265. package/lib/engine-components/ui/Text.js +23 -1
  266. package/lib/engine-components/ui/Text.js.map +1 -1
  267. package/lib/engine-components/utils/LookAt.d.ts +1 -1
  268. package/lib/engine-components/utils/LookAt.js +1 -1
  269. package/lib/engine-components/utils/OpenURL.d.ts +1 -1
  270. package/lib/engine-components/utils/OpenURL.js +1 -1
  271. package/lib/engine-components/web/Clickthrough.d.ts +116 -7
  272. package/lib/engine-components/web/Clickthrough.js +116 -7
  273. package/lib/engine-components/web/Clickthrough.js.map +1 -1
  274. package/lib/engine-components/web/CursorFollow.d.ts +171 -7
  275. package/lib/engine-components/web/CursorFollow.js +171 -7
  276. package/lib/engine-components/web/CursorFollow.js.map +1 -1
  277. package/lib/engine-components/web/HoverAnimation.d.ts +140 -11
  278. package/lib/engine-components/web/HoverAnimation.js +140 -11
  279. package/lib/engine-components/web/HoverAnimation.js.map +1 -1
  280. package/lib/engine-components/web/ScrollFollow.d.ts +4 -1
  281. package/lib/engine-components/web/ScrollFollow.js +4 -1
  282. package/lib/engine-components/web/ScrollFollow.js.map +1 -1
  283. package/lib/engine-components/web/ViewBox.d.ts +116 -16
  284. package/lib/engine-components/web/ViewBox.js +110 -16
  285. package/lib/engine-components/web/ViewBox.js.map +1 -1
  286. package/lib/engine-components/webxr/TeleportTarget.d.ts +21 -2
  287. package/lib/engine-components/webxr/TeleportTarget.js +21 -2
  288. package/lib/engine-components/webxr/TeleportTarget.js.map +1 -1
  289. package/lib/engine-components/webxr/WebXR.d.ts +10 -2
  290. package/lib/engine-components/webxr/WebXR.js +10 -2
  291. package/lib/engine-components/webxr/WebXR.js.map +1 -1
  292. package/lib/engine-components/webxr/WebXRAvatar.d.ts +39 -2
  293. package/lib/engine-components/webxr/WebXRAvatar.js +35 -3
  294. package/lib/engine-components/webxr/WebXRAvatar.js.map +1 -1
  295. package/lib/engine-components/webxr/WebXRImageTracking.d.ts +266 -30
  296. package/lib/engine-components/webxr/WebXRImageTracking.js +266 -30
  297. package/lib/engine-components/webxr/WebXRImageTracking.js.map +1 -1
  298. package/lib/engine-components/webxr/WebXRPlaneTracking.d.ts +1 -1
  299. package/lib/engine-components/webxr/WebXRPlaneTracking.js +1 -1
  300. package/lib/engine-components/webxr/XRFlag.d.ts +29 -2
  301. package/lib/engine-components/webxr/XRFlag.js +29 -2
  302. package/lib/engine-components/webxr/XRFlag.js.map +1 -1
  303. package/package.json +1 -1
  304. package/plugins/vite/custom-element-data.js +128 -19
  305. package/src/engine/engine_context.ts +16 -0
  306. package/src/engine/engine_gameobject.ts +73 -0
  307. package/src/engine/engine_input.ts +83 -7
  308. package/src/engine/engine_math.ts +81 -2
  309. package/src/engine/engine_networking.ts +186 -17
  310. package/src/engine/engine_networking_auto.ts +36 -9
  311. package/src/engine/engine_physics.ts +37 -1
  312. package/src/engine/engine_physics_rapier.ts +77 -0
  313. package/src/engine/engine_serialization_decorator.ts +28 -2
  314. package/src/engine/engine_time.ts +23 -3
  315. package/src/engine/engine_util_decorator.ts +31 -1
  316. package/src/engine/engine_utils.ts +21 -5
  317. package/src/engine/extensions/NEEDLE_materialx.ts +5 -4
  318. package/src/engine/extensions/index.ts +2 -2
  319. package/src/engine-components/AlignmentConstraint.ts +24 -4
  320. package/src/engine-components/Animation.ts +44 -2
  321. package/src/engine-components/Animator.ts +40 -7
  322. package/src/engine-components/AudioListener.ts +1 -1
  323. package/src/engine-components/AudioSource.ts +37 -15
  324. package/src/engine-components/AxesHelper.ts +23 -4
  325. package/src/engine-components/BasicIKConstraint.ts +28 -5
  326. package/src/engine-components/Camera.ts +33 -3
  327. package/src/engine-components/CharacterController.ts +74 -7
  328. package/src/engine-components/Collider.ts +78 -21
  329. package/src/engine-components/ContactShadows.ts +36 -11
  330. package/src/engine-components/DeleteBox.ts +43 -2
  331. package/src/engine-components/DeviceFlag.ts +22 -3
  332. package/src/engine-components/DragControls.ts +32 -2
  333. package/src/engine-components/DropListener.ts +41 -29
  334. package/src/engine-components/Duplicatable.ts +37 -6
  335. package/src/engine-components/EventList.ts +41 -13
  336. package/src/engine-components/EventTrigger.ts +1 -1
  337. package/src/engine-components/Fog.ts +23 -1
  338. package/src/engine-components/GridHelper.ts +18 -2
  339. package/src/engine-components/GroundProjection.ts +25 -3
  340. package/src/engine-components/Interactable.ts +17 -2
  341. package/src/engine-components/Joints.ts +51 -8
  342. package/src/engine-components/LODGroup.ts +45 -11
  343. package/src/engine-components/Light.ts +35 -13
  344. package/src/engine-components/LookAtConstraint.ts +26 -8
  345. package/src/engine-components/NeedleMenu.ts +29 -7
  346. package/src/engine-components/NestedGltf.ts +40 -4
  347. package/src/engine-components/OffsetConstraint.ts +27 -3
  348. package/src/engine-components/OrbitControls.ts +41 -3
  349. package/src/engine-components/PlayerColor.ts +1 -1
  350. package/src/engine-components/ReflectionProbe.ts +19 -5
  351. package/src/engine-components/Renderer.ts +34 -1
  352. package/src/engine-components/SceneSwitcher.ts +11 -0
  353. package/src/engine-components/ScreenCapture.ts +41 -9
  354. package/src/engine-components/Skybox.ts +1 -1
  355. package/src/engine-components/SmoothFollow.ts +68 -7
  356. package/src/engine-components/SpatialTrigger.ts +51 -4
  357. package/src/engine-components/SpectatorCamera.ts +23 -5
  358. package/src/engine-components/SyncedRoom.ts +8 -2
  359. package/src/engine-components/SyncedTransform.ts +59 -10
  360. package/src/engine-components/TransformGizmo.ts +31 -4
  361. package/src/engine-components/VideoPlayer.ts +48 -6
  362. package/src/engine-components/Voip.ts +33 -2
  363. package/src/engine-components/export/usdz/USDZExporter.ts +47 -13
  364. package/src/engine-components/particlesystem/ParticleSystem.ts +84 -5
  365. package/src/engine-components/postprocessing/Effects/Antialiasing.ts +1 -0
  366. package/src/engine-components/postprocessing/Effects/BloomEffect.ts +1 -1
  367. package/src/engine-components/postprocessing/Effects/ChromaticAberration.ts +1 -1
  368. package/src/engine-components/postprocessing/Effects/ColorAdjustments.ts +1 -1
  369. package/src/engine-components/postprocessing/Effects/DepthOfField.ts +1 -1
  370. package/src/engine-components/postprocessing/Effects/EffectWrapper.ts +1 -0
  371. package/src/engine-components/postprocessing/Effects/Pixelation.ts +1 -1
  372. package/src/engine-components/postprocessing/Effects/ScreenspaceAmbientOcclusion.ts +1 -1
  373. package/src/engine-components/postprocessing/Effects/ScreenspaceAmbientOcclusionN8.ts +1 -1
  374. package/src/engine-components/postprocessing/Effects/Sharpening.ts +1 -1
  375. package/src/engine-components/postprocessing/Effects/TiltShiftEffect.ts +1 -1
  376. package/src/engine-components/postprocessing/Effects/Tonemapping.ts +1 -1
  377. package/src/engine-components/postprocessing/Effects/Vignette.ts +1 -1
  378. package/src/engine-components/postprocessing/PostProcessingHandler.ts +1 -1
  379. package/src/engine-components/postprocessing/Volume.ts +1 -1
  380. package/src/engine-components/splines/Spline.ts +412 -14
  381. package/src/engine-components/splines/SplineUtils.ts +1 -0
  382. package/src/engine-components/splines/SplineWalker.ts +4 -2
  383. package/src/engine-components/timeline/PlayableDirector.ts +104 -27
  384. package/src/engine-components/ui/Button.ts +29 -3
  385. package/src/engine-components/ui/Canvas.ts +29 -4
  386. package/src/engine-components/ui/CanvasGroup.ts +2 -2
  387. package/src/engine-components/ui/EventSystem.ts +1 -1
  388. package/src/engine-components/ui/Graphic.ts +1 -0
  389. package/src/engine-components/ui/Image.ts +22 -3
  390. package/src/engine-components/ui/InputField.ts +2 -2
  391. package/src/engine-components/ui/Layout.ts +3 -0
  392. package/src/engine-components/ui/Outline.ts +1 -1
  393. package/src/engine-components/ui/PointerEvents.ts +1 -1
  394. package/src/engine-components/ui/Raycaster.ts +57 -8
  395. package/src/engine-components/ui/RectTransform.ts +2 -2
  396. package/src/engine-components/ui/SpatialHtml.ts +1 -1
  397. package/src/engine-components/ui/Text.ts +24 -2
  398. package/src/engine-components/utils/LookAt.ts +1 -1
  399. package/src/engine-components/utils/OpenURL.ts +1 -1
  400. package/src/engine-components/web/Clickthrough.ts +119 -10
  401. package/src/engine-components/web/CursorFollow.ts +174 -9
  402. package/src/engine-components/web/HoverAnimation.ts +142 -13
  403. package/src/engine-components/web/ScrollFollow.ts +4 -1
  404. package/src/engine-components/web/ViewBox.ts +118 -18
  405. package/src/engine-components/webxr/TeleportTarget.ts +23 -4
  406. package/src/engine-components/webxr/WebXR.ts +11 -3
  407. package/src/engine-components/webxr/WebXRAvatar.ts +41 -4
  408. package/src/engine-components/webxr/WebXRImageTracking.ts +282 -38
  409. package/src/engine-components/webxr/WebXRPlaneTracking.ts +1 -1
  410. package/src/engine-components/webxr/XRFlag.ts +30 -3
@@ -7,6 +7,7 @@ import { serializable } from "../engine/engine_serialization_decorator.js";
7
7
  import { Context } from "../engine/engine_setup.js";
8
8
  import { getWorldScale } from "../engine/engine_three_utils.js";
9
9
  import { getParam } from "../engine/engine_utils.js";
10
+ import { PointerEventData } from "./api.js";
10
11
  import { Behaviour, GameObject } from "./Component.js";
11
12
  import { Renderer } from "./Renderer.js";
12
13
 
@@ -45,18 +46,45 @@ export enum VideoRenderMode {
45
46
  }
46
47
 
47
48
  /**
48
- * The VideoPlayer component can be used to playback video clips from urls, streams or m3u8 playlists (livestreams)
49
- * @example Add a video player component to a game object and set the url to a video file. The video will start playing once the object becomes active in your scene
50
- * ```typescript
51
- * // Add a video player component to a game object and set the url to a video file. The video will start playing once the object becomes active in your scene
49
+ * [VideoPlayer](https://engine.needle.tools/docs/api/VideoPlayer) plays video clips from URLs, media streams, or HLS playlists (m3u8 livestreams).
50
+ *
51
+ * **Supported formats:**
52
+ * - Standard video files (MP4, WebM, etc.)
53
+ * - Media streams (from webcam, screen capture, etc.)
54
+ * - HLS playlists (m3u8) for livestreaming
55
+ *
56
+ * ![](https://cloud.needle.tools/-/media/w1uHur5yu3Ni7qFaKIFX-g.gif)
57
+ *
58
+ * **Rendering modes:**
59
+ * Video can be rendered to a material texture, render texture, or camera planes.
60
+ * Set `targetMaterialRenderer` to apply video to a specific mesh's material.
61
+ *
62
+ * **Browser autoplay:**
63
+ * Videos may require user interaction to play with audio.
64
+ * Set `playOnAwake = true` for automatic playback (muted if needed).
65
+ *
66
+ * @example Basic video playback
67
+ * ```ts
52
68
  * const videoPlayer = addComponent(obj, VideoPlayer, {
53
- * url: "https://www.w3schools.com/html/mov_bbb.mp4",
54
- * playOnAwake: true,
69
+ * url: "https://example.com/video.mp4",
70
+ * playOnAwake: true,
71
+ * loop: true,
55
72
  * });
56
73
  * ```
74
+ *
75
+ * @example Play video on a 3D surface
76
+ * ```ts
77
+ * const video = myScreen.getComponent(VideoPlayer);
78
+ * video.targetMaterialRenderer = myScreen.getComponent(Renderer);
79
+ * video.play();
80
+ * ```
81
+ *
57
82
  * @summary Plays video clips from URLs or streams
58
83
  * @category Multimedia
59
84
  * @group Components
85
+ * @see {@link AudioSource} for audio-only playback
86
+ * @see {@link ScreenCapture} for capturing and sharing video
87
+ * @see {@link Renderer} for video texture targets
60
88
  */
61
89
  export class VideoPlayer extends Behaviour {
62
90
 
@@ -72,6 +100,20 @@ export class VideoPlayer extends Behaviour {
72
100
  @serializable()
73
101
  aspectMode: AspectMode = AspectMode.None;
74
102
 
103
+ // /**
104
+ // * If true the video will toggle between play and pause when clicked.
105
+ // * Note that this requires the video element to be interactable which is not the case when using certain render modes like CameraNearPlane or CameraFarPlane. In those cases you can use the `requestPictureInPicture()` method to open the video in a separate window which allows interaction with the video element.
106
+ // */
107
+ // @serializable()
108
+ // clickToToggle: boolean = true;
109
+
110
+ // onPointerClick(_args: PointerEventData) {
111
+ // if (this.clickToToggle) {
112
+ // if (this.isPlaying) this.pause();
113
+ // else this.play();
114
+ // }
115
+ // }
116
+
75
117
  @serializable(URL)
76
118
  private clip?: string | MediaStream | null = null;
77
119
 
@@ -12,11 +12,42 @@ export const noVoip = "noVoip";
12
12
  const debugParam = getParam("debugvoip");
13
13
 
14
14
  /**
15
- * The Voice over IP component (VoIP) allows you to send and receive audio streams to other users in the same networked room.
16
- * It requires a networking connection to be working (e.g. by having an active SyncedRoom component in the scene or by connecting to a room manually).
15
+ * [Voip](https://engine.needle.tools/docs/api/Voip) Voice over IP (VoIP) component for real-time audio communication between users.
16
+ * Allows sending and receiving audio streams in networked rooms.
17
+ *
18
+ * **Requirements:**
19
+ * - Active network connection (via {@link SyncedRoom} or manual connection)
20
+ * - User permission for microphone access (requested automatically)
21
+ * - HTTPS connection (required for WebRTC)
22
+ *
23
+ * **Features:**
24
+ * - Automatic connection when joining rooms (`autoConnect`)
25
+ * - Background audio support (`runInBackground`)
26
+ * - Optional UI toggle button (`createMenuButton`)
27
+ * - Mute/unmute control
28
+ *
29
+ * **Debug:** Use `?debugvoip` URL parameter or set `debug = true` for logging.
30
+ * Press 'v' to toggle mute, 'c' to connect/disconnect when debugging.
31
+ *
32
+ * @example Enable VoIP in your scene
33
+ * ```ts
34
+ * const voip = myObject.addComponent(Voip);
35
+ * voip.autoConnect = true;
36
+ * voip.createMenuButton = true;
37
+ *
38
+ * // Manual control
39
+ * voip.connect(); // Start sending audio
40
+ * voip.disconnect(); // Stop sending
41
+ * voip.setMuted(true); // Mute microphone
42
+ * ```
43
+ *
17
44
  * @summary Voice over IP for networked audio communication
18
45
  * @category Networking
19
46
  * @group Components
47
+ * @see {@link SyncedRoom} for room management
48
+ * @see {@link NetworkedStreams} for the underlying streaming
49
+ * @see {@link ScreenCapture} for video streaming
50
+ * @link https://engine.needle.tools/docs/networking.html
20
51
  */
21
52
  export class Voip extends Behaviour {
22
53
 
@@ -71,22 +71,56 @@ type BeforeLODExportArguments = {
71
71
  }
72
72
 
73
73
  /**
74
- * Exports the current scene or a specific object as USDZ file and opens it in QuickLook on iOS/iPadOS/visionOS.
75
- * The USDZ file is generated using the Needle Engine ThreeUSDZExporter.
76
- * The exporter supports various extensions to add custom behaviors and interactions to the USDZ file.
77
- * The exporter can automatically collect Animations and AudioSources and export them as playing at the start.
78
- * The exporter can also add a custom QuickLook overlay with a call to action button and custom branding.
79
- * @example
80
- * ```typescript
81
- * const usdz = new USDZExporter();
82
- * usdz.objectToExport = myObject;
83
- * usdz.autoExportAnimations = true;
84
- * usdz.autoExportAudioSources = true;
85
- * usdz.exportAsync();
74
+ * USDZExporter creates USDZ files and opens them in Apple QuickLook on iOS/iPadOS/visionOS.
75
+ * Enables "View in AR" functionality for Apple devices directly from web experiences.
76
+ *
77
+ * **Key features:**
78
+ * - Auto-exports animations and audio sources
79
+ * - Interactive behaviors via Needle's "Everywhere Actions" system
80
+ * - RealityKit physics support (iOS 18+, visionOS 1+)
81
+ * - Custom QuickLook overlay with call-to-action buttons
82
+ * - Progressive texture/mesh LOD handling
83
+ *
84
+ * [![](https://cloud.needle.tools/-/media/YyUz1lUVlOhEY4fWZ-oMsA.gif)](https://engine.needle.tools/samples/?overlay=samples&tag=usdz)
85
+ *
86
+ * **Automatic setup:**
87
+ * - Creates QuickLook button on compatible devices
88
+ * - Respects {@link XRFlag} for AR-specific visibility
89
+ * - Handles {@link WebARSessionRoot} scale
90
+ *
91
+ * **Custom extensions:**
92
+ * Add custom behaviors by implementing {@link IUSDExporterExtension} and adding to {@link extensions} array.
93
+ *
94
+ * **Debug:** Use `?debugusdz` URL parameter. Press 'T' to trigger export.
95
+ *
96
+ * @example Basic USDZ export
97
+ * ```ts
98
+ * const exporter = myObject.addComponent(USDZExporter);
99
+ * exporter.objectToExport = productModel;
100
+ * exporter.autoExportAnimations = true;
101
+ * exporter.interactive = true; // Enable QuickLook behaviors
102
+ *
103
+ * // Trigger export
104
+ * await exporter.exportAndOpen();
86
105
  * ```
87
- * @summary Export 3D objects as USDZ files for QuickLook
106
+ *
107
+ * @example Custom branding
108
+ * ```ts
109
+ * exporter.customBranding = {
110
+ * callToAction: "Buy Now",
111
+ * checkoutTitle: "Product Name",
112
+ * callToActionURL: "https://shop.example.com"
113
+ * };
114
+ * ```
115
+ *
116
+ * @summary Export 3D objects as USDZ files for Apple QuickLook AR
88
117
  * @category XR
89
118
  * @group Components
119
+ * @see {@link WebXR} for WebXR-based AR/VR
120
+ * @see {@link WebARSessionRoot} for AR placement and scaling
121
+ * @see {@link XRFlag} for AR-specific object visibility
122
+ * @see {@link CustomBranding} for QuickLook overlay customization
123
+ * @link https://engine.needle.tools/samples/?overlay=samples&tag=usdz
90
124
  */
91
125
  export class USDZExporter extends Behaviour {
92
126
 
@@ -24,11 +24,20 @@ const debugProgressiveLoading = getParam("debugprogressive");
24
24
 
25
25
  export type { Particle as QParticle, Behavior as QParticleBehaviour, TrailParticle as QTrailParticle } from "three.quarks"
26
26
 
27
+ /**
28
+ * Defines when a sub-emitter spawns particles relative to the parent particle's lifecycle.
29
+ * Used to create complex effects like explosions on impact or trails following particles.
30
+ */
27
31
  export enum SubEmitterType {
32
+ /** Sub-emitter triggers when the parent particle is born */
28
33
  Birth = 0,
34
+ /** Sub-emitter triggers when the parent particle collides */
29
35
  Collision = 1,
36
+ /** Sub-emitter triggers when the parent particle dies */
30
37
  Death = 2,
38
+ /** Sub-emitter triggers when the parent particle enters a trigger zone */
31
39
  Trigger = 3,
40
+ /** Sub-emitter is triggered manually via code */
32
41
  Manual = 4,
33
42
  }
34
43
 
@@ -274,9 +283,33 @@ class ParticleSystemEmissionOverDistance extends BaseValueGenerator {
274
283
  }
275
284
  }
276
285
 
286
+ /**
287
+ * Base class for custom particle behaviors. Extend this to create custom particle logic.
288
+ *
289
+ * Override `initialize()` to set up per-particle state when particles spawn.
290
+ * Override `update()` to modify particles each frame (position, velocity, color, size, etc.).
291
+ * Override `frameUpdate()` for logic that runs once per frame (not per particle).
292
+ *
293
+ * @example Custom wind effect
294
+ * ```ts
295
+ * class WindBehaviour extends ParticleSystemBaseBehaviour {
296
+ * windStrength = 2;
297
+ * windDirection = new Vector3(1, 0, 0);
298
+ *
299
+ * update(particle: Particle, delta: number) {
300
+ * particle.velocity.addScaledVector(this.windDirection, this.windStrength * delta);
301
+ * }
302
+ * }
303
+ * ```
304
+ *
305
+ * @see {@link ParticleSystem.addBehaviour} to register your custom behavior
306
+ * @link https://github.com/Alchemist0823/three.quarks
307
+ */
277
308
  export abstract class ParticleSystemBaseBehaviour implements Behavior {
278
309
 
310
+ /** Reference to the particle system this behavior belongs to */
279
311
  system!: ParticleSystem;
312
+ /** Access to the engine context for timing, input, etc. */
280
313
  get context() { return this.system.context; }
281
314
 
282
315
  constructor(ps?: ParticleSystem) {
@@ -285,13 +318,18 @@ export abstract class ParticleSystemBaseBehaviour implements Behavior {
285
318
  this.system = ps;
286
319
  }
287
320
 
321
+ /** Behavior type identifier used by three.quarks */
288
322
  type: string;
289
323
 
324
+ /** Called once when a particle is spawned. Use to initialize per-particle state. */
290
325
  initialize(_particle: Particle): void { }
326
+ /** Called every frame for each active particle. Use to update particle properties. */
291
327
  update(_particle: Particle, _delta: number): void { }
328
+ /** Called once per frame before particle updates. Use for shared calculations. */
292
329
  frameUpdate(_delta: number): void { }
293
330
  toJSON() { throw new Error("Method not implemented."); }
294
331
  clone(): Behavior { throw new Error("Method not implemented."); }
332
+ /** Called when the particle system is reset. */
295
333
  reset() { }
296
334
  }
297
335
 
@@ -686,15 +724,56 @@ class ParticlesEmissionState implements EmissionState {
686
724
  }
687
725
 
688
726
  /**
689
- * The ParticleSystem component efficiently handles the motion and rendering of many individual particles.
690
- *
691
- * You can add custom behaviours to the particle system to fully customize the behaviour of the particles. See {@link ParticleSystemBaseBehaviour} and {@link ParticleSystem.addBehaviour} for more information.
692
- *
693
- * Needle Engine uses [three.quarks](https://github.com/Alchemist0823/three.quarks) under the hood to handle particles.
727
+ * ParticleSystem efficiently handles the motion and rendering of many individual particles.
728
+ * Use it for visual effects like fire, smoke, sparks, rain, magic spells, and more.
694
729
  *
730
+ * ![](https://cloud.needle.tools/-/media/qz5nO-raa7dNb_XCBNxHmA.gif)
731
+ * ![](https://cloud.needle.tools/-/media/IKOrLhesy1dKTfQQxx_pLA.gif)
732
+ *
733
+ * **Modules:**
734
+ * Configure particle behavior through modules like {@link EmissionModule}, {@link ShapeModule},
735
+ * {@link ColorOverLifetimeModule}, {@link SizeOverLifetimeModule}, {@link VelocityOverLifetimeModule},
736
+ * {@link NoiseModule}, and {@link TrailModule}.
737
+ *
738
+ * **Custom behaviors:**
739
+ * Add custom particle behaviors by extending {@link ParticleSystemBaseBehaviour} and
740
+ * calling `addBehaviour()`. This gives you full control over particle initialization and updates.
741
+ *
742
+ * **Performance:**
743
+ * Particles are batched together for fast, performant rendering even on low-end devices.
744
+ * Needle Engine uses [three.quarks](https://github.com/Alchemist0823/three.quarks) internally.
745
+ *
746
+ * @example Basic playback control
747
+ * ```ts
748
+ * const ps = myObject.getComponent(ParticleSystem);
749
+ * ps.play();
750
+ * ps.emit(10); // Emit 10 particles immediately
751
+ * ps.pause();
752
+ * ps.stop(true, true); // Stop and clear all particles
753
+ * ```
754
+ *
755
+ * @example Custom particle behavior
756
+ * ```ts
757
+ * class GravityBehaviour extends ParticleSystemBaseBehaviour {
758
+ * update(particle: Particle, delta: number) {
759
+ * particle.velocity.y -= 9.8 * delta;
760
+ * }
761
+ * }
762
+ * particleSystem.addBehaviour(new GravityBehaviour());
763
+ * ```
764
+ *
765
+ * - Example: https://engine.needle.tools/samples/particles
766
+ * - Example: https://engine.needle.tools/samples/particle-bursts
767
+ * - Example: https://engine.needle.tools/samples/particles-on-collision
768
+ *
695
769
  * @summary Handles the motion and rendering of many individual particles
696
770
  * @category Rendering
697
771
  * @group Components
772
+ * @see {@link ParticleSystemBaseBehaviour} for custom particle behaviors
773
+ * @see {@link EmissionModule} for emission configuration
774
+ * @see {@link ShapeModule} for emission shape control
775
+ * @see {@link TrailModule} for particle trails
776
+ * @link https://engine.needle.tools/docs/features/particles.html
698
777
  */
699
778
  export class ParticleSystem extends Behaviour implements IParticleSystem {
700
779
 
@@ -17,6 +17,7 @@ export enum QualityLevel {
17
17
  }
18
18
 
19
19
  /**
20
+ * [Antialiasing](https://engine.needle.tools/docs/api/Antialiasing) provides SMAA (Subpixel Morphological Antialiasing) post-processing effect to smooth edges in the rendered scene.
20
21
  * @category Effects
21
22
  * @group Components
22
23
  */
@@ -8,7 +8,7 @@ import { VolumeParameter } from "../VolumeParameter.js";
8
8
  import { registerCustomEffectType } from "../VolumeProfile.js";
9
9
 
10
10
  /**
11
- * Bloom can be used to make bright areas in the scene glow.
11
+ * [BloomEffect](https://engine.needle.tools/docs/api/BloomEffect) can be used to make bright areas in the scene glow.
12
12
  * @link Sample https://engine.needle.tools/samples/postprocessing
13
13
  * @example
14
14
  * ```typescript
@@ -7,7 +7,7 @@ import { VolumeParameter } from "../VolumeParameter.js";
7
7
  import { registerCustomEffectType, VolumeProfile } from "../VolumeProfile.js";
8
8
 
9
9
  /**
10
- * Chromatic Aberration effect simulates the color fringing effect seen in real-world cameras.
10
+ * [ChromaticAberration](https://engine.needle.tools/docs/api/ChromaticAberration) simulates the color fringing effect seen in real-world cameras.
11
11
  * It offsets the red, green, and blue color channels to create a distorted, colorful edge around objects.
12
12
  * This effect can enhance the visual appeal of scenes by adding a subtle or pronounced chromatic distortion.
13
13
  * @summary Chromatic Aberration Post-Processing Effect
@@ -8,7 +8,7 @@ import { registerCustomEffectType } from "../VolumeProfile.js";
8
8
  import { ToneMappingEffect } from "./Tonemapping.js";
9
9
 
10
10
  /**
11
- * Color Adjustments effect allows you to modify the overall color properties of the rendered scene, including post-exposure, contrast, hue shift, and saturation.
11
+ * [ColorAdjustments](https://engine.needle.tools/docs/api/ColorAdjustments) allows you to modify the overall color properties of the rendered scene, including post-exposure, contrast, hue shift, and saturation.
12
12
  * These adjustments can be used to enhance the visual aesthetics of the scene or to achieve specific artistic effects.
13
13
  * @summary Color Adjustments Post-Processing Effect
14
14
  * @category Effects
@@ -17,7 +17,7 @@ export enum DepthOfFieldMode {
17
17
  const debug = getParam("debugpost");
18
18
 
19
19
  /**
20
- * Depth of Field effect simulates the focusing behavior of real-world cameras by blurring objects that are outside the focal plane.
20
+ * [DepthOfField](https://engine.needle.tools/docs/api/DepthOfField) simulates the focusing behavior of real-world cameras by blurring objects that are outside the focal plane.
21
21
  * This effect enhances the sense of depth in a scene by mimicking how cameras focus on subjects at varying distances, creating a more immersive visual experience.
22
22
  * It can be adjusted to achieve different artistic effects, from subtle background blurring to pronounced bokeh effects.
23
23
  * @summary Depth of Field Post-Processing Effect
@@ -3,6 +3,7 @@ import type { Effect } from "postprocessing";
3
3
  import { EffectProviderResult, PostProcessingEffect } from "../PostProcessingEffect.js";
4
4
 
5
5
  /**
6
+ * [EffectWrapper](https://engine.needle.tools/docs/api/EffectWrapper) wraps a custom postprocessing effect to integrate it with the Needle Engine post-processing pipeline.
6
7
  *
7
8
  * @category Effects
8
9
  * @group Components
@@ -7,7 +7,7 @@ import { VolumeParameter } from "../VolumeParameter.js";
7
7
  import { registerCustomEffectType } from "../VolumeProfile.js";
8
8
 
9
9
  /**
10
- * Pixelation effect simulates a pixelated look by enlarging pixels in the rendered scene.
10
+ * [PixelationEffect](https://engine.needle.tools/docs/api/PixelationEffect) Pixelation effect simulates a pixelated look by enlarging pixels in the rendered scene.
11
11
  * This effect can be used to achieve a retro or stylized visual aesthetic, reminiscent of early video games or low-resolution graphics.
12
12
  * @summary Pixelation Post-Processing Effect
13
13
  * @category Effects
@@ -7,7 +7,7 @@ import { type EffectProviderResult, PostProcessingEffect } from "../PostProcessi
7
7
  import { VolumeParameter } from "../VolumeParameter.js";
8
8
  import { registerCustomEffectType } from "../VolumeProfile.js";
9
9
 
10
- /** Screenspace Ambient Occlusion post-processing effect.
10
+ /** [ScreenSpaceAmbientOcclusion](https://engine.needle.tools/docs/api/ScreenSpaceAmbientOcclusion) is a screenspace ambient occlusion post-processing effect.
11
11
  * We recommend using ScreenSpaceAmbientOcclusionN8 instead.
12
12
  * @category Effects
13
13
  * @group Components
@@ -22,7 +22,7 @@ export enum ScreenSpaceAmbientOcclusionN8QualityMode {
22
22
  Ultra = 4,
23
23
  }
24
24
 
25
- /** Screen Space Ambient Occlusion (SSAO) effect.
25
+ /** [ScreenSpaceAmbientOcclusionN8](https://engine.needle.tools/docs/api/ScreenSpaceAmbientOcclusionN8) is a screen space ambient occlusion (SSAO) effect.
26
26
  * Ambient Occlusion is a shading method used to calculate how exposed each point in a scene is to ambient lighting.
27
27
  * The effect enhances the depth and realism of 3D scenes by simulating the soft shadows that occur in crevices, corners, and areas where objects are close to each other.
28
28
  * This implementation uses the N8AO library to provide high-quality SSAO with various quality settings.
@@ -14,7 +14,7 @@ import { PostProcessingEffectOrder } from "../utils.js";
14
14
  // }
15
15
 
16
16
  /**
17
- * Sharpening effect enhances the details and edges in the rendered scene by increasing the contrast between adjacent pixels.
17
+ * [SharpeningEffect](https://engine.needle.tools/docs/api/SharpeningEffect) Sharpening effect enhances the details and edges in the rendered scene by increasing the contrast between adjacent pixels.
18
18
  * This effect can make textures and fine details appear clearer and more defined, improving the overall visual quality of the scene.
19
19
  * It is particularly useful in scenes where details may be lost due to blurriness or low resolution.
20
20
  * @summary Sharpening Post-Processing Effect
@@ -5,7 +5,7 @@ import { VolumeParameter } from "../VolumeParameter.js";
5
5
  import { registerCustomEffectType } from "../VolumeProfile.js";
6
6
 
7
7
  /**
8
- * Tilt Shift effect simulates a miniature scene by applying a selective focus blur to the rendered image.
8
+ * [TiltShiftEffect](https://engine.needle.tools/docs/api/TiltShiftEffect) Tilt Shift effect simulates a miniature scene by applying a selective focus blur to the rendered image.
9
9
  * This effect creates a shallow depth of field, making real-world scenes appear as if they are small-scale models.
10
10
  * It is often used in photography and cinematography to draw attention to specific areas of the scene while blurring out the rest.
11
11
  * @summary Tilt Shift Post-Processing Effect
@@ -14,7 +14,7 @@ const debug = getParam("debugpost");
14
14
 
15
15
 
16
16
  /**
17
- * Tonemapping effect adjusts the brightness and contrast of the rendered scene to map high dynamic range (HDR) colors to a displayable range.
17
+ * [ToneMappingEffect](https://engine.needle.tools/docs/api/ToneMappingEffect) adjusts the brightness and contrast of the rendered scene to map high dynamic range (HDR) colors to a displayable range.
18
18
  * This effect is essential for achieving realistic lighting and color representation in 3D scenes, as it helps to preserve details in both bright and dark areas.
19
19
  * Various tonemapping algorithms can be applied to achieve different visual styles and effects.
20
20
  * @summary Tonemapping Post-Processing Effect
@@ -7,7 +7,7 @@ import { VolumeParameter } from "../VolumeParameter.js";
7
7
  import { registerCustomEffectType } from "../VolumeProfile.js";
8
8
 
9
9
  /**
10
- * Vignette effect darkens the edges of the rendered scene to draw attention to the center.
10
+ * [Vignette](https://engine.needle.tools/docs/api/Vignette) darkens the edges of the rendered scene to draw attention to the center.
11
11
  * This effect simulates the natural vignetting that occurs in photography and cinematography, where the corners of an image are darker than the center.
12
12
  * It can be used to enhance the visual focus on the main subject of the scene and create a more immersive viewing experience.
13
13
  * @summary Vignette Post-Processing Effect
@@ -24,7 +24,7 @@ const autoclearSetting = Symbol("needle:previous-autoclear-state");
24
24
  const previousToneMapping = Symbol("needle:previous-tone-mapping");
25
25
 
26
26
  /**
27
- * PostProcessingHandler is responsible for applying post processing effects to the scene. It is internally used by the {@link Volume} component
27
+ * [PostProcessingHandler](https://engine.needle.tools/docs/api/PostProcessingHandler) Is responsible for applying post processing effects to the scene. It is internally used by the {@link Volume} component
28
28
  */
29
29
  export class PostProcessingHandler {
30
30
 
@@ -16,7 +16,7 @@ import { VolumeProfile } from "./VolumeProfile.js";
16
16
  const debug = getParam("debugpost");
17
17
 
18
18
 
19
- /** The Volume/PostprocessingManager component is responsible for managing post processing effects.
19
+ /** [Volume](https://engine.needle.tools/docs/api/Volume) The Volume/PostprocessingManager component is responsible for managing post processing effects.
20
20
  * Add this component to any object in your scene to enable post processing effects.
21
21
  *
22
22
  * @example Add bloom