@maniclang/workbench 0.1.11

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 (644) hide show
  1. package/CONTRIBUTING.md +40 -0
  2. package/README.md +155 -0
  3. package/dist/client/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
  4. package/dist/client/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
  5. package/dist/client/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
  6. package/dist/client/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
  7. package/dist/client/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
  8. package/dist/client/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
  9. package/dist/client/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
  10. package/dist/client/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
  11. package/dist/client/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
  12. package/dist/client/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
  13. package/dist/client/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
  14. package/dist/client/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
  15. package/dist/client/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
  16. package/dist/client/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
  17. package/dist/client/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
  18. package/dist/client/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
  19. package/dist/client/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
  20. package/dist/client/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
  21. package/dist/client/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
  22. package/dist/client/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
  23. package/dist/client/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
  24. package/dist/client/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
  25. package/dist/client/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
  26. package/dist/client/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
  27. package/dist/client/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
  28. package/dist/client/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
  29. package/dist/client/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
  30. package/dist/client/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
  31. package/dist/client/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
  32. package/dist/client/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
  33. package/dist/client/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
  34. package/dist/client/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
  35. package/dist/client/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
  36. package/dist/client/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
  37. package/dist/client/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
  38. package/dist/client/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
  39. package/dist/client/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
  40. package/dist/client/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
  41. package/dist/client/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
  42. package/dist/client/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
  43. package/dist/client/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
  44. package/dist/client/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
  45. package/dist/client/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
  46. package/dist/client/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
  47. package/dist/client/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
  48. package/dist/client/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
  49. package/dist/client/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
  50. package/dist/client/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
  51. package/dist/client/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
  52. package/dist/client/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
  53. package/dist/client/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
  54. package/dist/client/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
  55. package/dist/client/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
  56. package/dist/client/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
  57. package/dist/client/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
  58. package/dist/client/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
  59. package/dist/client/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
  60. package/dist/client/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
  61. package/dist/client/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
  62. package/dist/client/assets/abap-CRCWOmpq.js +1 -0
  63. package/dist/client/assets/apex-DnsZk_dE.js +1 -0
  64. package/dist/client/assets/azcli-1IWB1ccx.js +1 -0
  65. package/dist/client/assets/bat-DPkNLes8.js +1 -0
  66. package/dist/client/assets/bicep-Corcdgou.js +2 -0
  67. package/dist/client/assets/cameligo-CGrWLZr3.js +1 -0
  68. package/dist/client/assets/clojure-D9WOWImG.js +1 -0
  69. package/dist/client/assets/codicon-CgENjH2v.ttf +0 -0
  70. package/dist/client/assets/coffee-B7EJu28W.js +1 -0
  71. package/dist/client/assets/cpp-SEyurbux.js +1 -0
  72. package/dist/client/assets/csharp-BoL64M5l.js +1 -0
  73. package/dist/client/assets/csp-C46ZqvIl.js +1 -0
  74. package/dist/client/assets/css-DQU6DXDx.js +3 -0
  75. package/dist/client/assets/cssMode-CtRONlr8.js +4 -0
  76. package/dist/client/assets/cypher-D84EuPTj.js +1 -0
  77. package/dist/client/assets/dart-D8lhlL1r.js +1 -0
  78. package/dist/client/assets/dockerfile-DLk6rpji.js +1 -0
  79. package/dist/client/assets/ecl-BO6FnfXk.js +1 -0
  80. package/dist/client/assets/editor.worker-CZyr7Ur9.js +26 -0
  81. package/dist/client/assets/elixir-BRjLKONM.js +1 -0
  82. package/dist/client/assets/flow9-Cac8vKd7.js +1 -0
  83. package/dist/client/assets/freemarker2-BTSNJUl8.js +3 -0
  84. package/dist/client/assets/fsharp-fd1GTHhf.js +1 -0
  85. package/dist/client/assets/go-O9LJTZXk.js +1 -0
  86. package/dist/client/assets/graphql-LQdxqEYJ.js +1 -0
  87. package/dist/client/assets/handlebars-qkUBjVg6.js +1 -0
  88. package/dist/client/assets/hcl-DxDQ3s82.js +1 -0
  89. package/dist/client/assets/html-pguqE00h.js +1 -0
  90. package/dist/client/assets/htmlMode-BCCLuk2F.js +4 -0
  91. package/dist/client/assets/index-BFrMLHHu.css +1 -0
  92. package/dist/client/assets/index-CdBC-xgi.js +1250 -0
  93. package/dist/client/assets/ini-BvajGCUy.js +1 -0
  94. package/dist/client/assets/java-SYsfObOQ.js +1 -0
  95. package/dist/client/assets/javascript-ciDUXdez.js +1 -0
  96. package/dist/client/assets/jsonMode-BmkXC0tI.js +10 -0
  97. package/dist/client/assets/julia-DQXNmw_w.js +1 -0
  98. package/dist/client/assets/kotlin-qQ0MG-9I.js +1 -0
  99. package/dist/client/assets/less-GGFNNJHn.js +2 -0
  100. package/dist/client/assets/lexon-Canl7DCW.js +1 -0
  101. package/dist/client/assets/liquid-CwE4UIwf.js +1 -0
  102. package/dist/client/assets/lua-D28Ae8-K.js +1 -0
  103. package/dist/client/assets/m3-DPitgjJI.js +1 -0
  104. package/dist/client/assets/markdown-B811l8j2.js +1 -0
  105. package/dist/client/assets/mdx-K_9Emnjy.js +1 -0
  106. package/dist/client/assets/mips-CdjsipkG.js +1 -0
  107. package/dist/client/assets/msdax-CYqgjx_P.js +1 -0
  108. package/dist/client/assets/mysql-BHd6q0vd.js +1 -0
  109. package/dist/client/assets/objective-c-B1aVtJYH.js +1 -0
  110. package/dist/client/assets/pascal-BhNW15KB.js +1 -0
  111. package/dist/client/assets/pascaligo-5jv8CcQD.js +1 -0
  112. package/dist/client/assets/perl-DlYyT36c.js +1 -0
  113. package/dist/client/assets/pgsql-Dy0bjov7.js +1 -0
  114. package/dist/client/assets/php-120yhfDK.js +1 -0
  115. package/dist/client/assets/pla-CjnFlu4u.js +1 -0
  116. package/dist/client/assets/postiats-CQpG440k.js +1 -0
  117. package/dist/client/assets/powerquery-DdJtto1Z.js +1 -0
  118. package/dist/client/assets/powershell-Bu_VLpJB.js +1 -0
  119. package/dist/client/assets/protobuf-IBS6jZEB.js +2 -0
  120. package/dist/client/assets/pug-kFxLfcjb.js +1 -0
  121. package/dist/client/assets/python-BzIc0EVe.js +1 -0
  122. package/dist/client/assets/qsharp-q7JyzKFN.js +1 -0
  123. package/dist/client/assets/r-BIFz-_sK.js +1 -0
  124. package/dist/client/assets/razor-lXZl6dtu.js +1 -0
  125. package/dist/client/assets/redis-CHOsPHWR.js +1 -0
  126. package/dist/client/assets/redshift-CBifECDb.js +1 -0
  127. package/dist/client/assets/restructuredtext-CghPJEOS.js +1 -0
  128. package/dist/client/assets/ruby-CYWGW-b1.js +1 -0
  129. package/dist/client/assets/rust-DMDD0SHb.js +1 -0
  130. package/dist/client/assets/sb-BYAiYHFx.js +1 -0
  131. package/dist/client/assets/scala-Bqvq8jcR.js +1 -0
  132. package/dist/client/assets/scheme-Dhb-2j9p.js +1 -0
  133. package/dist/client/assets/scss-CTwUZ5N7.js +3 -0
  134. package/dist/client/assets/shell-CsDZo4DB.js +1 -0
  135. package/dist/client/assets/solidity-CME5AdoB.js +1 -0
  136. package/dist/client/assets/sophia-RYC1BQQz.js +1 -0
  137. package/dist/client/assets/sparql-KEyrF7De.js +1 -0
  138. package/dist/client/assets/sql-BdTr02Mf.js +1 -0
  139. package/dist/client/assets/st-C7iG7M4S.js +1 -0
  140. package/dist/client/assets/swift-D7IUmUK8.js +1 -0
  141. package/dist/client/assets/systemverilog-DgMryOEJ.js +1 -0
  142. package/dist/client/assets/tcl-PloMZuKG.js +1 -0
  143. package/dist/client/assets/tsMode-BAXmgo_t.js +11 -0
  144. package/dist/client/assets/twig-BfRIq3la.js +1 -0
  145. package/dist/client/assets/typescript-Cdf8nS1n.js +1 -0
  146. package/dist/client/assets/typespec-CzxlYoT_.js +1 -0
  147. package/dist/client/assets/vb-BwAE3J76.js +1 -0
  148. package/dist/client/assets/wgsl-B_1kOXbF.js +298 -0
  149. package/dist/client/assets/xml-DGyPgYnj.js +1 -0
  150. package/dist/client/assets/yaml-Dqv3HtbL.js +1 -0
  151. package/dist/client/index.html +14 -0
  152. package/dist/client/manic-logo.png +0 -0
  153. package/dist/client/wasm/manic_lang.d.ts +74 -0
  154. package/dist/client/wasm/manic_lang.js +302 -0
  155. package/dist/client/wasm/manic_lang_bg.wasm +0 -0
  156. package/dist/client/wasm/manic_lang_bg.wasm.d.ts +13 -0
  157. package/dist/server/agentProtocol.d.ts +131 -0
  158. package/dist/server/agentProtocol.js +21 -0
  159. package/dist/server/agentProtocol.js.map +1 -0
  160. package/dist/server/agentRuns.d.ts +46 -0
  161. package/dist/server/agentRuns.js +138 -0
  162. package/dist/server/agentRuns.js.map +1 -0
  163. package/dist/server/agentThreads.d.ts +20 -0
  164. package/dist/server/agentThreads.js +205 -0
  165. package/dist/server/agentThreads.js.map +1 -0
  166. package/dist/server/aiSecrets.d.ts +21 -0
  167. package/dist/server/aiSecrets.js +68 -0
  168. package/dist/server/aiSecrets.js.map +1 -0
  169. package/dist/server/app.d.ts +34 -0
  170. package/dist/server/app.js +804 -0
  171. package/dist/server/app.js.map +1 -0
  172. package/dist/server/assets.d.ts +34 -0
  173. package/dist/server/assets.js +659 -0
  174. package/dist/server/assets.js.map +1 -0
  175. package/dist/server/candidateFix.d.ts +28 -0
  176. package/dist/server/candidateFix.js +111 -0
  177. package/dist/server/candidateFix.js.map +1 -0
  178. package/dist/server/cli.d.ts +2 -0
  179. package/dist/server/cli.js +118 -0
  180. package/dist/server/cli.js.map +1 -0
  181. package/dist/server/diagnostics.d.ts +13 -0
  182. package/dist/server/diagnostics.js +73 -0
  183. package/dist/server/diagnostics.js.map +1 -0
  184. package/dist/server/engineCheck.d.ts +7 -0
  185. package/dist/server/engineCheck.js +60 -0
  186. package/dist/server/engineCheck.js.map +1 -0
  187. package/dist/server/engineInstall.d.ts +34 -0
  188. package/dist/server/engineInstall.js +228 -0
  189. package/dist/server/engineInstall.js.map +1 -0
  190. package/dist/server/enginePaths.d.ts +3 -0
  191. package/dist/server/enginePaths.js +76 -0
  192. package/dist/server/enginePaths.js.map +1 -0
  193. package/dist/server/folderPicker.d.ts +1 -0
  194. package/dist/server/folderPicker.js +54 -0
  195. package/dist/server/folderPicker.js.map +1 -0
  196. package/dist/server/manicAgent.d.ts +75 -0
  197. package/dist/server/manicAgent.js +476 -0
  198. package/dist/server/manicAgent.js.map +1 -0
  199. package/dist/server/manicEnv.d.ts +18 -0
  200. package/dist/server/manicEnv.js +64 -0
  201. package/dist/server/manicEnv.js.map +1 -0
  202. package/dist/server/promptStore.d.ts +11 -0
  203. package/dist/server/promptStore.js +85 -0
  204. package/dist/server/promptStore.js.map +1 -0
  205. package/dist/server/renderJobs.d.ts +54 -0
  206. package/dist/server/renderJobs.js +290 -0
  207. package/dist/server/renderJobs.js.map +1 -0
  208. package/dist/server/settings.d.ts +40 -0
  209. package/dist/server/settings.js +262 -0
  210. package/dist/server/settings.js.map +1 -0
  211. package/dist/server/smartDraw.d.ts +7 -0
  212. package/dist/server/smartDraw.js +88 -0
  213. package/dist/server/smartDraw.js.map +1 -0
  214. package/dist/server/workspace.d.ts +27 -0
  215. package/dist/server/workspace.js +172 -0
  216. package/dist/server/workspace.js.map +1 -0
  217. package/examples/.manic-output/40b6f3b9-7638-4c0e-bb4f-570d45d1b225/job.json +26 -0
  218. package/examples/.manic-output/993f3788-f75e-445c-ba45-c401907b3c02/job.json +26 -0
  219. package/examples/.manic-output/993f3788-f75e-445c-ba45-c401907b3c02/markers.json +13 -0
  220. package/examples/.manic-output/993f3788-f75e-445c-ba45-c401907b3c02/out.mp4 +0 -0
  221. package/examples/.manic-workbench-threads/thread_3ce7448a13f64f9e887d1bc8106a97a8.json +45 -0
  222. package/examples/.manic-workbench-threads/thread_d494cda29249477591056234719e4a3a.json +21 -0
  223. package/examples/.manic-workbench-threads/thread_e98ebdc225184ea5b8ddda8b44541f63.json +29 -0
  224. package/examples/README.md +35 -0
  225. package/examples/a-story-1.manic +222 -0
  226. package/examples/a-story.manic +100 -0
  227. package/examples/achromat-cinematic.manic +105 -0
  228. package/examples/achromat.manic +32 -0
  229. package/examples/aes-decrypt.manic +359 -0
  230. package/examples/aes-encrypt.manic +359 -0
  231. package/examples/aes-round.manic +70 -0
  232. package/examples/aes-story.manic +622 -0
  233. package/examples/ai-story.manic +118 -0
  234. package/examples/analysis.manic +53 -0
  235. package/examples/archimedes_pi.manic +89 -0
  236. package/examples/area_under_curve.manic +131 -0
  237. package/examples/art-rakkan.manic +69 -0
  238. package/examples/aspheric-lens.manic +32 -0
  239. package/examples/astronomical-watch.manic +96 -0
  240. package/examples/asymptote-randomwalk3-reference.manic +58 -0
  241. package/examples/asymptote-tiling-reference.manic +65 -0
  242. package/examples/aws-clustered-web-services.manic +186 -0
  243. package/examples/aws-event-processing-clusters-poc.manic +97 -0
  244. package/examples/aws-three-tier-web-application.manic +134 -0
  245. package/examples/band.manic +43 -0
  246. package/examples/banner.manic +37 -0
  247. package/examples/bayes.manic +27 -0
  248. package/examples/bellcurve.manic +41 -0
  249. package/examples/bfs_dfs.manic +35 -0
  250. package/examples/block-tackle.manic +26 -0
  251. package/examples/bloom-scope.manic +172 -0
  252. package/examples/boolean.manic +46 -0
  253. package/examples/boxplot-wave.manic +93 -0
  254. package/examples/boxplot.manic +43 -0
  255. package/examples/brace.manic +46 -0
  256. package/examples/brachistochrone-annotated.manic +51 -0
  257. package/examples/brachistochrone.manic +27 -0
  258. package/examples/bubble_sort.manic +41 -0
  259. package/examples/bullet-block-annotated.manic +48 -0
  260. package/examples/bullet-block.manic +11 -0
  261. package/examples/bullet-impact.manic +65 -0
  262. package/examples/bungee.manic +9 -0
  263. package/examples/c4-internet-banking-components.manic +33 -0
  264. package/examples/c4-internet-banking-containers.manic +29 -0
  265. package/examples/c4-internet-banking.manic +26 -0
  266. package/examples/c4-story.manic +171 -0
  267. package/examples/c4-test.manic +52 -0
  268. package/examples/c4-zoom.manic +69 -0
  269. package/examples/calculus-demo.manic +129 -0
  270. package/examples/calculus-one.manic +288 -0
  271. package/examples/captions.manic +31 -0
  272. package/examples/car-suspension-annotated.manic +57 -0
  273. package/examples/car-suspension.manic +8 -0
  274. package/examples/cart-pendulum.manic +11 -0
  275. package/examples/charts-bar-line.manic +26 -0
  276. package/examples/charts-column-race.manic +19 -0
  277. package/examples/charts-gdp-race.manic +43 -0
  278. package/examples/charts-german-elections.manic +28 -0
  279. package/examples/charts-line-race.manic +21 -0
  280. package/examples/circle-in-three.manic +156 -0
  281. package/examples/circle-thirds-no-triangle.manic +161 -0
  282. package/examples/clip-window.manic +34 -0
  283. package/examples/cloud-feathers.manic +50 -0
  284. package/examples/cloud-jellyfish-v2.manic +87 -0
  285. package/examples/cloud-jellyfish.manic +48 -0
  286. package/examples/cloud-kaleidoscope.manic +48 -0
  287. package/examples/cloud-koi.manic +51 -0
  288. package/examples/cloud-lissajous.manic +23 -0
  289. package/examples/cloud-medusae.manic +46 -0
  290. package/examples/cloud-phoenix.manic +49 -0
  291. package/examples/cloud-plumes.manic +47 -0
  292. package/examples/cloud-pottery.manic +104 -0
  293. package/examples/cloud-shells.manic +50 -0
  294. package/examples/cloud-starfield.manic +23 -0
  295. package/examples/cloud-wave-lattice.manic +23 -0
  296. package/examples/cloud-word.manic +31 -0
  297. package/examples/cloud3-ripple.manic +53 -0
  298. package/examples/cloud3-sphere.manic +26 -0
  299. package/examples/clt.manic +35 -0
  300. package/examples/collide-blocks-annotated.manic +45 -0
  301. package/examples/collide-blocks.manic +11 -0
  302. package/examples/compare-pendulum.manic +11 -0
  303. package/examples/complex-flowchart.manic +196 -0
  304. package/examples/compound-pulley.manic +25 -0
  305. package/examples/conics.manic +46 -0
  306. package/examples/coordinates.manic +52 -0
  307. package/examples/correlation.manic +35 -0
  308. package/examples/covariance.manic +30 -0
  309. package/examples/creator-affine-fern-growth.manic +72 -0
  310. package/examples/creator-bowl-to-saddle.manic +86 -0
  311. package/examples/creator-branch-counting-tree3.manic +77 -0
  312. package/examples/creator-chaos-game-fern.manic +72 -0
  313. package/examples/creator-circle-inversion-chain.manic +61 -0
  314. package/examples/creator-convex-hull-depth.manic +59 -0
  315. package/examples/creator-coordinate-worlds.manic +182 -0
  316. package/examples/creator-ellipse-reflection-property.manic +59 -0
  317. package/examples/creator-free-kicks.manic +261 -0
  318. package/examples/creator-geometry-language-showcase.manic +259 -0
  319. package/examples/creator-geometry-morph-promo.manic +151 -0
  320. package/examples/creator-heightmap-world.manic +130 -0
  321. package/examples/creator-hilbert3-spatial-index.manic +203 -0
  322. package/examples/creator-how-rocket-launch-works.manic +192 -0
  323. package/examples/creator-implicit-surface-parameterized.manic +51 -0
  324. package/examples/creator-incenter-dissection.manic +56 -0
  325. package/examples/creator-lattice-paths.manic +118 -0
  326. package/examples/creator-line-inversion.manic +49 -0
  327. package/examples/creator-lsystem-fractal-curve.manic +121 -0
  328. package/examples/creator-mandelbrot-escape-test.manic +58 -0
  329. package/examples/creator-monty-hall.manic +104 -0
  330. package/examples/creator-noise-story.manic +123 -0
  331. package/examples/creator-one-tile-pattern-story.manic +169 -0
  332. package/examples/creator-pathfinding.manic +82 -0
  333. package/examples/creator-point-to-plane-distance.manic +167 -0
  334. package/examples/creator-race-quiz.manic +76 -0
  335. package/examples/creator-randomwalk3-diffusion.manic +72 -0
  336. package/examples/creator-reflected-ellipse.manic +48 -0
  337. package/examples/creator-rule90-sierpinski.manic +64 -0
  338. package/examples/creator-three-shadows-of-a-curve.manic +48 -0
  339. package/examples/creator-trigonometry-one-angle.manic +307 -0
  340. package/examples/creator-v2-latex-algebra.manic +29 -0
  341. package/examples/creator-v2-latex-calculus.manic +37 -0
  342. package/examples/creator-v2-latex-physics.manic +29 -0
  343. package/examples/creator-v2-olympiad-geometry.manic +92 -0
  344. package/examples/creator-v2-options-socials.manic +21 -0
  345. package/examples/creator-v2-timers.manic +25 -0
  346. package/examples/creator-v2-timing-square.manic +25 -0
  347. package/examples/creator-v2-timing.manic +34 -0
  348. package/examples/creator-v2.manic +36 -0
  349. package/examples/creator-why-rockets-use-stages.manic +198 -0
  350. package/examples/creator-wrap-real-line.manic +51 -0
  351. package/examples/cubic-graphs.manic +432 -0
  352. package/examples/curve-features.manic +41 -0
  353. package/examples/definedmotion-fourier-gallery.manic +171 -0
  354. package/examples/derivative-of-ln-x.manic +194 -0
  355. package/examples/diagonalise.manic +56 -0
  356. package/examples/dijkstra.manic +29 -0
  357. package/examples/dimensions-unfold.manic +211 -0
  358. package/examples/disc-integration.manic +172 -0
  359. package/examples/double-incline.manic +9 -0
  360. package/examples/double-integral3.manic +43 -0
  361. package/examples/double-pendulum.manic +35 -0
  362. package/examples/double-spring.manic +9 -0
  363. package/examples/drop-mass.manic +25 -0
  364. package/examples/eigen3.manic +34 -0
  365. package/examples/equal_cuts.manic +44 -0
  366. package/examples/equation.manic +16 -0
  367. package/examples/equilateral.manic +57 -0
  368. package/examples/euler_line.manic +51 -0
  369. package/examples/exponential-shells.manic +188 -0
  370. package/examples/extrude3.manic +37 -0
  371. package/examples/factorial-flowchart.manic +69 -0
  372. package/examples/fibonacci-sphere.manic +57 -0
  373. package/examples/flow-lorenz.manic +47 -0
  374. package/examples/fourier-series-live-wave.manic +114 -0
  375. package/examples/fourier-square-wave-live.manic +114 -0
  376. package/examples/fractal_tree.manic +39 -0
  377. package/examples/frame3-grid-policies.manic +48 -0
  378. package/examples/ftc.manic +54 -0
  379. package/examples/function_graph.manic +54 -0
  380. package/examples/galton-board-process.manic +150 -0
  381. package/examples/gcp-clustered-web-services.manic +186 -0
  382. package/examples/gcp-message-collecting.manic +139 -0
  383. package/examples/geo-pythagoras-short.manic +119 -0
  384. package/examples/glsl-boxgrid.manic +105 -0
  385. package/examples/glsl-parameter.manic +30 -0
  386. package/examples/glsl-raymarch.manic +59 -0
  387. package/examples/glsl-shapes.manic +122 -0
  388. package/examples/gradient-descent-field.manic +116 -0
  389. package/examples/gradient-fastest-descent-shorts.manic +153 -0
  390. package/examples/gradient-fastest-descent.manic +125 -0
  391. package/examples/gradient-pendulum-shorts.manic +117 -0
  392. package/examples/gradient.manic +74 -0
  393. package/examples/graph.manic +45 -0
  394. package/examples/graph_moving.manic +67 -0
  395. package/examples/grid-astar.manic +15 -0
  396. package/examples/grid-life-soup.manic +31 -0
  397. package/examples/grid-life-zoo.manic +46 -0
  398. package/examples/grid-life.manic +19 -0
  399. package/examples/grid-wfc.manic +13 -0
  400. package/examples/growing-fractal-tree3.manic +58 -0
  401. package/examples/gun-shot.manic +82 -0
  402. package/examples/hashmap.manic +38 -0
  403. package/examples/heightmap3-world.manic +64 -0
  404. package/examples/heightmap3.manic +23 -0
  405. package/examples/hilbert-curve3-space-filling.manic +117 -0
  406. package/examples/hill_run.manic +71 -0
  407. package/examples/histogram.manic +43 -0
  408. package/examples/hotdog-taco.manic +147 -0
  409. package/examples/hue_wave.manic +35 -0
  410. package/examples/hypothesis.manic +32 -0
  411. package/examples/image.manic +29 -0
  412. package/examples/incircle_tangents.manic +64 -0
  413. package/examples/incline-bumper.manic +11 -0
  414. package/examples/incline-pulley.manic +11 -0
  415. package/examples/incline-showcase.manic +55 -0
  416. package/examples/inline-math.manic +16 -0
  417. package/examples/inscribed-angle-short.manic +56 -0
  418. package/examples/integral-sqrt-tanx.manic +255 -0
  419. package/examples/integrals.manic +274 -0
  420. package/examples/inverse-derivatives.manic +94 -0
  421. package/examples/k8s-cluster-components.manic +82 -0
  422. package/examples/k8s-stateful-architecture.manic +134 -0
  423. package/examples/k8s-three-tier.manic +146 -0
  424. package/examples/kapitza.manic +11 -0
  425. package/examples/latex-disintegration.manic +123 -0
  426. package/examples/lens-paper.manic +36 -0
  427. package/examples/lens-prescription.manic +33 -0
  428. package/examples/lens-system.manic +34 -0
  429. package/examples/lens.manic +31 -0
  430. package/examples/limit-infinity.manic +30 -0
  431. package/examples/limit.manic +33 -0
  432. package/examples/linear-algebra-3d.manic +50 -0
  433. package/examples/linear-algebra.manic +115 -0
  434. package/examples/linear-map.manic +39 -0
  435. package/examples/linear-map3.manic +33 -0
  436. package/examples/linear-system.manic +99 -0
  437. package/examples/linear_transform.manic +43 -0
  438. package/examples/linked_list.manic +38 -0
  439. package/examples/lln.manic +31 -0
  440. package/examples/loop-cinematic.manic +41 -0
  441. package/examples/loop-track.manic +11 -0
  442. package/examples/lorenz-attractor.manic +55 -0
  443. package/examples/lorenz-shells.manic +43 -0
  444. package/examples/lost-in-patterns.manic +149 -0
  445. package/examples/lsystem-asymptote-curves.manic +81 -0
  446. package/examples/manic-ml-activation-focus.manic +133 -0
  447. package/examples/manic-ml-cnn-edge-story.manic +102 -0
  448. package/examples/manic-ml-forward-pass.manic +93 -0
  449. package/examples/manic-ml-learning-step.manic +116 -0
  450. package/examples/manic-ml-logits-sampling.manic +112 -0
  451. package/examples/manic-ml-scalar-to-tensor.manic +143 -0
  452. package/examples/manic-ml-token-embedding.manic +110 -0
  453. package/examples/manic-ml-transformer-attention.manic +102 -0
  454. package/examples/manic-ml-transformer-block.manic +116 -0
  455. package/examples/manic-promo.manic +64 -0
  456. package/examples/map-attractor.manic +45 -0
  457. package/examples/mask-lens.manic +33 -0
  458. package/examples/matrix.manic +37 -0
  459. package/examples/matrix3.manic +101 -0
  460. package/examples/matrix_addition.manic +66 -0
  461. package/examples/matrix_addition_plane.manic +91 -0
  462. package/examples/maxwell-boltzmann-effusion-v2.manic +142 -0
  463. package/examples/maxwell-boltzmann-process.manic +86 -0
  464. package/examples/microservices-platform.manic +140 -0
  465. package/examples/molecule.manic +8 -0
  466. package/examples/morph-icons.manic +29 -0
  467. package/examples/morph.manic +29 -0
  468. package/examples/morph3.manic +49 -0
  469. package/examples/motion-flow-foundation.manic +148 -0
  470. package/examples/motion-graphics-v2-story.manic +189 -0
  471. package/examples/motion-graphics-v2.manic +81 -0
  472. package/examples/motion-graphics.manic +81 -0
  473. package/examples/multivariable3.manic +26 -0
  474. package/examples/mystory.manic +9 -0
  475. package/examples/newton.manic +39 -0
  476. package/examples/newtons-cradle.manic +10 -0
  477. package/examples/nine_point.manic +59 -0
  478. package/examples/noise-terrain.manic +16 -0
  479. package/examples/off-axis.manic +32 -0
  480. package/examples/onprem-advanced-web-service-v2.manic +196 -0
  481. package/examples/onprem-advanced-web-service.manic +175 -0
  482. package/examples/orthocenter.manic +63 -0
  483. package/examples/param3.manic +43 -0
  484. package/examples/parameter-journeys.manic +154 -0
  485. package/examples/parameterized-field-advection.manic +57 -0
  486. package/examples/parameterized-generated-families3.manic +83 -0
  487. package/examples/particles-flow.manic +61 -0
  488. package/examples/pascal-triangle.manic +92 -0
  489. package/examples/pendulum-annotated.manic +72 -0
  490. package/examples/pendulum-damped.manic +35 -0
  491. package/examples/pendulum.manic +38 -0
  492. package/examples/perfect-reel.manic +43 -0
  493. package/examples/pie.manic +41 -0
  494. package/examples/pieday.manic +113 -0
  495. package/examples/piston.manic +7 -0
  496. package/examples/popkorn-field.manic +38 -0
  497. package/examples/prism-cinematic.manic +36 -0
  498. package/examples/prism.manic +32 -0
  499. package/examples/probability.manic +57 -0
  500. package/examples/process-branching-dispatch.manic +71 -0
  501. package/examples/process-stream-observe.manic +54 -0
  502. package/examples/projection.manic +57 -0
  503. package/examples/prompt-test-10.manic +257 -0
  504. package/examples/prompt-test-11.manic +168 -0
  505. package/examples/prompt-test-12.manic +177 -0
  506. package/examples/prompt-test-13.manic +228 -0
  507. package/examples/prompt-test-14.manic +319 -0
  508. package/examples/prompt-test-15.manic +325 -0
  509. package/examples/prompt-test-16.manic +252 -0
  510. package/examples/prompt-test-2.manic +239 -0
  511. package/examples/prompt-test-3.manic +336 -0
  512. package/examples/prompt-test-4.manic +195 -0
  513. package/examples/prompt-test-5.manic +223 -0
  514. package/examples/prompt-test-6.manic +222 -0
  515. package/examples/prompt-test-7.manic +156 -0
  516. package/examples/prompt-test-8.manic +266 -0
  517. package/examples/prompt-test-9.manic +171 -0
  518. package/examples/prompt-test.manic +158 -0
  519. package/examples/pulley-annotated.manic +54 -0
  520. package/examples/pulley-paper.manic +52 -0
  521. package/examples/pulley-scale.manic +23 -0
  522. package/examples/pulley.manic +24 -0
  523. package/examples/quadratic-formula-continuity.manic +110 -0
  524. package/examples/quiz-euler.manic +52 -0
  525. package/examples/quiz-geometry-2.manic +107 -0
  526. package/examples/quiz-geometry.manic +108 -0
  527. package/examples/quiz-skins.manic +22 -0
  528. package/examples/raft-cm.manic +24 -0
  529. package/examples/ramp.manic +25 -0
  530. package/examples/ray-fan.manic +27 -0
  531. package/examples/raymarch-alpha.manic +39 -0
  532. package/examples/raymarch-boxgrid.manic +47 -0
  533. package/examples/raymarch-docker-latency.manic +74 -0
  534. package/examples/raymarch-metaballs.manic +37 -0
  535. package/examples/raymarch-sculpture.manic +39 -0
  536. package/examples/raymarch-shapes3.manic +31 -0
  537. package/examples/reactive-integral.manic +172 -0
  538. package/examples/reactive-math-journey.manic +185 -0
  539. package/examples/reactive-math-notation.manic +150 -0
  540. package/examples/reactive-multiformat.manic +130 -0
  541. package/examples/reactive-world.manic +111 -0
  542. package/examples/refraction-paper.manic +40 -0
  543. package/examples/refraction.manic +32 -0
  544. package/examples/resonance.manic +10 -0
  545. package/examples/rewrite-exponential-cubic.manic +141 -0
  546. package/examples/rewrite-integration.manic +199 -0
  547. package/examples/riemann_rainbow.manic +61 -0
  548. package/examples/riemann_readout.manic +61 -0
  549. package/examples/robot-arm.manic +25 -0
  550. package/examples/rref.manic +48 -0
  551. package/examples/second-law-thermodynamics.manic +385 -0
  552. package/examples/series-parallel-springs.manic +8 -0
  553. package/examples/serverless-processing.manic +145 -0
  554. package/examples/shader-cellular.manic +35 -0
  555. package/examples/shader-fractal.manic +45 -0
  556. package/examples/shader-fx.manic +34 -0
  557. package/examples/shader-glitch-grid.manic +55 -0
  558. package/examples/shader-parameter.manic +25 -0
  559. package/examples/shader-patterns.manic +37 -0
  560. package/examples/shader-plasma.manic +43 -0
  561. package/examples/shader-shapes-dsl.manic +46 -0
  562. package/examples/shader-shapes.manic +37 -0
  563. package/examples/shader-warp.manic +22 -0
  564. package/examples/shapes-howto.manic +411 -0
  565. package/examples/sine_wave.manic +42 -0
  566. package/examples/skew.manic +40 -0
  567. package/examples/smoke.rs +57 -0
  568. package/examples/solids3.manic +22 -0
  569. package/examples/some-story.manic +299 -0
  570. package/examples/spinning-cylinder-flow.manic +87 -0
  571. package/examples/spline.manic +21 -0
  572. package/examples/spot-diagram.manic +32 -0
  573. package/examples/spring-annotated.manic +60 -0
  574. package/examples/spring-chain.manic +11 -0
  575. package/examples/spring-damped.manic +33 -0
  576. package/examples/spring-incline.manic +10 -0
  577. package/examples/spring-paper.manic +46 -0
  578. package/examples/spring-pendulum.manic +14 -0
  579. package/examples/spring.manic +33 -0
  580. package/examples/sqrt-tanx.manic +217 -0
  581. package/examples/ssl-handshake-sdf.manic +116 -0
  582. package/examples/stack_queue.manic +53 -0
  583. package/examples/statistics.manic +60 -0
  584. package/examples/story-addressable-asset-cues.manic +71 -0
  585. package/examples/story-dependent-chain-history.manic +56 -0
  586. package/examples/story-living-dependency-cloud.manic +50 -0
  587. package/examples/story-time-varying-field3.manic +57 -0
  588. package/examples/story.manic +4 -0
  589. package/examples/string-art-breath.manic +70 -0
  590. package/examples/string-wave.manic +10 -0
  591. package/examples/summary.manic +48 -0
  592. package/examples/svg-howto.manic +172 -0
  593. package/examples/svg-import.manic +18 -0
  594. package/examples/systems-architecture-poc.manic +92 -0
  595. package/examples/systems-arrow-patterns.manic +151 -0
  596. package/examples/systems-foundation.manic +71 -0
  597. package/examples/systems-rabbitmq-consumers.manic +118 -0
  598. package/examples/table.manic +39 -0
  599. package/examples/table_braces.manic +54 -0
  600. package/examples/tangent-length-short.manic +57 -0
  601. package/examples/tangent.manic +29 -0
  602. package/examples/tangents.manic +54 -0
  603. package/examples/taylor.manic +44 -0
  604. package/examples/terminal_boot.manic +40 -0
  605. package/examples/test.manic +61 -0
  606. package/examples/text-guide.manic +304 -0
  607. package/examples/textbook-coordinate-worlds.manic +129 -0
  608. package/examples/textbook-doubly-list.manic +33 -0
  609. package/examples/textbook-function-to-solid.manic +126 -0
  610. package/examples/textbook-geometry-dimension-reduction.manic +129 -0
  611. package/examples/textbook-incline-fbd.manic +43 -0
  612. package/examples/textbook-length-area-volume.manic +137 -0
  613. package/examples/textbook-matrix-inverses.manic +172 -0
  614. package/examples/textbook-pulley.manic +35 -0
  615. package/examples/textbook-statistical-dimensions.manic +151 -0
  616. package/examples/textbook-tension.manic +39 -0
  617. package/examples/textbook-watermelon-sections.manic +216 -0
  618. package/examples/thales-semicircle-short.manic +53 -0
  619. package/examples/three-d-v2-lab.manic +83 -0
  620. package/examples/three-d-v2-story.manic +106 -0
  621. package/examples/three-d-v2.manic +69 -0
  622. package/examples/three_d.manic +39 -0
  623. package/examples/timing-v2-scene.manic +47 -0
  624. package/examples/trajectory.manic +28 -0
  625. package/examples/transform_copy.manic +35 -0
  626. package/examples/transforms.manic +54 -0
  627. package/examples/trapped-light-dimensions.manic +226 -0
  628. package/examples/tree-of-leaves.manic +215 -0
  629. package/examples/triangle.manic +68 -0
  630. package/examples/two_person_walk.manic +296 -0
  631. package/examples/two_pointer.manic +32 -0
  632. package/examples/type-to-sdf.manic +139 -0
  633. package/examples/typewriter.manic +28 -0
  634. package/examples/vector_field.manic +32 -0
  635. package/examples/vertical-spring.manic +10 -0
  636. package/examples/volume3.manic +21 -0
  637. package/examples/volumes-solid-of-revolution.manic +111 -0
  638. package/examples/walk.manic +154 -0
  639. package/examples/wheel-duo.manic +91 -0
  640. package/examples/wheel-radial.manic +78 -0
  641. package/examples/wheel-square.manic +83 -0
  642. package/examples/wireframe-spheres.manic +37 -0
  643. package/examples/zeroth-law-thermodynamics.manic +269 -0
  644. package/package.json +59 -0
@@ -0,0 +1,38 @@
1
+ // ============================================================================
2
+ // pendulum.manic — the physics kit's first sim, seen FOUR ways (Layer 1)
3
+ // ----------------------------------------------------------------------------
4
+ // `pendulum(id, [center], [length], [angle0], [unit], [damping])` builds a
5
+ // pendulum from its physics — PRE-SIMULATED with RK4 at build time
6
+ // (deterministic). Only `id` is required. The OPTIONAL, generic view builtins
7
+ // render the SAME simulation as math panels and all animate together on `swing`:
8
+ // · phase(id,(cx,cy),[size]) — phase portrait (θ vs ω): a closed loop
9
+ // · timegraph(id,(cx,cy),[size]) — θ(t) & ω(t) with a sweep line
10
+ // · well(id,(cx,cy),[size]) — energy well U(θ), bob = ball in a bowl
11
+ // · energygraph(id,(cx,cy),[size]) — KE / PE / total over time
12
+ //
13
+ // TO ADAPT: add damping (6th arg) and watch the phase loop spiral inward, the
14
+ // ball settle to the bottom of the well, and total energy decay — e.g.
15
+ // `pendulum(p, (250,220), 1.2, 55, 105, 0.5)`.
16
+ // ============================================================================
17
+
18
+ title("Pendulum — one swing, four views");
19
+ canvas("16:9");
20
+
21
+ text(hdr, (cx, 40), "One pendulum, four views");
22
+ size(hdr, 24); color(hdr, cyan); bold(hdr); display(hdr);
23
+
24
+ // the physical sim (left), with velocity arrow + KE/PE bars
25
+ pendulum(p, (250, 220), 1.2, 55, 105);
26
+ untraced(p.path);
27
+
28
+ // four math views of the SAME simulation, 2×2 on the right
29
+ phase(p, (715, 165), 90); // θ vs ω — a closed loop
30
+ timegraph(p, (1000, 165), 90); // θ(t), ω(t) with a sweep line
31
+ well(p, (715, 455), 90); // U(θ) with the bob as a rolling ball
32
+ energygraph(p, (1000, 455), 90); // KE / PE / total over time
33
+
34
+ text(cap, (cx, h - 30), "sim · phase portrait · time series · energy well · energy over time — all from one pre-simulated swing");
35
+ size(cap, 16); color(cap, dim); display(cap);
36
+
37
+ draw(p.path, 0.8);
38
+ swing(p, 10); // every panel animates in lockstep
@@ -0,0 +1,43 @@
1
+ // A production-ready Creator v2 Reel: safe layout, exact pacing, one focal
2
+ // equation, restrained motion, reusable branding, markers, and an end card.
3
+ title("Perfect Reel — Angle Ratio");
4
+ canvas("9:16");
5
+ template("mono");
6
+ watermark(manicMark, (w*0.895-100, h*0.075+24), "Made With Manic");
7
+
8
+ creator(me, "@anish2good name=Proof_Daily tagline=Think_then_prove yt=zarigatongy x=@anish2good web=8gwifi.org/manic accent=cyan secondary=magenta footer=signature cta=Save_and_share safe=reels");
9
+
10
+ quiz(q, "Triangle angles: 2:3:4. What is the largest?",
11
+ "studio layout=media-first reveal=fade density=comfortable motion=calm safe=reels accent=cyan");
12
+ option(q, `$60^\circ$`);
13
+ option(q, `$80^\circ$`, correct);
14
+ option(q, `$90^\circ$`);
15
+ option(q, `$100^\circ$`);
16
+ explain(q, `The parts total $9$, so $x=20^\circ$ and $4x=80^\circ$.`, "Angle sum");
17
+
18
+ equation(prompt, (cx, 650), `2x+3x+4x=180^\circ`, 70);
19
+ color(prompt, cyan);
20
+ figure(prompt);
21
+ hidden(prompt);
22
+
23
+ // Exact 10.5-second quiz beat. The timer look can change independently.
24
+ timing(q, "calm ask=1.1 options=1 think=5.5 reveal=0.75 hold=2.15 stagger=0.06");
25
+ timerstyle(q, "look=ring position=below number=inside direction=drain size=medium thickness=1.1 color=cyan track=dim label=THINK font=mono finish=pulse");
26
+
27
+ socials(me);
28
+ endcard(me, "cta=Save_and_share");
29
+
30
+ mark("hook");
31
+ par {
32
+ run(q);
33
+ show(prompt, 0.5);
34
+ }
35
+
36
+ mark("endcard");
37
+ par {
38
+ fade(q.parts, 0.45);
39
+ fade(prompt, 0.45);
40
+ fade(me.footer, 0.45);
41
+ }
42
+ show(me.endcard, 0.6);
43
+ wait(1.4);
@@ -0,0 +1,41 @@
1
+ // Equal Slices — a circle cut into equal *sectors* (real filled pieces, not
2
+ // just lines) with the math-kit `pie(id, center, r, n)` builtin. Each slice is
3
+ // addressable as p0 … p5, so we can trace them on, then pull two out.
4
+ //
5
+ // manic examples/pie.manic
6
+ // manic examples/pie.manic --record out --fps 60
7
+
8
+ title("Equal Slices");
9
+ canvas(1280, 720);
10
+
11
+ // six equal sectors centred at (560, 400), radius 230 → p0 … p5, tag `p`
12
+ pie(p, (560, 400), 230, 6);
13
+ untraced(p0); untraced(p1); untraced(p2);
14
+ untraced(p3); untraced(p4); untraced(p5);
15
+
16
+ text(head, (560, 120), "six equal slices");
17
+ display(head); color(head, cyan); size(head, 38); hidden(head);
18
+ text(cap, (560, 690), ""); color(cap, dim); size(cap, 22);
19
+
20
+ // --- cut the circle equally, one slice at a time ---
21
+ show(head, 0.5);
22
+ say(cap, "cut the circle into six equal sectors");
23
+ stagger(0.12) {
24
+ draw(p0, 0.4);
25
+ draw(p1, 0.4);
26
+ draw(p2, 0.4);
27
+ draw(p3, 0.4);
28
+ draw(p4, 0.4);
29
+ draw(p5, 0.4);
30
+ }
31
+ wait(0.6);
32
+
33
+ // --- each sector is a real piece: pull two out and recolour them ---
34
+ say(cap, "each sector is a real piece — pull two out");
35
+ par {
36
+ move(p0, (621, 435), 0.6, overshoot);
37
+ move(p3, (499, 365), 0.6, overshoot);
38
+ recolor(p0, magenta, 0.5);
39
+ recolor(p3, lime, 0.5);
40
+ }
41
+ wait(1.0);
@@ -0,0 +1,113 @@
1
+ title("Pi Day");
2
+ canvas("16:9");
3
+
4
+ let r = h*0.23;
5
+ let centerY = cy + 25;
6
+ let n = 64;
7
+ let petalsN = 12;
8
+
9
+ text(head, (cx, 70), "Happy Pi Day");
10
+ text(bigPi, (cx, centerY - 8), "pi");
11
+ text(digits, (cx, h - 92), "3.1415926535897932384626433832795028841971...");
12
+ text(formula, (cx, h - 50), "circumference / diameter = pi");
13
+
14
+ size(head, 40);
15
+ size(bigPi, 112);
16
+ size(digits, 24);
17
+ size(formula, 26);
18
+ bold(head);
19
+ bold(bigPi);
20
+ color(head, magenta);
21
+ color(bigPi, gold);
22
+ color(digits, cyan);
23
+ color(formula, lime);
24
+ hidden(head);
25
+ hidden(bigPi);
26
+ hidden(digits);
27
+ hidden(formula);
28
+
29
+ circle(mainCircle, (cx, centerY), r);
30
+ line(diameter, (cx - r, centerY), (cx + r, centerY));
31
+ text(diamLab, (cx, centerY + 34), "diameter");
32
+ text(circLab, (cx, centerY - r - 30), "circumference");
33
+
34
+ stroke(mainCircle, 5);
35
+ stroke(diameter, 3);
36
+ color(mainCircle, cyan);
37
+ color(diameter, lime);
38
+ color(diamLab, lime);
39
+ color(circLab, cyan);
40
+ size(diamLab, 22);
41
+ size(circLab, 22);
42
+ hidden(diamLab);
43
+ hidden(circLab);
44
+ untraced(mainCircle);
45
+ untraced(diameter);
46
+
47
+ for i in 0..petalsN {
48
+ circle(petal{i}, (cx + 0.54*r*cos(tau*i/petalsN), centerY + 0.54*r*sin(tau*i/petalsN)), 0.46r);
49
+ stroke(petal{i}, 2);
50
+ hue(petal{i}, 360i/petalsN);
51
+ opacity(petal{i}, 0.34);
52
+ untraced(petal{i});
53
+ tag(petal{i}, petals);
54
+ }
55
+
56
+ for i in 0..n {
57
+ dot(spark{i}, (cx + 1.23*r*cos(tau*i/n), centerY + 1.23*r*sin(tau*i/n)), 4);
58
+ hue(spark{i}, 360*i/n);
59
+ hidden(spark{i});
60
+ tag(spark{i}, sparks);
61
+ }
62
+
63
+ for i in 0..24 {
64
+ line(ray{i}, (cx + 1.02*r*cos(tau*i/24), centerY + 1.02*r*sin(tau*i/24)), (cx + 1.18*r*cos(tau*i/24), centerY + 1.18*r*sin(tau*i/24)));
65
+ stroke(ray{i}, 3);
66
+ hue(ray{i}, 360*i/24);
67
+ untraced(ray{i});
68
+ tag(ray{i}, rays);
69
+ }
70
+
71
+ dot(centerDot, (cx, centerY), 6);
72
+ color(centerDot, gold);
73
+ hidden(centerDot);
74
+
75
+ show(head, 0.7);
76
+
77
+ par {
78
+ draw(petals, 1.4);
79
+ draw(mainCircle, 1.2);
80
+ }
81
+
82
+ par {
83
+ draw(diameter, 0.8);
84
+ show(centerDot, 0.4);
85
+ show(diamLab, 0.5);
86
+ show(circLab, 0.5);
87
+ }
88
+
89
+ par {
90
+ show(bigPi, 0.9);
91
+ draw(rays, 0.9);
92
+ }
93
+
94
+ stagger(0.018) {
95
+ for i in 0..n {
96
+ show(spark{i}, 0.25);
97
+ }
98
+ }
99
+
100
+ par {
101
+ show(digits, 0.7);
102
+ show(formula, 0.7);
103
+ }
104
+
105
+ pulse(bigPi, 0.8);
106
+ pulse(mainCircle, 0.8);
107
+
108
+ par {
109
+ spin(petals, 18, 3.0, smooth);
110
+ spin(sparks, -35, 3.0, smooth);
111
+ }
112
+
113
+ wait(1.2);
@@ -0,0 +1,7 @@
1
+ // piston.manic — an engine piston: a spinning crank drives a slider in a cylinder.
2
+ title("Engine piston — the slider-crank");
3
+ canvas("16:9");
4
+ text(hdr,(cx,46),"Slider-crank — a spinning crank becomes up-and-down motion"); size(hdr,23); color(hdr,cyan); bold(hdr); display(hdr);
5
+ piston(eng, (cx, 480), 60);
6
+ text(cap,(cx,h-32),"gold crank sweeps the circle; the rod converts it to the piston's stroke"); size(cap,16); color(cap,dim); display(cap);
7
+ run(eng, 9);
@@ -0,0 +1,38 @@
1
+ // popkorn-field — a 6000-point parametric field for Shorts (9:16). One closed-
2
+ // form formula per point, animated by live time `t`: it blooms out of the centre
3
+ // over the first few seconds (a `tanh` growth envelope), then keeps evolving,
4
+ // while each point cycles its own hue. This is the `cloud` primitive — N points
5
+ // placed by formulas of the index `i` and the clock `t`, re-evaluated every
6
+ // frame, yet still a pure function of t (it scrubs and records exactly).
7
+ //
8
+ // The maths is domain-neutral; `cloud` knows nothing about what it draws. Note
9
+ // `hypot(a,b)`, `mod(...)` for the hue wrap, and the `0.5*(s + abs(s))` idiom for
10
+ // `max(0, s)` (min/max are reductions in manic, not 2-arg functions).
11
+ //
12
+ // manic examples/popkorn-field.manic
13
+ title("popkorn field — 6000 points, one formula each");
14
+ canvas("9:16");
15
+ template("black");
16
+
17
+ cloud(dust, 6000, #ffffff, 0.5) {
18
+ let a = 4 * cos(i / 21);
19
+ let b = i / 1880 - 20;
20
+ let k = hypot(a, b);
21
+ let S = 3 * sin(2 * a) + 0.3 / a
22
+ + sin(i / 4465) * a * (9 + 2 * sin(b * 14 - k * 3 + 2 * t));
23
+ // raw field, centred near (200,120) at ~400px scale in the original
24
+ let fx = S + 50 * cos(k - t) + 200;
25
+ let fy = S * sin(k - t) + k * 39 - 475;
26
+ // bloom from the centre: 0.15 → ~1 over the first several seconds, so the
27
+ // full structure only resolves "after some point", then keeps drifting
28
+ let grow = tanh(t * 0.35 + 0.15);
29
+ let x = 540 + (fx - 205) * 3.3 * grow;
30
+ let y = 960 + (fy - 250) * 3.3 * grow;
31
+ // radius 1 where a*a>15 else 0.5, scaled up for the taller canvas
32
+ let s = sign(a * a - 15);
33
+ let r = (0.5 * (1 + 0.5 * (s + abs(s)))) * (2.5 + grow);
34
+ // each point its own hue, the whole wheel cycling over time
35
+ let hue = mod(i * 0.05 + t * 30, 360);
36
+ }
37
+
38
+ wait(16);
@@ -0,0 +1,36 @@
1
+ // ============================================================================
2
+ // prism-cinematic.manic — white light into a rainbow (annotated, dark bench)
3
+ // ----------------------------------------------------------------------------
4
+ // The `prism` sim on a dark optics bench, where the spectrum GLOWS (a rainbow
5
+ // washes out on paper — light is a dark-background subject). Elevation lens:
6
+ // KINETIC TYPE — the colour names pop in word-by-word (`wordpop`) as the fan
7
+ // spreads, plus a camera push toward the exit spectrum.
8
+ // ============================================================================
9
+
10
+ title("Prism — White Light Splits");
11
+ canvas("16:9");
12
+
13
+ prism(p, (560, 400), "sf11");
14
+
15
+ // the colour names, popped in one at a time over the fan
16
+ caption(names, "red orange yellow green blue violet", (cx + 40, 150), 26, gold);
17
+
18
+ text(cap, (cx, h - 46), ""); color(cap, fg); size(cap, 24); bold(cap); display(cap); sticky(cap);
19
+
20
+ // ================= THE SCENE =================
21
+ say(cap, "one beam of white light, into a prism…", 0.5);
22
+ wait(0.5);
23
+
24
+ par {
25
+ run(p, 8);
26
+ seq {
27
+ par { cam((820, 430), 2.6, smooth); zoom(1.22, 2.6, smooth); } // fly toward the spectrum
28
+ say(cap, "…out as a rainbow — the colours were always hidden inside", 0.3);
29
+ wordpop(names, 0.22); // the colours pop in
30
+ wait(1.6);
31
+ say(cap, "blue bends most, red least — real Sellmeier dispersion", 0.3);
32
+ wait(1.6);
33
+ }
34
+ }
35
+ par { cam((cx, 400), 1.2, smooth); zoom(1.0, 1.2, smooth); }
36
+ wait(1.0);
@@ -0,0 +1,32 @@
1
+ // ============================================================================
2
+ // prism.manic — white light into a rainbow (real dispersion)
3
+ // ----------------------------------------------------------------------------
4
+ // The `optics` kit's `prism`: white light enters a triangular prism and splits
5
+ // into a spectrum. Each colour is traced through both faces with its OWN
6
+ // refractive index (real Sellmeier dispersion) — blue bends more than red
7
+ // because glass genuinely slows blue more. `run` sweeps the incidence angle,
8
+ // so the fan swings and its spread widens.
9
+ // ============================================================================
10
+
11
+ title("Prism — White Light Splits");
12
+ canvas("16:9");
13
+
14
+ prism(p, (560, 400), "sf11"); // dense flint — a wide, vivid spectrum
15
+
16
+ text(cap, (cx, h - 46), ""); color(cap, fg); size(cap, 24); bold(cap); display(cap); sticky(cap);
17
+
18
+ // ================= THE SCENE =================
19
+ say(cap, "one beam of white light, into a prism…", 0.5);
20
+ wait(0.5);
21
+
22
+ par {
23
+ run(p, 7);
24
+ seq {
25
+ say(cap, "it comes out as a RAINBOW — the colours were always there", 0.3);
26
+ wait(2.6);
27
+ say(cap, "blue bends more than red: glass really does slow blue more", 0.3);
28
+ wait(2.4);
29
+ say(cap, "steeper in → the spectrum fans WIDER (real Sellmeier dispersion)", 0.3);
30
+ }
31
+ }
32
+ wait(1.2);
@@ -0,0 +1,57 @@
1
+ // ============================================================================
2
+ // probability.manic — a probability & sampling playground (stats)
3
+ // ----------------------------------------------------------------------------
4
+ // Four ideas on one stage, chaptered with section():
5
+ // 1. named DISTRIBUTIONS (uniform / exponential / binomial / poisson)
6
+ // 2. CONFIDENCE intervals (an estimate ± a margin)
7
+ // 3. MONTE-CARLO (estimate pi by throwing darts)
8
+ // 4. RANDOM WALK (a path that wanders)
9
+ // Each chapter reveals with untraced(tag) -> draw(tag) and clears with fade(tag).
10
+ // The seeded builtins (montecarlo, randomwalk) render identically every time.
11
+ // ============================================================================
12
+
13
+ title("A probability playground");
14
+ canvas("16:9");
15
+
16
+ // ---- 1. named distributions (a 2x2 gallery) ----
17
+ distribution(du, (cx - 350, cy - 120), "uniform", 2, 6); untraced(du);
18
+ distribution(de, (cx + 350, cy - 120), "exponential", 1); untraced(de);
19
+ distribution(db, (cx - 350, cy + 180), "binomial", 12, 0.4); untraced(db);
20
+ distribution(dp, (cx + 350, cy + 180), "poisson", 4); untraced(dp);
21
+ // ---- 2. a confidence interval ----
22
+ confidence(ci, (cx, cy), 50, 8, 25, 95, 620); untraced(ci); hidden(ci.estimate);
23
+ // ---- 3. monte-carlo pi ----
24
+ montecarlo(mc, (cx, cy - 10), 1200, 7, 210); untraced(mc);
25
+ // ---- 4. a random walk ----
26
+ randomwalk(rw, (cx, cy), 500, 4, 12); untraced(rw);
27
+
28
+ text(cap, (cx, h - 44), ""); size(cap, 22); color(cap, dim); display(cap);
29
+
30
+ section("Named distributions");
31
+ par { draw(du, 0.9); draw(de, 0.9); draw(db, 0.9); draw(dp, 0.9); }
32
+ say(cap, "flat, decaying, discrete counts — the classic shapes of chance", 0.5);
33
+ wait(2.2);
34
+ par { fade(du, 0.5); fade(de, 0.5); fade(db, 0.5); fade(dp, 0.5); }
35
+ wait(0.3);
36
+
37
+ say(cap, "", 0.2);
38
+ section("Confidence intervals");
39
+ draw(ci, 0.9); show(ci.estimate, 0.4);
40
+ say(cap, "an estimate is never exact — the interval says how sure we are", 0.5);
41
+ wait(2.2);
42
+ fade(ci, 0.6);
43
+ wait(0.3);
44
+
45
+ say(cap, "", 0.2);
46
+ section("Monte Carlo");
47
+ draw(mc, 1.2);
48
+ say(cap, "throw darts at random: the fraction landing in the circle gives pi", 0.5);
49
+ wait(2.4);
50
+ fade(mc, 0.6);
51
+ wait(0.3);
52
+
53
+ say(cap, "", 0.2);
54
+ section("Random walk");
55
+ draw(rw, 1.4);
56
+ say(cap, "each step a random direction — chance draws a wandering path", 0.5);
57
+ wait(2.2);
@@ -0,0 +1,71 @@
1
+ // GENERIC PROCESS BRANCHING — one source, three destinations.
2
+ //
3
+ // The paths carry no service semantics. `branch` only sees a directed acyclic
4
+ // network and makes one deterministic uniform choice at every fork. The same
5
+ // foundation drives the Galton-board example.
6
+
7
+ title("Process Branching — One Source, Three Destinations");
8
+ canvas("16:9");
9
+ template("blank");
10
+ watermark(mark, (145, 70), "Made With Manic");
11
+
12
+ text(head, (cx, 72), "One collection · many truthful routes");
13
+ text(sub, (cx, 112),
14
+ "Every request keeps its identity, destination, step count, and arrival time.");
15
+ size(head, 32); bold(head);
16
+ size(sub, 19); color(sub, dim);
17
+
18
+ circle(source, (180, 340), 24);
19
+ color(source, panel); outline(source, cyan); stroke(source, 3);
20
+ particles(requests, source, 54, 4, 41);
21
+ color(requests, cyan); glow(requests, 0.7); z(requests, 8);
22
+
23
+ line(entry, (205, 340), (420, 340)); tag(entry, dispatchRoutes);
24
+ spline(upper, (420, 340), (530, 190), (680, 185)); tag(upper, dispatchRoutes);
25
+ line(middle, (420, 340), (680, 340)); tag(middle, dispatchRoutes);
26
+ spline(lower, (420, 340), (530, 490), (680, 495)); tag(lower, dispatchRoutes);
27
+ color(dispatchRoutes, dim); stroke(dispatchRoutes, 3); untraced(dispatchRoutes);
28
+
29
+ rect(worker0, (735, 185), 150, 82);
30
+ rect(worker1, (735, 340), 150, 82);
31
+ rect(worker2, (735, 495), 150, 82);
32
+ for i in 0..3 {
33
+ color(worker{i}, panel); outline(worker{i}, cyan); stroke(worker{i}, 2);
34
+ }
35
+ text(w0, (735, 185), "worker 0");
36
+ text(w1, (735, 340), "worker 1");
37
+ text(w2, (735, 495), "worker 2");
38
+ size(w0, 18); size(w1, 18); size(w2, 18);
39
+
40
+ livehistogram(destinations, (1030, 350), 0, 3, 3, 330, 300, magenta);
41
+ text(histTitle, (1030, 170), "DESTINATION OUTCOME");
42
+ size(histTitle, 19); bold(histTitle); color(histTitle, dim);
43
+ counter(arrived, (1030, 555), 0, 0, "arrived ", " / 54");
44
+ size(arrived, 21); color(arrived, dim);
45
+
46
+ text(caption, (cx, 650),
47
+ "The diagram and histogram are two views of the same seeded dispatch.");
48
+ size(caption, 21); color(caption, dim);
49
+
50
+ hidden(requests); hidden(destinations); hidden(arrived); hidden(caption);
51
+
52
+ step("network") {
53
+ par {
54
+ draw(dispatchRoutes, 0.75);
55
+ show(requests, 0.35);
56
+ show(destinations, 0.45);
57
+ show(arrived, 0.35);
58
+ show(caption, 0.35);
59
+ }
60
+ }
61
+ wait(0.35);
62
+
63
+ step("dispatch") {
64
+ par {
65
+ branch(requests, dispatchRoutes, 5.0, smooth);
66
+ observe(destinations, requests, outcome);
67
+ observe(arrived, requests, arrived);
68
+ flow(dispatchRoutes, 5.0, forward, continuous);
69
+ }
70
+ }
71
+ wait(1.0);
@@ -0,0 +1,54 @@
1
+ // PROCESS FOUNDATION — the smallest complete example.
2
+ // A real persistent collection streams along a path. Both observers read the
3
+ // compiled process measurements; neither is animated with guessed values.
4
+
5
+ title("A Collection Becomes a Process");
6
+ canvas("16:9");
7
+ template("blank");
8
+ watermark(mark, (170, 58), "Made With Manic");
9
+
10
+ text(kicker, (640, 52), "MANIC · DETERMINISTIC PROCESS");
11
+ text(headline, (640, 100), "One journey. Two truthful views.");
12
+ size(kicker, 18); color(kicker, dim); bold(kicker);
13
+ size(headline, 34); bold(headline);
14
+
15
+ rect(source, (170, 300), 210, 230);
16
+ outlined(source); outline(source, dim); stroke(source, 3);
17
+ text(sourceLabel, (170, 440), "persistent collection");
18
+ size(sourceLabel, 18); color(sourceLabel, dim);
19
+ particles(packets, source, 42, 5, 17);
20
+
21
+ spline(route, (275, 300), (410, 140), (560, 470), (720, 285));
22
+ stroke(route, 4); color(route, fg); untraced(route);
23
+
24
+ livehistogram(speeds, (980, 335), 0.55, 1.05, 10, 430, 220, cyan);
25
+ text(speedLabel, (980, 190), "normalized speed");
26
+ size(speedLabel, 20); bold(speedLabel);
27
+
28
+ counter(arrivals, (640, 610), 0, 0, "arrived ", " / 42");
29
+ size(arrivals, 25); color(arrivals, dim);
30
+ text(caption, (640, 665), "stream moves real objects · observe reads the same process");
31
+ size(caption, 20); color(caption, dim);
32
+
33
+ hidden(packets); hidden(speeds); hidden(arrivals); hidden(caption);
34
+
35
+ step("introduce") {
36
+ par {
37
+ show(packets, 0.45);
38
+ draw(route, 0.65);
39
+ show(speeds, 0.45);
40
+ show(arrivals, 0.35);
41
+ show(caption, 0.35);
42
+ }
43
+ }
44
+ wait(0.35);
45
+
46
+ step("stream-and-observe") {
47
+ par {
48
+ stream(packets, route, 4.2, 34, smooth);
49
+ observe(speeds, packets, speed);
50
+ observe(arrivals, packets, arrived);
51
+ }
52
+ }
53
+ wait(1.0);
54
+
@@ -0,0 +1,57 @@
1
+ // ============================================================================
2
+ // projection.manic — projection & least-squares (a template)
3
+ // ----------------------------------------------------------------------------
4
+ // One idea, two faces. ORTHOGONAL PROJECTION drops a vector onto a subspace;
5
+ // the shadow p is the closest point, and the error b - p meets the subspace at
6
+ // a right angle. LEAST-SQUARES fits a line to data the SAME way — the best line
7
+ // is the one that minimises the (squared) residuals, i.e. the projection of the
8
+ // data onto the space of lines.
9
+ //
10
+ // `project(id, (cx,cy), unit, (bx,by), (ax,ay), [color])` draws:
11
+ // id.line (the subspace = span of a), id.b, id.p (the shadow), id.res (error),
12
+ // id.rt (right-angle mark), id.blabel / id.plabel.
13
+ // `leastsquares(id, (cx,cy), unit, "x1 y1 x2 y2 ...", [color])` draws:
14
+ // id.line (best fit), id.points (dots), id.residuals (verticals), id.eq.
15
+ //
16
+ // TO ADAPT: change b/a in `project`, or the point list in `leastsquares`.
17
+ // ============================================================================
18
+
19
+ title("Projection & least-squares");
20
+ canvas("16:9");
21
+
22
+ text(hdr, (cx, 50), "the closest point is a projection — and so is the best-fit line");
23
+ size(hdr, 23); color(hdr, cyan); bold(hdr); display(hdr);
24
+
25
+ // ---- LEFT: project vector b onto the line spanned by a ----
26
+ plane(pa, (cx - 330, cy + 10), 150, 210, 40);
27
+ project(pj, (cx - 330, cy + 10), 40, (1, 3), (3, 1));
28
+ untraced(pj.line); untraced(pj.b); untraced(pj.p); untraced(pj.res); untraced(pj.rt);
29
+ hidden(pj.blabel); hidden(pj.plabel);
30
+
31
+ // ---- RIGHT: fit a line to a point cloud ----
32
+ plane(pb, (cx + 310, cy + 90), 150, 150, 34);
33
+ leastsquares(ls, (cx + 310, cy + 90), 34, "1 2 2 3 3 5 4 4 5 6");
34
+ hidden(ls.points); untraced(ls.line); untraced(ls.residuals); hidden(ls.eq);
35
+
36
+ text(cap, (cx, h - 46), ""); size(cap, 22); color(cap, dim); display(cap);
37
+
38
+ // ---- Panel A: the projection ----
39
+ say(cap, "drop b onto the line spanned by a — its shadow is the projection p", 0.5);
40
+ draw(pj.line, 0.6);
41
+ draw(pj.b, 0.6);
42
+ wait(0.6);
43
+ par { draw(pj.p, 0.6); draw(pj.res, 0.6); }
44
+ draw(pj.rt, 0.3);
45
+ show(pj.blabel, 0.3); show(pj.plabel, 0.3);
46
+ wait(1.4);
47
+ say(cap, "the error b - p meets the line at a right angle: p is the nearest point", 0.5);
48
+ wait(1.8);
49
+
50
+ // ---- Panel B: least-squares is the same idea ----
51
+ say(cap, "fitting a line works the SAME way: minimise the squared residuals", 0.5);
52
+ show(ls.points, 0.5);
53
+ wait(0.7);
54
+ draw(ls.line, 0.7);
55
+ draw(ls.residuals, 0.6);
56
+ show(ls.eq, 0.4);
57
+ wait(2.0);