@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,118 @@
1
+ // Lattice-path counting — "how many ways from corner to corner moving only right
2
+ // and down?" The SAME recurrence as Pascal (cell = the one above + the one to the
3
+ // left) but on a RECTANGLE — so it uses the grid kit. Each cell's count is a `prod`
4
+ // reduction (C(i+j,i)); afterwards one actual path is traced with `spline`.
5
+ // Different template (blueprint) + different typewriter (a question that erases and
6
+ // retypes into its answer).
7
+ title("Lattice Paths");
8
+ canvas("9:16");
9
+ template("blueprint");
10
+
11
+ creator(me, "@anish2good name=Manic tagline=Turn_plain_text_into_amazing_math_videos yt=zarigatongy x=@anish2good web=8gwifi.org/manic accent=cyan secondary=gold footer=signature cta=Try_it_free safe=reels");
12
+ watermark(manicMark, (w*0.955-100, h*0.045+24), "Made With Manic");
13
+
14
+ let C = 5; // columns of cells
15
+ let R = 4; // rows of cells
16
+ let s = w*0.162; // cell size
17
+ let gy = h*0.455; // grid centre y
18
+ let ox = cx - C*s*0.5;
19
+ let oy = gy - R*s*0.5;
20
+
21
+ // The rectangular lattice IS a grid-kit grid. Overlay a path-count on every cell:
22
+ // value(i,j) = C(i+j, i), the number of monotone right/down paths reaching it.
23
+ grid(lat, (cx, gy), C, R, s);
24
+ opacity(lat.cells, 0); // a lattice is its lines — clear the cell fills so the counts read
25
+ for i in 0..R {
26
+ for j in 0..C {
27
+ let val = prod(t in 1..i+1 : (j+t)/t); // C(i+j, i)
28
+ counter(pc{i}_{j}, (ox+(j+0.5)*s, oy+(i+0.5)*s), val, 0);
29
+ tag(pc{i}_{j}, pathnums); tag(pc{i}_{j}, prow{i});
30
+ }
31
+ }
32
+
33
+ // One monotone path (right/right/down/right/down/right/down) traced afterward.
34
+ spline(route,
35
+ (ox+0.5*s, oy+0.5*s), (ox+1.5*s, oy+0.5*s), (ox+2.5*s, oy+0.5*s),
36
+ (ox+2.5*s, oy+1.5*s), (ox+3.5*s, oy+1.5*s), (ox+3.5*s, oy+2.5*s),
37
+ (ox+4.5*s, oy+2.5*s), (ox+4.5*s, oy+3.5*s));
38
+ color(route, gold); stroke(route, 7); glow(route, 0.8); untraced(route); hidden(route);
39
+
40
+ // --- text: a question that later erases and retypes into the answer ---
41
+ text(kicker, (cx, h*0.115), "How many paths, corner to corner?");
42
+ size(kicker, 33); color(kicker, cyan); bold(kicker); wrap(kicker, w*0.86);
43
+ text(sub, (cx, h*0.165), "moving only RIGHT and DOWN");
44
+ size(sub, 27); color(sub, dim);
45
+ text(answer, (cx, h*0.13), "35 paths — every one of them counted.");
46
+ size(answer, 34); color(answer, gold); bold(answer); wrap(answer, w*0.86);
47
+ text(cap, (cx, h*0.80), "each cell counts the ways to reach it");
48
+ size(cap, 31); color(cap, dim); wrap(cap, w*0.84);
49
+
50
+ socials(me);
51
+ endcard(me, "title=Try_Manic cta=8gwifi.org/manic");
52
+
53
+ hidden(pathnums); hidden(cap);
54
+ untraced(kicker); cursor(kicker);
55
+ untraced(sub);
56
+ untraced(answer); hidden(answer);
57
+
58
+ // 1 — HOOK: the question types on (two lines), then the lattice fills in.
59
+ mark("hook");
60
+ type(kicker, 1.2);
61
+ type(sub, 0.9);
62
+ show(cap, 0.4);
63
+ for i in 0..R { show(prow{i}, 0.3); wait(0.12); }
64
+ wait(0.4);
65
+
66
+ // 2 — THE RULE: 4 + 6 = 10 — every cell is (the one above) + (the one to the left).
67
+ step("rule") {
68
+ seq {
69
+ say(cap, "= the cell above + the cell to its left (4 + 6 = 10)");
70
+ par { flash(pc1_3, cyan); flash(pc2_2, cyan); }
71
+ flash(pc2_3, gold);
72
+ }
73
+ }
74
+ wait(0.5);
75
+
76
+ // 3 — THE ANSWER: the far corner holds the total. The question erases & retypes.
77
+ step("answer") {
78
+ seq {
79
+ par { erase(kicker, 0.5); erase(sub, 0.4); }
80
+ fade(kicker, 0.15); // clear the residual typewriter cursor left after erase
81
+ par {
82
+ pulse(pc3_4, 0.8);
83
+ flash(pc3_4, gold);
84
+ show(answer, 0.1);
85
+ type(answer, 1.1);
86
+ }
87
+ say(cap, "and every path is a right/down staircase");
88
+ }
89
+ }
90
+ wait(0.5);
91
+
92
+ // 4 — TRACE ONE: draw an actual corner-to-corner path with a spline.
93
+ step("trace") {
94
+ par {
95
+ show(route, 0.2);
96
+ draw(route, 1.6);
97
+ }
98
+ }
99
+ wait(0.7);
100
+
101
+ // 5 — THE POINT: one script did the grid, the counting AND the path.
102
+ step("power") {
103
+ seq {
104
+ say(cap, "one short script: the grid, the counting, and the path");
105
+ par { pulse(pathnums, 0.7); recolor(cap, cyan); }
106
+ say(cap, "Manic animates math, physics, algorithms & more — from plain text");
107
+ }
108
+ }
109
+ wait(1.3);
110
+
111
+ // 6 — END CARD.
112
+ mark("endcard");
113
+ par {
114
+ fade(answer, 0.4); fade(cap, 0.4); fade(me.footer, 0.4);
115
+ fade(pathnums, 0.4); fade(lat.cells, 0.4); fade(lat.lines, 0.4); fade(route, 0.4);
116
+ }
117
+ show(me.endcard, 0.6);
118
+ wait(1.6);
@@ -0,0 +1,49 @@
1
+ // Existing-Manic treatment of animations/fig0030.asy.
2
+ // A line not through the inversion center becomes a circle through the center.
3
+
4
+ title("Line Inversion");
5
+ canvas("9:16");
6
+ template("black");
7
+ creator(me,"@anish2good name=Manic_Geometry tagline=Transformation_stories yt=zarigatongy x=@anish2good web=8gwifi.org/manic accent=magenta secondary=cyan footer=compact cta=See_the_mapping safe=clean");
8
+ socials(me);
9
+ watermark(mark,(w*0.16,h*0.055),"Made With Manic");
10
+ endcard(me,"title=Animate_Geometry_Not_Keyframes cta=8gwifi.org/manic");
11
+
12
+ let u=(w+h-abs(w-h))/1080; let oy=h*0.48; let R=120*u;
13
+ text(kicker,(cx,h*0.10),"UNIT-CIRCLE INVERSION");
14
+ text(head,(cx,h*0.17),"Where does the line x = 2 go?");
15
+ text(caption,(cx,h*0.79),"Every image point obeys OP · OP′ = 1.");
16
+ equation(eq,(cx,h*0.72),`x=2\quad\longmapsto\quad(x-\tfrac14)^2+y^2=(\tfrac14)^2`,29*u);
17
+ size(kicker,20*u); bold(kicker); color(kicker,magenta);
18
+ size(head,27*u); bold(head); wrap(head,w*0.76);
19
+ size(caption,20*u); bold(caption); wrap(caption,w*0.74); color(caption,dim);
20
+
21
+ circle(unit,(cx-R,oy),R); outlined(unit); outline(unit,cyan); color(unit,panel);
22
+ dot(O,(cx-R,oy),8*u); color(O,gold);
23
+ line(source,(cx+R,oy-1.45*R),(cx+R,oy+1.45*R)); color(source,magenta); stroke(source,4);
24
+ invertpath(image,source,O,R,360); outline(image,lime); color(image,lime); stroke(image,4);
25
+ untraced(unit); untraced(source); untraced(image); hidden(O); hidden(kicker); hidden(head); hidden(caption); hidden(eq);
26
+
27
+ step("pose") { par { show(kicker,0.3); show(head,0.4); show(caption,0.35); draw(unit,0.65,smooth); show(O,0.2); draw(source,0.6,smooth); } }
28
+ wait(0.85);
29
+ step("map three points") { say(caption,"Points far away move near O; the midpoint (2,0) maps to (1/2,0).",0.45,smooth); }
30
+ wait(0.9);
31
+ step("follow the limiting point") {
32
+ par {
33
+ pulse(O,0.80);
34
+ say(caption,"As a source point runs to infinity, its image approaches O; that is why the image circle passes through O.",0.65,smooth);
35
+ }
36
+ }
37
+ wait(1.0);
38
+ step("join the images") {
39
+ par { draw(image,0.75,smooth); fade(source,0.35); show(eq,0.45); say(caption,"Those image points lie on one circle through O.",0.4); }
40
+ }
41
+ wait(0.95);
42
+ step("check the equation") {
43
+ say(caption,"Its center is (1/4, 0) and its radius is 1/4, so the origin lies exactly on the boundary.",0.60,smooth);
44
+ }
45
+ wait(0.95);
46
+ step("solve") { par { pulse(image,0.75); say(head,"A straight line becomes a circle.",0.4,smooth); } }
47
+ wait(1.25);
48
+ step("cta") { par { fade(kicker,0.3); fade(head,0.3); fade(caption,0.3); fade(eq,0.3); fade(unit,0.3); fade(O,0.3); fade(image,0.35); fade(me.footer,0.3); show(me.endcard,0.6); } }
49
+ wait(2.2);
@@ -0,0 +1,121 @@
1
+ // Creator story: one seven-segment rewriting rule grows from a square into a
2
+ // 9,604-segment space-filling curve. The rule is the story—not implementation.
3
+
4
+ title("How One Line Learns to Fill Space");
5
+ canvas("9:16");
6
+ template("mono");
7
+
8
+ creator(me, "@anish2good name=Manic_Geometry tagline=Rules_made_visible yt=zarigatongy x=@anish2good web=8gwifi.org/manic accent=cyan secondary=magenta footer=compact cta=Animate_your_idea safe=clean");
9
+ socials(me);
10
+ watermark(manicMark, (w*0.15, h*0.06), "Made With Manic");
11
+ endcard(me, "title=Turn_Rules_Into_Stories cta=8gwifi.org/manic");
12
+
13
+ let u = (w+h-abs(w-h))/1080;
14
+ text(kicker, (cx, h*0.14), "MANIC · GENERATIVE GEOMETRY");
15
+ text(headline, (cx, h*0.24), "One rule. 9,604 lines.");
16
+ text(caption, (cx, h*0.79), "Start with a square.");
17
+ text(generation, (cx, h*0.69), "GENERATION 0 · 4 SEGMENTS");
18
+ text(rule, (cx, h*0.30), "F → FF + F + F + F + FF");
19
+ size(kicker, 20*u); bold(kicker); color(kicker, cyan);
20
+ size(headline, 30*u); bold(headline); wrap(headline, w*0.78);
21
+ size(caption, 23*u); bold(caption); wrap(caption, w*0.74);
22
+ size(generation, 20*u); bold(generation); color(generation, dim);
23
+ size(rule, 25*u); bold(rule); color(rule, gold);
24
+
25
+ let stageSize = (w+h-abs(w-h))*0.28;
26
+ let stageY = h*0.49;
27
+
28
+ lsystem(curve, (cx, stageY), stageSize,
29
+ "F+F+F+F", "F=FF+F+F+F+FF",
30
+ "angle=90 iterations=0");
31
+ color(curve, cyan); stroke(curve, 5);
32
+
33
+ lsystem(gen1, (cx, stageY), stageSize,
34
+ "F+F+F+F", "F=FF+F+F+F+FF",
35
+ "angle=90 iterations=1");
36
+ color(gen1, cyan); stroke(gen1, 4); hidden(gen1);
37
+
38
+ lsystem(gen2, (cx, stageY), stageSize,
39
+ "F+F+F+F", "F=FF+F+F+F+FF",
40
+ "angle=90 iterations=2");
41
+ color(gen2, cyan); stroke(gen2, 3.5); hidden(gen2);
42
+
43
+ lsystem(gen3, (cx, stageY), stageSize,
44
+ "F+F+F+F", "F=FF+F+F+F+FF",
45
+ "angle=90 iterations=3");
46
+ color(gen3, magenta); stroke(gen3, 3); hidden(gen3);
47
+
48
+ lsystem(finalCurve, (cx, stageY), stageSize,
49
+ "F+F+F+F", "F=FF+F+F+F+FF",
50
+ "angle=90 iterations=4");
51
+ gradient(finalCurve, cyan, magenta, gold);
52
+ stroke(finalCurve, 2.2); untraced(finalCurve); hidden(finalCurve);
53
+
54
+ hidden(kicker); hidden(headline); hidden(rule);
55
+
56
+ step("ask the impossible question") {
57
+ seq {
58
+ par {
59
+ show(kicker, 0.35);
60
+ show(headline, 0.50);
61
+ show(rule, 0.50);
62
+ show(curve, 0.40);
63
+ }
64
+ pulse(curve, 0.60);
65
+ }
66
+ }
67
+ wait(0.45);
68
+
69
+ step("rewrite every forward move") {
70
+ seq {
71
+ say(caption, "Replace every F with seven smaller forward moves.", 0.45, smooth);
72
+ par {
73
+ become(curve, gen1, 0.85, smooth);
74
+ say(generation, "GENERATION 1 · 28 SEGMENTS", 0.35, smooth);
75
+ }
76
+ par {
77
+ become(curve, gen2, 0.95, smooth);
78
+ say(generation, "GENERATION 2 · 196 SEGMENTS", 0.35, smooth);
79
+ }
80
+ par {
81
+ become(curve, gen3, 1.05, smooth);
82
+ say(generation, "GENERATION 3 · 1,372 SEGMENTS", 0.35, smooth);
83
+ }
84
+ }
85
+ }
86
+ wait(0.50);
87
+
88
+ step("let the path fill space") {
89
+ seq {
90
+ par {
91
+ fade(curve, 0.35);
92
+ say(caption, "Repeat once more. The same rule now draws 9,604 connected segments.", 0.45, smooth);
93
+ say(generation, "GENERATION 4 · 9,604 SEGMENTS", 0.35, smooth);
94
+ }
95
+ show(finalCurve, 0.05);
96
+ draw(finalCurve, 3.20, smooth);
97
+ pulse(finalCurve, 0.80);
98
+ }
99
+ }
100
+ wait(0.75);
101
+
102
+ step("the idea is the animation") {
103
+ seq {
104
+ say(caption, "In Manic, creators describe the rule. The engine makes it move.", 0.45, smooth);
105
+ par {
106
+ recolor(headline, gold, 0.50);
107
+ pulse(finalCurve, 0.85);
108
+ }
109
+ }
110
+ }
111
+ wait(1.00);
112
+
113
+ step("creator call to action") {
114
+ par {
115
+ fade(kicker, 0.35); fade(headline, 0.35); fade(rule, 0.35);
116
+ fade(caption, 0.35); fade(generation, 0.35); fade(finalCurve, 0.45);
117
+ fade(me.footer, 0.35);
118
+ show(me.endcard, 0.60);
119
+ }
120
+ }
121
+ wait(1.80);
@@ -0,0 +1,58 @@
1
+ // Existing-Manic treatment of fractales/fig0080.asy.
2
+ // Instead of a raster, solve the defining membership test for c=1.
3
+
4
+ title("A Mandelbrot Escape Test");
5
+ canvas("9:16");
6
+ template("black");
7
+ creator(me,"@anish2good name=Manic_Math tagline=Complexity_made_visible yt=zarigatongy x=@anish2good web=8gwifi.org/manic accent=magenta secondary=cyan footer=compact cta=Test_another_point safe=clean");
8
+ socials(me);
9
+ watermark(mark,(w*0.16,h*0.055),"Made With Manic");
10
+ endcard(me,"title=Animate_The_Definition cta=8gwifi.org/manic");
11
+
12
+ let u=(w+h-abs(w-h))/1080;
13
+ text(kicker,(cx,h*0.10),"MANDELBROT · ESCAPE TEST");
14
+ text(head,(cx,h*0.17),"Does c = 1 belong?");
15
+ equation(rule,(cx,h*0.25),`z_{n+1}=z_n^2+c,\qquad z_0=0`,31*u);
16
+ text(caption,(cx,h*0.76),"A point belongs only if its orbit stays bounded forever.");
17
+ size(kicker,20*u); bold(kicker); color(kicker,magenta);
18
+ size(head,28*u); bold(head); wrap(head,w*0.76);
19
+ size(caption,20*u); bold(caption); wrap(caption,w*0.74); color(caption,dim);
20
+
21
+ line(axis,(w*0.14,h*0.51),(w*0.86,h*0.51)); color(axis,dim);
22
+ dot(z0,(w*0.20,h*0.51),10*u); dot(z1,(w*0.34,h*0.51),10*u);
23
+ dot(z2,(w*0.48,h*0.51),10*u); dot(z3,(w*0.78,h*0.51),12*u);
24
+ text(l0,(w*0.20,h*0.56),"0"); text(l1,(w*0.34,h*0.56),"1");
25
+ text(l2,(w*0.48,h*0.56),"2"); text(l3,(w*0.78,h*0.56),"5");
26
+ tag(z0,orbit); tag(z1,orbit); tag(z2,orbit); tag(z3,orbit);
27
+ tag(l0,orbit); tag(l1,orbit); tag(l2,orbit); tag(l3,orbit);
28
+ color(z0,cyan); color(z1,cyan); color(z2,gold); color(z3,magenta);
29
+ hidden(orbit); untraced(axis); hidden(kicker); hidden(head); hidden(rule); hidden(caption);
30
+
31
+ step("state the problem") { par { show(kicker,0.3); show(head,0.4); show(rule,0.5); show(caption,0.35); draw(axis,0.65,smooth); } }
32
+ wait(0.85);
33
+ step("iterate") {
34
+ seq {
35
+ par { show(z0,0.2); show(l0,0.2); say(caption,"Start at zero.",0.3); }
36
+ par { show(z1,0.25); show(l1,0.25); say(caption,"z₁ = 0² + 1 = 1",0.3); }
37
+ par { show(z2,0.25); show(l2,0.25); say(caption,"z₂ = 1² + 1 = 2",0.3); }
38
+ par { show(z3,0.3); show(l3,0.3); say(caption,"z₃ = 2² + 1 = 5. The orbit has escaped beyond radius 2.",0.4); }
39
+ }
40
+ }
41
+ wait(0.9);
42
+ step("apply the escape rule") {
43
+ par {
44
+ pulse(z3,0.80);
45
+ say(caption,"Once |z| exceeds 2, repeated squaring can never bring this orbit back to a bounded region.",0.60,smooth);
46
+ }
47
+ }
48
+ wait(1.0);
49
+ step("interpret the test") {
50
+ say(rule,"One escaped orbit is enough to reject the point c = 1.",0.60,smooth);
51
+ }
52
+ wait(0.9);
53
+ step("answer") {
54
+ par { say(head,"No — c = 1 escapes.",0.45,smooth); rewrite(rule,`0\to1\to2\to5\to26\to\cdots`,0.8,smooth); pulse(z3,0.7); }
55
+ }
56
+ wait(1.3);
57
+ step("cta") { par { fade(kicker,0.3); fade(head,0.3); fade(rule,0.3); fade(caption,0.3); fade(axis,0.3); fade(orbit,0.35); fade(me.footer,0.3); show(me.endcard,0.6); } }
58
+ wait(2.2);
@@ -0,0 +1,104 @@
1
+ // creator-monty-hall.manic — a Creator v2 Short on the Monty Hall problem, one of
2
+ // the most-searched (and most-argued) puzzles in probability, narrated with an
3
+ // ElevenLabs voice story. The whole cast is imported SVG — three door emoji, a car,
4
+ // goats, a party popper — and the teaching beat is visual: when the host opens a
5
+ // goat door, its 1/3 chance visibly SLIDES onto the other door, making it 2/3. The
6
+ // payoff `morph`s a goat into the car with a confetti `burst`. Problem → the
7
+ // counter-intuitive solution → CTA, 9:16 shorts template, branded.
8
+ //
9
+ // ELEVENLABS_API_KEY=... manic examples/creator-monty-hall.manic --record out.mp4
10
+ // speak("…") = voice only; say(cap,"…") = on-screen caption.
11
+ title("The Monty Hall Problem");
12
+ canvas("9:16");
13
+ template("shorts");
14
+ voice("elevenlabs");
15
+
16
+ creator(me, "@anish2good name=Manic tagline=Turn_plain_text_into_amazing_math_videos yt=zarigatongy x=@anish2good web=8gwifi.org/manic accent=cyan secondary=magenta footer=signature cta=Try_it_free safe=reels");
17
+ watermark(manicMark, (w*0.955-100, h*0.045+24), "Made With Manic");
18
+
19
+ // --- header ---
20
+ text(kick, (cx, h*0.10), "The Monty Hall Problem"); size(kick, 48); color(kick, fg); bold(kick); wrap(kick, w*0.86); hidden(kick);
21
+ text(sub, (cx, h*0.155), "The puzzle that fooled even the pros"); size(sub, 29); color(sub, dim); wrap(sub, w*0.82); hidden(sub);
22
+
23
+ // --- three doors (imported emoji), numbered, with a 1/3 odds chip each ---
24
+ let dy = h*0.375;
25
+ let dsz = w*0.185;
26
+ let xL = w*0.22; let xM = w*0.50; let xR = w*0.78;
27
+ svg(door1, (xL, dy), "asset:svg/emoji/door.svg", dsz); hidden(door1);
28
+ svg(door2, (xM, dy), "asset:svg/emoji/door.svg", dsz); hidden(door2);
29
+ svg(door3, (xR, dy), "asset:svg/emoji/door.svg", dsz); hidden(door3);
30
+ text(t1, (xL, dy-dsz*0.66), "1"); size(t1, 32); color(t1, dim); bold(t1); hidden(t1);
31
+ text(t2, (xM, dy-dsz*0.66), "2"); size(t2, 32); color(t2, dim); bold(t2); hidden(t2);
32
+ text(t3, (xR, dy-dsz*0.66), "3"); size(t3, 32); color(t3, dim); bold(t3); hidden(t3);
33
+ counter(chip1, (xL, dy+dsz*1.02), 33, 0, "", "%"); size(chip1, 44); color(chip1, dim); bold(chip1); hidden(chip1);
34
+ counter(chip2, (xM, dy+dsz*1.02), 33, 0, "", "%"); size(chip2, 44); color(chip2, dim); bold(chip2); hidden(chip2);
35
+ counter(chip3, (xR, dy+dsz*1.02), 33, 0, "", "%"); size(chip3, 44); color(chip3, dim); bold(chip3); hidden(chip3);
36
+
37
+ // a selection ring for "your pick"
38
+ circle(pick, (xL, dy), dsz*0.62); outlined(pick); outline(pick, cyan); stroke(pick, 5); glow(pick, 0.8); hidden(pick);
39
+
40
+ // prizes hidden BEHIND each door (revealed when a door lifts)
41
+ svg(goat1, (xL, dy), "asset:svg/emoji/goat.svg", dsz*0.86); z(goat1, -1); hidden(goat1);
42
+ svg(goat3, (xR, dy), "asset:svg/emoji/goat.svg", dsz*0.86); z(goat3, -1); hidden(goat3);
43
+ // behind door 2: a goat that MORPHS into the car (the payoff flourish)
44
+ svg(goatH, (xM, dy), "asset:svg/emoji/goat.svg", dsz*0.92); z(goatH, -1); hidden(goatH);
45
+ svg(carH, (xM, dy), "asset:svg/emoji/car.svg", dsz*1.02); z(carH, -1); hidden(carH);
46
+ morph(goatH, carH);
47
+ svg(party, (xM+dsz*0.9, dy-dsz*0.8), "asset:svg/emoji/party.svg", dsz*0.7); z(party, 6); hidden(party);
48
+ circle(bcore, (xM, dy), 30); hidden(bcore);
49
+ particles(sparks, bcore, 26, 8, 11, "random"); color(sparks, gold); glow(sparks, 0.9); z(sparks, 7); hidden(sparks);
50
+
51
+ // one caption line, retexted through the story
52
+ text(cap, (cx, h*0.66), ""); size(cap, 35); color(cap, dim); bold(cap); wrap(cap, w*0.86); hidden(cap);
53
+
54
+ socials(me);
55
+ endcard(me, "title=Always_Switch cta=8gwifi.org/manic");
56
+
57
+ // ---------------- the story (voice leads; visuals punctuate) ----------------
58
+ par { show(kick); show(sub); }
59
+ stagger(0.16) { show(door1); show(door2); show(door3); }
60
+ par { show(t1); show(t2); show(t3); show(chip1); show(chip2); show(chip3); }
61
+ show(cap, 0.3); say(cap, "1 car, 2 goats — 1/3 each.");
62
+ speak("Three doors. One car, two goats. You pick door one.");
63
+ par { show(pick); pulse(door1); }
64
+ say(cap, "You pick Door 1.");
65
+
66
+ speak("Now the host, who knows, opens door three. A goat.");
67
+ recolor(cap, dim); say(cap, "Host opens Door 3 — a goat.");
68
+ show(goat3);
69
+ par { move(door3, (xR, dy-h*0.30), 0.7, smooth); fade(door3); }
70
+
71
+ speak("The twist: door three's odds don't vanish. They slide onto door two.");
72
+ recolor(cap, cyan); say(cap, "Its 1/3 slides to Door 2.");
73
+ par { move(chip3, (xM, dy+dsz*1.02), 0.8, smooth); fade(chip3); to(chip2, value, 67, 0.8); }
74
+ par { recolor(chip2, cyan); recolor(chip1, magenta); }
75
+
76
+ speak("Most people say fifty-fifty. It isn't.");
77
+ recolor(cap, red); say(cap, "Feels like 50/50. It's not."); shake(cap);
78
+
79
+ speak("Your door stays one-in-three. Door two? Two-in-three. Switching doubles it.");
80
+ recolor(cap, gold); say(cap, "STAY 33% · SWITCH 67%");
81
+ par { pulse(chip2); pulse(door2); }
82
+
83
+ speak("So you switch...");
84
+ recolor(cap, dim); say(cap, "So you switch…");
85
+ show(goatH);
86
+ par { move(door2, (xM, dy-h*0.30), 0.7, smooth); fade(door2); fade(chip1); fade(chip2); }
87
+
88
+ speak("...and the goat becomes a car.");
89
+ to(goatH, morph, 1, 0.9, smooth);
90
+ par { fade(goatH); show(carH); }
91
+ recolor(cap, gold); say(cap, "…and win the car!");
92
+ par { show(sparks, 0.05); burst(sparks, 1.1); show(party); pulse(carH); }
93
+ wait(0.6);
94
+
95
+ speak("Door one? A goat. Switching wins two out of three.");
96
+ recolor(cap, dim); say(cap, "Door 1 was a goat.");
97
+ show(goat1);
98
+ par { move(door1, (xL, dy-h*0.30), 0.7, smooth); fade(door1); fade(pick); fade(party); }
99
+ wait(0.4);
100
+
101
+ speak("Always switch. One Manic script made this — turn any idea into a video at eight g wifi dot org slash manic.");
102
+ par { fade(kick); fade(sub); fade(cap); fade(carH); fade(goat1); fade(goat3); fade(t1); fade(t2); fade(t3); fade(chip3); }
103
+ show(me.endcard);
104
+ wait(2.6);
@@ -0,0 +1,123 @@
1
+ // How Noise Builds Worlds — a Creator v2 Short on procedural noise, 1D → 2D → 3D →
2
+ // fractal. Raw RANDOM values (jagged) vs smooth PERLIN noise(x); then noise(x,y) as
3
+ // a surface; then stacking octaves (fbm) for fractal detail. Every visual is one
4
+ // formula — `rand`, `noise`, `fbm`. Captions use the word-pop (karaoke) variant;
5
+ // the final scene pulls the camera back for a full view of the fractal world.
6
+ title("How Noise Builds Worlds");
7
+ canvas("9:16");
8
+ template("shorts");
9
+
10
+ creator(me, "@anish2good name=Manic tagline=Turn_plain_text_into_amazing_math_videos yt=zarigatongy x=@anish2good web=8gwifi.org/manic accent=cyan secondary=magenta footer=signature cta=Try_it_free safe=reels");
11
+ watermark(mk, (w*0.955-100, h*0.045+24), "Made With Manic");
12
+
13
+ // --- 1D: a coordinate frame with two curves, raw random vs smooth noise ---
14
+ axes(ax, (cx, h*0.33), w*0.4, 150);
15
+ color(ax, dim); untraced(ax);
16
+ plot(rnd, (cx, h*0.33), 62, 130, "rand(x)", (-6.5, 6.5));
17
+ color(rnd, magenta); untraced(rnd);
18
+ plot(perlin, (cx, h*0.33), 62, 130, "noise(x, 0)", (-6.5, 6.5));
19
+ color(perlin, cyan); glow(perlin, 0.7); untraced(perlin);
20
+
21
+ // --- 2D/3D: the same idea one dimension up. Near top-down so it reads flat first. ---
22
+ camera3((0, -1.5, 20), (0, 0, 0), 24);
23
+ surface3(hills, "noise(x*0.9, y*0.9)*2.0", (-4, 4), (-4, 4), 50);
24
+ color(hills, cyan); hidden(hills);
25
+ surface3(frac, "fbm(x*0.95, y*0.95)*2.4", (-4, 4), (-4, 4), 72);
26
+ color(frac, cyan); hidden(frac);
27
+
28
+ text(kicker, (cx, h*0.135), "random is not the same as noise");
29
+ size(kicker, 32); color(kicker, cyan); bold(kicker); wrap(kicker, w*0.82);
30
+ untraced(kicker); cursor(kicker);
31
+
32
+ // Word-pop captions — one per beat, popped in a word at a time, faded before the next.
33
+ caption(cR, "raw random values", (cx, h*0.75), 33, magenta); hidden(cR.words);
34
+ caption(cP, "smooth it into noise", (cx, h*0.75), 33, cyan); hidden(cP.words);
35
+ caption(cD, "add a dimension", (cx, h*0.75), 33, dim); hidden(cD.words);
36
+ caption(cL, "values become heights", (cx, h*0.75), 33, dim); hidden(cL.words);
37
+ caption(cF, "octaves build fractals", (cx, h*0.75), 33, cyan); hidden(cF.words);
38
+ caption(cE, "1D 2D 3D fractal", (cx, h*0.75), 34, cyan); hidden(cE.words);
39
+ caption(cM, "one formula. That's Manic.", (cx, h*0.75), 32, cyan); hidden(cM.words);
40
+
41
+ socials(me);
42
+ endcard(me, "title=Try_Manic cta=8gwifi.org/manic");
43
+
44
+ // 1 — HOOK + raw random values (jagged).
45
+ mark("hook");
46
+ type(kicker, 1.3);
47
+ step("random") {
48
+ par {
49
+ draw(ax, 0.6);
50
+ draw(rnd, 1.3);
51
+ seq { wait(0.5); wordpop(cR, 0.14); }
52
+ }
53
+ }
54
+ wait(0.5);
55
+
56
+ // 2 — smooth it into Perlin noise(x).
57
+ step("perlin") {
58
+ par {
59
+ fade(cR.words, 0.3);
60
+ fade(rnd, 0.5);
61
+ draw(perlin, 1.4);
62
+ seq { wait(0.4); wordpop(cP, 0.13); }
63
+ }
64
+ }
65
+ wait(0.6);
66
+
67
+ // 3 — one dimension up: noise(x,y) as a field (top-down reads flat).
68
+ step("to2d") {
69
+ par {
70
+ fade(cP.words, 0.3);
71
+ fade(ax, 0.5); fade(perlin, 0.5);
72
+ show(hills, 0.7);
73
+ seq { wait(0.4); wordpop(cD, 0.14); }
74
+ }
75
+ }
76
+
77
+ // 4 — tilt: the field IS a 3D surface (a heightmap).
78
+ step("lift") {
79
+ par {
80
+ fade(cD.words, 0.3);
81
+ orbit3(25, 34, 16, 3.6, smooth);
82
+ seq { wait(0.5); wordpop(cL, 0.13); }
83
+ }
84
+ }
85
+ wait(0.5);
86
+
87
+ // 5 — stack octaves into fbm; pull the camera WAY back for the full world.
88
+ step("fbm") {
89
+ par {
90
+ fade(cL.words, 0.3);
91
+ fade(hills, 0.6);
92
+ show(frac, 0.7);
93
+ orbit3(120, 40, 30, 3.4, smooth);
94
+ seq { wait(0.5); wordpop(cF, 0.13); }
95
+ }
96
+ }
97
+
98
+ // 6 — a slow tour of the whole fractal world at full distance.
99
+ step("tour") {
100
+ par {
101
+ fade(cF.words, 0.3);
102
+ orbit3(240, 36, 30, 4.6, smooth);
103
+ seq { wait(0.4); wordpop(cE, 0.16); }
104
+ }
105
+ }
106
+ wait(0.4);
107
+
108
+ // 7 — THE POINT.
109
+ step("point") {
110
+ seq {
111
+ fade(cE.words, 0.3);
112
+ wordpop(cM, 0.16);
113
+ }
114
+ }
115
+ wait(1.1);
116
+
117
+ // 8 — END CARD.
118
+ mark("endcard");
119
+ par {
120
+ fade(kicker, 0.4); fade(cM.words, 0.4); fade(me.footer, 0.4); fade(frac, 0.5);
121
+ }
122
+ show(me.endcard, 0.6);
123
+ wait(1.6);