velo-plot 1.11.1

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 (370) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +119 -0
  3. package/dist/EventEmitter-DAbs2K1C.js +60 -0
  4. package/dist/EventEmitter-DAbs2K1C.js.map +1 -0
  5. package/dist/core/Chart.d.ts +15 -0
  6. package/dist/core/ChartControls.d.ts +41 -0
  7. package/dist/core/ChartInitQueue.d.ts +50 -0
  8. package/dist/core/ChartLegend.d.ts +74 -0
  9. package/dist/core/ChartStatistics.d.ts +18 -0
  10. package/dist/core/EventEmitter.d.ts +30 -0
  11. package/dist/core/InteractionManager.d.ts +96 -0
  12. package/dist/core/OverlayRenderer.d.ts +89 -0
  13. package/dist/core/Series.d.ts +4 -0
  14. package/dist/core/animation/AnimationEngine.d.ts +156 -0
  15. package/dist/core/animation/index.d.ts +6 -0
  16. package/dist/core/annotations/AnnotationManager.d.ts +61 -0
  17. package/dist/core/annotations/index.d.ts +5 -0
  18. package/dist/core/annotations/types.d.ts +159 -0
  19. package/dist/core/chart/ChartAnimatedNavigation.d.ts +53 -0
  20. package/dist/core/chart/ChartAxisManager.d.ts +61 -0
  21. package/dist/core/chart/ChartCore.d.ts +336 -0
  22. package/dist/core/chart/ChartExporter.d.ts +18 -0
  23. package/dist/core/chart/ChartNavigation.d.ts +33 -0
  24. package/dist/core/chart/ChartPluginBridge.d.ts +34 -0
  25. package/dist/core/chart/ChartRenderLoop.d.ts +100 -0
  26. package/dist/core/chart/ChartRenderer.d.ts +52 -0
  27. package/dist/core/chart/ChartScaling.d.ts +31 -0
  28. package/dist/core/chart/ChartSeries.d.ts +4 -0
  29. package/dist/core/chart/ChartSetup.d.ts +67 -0
  30. package/dist/core/chart/ChartStateManager.d.ts +54 -0
  31. package/dist/core/chart/ChartUI.d.ts +40 -0
  32. package/dist/core/chart/exporter/SVGExporter.d.ts +6 -0
  33. package/dist/core/chart/exporter/index.d.ts +5 -0
  34. package/dist/core/chart/index.d.ts +14 -0
  35. package/dist/core/chart/series/SeriesActions.d.ts +7 -0
  36. package/dist/core/chart/series/SeriesBuffer.d.ts +4 -0
  37. package/dist/core/chart/series/index.d.ts +6 -0
  38. package/dist/core/chart/series/types.d.ts +22 -0
  39. package/dist/core/chart/types.d.ts +188 -0
  40. package/dist/core/clipboard/index.d.ts +137 -0
  41. package/dist/core/debug/index.d.ts +143 -0
  42. package/dist/core/index.d.ts +17 -0
  43. package/dist/core/keybindings/index.d.ts +157 -0
  44. package/dist/core/layout/index.d.ts +12 -0
  45. package/dist/core/layout/types.d.ts +165 -0
  46. package/dist/core/loading/index.d.ts +104 -0
  47. package/dist/core/locale/index.d.ts +91 -0
  48. package/dist/core/responsive/ResponsiveManager.d.ts +133 -0
  49. package/dist/core/responsive/index.d.ts +4 -0
  50. package/dist/core/selection/SelectionManager.d.ts +165 -0
  51. package/dist/core/selection/index.d.ts +4 -0
  52. package/dist/core/series/Series.d.ts +73 -0
  53. package/dist/core/series/SeriesBounds.d.ts +3 -0
  54. package/dist/core/series/SeriesDataUtils.d.ts +7 -0
  55. package/dist/core/series/index.d.ts +6 -0
  56. package/dist/core/sync/index.d.ts +147 -0
  57. package/dist/core/theme-editor/index.d.ts +122 -0
  58. package/dist/examples/PluginDemonstration.d.ts +20 -0
  59. package/dist/examples.d.ts +25 -0
  60. package/dist/gpu/adapter/gpuRenderer.d.ts +135 -0
  61. package/dist/gpu/adapter/index.d.ts +7 -0
  62. package/dist/gpu/adapter/seriesAdapter.d.ts +88 -0
  63. package/dist/gpu/backends/webgl/WebGLBackend.d.ts +42 -0
  64. package/dist/gpu/backends/webgl/index.d.ts +5 -0
  65. package/dist/gpu/backends/webgl/programFactory.d.ts +30 -0
  66. package/dist/gpu/backends/webgl/shaders.d.ts +14 -0
  67. package/dist/gpu/backends/webgpu/MassiveDataRenderer.d.ts +111 -0
  68. package/dist/gpu/backends/webgpu/WebGPUBackend.d.ts +58 -0
  69. package/dist/gpu/backends/webgpu/pipelines/bandPipeline.d.ts +24 -0
  70. package/dist/gpu/backends/webgpu/pipelines/heatmapPipeline.d.ts +28 -0
  71. package/dist/gpu/backends/webgpu/pipelines/index.d.ts +10 -0
  72. package/dist/gpu/backends/webgpu/pipelines/instancedLinePipeline.d.ts +23 -0
  73. package/dist/gpu/backends/webgpu/pipelines/instancedPointPipeline.d.ts +25 -0
  74. package/dist/gpu/backends/webgpu/pipelines/linePipeline.d.ts +23 -0
  75. package/dist/gpu/backends/webgpu/pipelines/pointPipeline.d.ts +28 -0
  76. package/dist/gpu/backends/webgpu/pipelines/trianglePipeline.d.ts +5 -0
  77. package/dist/gpu/backends/webgpu/pipelines/triangleShader.d.ts +1 -0
  78. package/dist/gpu/backends/webgpu/shaders/heatmap.wgsl.d.ts +8 -0
  79. package/dist/gpu/backends/webgpu/shaders/index.d.ts +8 -0
  80. package/dist/gpu/backends/webgpu/shaders/instanced.wgsl.d.ts +16 -0
  81. package/dist/gpu/backends/webgpu/shaders/line.wgsl.d.ts +8 -0
  82. package/dist/gpu/backends/webgpu/shaders/point.wgsl.d.ts +9 -0
  83. package/dist/gpu/benchmark/benchmark.d.ts +74 -0
  84. package/dist/gpu/benchmark/index.d.ts +5 -0
  85. package/dist/gpu/compute/gpuCompute.d.ts +72 -0
  86. package/dist/gpu/compute/index.d.ts +6 -0
  87. package/dist/gpu/compute/shaders.d.ts +9 -0
  88. package/dist/gpu/drawList.d.ts +77 -0
  89. package/dist/gpu/examples/gallery.d.ts +20 -0
  90. package/dist/gpu/examples/index.d.ts +3 -0
  91. package/dist/gpu/examples/webgpu-line-demo.d.ts +8 -0
  92. package/dist/gpu/examples/webgpu-triangle.d.ts +1 -0
  93. package/dist/gpu/frame.d.ts +25 -0
  94. package/dist/gpu/index.d.ts +24 -0
  95. package/dist/gpu/resources/bufferStore.d.ts +40 -0
  96. package/dist/gpu/resources/index.d.ts +9 -0
  97. package/dist/gpu/resources/pipelineCache.d.ts +33 -0
  98. package/dist/gpu/resources/textureStore.d.ts +41 -0
  99. package/dist/gpu/types.d.ts +47 -0
  100. package/dist/index-BMiZoKmm.js +536 -0
  101. package/dist/index-BMiZoKmm.js.map +1 -0
  102. package/dist/index-Ce2JgkH_.js +282 -0
  103. package/dist/index-Ce2JgkH_.js.map +1 -0
  104. package/dist/index-D8ifudJH.js +2431 -0
  105. package/dist/index-D8ifudJH.js.map +1 -0
  106. package/dist/index-Dag88bW4.js +499 -0
  107. package/dist/index-Dag88bW4.js.map +1 -0
  108. package/dist/index-qhscKTDy.js +309 -0
  109. package/dist/index-qhscKTDy.js.map +1 -0
  110. package/dist/index-x4stH3jD.js +282 -0
  111. package/dist/index-x4stH3jD.js.map +1 -0
  112. package/dist/index.core-CYu3tydL.js +7252 -0
  113. package/dist/index.core-CYu3tydL.js.map +1 -0
  114. package/dist/index.core.d.ts +20 -0
  115. package/dist/index.d.ts +51 -0
  116. package/dist/overlay/CanvasOverlay.d.ts +102 -0
  117. package/dist/overlay/index.d.ts +4 -0
  118. package/dist/plugins/3d/Area3DRenderer.d.ts +122 -0
  119. package/dist/plugins/3d/Axes3D.d.ts +104 -0
  120. package/dist/plugins/3d/Bubble3DRenderer.d.ts +198 -0
  121. package/dist/plugins/3d/Impulse3DRenderer.d.ts +130 -0
  122. package/dist/plugins/3d/Line3DRenderer.d.ts +118 -0
  123. package/dist/plugins/3d/PointCloud3DRenderer.d.ts +84 -0
  124. package/dist/plugins/3d/Raycaster3D.d.ts +137 -0
  125. package/dist/plugins/3d/Ribbon3DRenderer.d.ts +83 -0
  126. package/dist/plugins/3d/SurfaceBar3DRenderer.d.ts +92 -0
  127. package/dist/plugins/3d/SurfaceMesh3DRenderer.d.ts +130 -0
  128. package/dist/plugins/3d/Tooltip3D.d.ts +71 -0
  129. package/dist/plugins/3d/VectorField3DRenderer.d.ts +86 -0
  130. package/dist/plugins/3d/Voxel3DRenderer.d.ts +89 -0
  131. package/dist/plugins/3d/Waterfall3DRenderer.d.ts +94 -0
  132. package/dist/plugins/3d/camera/OrbitCamera.d.ts +99 -0
  133. package/dist/plugins/3d/camera/index.d.ts +1 -0
  134. package/dist/plugins/3d/colorThemes.d.ts +39 -0
  135. package/dist/plugins/3d/controls/OrbitController.d.ts +69 -0
  136. package/dist/plugins/3d/controls/index.d.ts +1 -0
  137. package/dist/plugins/3d/index.d.ts +50 -0
  138. package/dist/plugins/3d/math/Mat4.d.ts +33 -0
  139. package/dist/plugins/3d/math/Vec3.d.ts +37 -0
  140. package/dist/plugins/3d/math/index.d.ts +4 -0
  141. package/dist/plugins/3d/mesh/InstancedMesh.d.ts +42 -0
  142. package/dist/plugins/3d/mesh/geometry.d.ts +34 -0
  143. package/dist/plugins/3d/mesh/index.d.ts +2 -0
  144. package/dist/plugins/3d/series/Area3D.d.ts +17 -0
  145. package/dist/plugins/3d/series/Column3D.d.ts +20 -0
  146. package/dist/plugins/3d/series/Heatmap3D.d.ts +17 -0
  147. package/dist/plugins/3d/series/Impulse3D.d.ts +16 -0
  148. package/dist/plugins/3d/series/PointLine3D.d.ts +20 -0
  149. package/dist/plugins/3d/series/Ribbon3D.d.ts +17 -0
  150. package/dist/plugins/3d/series/Scatter3D.d.ts +21 -0
  151. package/dist/plugins/3d/series/SurfaceMesh3D.d.ts +35 -0
  152. package/dist/plugins/3d/series/Waterfall3D.d.ts +38 -0
  153. package/dist/plugins/3d/series/index.d.ts +13 -0
  154. package/dist/plugins/3d/series/types.d.ts +143 -0
  155. package/dist/plugins/3d/shader/index.d.ts +2 -0
  156. package/dist/plugins/3d/shader/programs.d.ts +24 -0
  157. package/dist/plugins/3d/shader/sources.d.ts +27 -0
  158. package/dist/plugins/3d/types.d.ts +71 -0
  159. package/dist/plugins/3d.d.ts +3 -0
  160. package/dist/plugins/3d.js +5498 -0
  161. package/dist/plugins/3d.js.map +1 -0
  162. package/dist/plugins/PluginContext.d.ts +53 -0
  163. package/dist/plugins/PluginManager.d.ts +129 -0
  164. package/dist/plugins/PluginRegistry.d.ts +38 -0
  165. package/dist/plugins/analysis/SeriesFit.d.ts +3 -0
  166. package/dist/plugins/analysis/contours.d.ts +20 -0
  167. package/dist/plugins/analysis/fft.d.ts +138 -0
  168. package/dist/plugins/analysis/filters.d.ts +76 -0
  169. package/dist/plugins/analysis/fitting.d.ts +24 -0
  170. package/dist/plugins/analysis/index.d.ts +29 -0
  171. package/dist/plugins/analysis/indicators.d.ts +148 -0
  172. package/dist/plugins/analysis/math.d.ts +32 -0
  173. package/dist/plugins/analysis/statistics.d.ts +78 -0
  174. package/dist/plugins/analysis/utils.d.ts +150 -0
  175. package/dist/plugins/analysis.d.ts +3 -0
  176. package/dist/plugins/analysis.js +1202 -0
  177. package/dist/plugins/analysis.js.map +1 -0
  178. package/dist/plugins/annotations/index.d.ts +16 -0
  179. package/dist/plugins/annotations.d.ts +3 -0
  180. package/dist/plugins/annotations.js +438 -0
  181. package/dist/plugins/annotations.js.map +1 -0
  182. package/dist/plugins/anomaly-detection/algorithms.d.ts +38 -0
  183. package/dist/plugins/anomaly-detection/index.d.ts +16 -0
  184. package/dist/plugins/anomaly-detection/types.d.ts +57 -0
  185. package/dist/plugins/broken-axis/BrokenAxisScale.d.ts +24 -0
  186. package/dist/plugins/broken-axis/exports.d.ts +6 -0
  187. package/dist/plugins/broken-axis/index.d.ts +6 -0
  188. package/dist/plugins/broken-axis/types.d.ts +50 -0
  189. package/dist/plugins/builtins/crosshair/CrosshairPlugin.d.ts +40 -0
  190. package/dist/plugins/builtins/crosshair/index.d.ts +1 -0
  191. package/dist/plugins/builtins/data-logger/DataLoggerPlugin.d.ts +11 -0
  192. package/dist/plugins/builtins/data-logger/index.d.ts +1 -0
  193. package/dist/plugins/builtins/direction-indicator/DirectionIndicatorPlugin.d.ts +17 -0
  194. package/dist/plugins/builtins/direction-indicator/index.d.ts +2 -0
  195. package/dist/plugins/builtins/grid-highlight/GridHighlightPlugin.d.ts +17 -0
  196. package/dist/plugins/builtins/grid-highlight/index.d.ts +1 -0
  197. package/dist/plugins/builtins/index.d.ts +25 -0
  198. package/dist/plugins/builtins/stats/StatsPlugin.d.ts +11 -0
  199. package/dist/plugins/builtins/stats/index.d.ts +1 -0
  200. package/dist/plugins/builtins/watermark/WatermarkPlugin.d.ts +15 -0
  201. package/dist/plugins/builtins/watermark/index.d.ts +1 -0
  202. package/dist/plugins/caching/exports.d.ts +6 -0
  203. package/dist/plugins/caching/index.d.ts +6 -0
  204. package/dist/plugins/caching/types.d.ts +120 -0
  205. package/dist/plugins/clipboard/index.d.ts +20 -0
  206. package/dist/plugins/clipboard.d.ts +3 -0
  207. package/dist/plugins/clipboard.js +270 -0
  208. package/dist/plugins/clipboard.js.map +1 -0
  209. package/dist/plugins/context-menu/index.d.ts +12 -0
  210. package/dist/plugins/context-menu/renderer.d.ts +43 -0
  211. package/dist/plugins/context-menu/types.d.ts +202 -0
  212. package/dist/plugins/context-menu.d.ts +3 -0
  213. package/dist/plugins/context-menu.js +621 -0
  214. package/dist/plugins/context-menu.js.map +1 -0
  215. package/dist/plugins/data-export/formatters.d.ts +34 -0
  216. package/dist/plugins/data-export/index.d.ts +15 -0
  217. package/dist/plugins/data-export/types.d.ts +166 -0
  218. package/dist/plugins/data-export.d.ts +3 -0
  219. package/dist/plugins/data-export.js +463 -0
  220. package/dist/plugins/data-export.js.map +1 -0
  221. package/dist/plugins/data-transform/index.d.ts +6 -0
  222. package/dist/plugins/data-transform/types.d.ts +34 -0
  223. package/dist/plugins/debug/index.d.ts +24 -0
  224. package/dist/plugins/debug.d.ts +3 -0
  225. package/dist/plugins/debug.js +330 -0
  226. package/dist/plugins/debug.js.map +1 -0
  227. package/dist/plugins/drag-edit/exports.d.ts +6 -0
  228. package/dist/plugins/drag-edit/index.d.ts +6 -0
  229. package/dist/plugins/drag-edit/types.d.ts +118 -0
  230. package/dist/plugins/forecasting/algorithms.d.ts +6 -0
  231. package/dist/plugins/forecasting/exports.d.ts +3 -0
  232. package/dist/plugins/forecasting/index.d.ts +11 -0
  233. package/dist/plugins/forecasting/types.d.ts +88 -0
  234. package/dist/plugins/gpu/index.d.ts +24 -0
  235. package/dist/plugins/gpu.d.ts +3 -0
  236. package/dist/plugins/gpu.js +2430 -0
  237. package/dist/plugins/gpu.js.map +1 -0
  238. package/dist/plugins/i18n/index.d.ts +22 -0
  239. package/dist/plugins/i18n.d.ts +3 -0
  240. package/dist/plugins/i18n.js +37 -0
  241. package/dist/plugins/i18n.js.map +1 -0
  242. package/dist/plugins/index.d.ts +110 -0
  243. package/dist/plugins/keyboard/index.d.ts +15 -0
  244. package/dist/plugins/keyboard.d.ts +3 -0
  245. package/dist/plugins/keyboard.js +8 -0
  246. package/dist/plugins/keyboard.js.map +1 -0
  247. package/dist/plugins/latex/exports.d.ts +6 -0
  248. package/dist/plugins/latex/index.d.ts +8 -0
  249. package/dist/plugins/latex/parser.d.ts +6 -0
  250. package/dist/plugins/latex/renderer.d.ts +6 -0
  251. package/dist/plugins/latex/symbols.d.ts +28 -0
  252. package/dist/plugins/latex/types.d.ts +88 -0
  253. package/dist/plugins/lazy-load/exports.d.ts +6 -0
  254. package/dist/plugins/lazy-load/index.d.ts +6 -0
  255. package/dist/plugins/lazy-load/types.d.ts +121 -0
  256. package/dist/plugins/loading/index.d.ts +15 -0
  257. package/dist/plugins/loading.d.ts +3 -0
  258. package/dist/plugins/loading.js +7 -0
  259. package/dist/plugins/loading.js.map +1 -0
  260. package/dist/plugins/ml-integration/exports.d.ts +11 -0
  261. package/dist/plugins/ml-integration/index.d.ts +6 -0
  262. package/dist/plugins/ml-integration/native-algorithms.d.ts +69 -0
  263. package/dist/plugins/ml-integration/types.d.ts +74 -0
  264. package/dist/plugins/offscreen/exports.d.ts +6 -0
  265. package/dist/plugins/offscreen/index.d.ts +6 -0
  266. package/dist/plugins/offscreen/pool.d.ts +32 -0
  267. package/dist/plugins/offscreen/types.d.ts +35 -0
  268. package/dist/plugins/pattern-recognition/index.d.ts +6 -0
  269. package/dist/plugins/pattern-recognition/patterns.d.ts +3 -0
  270. package/dist/plugins/pattern-recognition/types.d.ts +245 -0
  271. package/dist/plugins/radar/index.d.ts +6 -0
  272. package/dist/plugins/radar/types.d.ts +40 -0
  273. package/dist/plugins/regression/algorithms.d.ts +6 -0
  274. package/dist/plugins/regression/index.d.ts +6 -0
  275. package/dist/plugins/regression/types.d.ts +261 -0
  276. package/dist/plugins/roi/exports.d.ts +6 -0
  277. package/dist/plugins/roi/index.d.ts +49 -0
  278. package/dist/plugins/roi/types.d.ts +60 -0
  279. package/dist/plugins/snapshot/index.d.ts +11 -0
  280. package/dist/plugins/snapshot/types.d.ts +38 -0
  281. package/dist/plugins/streaming/index.d.ts +32 -0
  282. package/dist/plugins/streaming.d.ts +3 -0
  283. package/dist/plugins/streaming.js +13 -0
  284. package/dist/plugins/streaming.js.map +1 -0
  285. package/dist/plugins/sync/index.d.ts +22 -0
  286. package/dist/plugins/sync.d.ts +3 -0
  287. package/dist/plugins/sync.js +261 -0
  288. package/dist/plugins/sync.js.map +1 -0
  289. package/dist/plugins/theme-editor/index.d.ts +18 -0
  290. package/dist/plugins/theme-editor.d.ts +3 -0
  291. package/dist/plugins/theme-editor.js +7 -0
  292. package/dist/plugins/theme-editor.js.map +1 -0
  293. package/dist/plugins/tools/delta-tool/index.d.ts +159 -0
  294. package/dist/plugins/tools/index.d.ts +21 -0
  295. package/dist/plugins/tools/peak-tool/index.d.ts +159 -0
  296. package/dist/plugins/tools/tooltip/TooltipManager.d.ts +213 -0
  297. package/dist/plugins/tools/tooltip/TooltipPositioner.d.ts +83 -0
  298. package/dist/plugins/tools/tooltip/TooltipRenderer.d.ts +64 -0
  299. package/dist/plugins/tools/tooltip/index.d.ts +18 -0
  300. package/dist/plugins/tools/tooltip/templates/AnnotationTemplate.d.ts +18 -0
  301. package/dist/plugins/tools/tooltip/templates/CrosshairTemplate.d.ts +39 -0
  302. package/dist/plugins/tools/tooltip/templates/DefaultTemplate.d.ts +30 -0
  303. package/dist/plugins/tools/tooltip/templates/HeatmapTemplate.d.ts +34 -0
  304. package/dist/plugins/tools/tooltip/templates/MinimalTemplate.d.ts +26 -0
  305. package/dist/plugins/tools/tooltip/templates/RangeTemplate.d.ts +18 -0
  306. package/dist/plugins/tools/tooltip/templates/ScientificTemplate.d.ts +34 -0
  307. package/dist/plugins/tools/tooltip/templates/index.d.ts +27 -0
  308. package/dist/plugins/tools/tooltip/themes.d.ts +48 -0
  309. package/dist/plugins/tools/tooltip/types.d.ts +396 -0
  310. package/dist/plugins/tools.d.ts +3 -0
  311. package/dist/plugins/tools.js +9 -0
  312. package/dist/plugins/tools.js.map +1 -0
  313. package/dist/plugins/types.d.ts +451 -0
  314. package/dist/plugins/video-recorder/exports.d.ts +6 -0
  315. package/dist/plugins/video-recorder/index.d.ts +6 -0
  316. package/dist/plugins/video-recorder/types.d.ts +55 -0
  317. package/dist/plugins/virtualization/exports.d.ts +6 -0
  318. package/dist/plugins/virtualization/index.d.ts +6 -0
  319. package/dist/plugins/virtualization/types.d.ts +48 -0
  320. package/dist/react/SciPlot.d.ts +60 -0
  321. package/dist/react/index.d.ts +5 -0
  322. package/dist/react/useSciPlot.d.ts +56 -0
  323. package/dist/renderer/BarRenderer.d.ts +14 -0
  324. package/dist/renderer/CandlestickRenderer.d.ts +12 -0
  325. package/dist/renderer/GaugeRenderer.d.ts +3 -0
  326. package/dist/renderer/HeatmapRenderer.d.ts +15 -0
  327. package/dist/renderer/NativeWebGLRenderer.d.ts +16 -0
  328. package/dist/renderer/PolarRenderer.d.ts +64 -0
  329. package/dist/renderer/RendererInterface.d.ts +70 -0
  330. package/dist/renderer/SankeyRenderer.d.ts +3 -0
  331. package/dist/renderer/WebGPURenderer.d.ts +16 -0
  332. package/dist/renderer/index.d.ts +13 -0
  333. package/dist/renderer/native/NativeWebGLRenderer.d.ts +31 -0
  334. package/dist/renderer/native/bufferStore.d.ts +11 -0
  335. package/dist/renderer/native/draw.d.ts +47 -0
  336. package/dist/renderer/native/programFactory.d.ts +3 -0
  337. package/dist/renderer/native/renderFrame.d.ts +3 -0
  338. package/dist/renderer/native/shaderSources.d.ts +6 -0
  339. package/dist/renderer/native/textureStore.d.ts +8 -0
  340. package/dist/renderer/native/types.d.ts +77 -0
  341. package/dist/renderer/native/utils.d.ts +31 -0
  342. package/dist/renderer/radar/RadarRenderer.d.ts +71 -0
  343. package/dist/renderer/radar/index.d.ts +10 -0
  344. package/dist/renderer/shaders.d.ts +77 -0
  345. package/dist/renderer/ternary/TernaryRenderer.d.ts +39 -0
  346. package/dist/renderer/ternary/index.d.ts +6 -0
  347. package/dist/renderer/ternary/types.d.ts +56 -0
  348. package/dist/scales/index.d.ts +54 -0
  349. package/dist/serialization/index.d.ts +153 -0
  350. package/dist/streaming/backpressure.d.ts +179 -0
  351. package/dist/streaming/index.d.ts +7 -0
  352. package/dist/streaming/mock.d.ts +12 -0
  353. package/dist/streaming/types.d.ts +57 -0
  354. package/dist/streaming/utils.d.ts +19 -0
  355. package/dist/streaming/websocket.d.ts +6 -0
  356. package/dist/testing/index.d.ts +225 -0
  357. package/dist/theme/colorSchemes.d.ts +56 -0
  358. package/dist/theme/index.d.ts +138 -0
  359. package/dist/types.d.ts +753 -0
  360. package/dist/utils-Dbro9-qM.js +254 -0
  361. package/dist/utils-Dbro9-qM.js.map +1 -0
  362. package/dist/velo-plot.d.ts +1 -0
  363. package/dist/velo-plot.full.d.ts +1 -0
  364. package/dist/velo-plot.full.js +5804 -0
  365. package/dist/velo-plot.full.js.map +1 -0
  366. package/dist/velo-plot.js +31 -0
  367. package/dist/velo-plot.js.map +1 -0
  368. package/dist/workers/downsample.d.ts +34 -0
  369. package/dist/workers/downsample.worker.d.ts +46 -0
  370. package/package.json +185 -0
@@ -0,0 +1,50 @@
1
+ import { ChartPlugin } from '../types';
2
+ /**
3
+ * SciPlot Engine - 3D Visualization Plugin
4
+ *
5
+ * This plugin provides 3D rendering capabilities including:
6
+ * - Line3D, Area3D, Bubble3D, Impulse3D renderers
7
+ * - Surface mesh and waterfall visualizations
8
+ * - 3D axes with depth perspective
9
+ * - Camera controls and raycasting
10
+ *
11
+ * @module plugins/3d
12
+ */
13
+ export * from './Area3DRenderer';
14
+ export * from './Bubble3DRenderer';
15
+ export * from './Impulse3DRenderer';
16
+ export * from './Line3DRenderer';
17
+ export * from './PointCloud3DRenderer';
18
+ export * from './Ribbon3DRenderer';
19
+ export * from './SurfaceBar3DRenderer';
20
+ export * from './SurfaceMesh3DRenderer';
21
+ export * from './VectorField3DRenderer';
22
+ export * from './Voxel3DRenderer';
23
+ export * from './Waterfall3DRenderer';
24
+ export * from './Axes3D';
25
+ export * from './Tooltip3D';
26
+ export * from './Raycaster3D';
27
+ export * from './math';
28
+ export * from './camera';
29
+ export * from './controls';
30
+ export * from './colorThemes';
31
+ export * from './series';
32
+ export interface Plugin3DConfig {
33
+ /** Enable WebGL2 features if available (default: true) */
34
+ preferWebGL2?: boolean;
35
+ /** Default camera configuration */
36
+ camera?: {
37
+ position?: [number, number, number];
38
+ target?: [number, number, number];
39
+ fov?: number;
40
+ };
41
+ /** Enable orbit controls (default: true) */
42
+ enableOrbitControls?: boolean;
43
+ }
44
+ /**
45
+ * SciPlot 3D Plugin
46
+ *
47
+ * Provides interactive 3D charts, surfaces, and meshes.
48
+ */
49
+ export declare function Plugin3D(config?: Plugin3DConfig): ChartPlugin<Plugin3DConfig>;
50
+ export default Plugin3D;
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Minimal 4x4 Matrix math for WebGL 3D rendering.
3
+ * Column-major order (OpenGL/WebGL convention).
4
+ * No external dependencies.
5
+ */
6
+ export type Mat4 = Float32Array;
7
+ export type Vec3 = [number, number, number];
8
+ /** Create identity matrix */
9
+ export declare function create(): Mat4;
10
+ /** Set matrix to identity */
11
+ export declare function identity(out: Mat4): Mat4;
12
+ /** Copy matrix a to out */
13
+ export declare function copy(out: Mat4, a: Mat4): Mat4;
14
+ /** Multiply two matrices: out = a * b */
15
+ export declare function multiply(out: Mat4, a: Mat4, b: Mat4): Mat4;
16
+ /** Create perspective projection matrix */
17
+ export declare function perspective(out: Mat4, fovY: number, aspect: number, near: number, far: number): Mat4;
18
+ /** Create view matrix looking at target from eye position */
19
+ export declare function lookAt(out: Mat4, eye: Vec3, center: Vec3, up: Vec3): Mat4;
20
+ /** Translate matrix by vector v */
21
+ export declare function translate(out: Mat4, a: Mat4, v: Vec3): Mat4;
22
+ /** Scale matrix by vector v */
23
+ export declare function scale(out: Mat4, a: Mat4, v: Vec3): Mat4;
24
+ /** Rotate matrix around X axis */
25
+ export declare function rotateX(out: Mat4, a: Mat4, rad: number): Mat4;
26
+ /** Rotate matrix around Y axis */
27
+ export declare function rotateY(out: Mat4, a: Mat4, rad: number): Mat4;
28
+ /** Rotate matrix around Z axis */
29
+ export declare function rotateZ(out: Mat4, a: Mat4, rad: number): Mat4;
30
+ /** Invert matrix */
31
+ export declare function invert(out: Mat4, a: Mat4): Mat4 | null;
32
+ /** Create orthographic projection matrix */
33
+ export declare function ortho(out: Mat4, left: number, right: number, bottom: number, top: number, near: number, far: number): Mat4;
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Minimal Vec3 utilities for 3D math.
3
+ * No external dependencies.
4
+ */
5
+ export type Vec3 = [number, number, number];
6
+ /** Create a new Vec3 */
7
+ export declare function create(x?: number, y?: number, z?: number): Vec3;
8
+ /** Clone a Vec3 */
9
+ export declare function clone(a: Vec3): Vec3;
10
+ /** Copy Vec3 a to out */
11
+ export declare function copy(out: Vec3, a: Vec3): Vec3;
12
+ /** Set Vec3 values */
13
+ export declare function set(out: Vec3, x: number, y: number, z: number): Vec3;
14
+ /** Add two Vec3: out = a + b */
15
+ export declare function add(out: Vec3, a: Vec3, b: Vec3): Vec3;
16
+ /** Subtract two Vec3: out = a - b */
17
+ export declare function subtract(out: Vec3, a: Vec3, b: Vec3): Vec3;
18
+ /** Scale Vec3: out = a * scalar */
19
+ export declare function scale(out: Vec3, a: Vec3, s: number): Vec3;
20
+ /** Normalize Vec3 */
21
+ export declare function normalize(out: Vec3, a: Vec3): Vec3;
22
+ /** Dot product of two Vec3 */
23
+ export declare function dot(a: Vec3, b: Vec3): number;
24
+ /** Cross product: out = a × b */
25
+ export declare function cross(out: Vec3, a: Vec3, b: Vec3): Vec3;
26
+ /** Length of Vec3 */
27
+ export declare function length(a: Vec3): number;
28
+ /** Squared length of Vec3 */
29
+ export declare function squaredLength(a: Vec3): number;
30
+ /** Distance between two Vec3 */
31
+ export declare function distance(a: Vec3, b: Vec3): number;
32
+ /** Linear interpolation: out = a + t * (b - a) */
33
+ export declare function lerp(out: Vec3, a: Vec3, b: Vec3, t: number): Vec3;
34
+ /** Negate Vec3: out = -a */
35
+ export declare function negate(out: Vec3, a: Vec3): Vec3;
36
+ /** Transform Vec3 by Mat4 (assumes w=1) */
37
+ export declare function transformMat4(out: Vec3, a: Vec3, m: Float32Array): Vec3;
@@ -0,0 +1,4 @@
1
+ export * as Mat4 from './Mat4';
2
+ export * as Vec3 from './Vec3';
3
+ export type { Mat4 as Mat4Type } from './Mat4';
4
+ export type { Vec3 as Vec3Type } from './Vec3';
@@ -0,0 +1,42 @@
1
+ import { GeometryData } from './geometry';
2
+ import { ShaderProgram3D } from '../shader/programs';
3
+
4
+ export interface InstanceData {
5
+ positions: Float32Array;
6
+ scales: Float32Array;
7
+ colors: Float32Array;
8
+ }
9
+ export interface InstancedMeshOptions {
10
+ geometry: GeometryData;
11
+ maxInstances?: number;
12
+ }
13
+ export declare class InstancedMesh {
14
+ private gl;
15
+ private vao;
16
+ private positionBuffer;
17
+ private indexBuffer;
18
+ private instancePosBuffer;
19
+ private instanceScaleBuffer;
20
+ private instanceColorBuffer;
21
+ private geometry;
22
+ private maxInstances;
23
+ private instanceCount;
24
+ constructor(gl: WebGL2RenderingContext, options: InstancedMeshOptions);
25
+ private initBuffers;
26
+ /**
27
+ * Update instance data. Call before render.
28
+ */
29
+ updateInstances(data: InstanceData): void;
30
+ /**
31
+ * Render all instances with given shader program.
32
+ */
33
+ render(program: ShaderProgram3D): void;
34
+ /**
35
+ * Get current instance count.
36
+ */
37
+ getInstanceCount(): number;
38
+ /**
39
+ * Clean up WebGL resources.
40
+ */
41
+ destroy(): void;
42
+ }
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Procedural geometry generation for 3D primitives.
3
+ * Generates vertex positions and indices for instanced rendering.
4
+ */
5
+ export interface GeometryData {
6
+ positions: Float32Array;
7
+ indices: Uint16Array;
8
+ vertexCount: number;
9
+ indexCount: number;
10
+ }
11
+ /**
12
+ * Generate icosphere geometry (subdivided icosahedron).
13
+ * Good for spherical bubbles with uniform vertex distribution.
14
+ */
15
+ export declare function createIcosphere(subdivisions?: number): GeometryData;
16
+ /**
17
+ * Generate UV sphere geometry.
18
+ * Good for textured spheres, less uniform distribution.
19
+ */
20
+ export declare function createUVSphere(segments?: number, rings?: number): GeometryData;
21
+ /**
22
+ * Generate low-poly cube geometry.
23
+ * Fastest option, good for distant/small bubbles.
24
+ */
25
+ export declare function createCube(): GeometryData;
26
+ /**
27
+ * Generate billboard quad (always faces camera).
28
+ * Most efficient for large numbers of small points.
29
+ */
30
+ export declare function createBillboardQuad(): GeometryData;
31
+ /**
32
+ * Generate a standard AABB cube for voxels.
33
+ */
34
+ export declare function createVoxelCube(): GeometryData;
@@ -0,0 +1,2 @@
1
+ export * from './geometry';
2
+ export * from './InstancedMesh';
@@ -0,0 +1,17 @@
1
+ import { ShaderProgram3D } from '../shader/programs';
2
+ import { Area3DData } from './types';
3
+
4
+ export declare class Area3D {
5
+ private gl;
6
+ private vao;
7
+ private positionBuffer;
8
+ private colorBuffer;
9
+ private indexBuffer;
10
+ private indexCount;
11
+ private fillOpacity;
12
+ constructor(gl: WebGL2RenderingContext);
13
+ private initBuffers;
14
+ updateData(data: Area3DData): void;
15
+ render(program: ShaderProgram3D): void;
16
+ destroy(): void;
17
+ }
@@ -0,0 +1,20 @@
1
+ import { ShaderProgram3D } from '../shader/programs';
2
+ import { Column3DData } from './types';
3
+
4
+ export declare class Column3D {
5
+ private gl;
6
+ private vao;
7
+ private positionBuffer;
8
+ private normalBuffer;
9
+ private colorBuffer;
10
+ private indexBuffer;
11
+ private indexCount;
12
+ private columnCount;
13
+ constructor(gl: WebGL2RenderingContext);
14
+ private initBuffers;
15
+ updateData(data: Column3DData): void;
16
+ private generateBoxVertices;
17
+ private setQuad;
18
+ render(program: ShaderProgram3D): void;
19
+ destroy(): void;
20
+ }
@@ -0,0 +1,17 @@
1
+ import { ShaderProgram3D } from '../shader/programs';
2
+ import { Heatmap3DData } from './types';
3
+
4
+ export declare class Heatmap3D {
5
+ private gl;
6
+ private vao;
7
+ private positionBuffer;
8
+ private colorBuffer;
9
+ private indexBuffer;
10
+ private indexCount;
11
+ constructor(gl: WebGL2RenderingContext);
12
+ private initBuffers;
13
+ updateData(data: Heatmap3DData): void;
14
+ private applyColormap;
15
+ render(program: ShaderProgram3D): void;
16
+ destroy(): void;
17
+ }
@@ -0,0 +1,16 @@
1
+ import { ShaderProgram3D } from '../shader/programs';
2
+ import { Impulse3DData } from './types';
3
+
4
+ export declare class Impulse3D {
5
+ private gl;
6
+ private vao;
7
+ private positionBuffer;
8
+ private colorBuffer;
9
+ private vertexCount;
10
+ private showMarkers;
11
+ constructor(gl: WebGL2RenderingContext);
12
+ private initBuffers;
13
+ updateData(data: Impulse3DData): void;
14
+ render(program: ShaderProgram3D): void;
15
+ destroy(): void;
16
+ }
@@ -0,0 +1,20 @@
1
+ import { ShaderProgram3D } from '../shader/programs';
2
+ import { PointLine3DData } from './types';
3
+
4
+ export declare class PointLine3D {
5
+ private gl;
6
+ private vao;
7
+ private positionBuffer;
8
+ private colorBuffer;
9
+ private pointCount;
10
+ private showPoints;
11
+ private showLines;
12
+ private lineWidth;
13
+ private pointSize;
14
+ constructor(gl: WebGL2RenderingContext);
15
+ private initBuffers;
16
+ updateData(data: PointLine3DData): void;
17
+ private generateDefaultColors;
18
+ render(program: ShaderProgram3D): void;
19
+ destroy(): void;
20
+ }
@@ -0,0 +1,17 @@
1
+ import { ShaderProgram3D } from '../shader/programs';
2
+ import { Ribbon3DData } from './types';
3
+
4
+ export declare class Ribbon3D {
5
+ private gl;
6
+ private vao;
7
+ private positionBuffer;
8
+ private normalBuffer;
9
+ private colorBuffer;
10
+ private indexBuffer;
11
+ private indexCount;
12
+ constructor(gl: WebGL2RenderingContext);
13
+ private initBuffers;
14
+ updateData(data: Ribbon3DData): void;
15
+ render(program: ShaderProgram3D): void;
16
+ destroy(): void;
17
+ }
@@ -0,0 +1,21 @@
1
+ import { ShaderProgram3D } from '../shader/programs';
2
+ import { Scatter3DData } from './types';
3
+
4
+ export declare class Scatter3D {
5
+ private gl;
6
+ private vao;
7
+ private geometryPosBuffer;
8
+ private geometryIndexBuffer;
9
+ private instancePosBuffer;
10
+ private instanceColorBuffer;
11
+ private instanceSizeBuffer;
12
+ private geometry;
13
+ private instanceCount;
14
+ private symbol;
15
+ constructor(gl: WebGL2RenderingContext);
16
+ private initBuffers;
17
+ updateData(data: Scatter3DData): void;
18
+ private generateDefaultColors;
19
+ render(program: ShaderProgram3D): void;
20
+ destroy(): void;
21
+ }
@@ -0,0 +1,35 @@
1
+ import { ShaderProgram3D } from '../shader/programs';
2
+ import { SurfaceMesh3DData } from './types';
3
+
4
+ export interface SurfaceMeshOptions {
5
+ maxVertices?: number;
6
+ }
7
+ export declare class SurfaceMesh3D {
8
+ private gl;
9
+ private vao;
10
+ private positionBuffer;
11
+ private normalBuffer;
12
+ private colorBuffer;
13
+ private indexBuffer;
14
+ private wireframeIndexBuffer;
15
+ private vertexCount;
16
+ private indexCount;
17
+ private wireframeIndexCount;
18
+ private cols;
19
+ private rows;
20
+ constructor(gl: WebGL2RenderingContext, _options?: SurfaceMeshOptions);
21
+ private initBuffers;
22
+ /**
23
+ * Update mesh data from surface data.
24
+ */
25
+ updateData(data: SurfaceMesh3DData): void;
26
+ private calculateNormals;
27
+ private generateHeightColors;
28
+ private generateTriangleIndices;
29
+ private generateWireframeIndices;
30
+ /**
31
+ * Render the surface mesh.
32
+ */
33
+ render(program: ShaderProgram3D, wireframe?: boolean): void;
34
+ destroy(): void;
35
+ }
@@ -0,0 +1,38 @@
1
+ import { ShaderProgram3D } from '../shader/programs';
2
+ import { Waterfall3DData } from './types';
3
+
4
+ export interface WaterfallOptions {
5
+ maxSlices?: number;
6
+ }
7
+ export declare class Waterfall3D {
8
+ private gl;
9
+ private vao;
10
+ private positionBuffer;
11
+ private colorBuffer;
12
+ private indexBuffer;
13
+ private vertexCount;
14
+ private indexCount;
15
+ private sliceCount;
16
+ private pointsPerSlice;
17
+ private fillMode;
18
+ constructor(gl: WebGL2RenderingContext, _options?: WaterfallOptions);
19
+ private initBuffers;
20
+ /**
21
+ * Update waterfall data.
22
+ * Each slice is a row of Y values at increasing Z positions.
23
+ */
24
+ updateData(data: Waterfall3DData): void;
25
+ private buildWireframe;
26
+ private buildSolid;
27
+ private applyColormap;
28
+ private viridisColormap;
29
+ private jetColormap;
30
+ private hotColormap;
31
+ /**
32
+ * Add a new slice to the waterfall (for realtime updates).
33
+ * Shifts existing slices back and adds new one at front.
34
+ */
35
+ pushSlice(yValues: Float32Array, data: Waterfall3DData): void;
36
+ render(program: ShaderProgram3D): void;
37
+ destroy(): void;
38
+ }
@@ -0,0 +1,13 @@
1
+ /**
2
+ * 3D Series renderers for various chart types.
3
+ */
4
+ export * from './types';
5
+ export { SurfaceMesh3D } from './SurfaceMesh3D';
6
+ export { PointLine3D } from './PointLine3D';
7
+ export { Column3D } from './Column3D';
8
+ export { Waterfall3D } from './Waterfall3D';
9
+ export { Scatter3D } from './Scatter3D';
10
+ export { Ribbon3D } from './Ribbon3D';
11
+ export { Area3D } from './Area3D';
12
+ export { Heatmap3D } from './Heatmap3D';
13
+ export { Impulse3D } from './Impulse3D';
@@ -0,0 +1,143 @@
1
+ import { Vec3 } from '../math/Mat4';
2
+
3
+ /** Base interface for all 3D series */
4
+ export interface Series3DBase {
5
+ id: string;
6
+ visible: boolean;
7
+ opacity: number;
8
+ }
9
+ /** 3D Bubble series data */
10
+ export interface Bubble3DSeriesData extends Series3DBase {
11
+ type: 'bubble';
12
+ positions: Float32Array;
13
+ scales?: Float32Array;
14
+ colors?: Float32Array;
15
+ }
16
+ /** Surface mesh data (grid-based height map) */
17
+ export interface SurfaceMesh3DData extends Series3DBase {
18
+ type: 'surface';
19
+ xValues: Float32Array;
20
+ zValues: Float32Array;
21
+ yValues: Float32Array;
22
+ colors?: Float32Array;
23
+ wireframe?: boolean;
24
+ colormap?: string;
25
+ }
26
+ /** Point-line 3D data (connected points in 3D space) */
27
+ export interface PointLine3DData extends Series3DBase {
28
+ type: 'pointline';
29
+ positions: Float32Array;
30
+ colors?: Float32Array;
31
+ lineWidth?: number;
32
+ pointSize?: number;
33
+ showPoints?: boolean;
34
+ showLines?: boolean;
35
+ }
36
+ /** Column/Bar 3D data */
37
+ export interface Column3DData extends Series3DBase {
38
+ type: 'column';
39
+ xValues: Float32Array;
40
+ zValues: Float32Array;
41
+ yValues: Float32Array;
42
+ colors?: Float32Array;
43
+ columnWidth?: number;
44
+ columnDepth?: number;
45
+ }
46
+ /** Waterfall 3D data (spectral/time series cascading) */
47
+ export interface Waterfall3DData extends Series3DBase {
48
+ type: 'waterfall';
49
+ slices: Float32Array[];
50
+ xValues: Float32Array;
51
+ zStep: number;
52
+ zStart?: number;
53
+ colormap?: string;
54
+ fillMode?: 'solid' | 'wireframe' | 'gradient';
55
+ strokeColor?: [number, number, number];
56
+ }
57
+ /** Scatter 3D data (points without connections) */
58
+ export interface Scatter3DData extends Series3DBase {
59
+ type: 'scatter';
60
+ positions: Float32Array;
61
+ colors?: Float32Array;
62
+ sizes?: Float32Array;
63
+ symbol?: 'sphere' | 'cube' | 'diamond' | 'point';
64
+ }
65
+ /** Contour 3D data (iso-lines on surface) */
66
+ export interface Contour3DData extends Series3DBase {
67
+ type: 'contour';
68
+ xValues: Float32Array;
69
+ zValues: Float32Array;
70
+ yValues: Float32Array;
71
+ levels: number[];
72
+ colors?: Float32Array;
73
+ lineWidth?: number;
74
+ }
75
+ /** Ribbon 3D data (extruded line with width) */
76
+ export interface Ribbon3DData extends Series3DBase {
77
+ type: 'ribbon';
78
+ positions: Float32Array;
79
+ widths?: Float32Array;
80
+ colors?: Float32Array;
81
+ defaultWidth?: number;
82
+ }
83
+ /** Area 3D data (filled area under line) */
84
+ export interface Area3DData extends Series3DBase {
85
+ type: 'area';
86
+ positions: Float32Array;
87
+ baseY?: number;
88
+ colors?: Float32Array;
89
+ fillOpacity?: number;
90
+ }
91
+ /** Heatmap 3D data (colored grid on XZ plane) */
92
+ export interface Heatmap3DData extends Series3DBase {
93
+ type: 'heatmap';
94
+ xValues: Float32Array;
95
+ zValues: Float32Array;
96
+ values: Float32Array;
97
+ colormap?: string;
98
+ minValue?: number;
99
+ maxValue?: number;
100
+ }
101
+ /** Impulse/Stem 3D data (vertical lines from base) */
102
+ export interface Impulse3DData extends Series3DBase {
103
+ type: 'impulse';
104
+ positions: Float32Array;
105
+ baseY?: number;
106
+ colors?: Float32Array;
107
+ lineWidth?: number;
108
+ showMarkers?: boolean;
109
+ }
110
+ /** Union type for all series data */
111
+ export type Series3DData = Bubble3DSeriesData | SurfaceMesh3DData | PointLine3DData | Column3DData | Waterfall3DData | Scatter3DData | Contour3DData | Ribbon3DData | Area3DData | Heatmap3DData | Impulse3DData;
112
+ /** Series type string literals */
113
+ export type Series3DType = Series3DData['type'];
114
+ /** Colormap definitions */
115
+ export type ColormapName = 'viridis' | 'plasma' | 'inferno' | 'magma' | 'jet' | 'rainbow' | 'grayscale' | 'hot' | 'cool' | 'spring' | 'summer' | 'autumn' | 'winter' | 'ocean' | 'terrain';
116
+ /** Axis 3D configuration */
117
+ export interface Axis3DOptions {
118
+ label?: string;
119
+ min?: number;
120
+ max?: number;
121
+ autoRange?: boolean;
122
+ gridLines?: boolean;
123
+ gridColor?: [number, number, number];
124
+ tickCount?: number;
125
+ visible?: boolean;
126
+ }
127
+ /** Scene 3D configuration */
128
+ export interface Scene3DOptions {
129
+ xAxis?: Axis3DOptions;
130
+ yAxis?: Axis3DOptions;
131
+ zAxis?: Axis3DOptions;
132
+ showAxes?: boolean;
133
+ showGrid?: boolean;
134
+ gridPlane?: 'xz' | 'xy' | 'yz' | 'all';
135
+ backgroundColor?: [number, number, number, number];
136
+ }
137
+ /** Light configuration */
138
+ export interface Light3DOptions {
139
+ direction?: Vec3;
140
+ color?: [number, number, number];
141
+ intensity?: number;
142
+ ambient?: number;
143
+ }
@@ -0,0 +1,2 @@
1
+ export * from './sources';
2
+ export * from './programs';
@@ -0,0 +1,24 @@
1
+ /**
2
+ * WebGL shader program compilation and management for 3D rendering.
3
+ */
4
+ export interface ShaderProgram3D {
5
+ program: WebGLProgram;
6
+ attributes: Record<string, number>;
7
+ uniforms: Record<string, WebGLUniformLocation | null>;
8
+ }
9
+ export interface ProgramBundle3D {
10
+ bubbleProgram: ShaderProgram3D;
11
+ bubbleFlatProgram: ShaderProgram3D;
12
+ axisProgram: ShaderProgram3D;
13
+ surfaceProgram: ShaderProgram3D;
14
+ linePointProgram: ShaderProgram3D;
15
+ waterfallProgram: ShaderProgram3D;
16
+ vectorFieldProgram: ShaderProgram3D;
17
+ pointCloudProgram: ShaderProgram3D;
18
+ voxelProgram: ShaderProgram3D;
19
+ ribbonProgram: ShaderProgram3D;
20
+ surfaceBarProgram: ShaderProgram3D;
21
+ }
22
+ export declare function createProgramBundle3D(gl: WebGL2RenderingContext, useWebGL1Fallback?: boolean): ProgramBundle3D;
23
+ export declare function deleteProgram(gl: WebGL2RenderingContext | WebGLRenderingContext, program: ShaderProgram3D): void;
24
+ export declare function deleteProgramBundle(gl: WebGL2RenderingContext | WebGLRenderingContext, bundle: ProgramBundle3D): void;
@@ -0,0 +1,27 @@
1
+ /**
2
+ * GLSL shader sources for 3D instanced rendering.
3
+ * WebGL2 / GLSL ES 3.00
4
+ */
5
+ export declare const BUBBLE_VERT = "#version 300 es\nprecision highp float;\n\n// Base geometry vertex\nin vec3 a_position;\n\n// Per-instance attributes\nin vec3 a_instancePos;\nin float a_scale;\nin vec3 a_color;\n\n// Uniforms\nuniform mat4 u_viewProjection;\nuniform float u_opacity;\n\n// Varyings\nout vec3 v_color;\nout vec3 v_normal;\nout vec3 v_worldPos;\n\nvoid main() {\n // Scale and translate instance\n vec3 worldPos = (a_position * a_scale) + a_instancePos;\n \n gl_Position = u_viewProjection * vec4(worldPos, 1.0);\n \n v_color = a_color;\n v_normal = normalize(a_position); // For sphere, normal = normalized position\n v_worldPos = worldPos;\n}\n";
6
+ export declare const BUBBLE_FRAG = "#version 300 es\nprecision highp float;\n\nin vec3 v_color;\nin vec3 v_normal;\nin vec3 v_worldPos;\n\nuniform float u_opacity;\nuniform vec3 u_lightDir;\nuniform float u_ambient;\n\nout vec4 fragColor;\n\nvoid main() {\n // Simple diffuse lighting\n vec3 normal = normalize(v_normal);\n vec3 lightDir = normalize(u_lightDir);\n \n float diff = max(dot(normal, lightDir), 0.0);\n float lighting = u_ambient + (1.0 - u_ambient) * diff;\n \n vec3 color = v_color * lighting;\n fragColor = vec4(color, u_opacity);\n}\n";
7
+ export declare const BUBBLE_FLAT_FRAG = "#version 300 es\nprecision highp float;\n\nin vec3 v_color;\nin vec3 v_normal;\nin vec3 v_worldPos;\n\nuniform float u_opacity;\n\nout vec4 fragColor;\n\nvoid main() {\n fragColor = vec4(v_color, u_opacity);\n}\n";
8
+ export declare const BUBBLE_VERT_WEBGL1 = "\nprecision highp float;\n\n// Base geometry vertex\nattribute vec3 a_position;\n\n// Per-instance attributes\nattribute vec3 a_instancePos;\nattribute float a_scale;\nattribute vec3 a_color;\n\n// Uniforms\nuniform mat4 u_viewProjection;\nuniform float u_opacity;\n\n// Varyings\nvarying vec3 v_color;\nvarying vec3 v_normal;\nvarying vec3 v_worldPos;\n\nvoid main() {\n vec3 worldPos = (a_position * a_scale) + a_instancePos;\n \n gl_Position = u_viewProjection * vec4(worldPos, 1.0);\n \n v_color = a_color;\n v_normal = normalize(a_position);\n v_worldPos = worldPos;\n}\n";
9
+ export declare const BUBBLE_FRAG_WEBGL1 = "\nprecision highp float;\n\nvarying vec3 v_color;\nvarying vec3 v_normal;\nvarying vec3 v_worldPos;\n\nuniform float u_opacity;\nuniform vec3 u_lightDir;\nuniform float u_ambient;\n\nvoid main() {\n vec3 normal = normalize(v_normal);\n vec3 lightDir = normalize(u_lightDir);\n \n float diff = max(dot(normal, lightDir), 0.0);\n float lighting = u_ambient + (1.0 - u_ambient) * diff;\n \n vec3 color = v_color * lighting;\n gl_FragColor = vec4(color, u_opacity);\n}\n";
10
+ export declare const AXIS_VERT = "#version 300 es\nprecision highp float;\n\nin vec3 a_position;\nin vec3 a_color;\n\nuniform mat4 u_viewProjection;\n\nout vec3 v_color;\n\nvoid main() {\n gl_Position = u_viewProjection * vec4(a_position, 1.0);\n v_color = a_color;\n}\n";
11
+ export declare const AXIS_FRAG = "#version 300 es\nprecision highp float;\n\nin vec3 v_color;\nout vec4 fragColor;\n\nvoid main() {\n fragColor = vec4(v_color, 1.0);\n}\n";
12
+ export declare const SURFACE_VERT = "#version 300 es\nprecision highp float;\n\nin vec3 a_position;\nin vec3 a_normal;\nin vec3 a_color;\n\nuniform mat4 u_viewProjection;\n\nout vec3 v_color;\nout vec3 v_normal;\nout vec3 v_worldPos;\n\nvoid main() {\n gl_Position = u_viewProjection * vec4(a_position, 1.0);\n v_color = a_color;\n v_normal = a_normal;\n v_worldPos = a_position;\n}\n";
13
+ export declare const SURFACE_FRAG = "#version 300 es\nprecision highp float;\n\nin vec3 v_color;\nin vec3 v_normal;\nin vec3 v_worldPos;\n\nuniform float u_opacity;\nuniform vec3 u_lightDir;\nuniform float u_ambient;\n\nout vec4 fragColor;\n\nvoid main() {\n vec3 normal = normalize(v_normal);\n vec3 lightDir = normalize(u_lightDir);\n \n float diff = max(dot(normal, lightDir), 0.0);\n float lighting = u_ambient + (1.0 - u_ambient) * diff;\n \n vec3 color = v_color * lighting;\n fragColor = vec4(color, u_opacity);\n}\n";
14
+ export declare const LINE_POINT_VERT = "#version 300 es\nprecision highp float;\n\nin vec3 a_position;\nin vec3 a_color;\n\nuniform mat4 u_viewProjection;\nuniform float u_pointSize;\n\nout vec3 v_color;\n\nvoid main() {\n gl_Position = u_viewProjection * vec4(a_position, 1.0);\n gl_PointSize = u_pointSize;\n v_color = a_color;\n}\n";
15
+ export declare const LINE_POINT_FRAG = "#version 300 es\nprecision highp float;\n\nin vec3 v_color;\nuniform float u_opacity;\n\nout vec4 fragColor;\n\nvoid main() {\n fragColor = vec4(v_color, u_opacity);\n}\n";
16
+ export declare const WATERFALL_VERT = "#version 300 es\nprecision highp float;\n\nin vec3 a_position;\nin vec3 a_color;\nin vec3 a_normal;\n\nuniform mat4 u_viewProjection;\n\nout vec3 v_color;\nout float v_depth;\nout vec3 v_normal;\n\nvoid main() {\n gl_Position = u_viewProjection * vec4(a_position, 1.0);\n v_color = a_color;\n v_depth = a_position.z;\n v_normal = a_normal;\n}\n";
17
+ export declare const WATERFALL_FRAG = "#version 300 es\nprecision highp float;\n\nin vec3 v_color;\nin float v_depth;\nin vec3 v_normal;\n\nuniform float u_opacity;\nuniform float u_fadeStart;\nuniform float u_fadeEnd;\nuniform vec3 u_lightDir;\nuniform float u_ambient;\n\nout vec4 fragColor;\n\nvoid main() {\n // Lighting\n vec3 normal = normalize(v_normal);\n vec3 lightDir = normalize(u_lightDir);\n float diff = max(dot(normal, lightDir), 0.0);\n float lighting = u_ambient + (1.0 - u_ambient) * diff;\n \n // Fade based on depth (Z position)\n float fade = 1.0;\n if (u_fadeEnd > u_fadeStart) {\n fade = 1.0 - smoothstep(u_fadeStart, u_fadeEnd, v_depth);\n }\n \n fragColor = vec4(v_color * lighting, u_opacity * fade);\n}\n";
18
+ export declare const VECTOR_FIELD_VERT = "#version 300 es\nprecision highp float;\n\nin vec3 a_position; // Base geometry (e.g., arrow)\nin vec3 a_instancePos; // Origin of the vector\nin vec3 a_direction; // Direction vector [dx, dy, dz]\nin vec3 a_color;\nin vec3 a_normal;\n\nuniform mat4 u_viewProjection;\nuniform float u_scaleMultiplier;\n\nout vec3 v_color;\nout vec3 v_normal;\n\nvoid main() {\n float mag = length(a_direction);\n vec3 dir = normalize(a_direction);\n \n // Construct rotation matrix to align with direction\n vec3 up = abs(dir.y) < 0.99 ? vec3(0.0, 1.0, 0.0) : vec3(1.0, 0.0, 0.0);\n vec3 right = normalize(cross(up, dir));\n vec3 actualUp = cross(dir, right);\n mat3 rotation = mat3(right, actualUp, dir);\n \n v_normal = rotation * a_normal;\n \n // Scale based on magnitude\n vec3 scaledPos = a_position * mag * u_scaleMultiplier;\n \n // Rotate and translate\n vec3 worldPos = (rotation * scaledPos) + a_instancePos;\n \n gl_Position = u_viewProjection * vec4(worldPos, 1.0);\n v_color = a_color;\n}\n";
19
+ export declare const VECTOR_FIELD_FRAG = "#version 300 es\nprecision highp float;\n\nin vec3 v_color;\nin vec3 v_normal;\nuniform float u_opacity;\nuniform vec3 u_lightDir;\nuniform float u_ambient;\nout vec4 fragColor;\n\nvoid main() {\n vec3 normal = normalize(v_normal);\n vec3 lightDir = normalize(u_lightDir);\n float diff = max(dot(normal, lightDir), 0.0);\n float lighting = u_ambient + (1.0 - u_ambient) * diff;\n fragColor = vec4(v_color * lighting, u_opacity);\n}\n";
20
+ export declare const POINT_CLOUD_VERT = "#version 300 es\nprecision highp float;\n\nin vec3 a_position;\nin vec3 a_color;\nin float a_size;\n\nuniform mat4 u_viewProjection;\nuniform float u_globalSize;\n\nout vec3 v_color;\n\nvoid main() {\n gl_Position = u_viewProjection * vec4(a_position, 1.0);\n gl_PointSize = a_size * u_globalSize;\n v_color = a_color;\n \n // Basic depth attenuation (points get smaller with distance)\n gl_PointSize /= gl_Position.w * 0.5;\n}\n";
21
+ export declare const POINT_CLOUD_FRAG = "#version 300 es\nprecision highp float;\n\nin vec3 v_color;\nuniform float u_opacity;\nuniform bool u_circular;\n\nout vec4 fragColor;\n\nvoid main() {\n if (u_circular) {\n vec2 dist = gl_PointCoord - vec2(0.5);\n if (dot(dist, dist) > 0.25) discard;\n }\n \n fragColor = vec4(v_color, u_opacity);\n}\n";
22
+ export declare const VOXEL_VERT = "#version 300 es\nprecision highp float;\n\nin vec3 a_position; // Base cube vertex\nin vec3 a_instancePos; // Voxel center\nin float a_value; // Voxel intensity [0, 1]\n\nuniform mat4 u_viewProjection;\nuniform float u_voxelSize;\nuniform float u_threshold;\n\nout float v_value;\nout vec3 v_normal;\n\nvoid main() {\n if (a_value < u_threshold) {\n // Hide voxel if below threshold\n gl_Position = vec4(2.0, 2.0, 2.0, 1.0);\n return;\n }\n \n vec3 worldPos = (a_position * u_voxelSize) + a_instancePos;\n gl_Position = u_viewProjection * vec4(worldPos, 1.0);\n v_value = a_value;\n v_normal = normalize(a_position);\n}\n";
23
+ export declare const VOXEL_FRAG = "#version 300 es\nprecision highp float;\n\nin float v_value;\nin vec3 v_normal;\n\nuniform float u_opacity;\nuniform vec3 u_lightDir;\nuniform float u_ambient;\n\nout vec4 fragColor;\n\n// Simple heatmap coloring\nvec3 heatmap(float t) {\n return vec3(t, 1.0 - t, 0.5 + sin(t * 3.14159) * 0.5);\n}\n\nvoid main() {\n vec3 normal = normalize(v_normal);\n vec3 lightDir = normalize(u_lightDir);\n float diff = max(dot(normal, lightDir), 0.0);\n float lighting = u_ambient + (1.0 - u_ambient) * diff;\n \n // Spectral colormap\n vec3 color = vec3(v_value, 0.2, 1.0 - v_value);\n if (v_value > 0.5) color = vec3(1.0, 1.0 - (v_value-0.5)*2.0, 0.0);\n \n fragColor = vec4(color * lighting, u_opacity * v_value);\n}\n";
24
+ export declare const RIBBON_VERT = "#version 300 es\nprecision highp float;\n\nin vec3 a_position;\nin vec3 a_normal;\nin vec3 a_color;\n\nuniform mat4 u_viewProjection;\n\nout vec3 v_color;\nout vec3 v_normal;\n\nvoid main() {\n gl_Position = u_viewProjection * vec4(a_position, 1.0);\n v_color = a_color;\n v_normal = a_normal;\n}\n";
25
+ export declare const RIBBON_FRAG = "#version 300 es\nprecision highp float;\n\nin vec3 v_color;\nin vec3 v_normal;\n\nuniform float u_opacity;\nuniform vec3 u_lightDir;\nuniform float u_ambient;\n\nout vec4 fragColor;\n\nvoid main() {\n vec3 normal = normalize(v_normal);\n vec3 lightDir = normalize(u_lightDir);\n float diff = max(dot(normal, lightDir), 0.0);\n float lighting = u_ambient + (1.0 - u_ambient) * diff;\n fragColor = vec4(v_color * lighting, u_opacity);\n}\n";
26
+ export declare const SURFACE_BAR_VERT = "#version 300 es\nprecision highp float;\n\nin vec3 a_position; // Base cube vertex [-0.5, 0.5]\nin vec3 a_instancePos; // Column base\nin float a_height; // Column height\nin vec3 a_color;\n\nuniform mat4 u_viewProjection;\nuniform float u_barWidth;\nuniform float u_barDepth;\n\nout vec3 v_color;\nout vec3 v_normal;\n\nvoid main() {\n vec3 pos = a_position;\n pos.x *= u_barWidth;\n pos.z *= u_barDepth;\n pos.y = (pos.y + 0.5) * a_height; \n \n vec3 worldPos = pos + a_instancePos;\n gl_Position = u_viewProjection * vec4(worldPos, 1.0);\n \n v_color = a_color;\n // Normals for a cube are essentially the vertex positions normalized if centered at 0\n // But since we offset Y, we just use the original sign for flat shading or simple lighting\n v_normal = normalize(a_position);\n}\n";
27
+ export declare const SURFACE_BAR_FRAG = "#version 300 es\nprecision highp float;\n\nin vec3 v_color;\nin vec3 v_normal;\n\nuniform float u_opacity;\nuniform vec3 u_lightDir;\nuniform float u_ambient;\n\nout vec4 fragColor;\n\nvoid main() {\n vec3 normal = normalize(v_normal);\n vec3 lightDir = normalize(u_lightDir);\n float diff = max(dot(normal, lightDir), 0.0);\n float lighting = u_ambient + (1.0 - u_ambient) * diff;\n fragColor = vec4(v_color * lighting, u_opacity);\n}\n";