@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,130 @@
1
+ // Your Map Is a 3D World — Manic promo Short.
2
+ // A grid settles cell by cell (Wave Function Collapse), then the SAME grid lifts
3
+ // into 3D terrain. The camera pulls back, orbits, and flies low. Story narration
4
+ // (`speak`) is separate from short on-screen captions (`say`). Outro names Manic.
5
+ title("Your Map Is a 3D World");
6
+ canvas("9:16");
7
+ template("shorts");
8
+ voice("elevenlabs"); // story narration
9
+ // voice("elevenlabs", "alice");
10
+ // voice("elevenlabs", "jessica");
11
+ // voice("cartesia");
12
+ // voice("gtts");
13
+
14
+ 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");
15
+ watermark(mk, (w*0.955-100, h*0.045+24), "Made With Manic");
16
+
17
+ // The 2D map (grid kit) and the 3D terrain from the SAME grid.
18
+ grid(world, (cx, h*0.44), 16, 16, 52);
19
+ collapse(world, "islands", 8);
20
+ camera3((0, -1.6, 22), (0, 0, 0), 26);
21
+ heightmap3(land, world, "h*1.7 + fbm(x*1.2, y*1.2)*0.85 + 0.1", 8);
22
+ color(land, cyan);
23
+ hidden(land);
24
+
25
+ text(kicker, (cx, h*0.135), "your flat map is hiding a 3D world");
26
+ size(kicker, 33); color(kicker, cyan); bold(kicker); wrap(kicker, w*0.82);
27
+ text(cap, (cx, h*0.785), "");
28
+ size(cap, 31); color(cap, dim); wrap(cap, w*0.84);
29
+ text(promo, (cx, h*0.42), "Manic"); size(promo, 72); color(promo, cyan); bold(promo); hidden(promo);
30
+ text(promoSub, (cx, h*0.52), "plain text → animated explainers"); size(promoSub, 28); color(promoSub, magenta); wrap(promoSub, w*0.82); hidden(promoSub);
31
+ text(promoUrl, (cx, h*0.62), "8gwifi.org/manic"); size(promoUrl, 30); color(promoUrl, fg); bold(promoUrl); hidden(promoUrl);
32
+
33
+ socials(me);
34
+ endcard(me, "title=Try_Manic cta=8gwifi.org/manic");
35
+
36
+ untraced(kicker); cursor(kicker);
37
+
38
+ // Narration tells the story. Captions stay short punch-lines on screen.
39
+ // speak("…") = voice only; say(cap, "…") = text only; par both when needed.
40
+
41
+ // 1 — HOOK: open the idea, then the 2D map settles (Wave Function Collapse).
42
+ mark("hook");
43
+ par {
44
+ type(kicker, 1.4);
45
+ speak("Every world starts flat. Watch a map generate itself — cell by cell — until the islands lock.");
46
+ }
47
+ step("map") {
48
+ par {
49
+ say(cap, "cell by cell…");
50
+ speak("This is Wave Function Collapse. Constraints push the grid toward a coherent coast.");
51
+ run(world, 16, 3.0);
52
+ }
53
+ }
54
+ wait(0.25);
55
+
56
+ // 2 — the same grid lifts into 3D (still near top-down, so it reads flat at first).
57
+ mark("lift");
58
+ step("height") {
59
+ par {
60
+ say(cap, "same grid → 3D");
61
+ speak("Now lift the same grid into height. Nothing was redrawn — the cells became terrain.");
62
+ fade(world.cells, 0.5); fade(world.lines, 0.5);
63
+ show(land, 0.6);
64
+ }
65
+ }
66
+
67
+ // 3 — pull back to see the WHOLE world.
68
+ mark("reveal");
69
+ step("pullback") {
70
+ par {
71
+ say(cap, "pull back");
72
+ speak("Pull the camera back. The flat map was hiding a whole landscape.");
73
+ orbit3(25, 36, 30, 3.4, smooth);
74
+ }
75
+ }
76
+ wait(0.2);
77
+
78
+ // 4 — rotate around it.
79
+ mark("rotate");
80
+ step("orbit") {
81
+ par {
82
+ say(cap, "one grid, two worlds");
83
+ speak("One grid. Two readings — a 2D map for paths, a 3D world for place. Manic bridges them.");
84
+ recolor(cap, cyan);
85
+ orbit3(185, 32, 30, 4.4, smooth);
86
+ }
87
+ }
88
+
89
+ // 5 — fly in low over the peaks.
90
+ mark("zoom");
91
+ step("fly") {
92
+ par {
93
+ say(cap, "fly the ridges");
94
+ speak("Fly in low over the ridges. Every peak is computed from the map you just watched settle.");
95
+ orbit3(255, 15, 12, 3.8, smooth);
96
+ }
97
+ }
98
+ wait(0.4);
99
+
100
+ // 6 — MANIC PROMO: this video is the product.
101
+ mark("manic");
102
+ par {
103
+ fade(kicker, 0.35); fade(cap, 0.35); fade(me.footer, 0.35); fade(land, 0.45);
104
+ }
105
+ par {
106
+ say(cap, "made with Manic");
107
+ speak("And this whole Short was generated with Manic — a language for animated explainers.");
108
+ show(promo, 0.6);
109
+ }
110
+ wait(0.2);
111
+ par {
112
+ say(cap, "plain text → motion");
113
+ speak("You write plain text. Manic turns it into grids, 3D, camera moves, and voice — no timeline editor.");
114
+ show(promoSub, 0.5);
115
+ }
116
+ wait(0.2);
117
+ par {
118
+ say(cap, "8gwifi.org/manic");
119
+ speak("Learn more, try it free, and build your own explainers at eight g wifi dot org slash manic.");
120
+ show(promoUrl, 0.5); pulse(promoUrl, 0.8);
121
+ }
122
+ wait(0.5);
123
+
124
+ // 7 — END CARD.
125
+ mark("endcard");
126
+ par {
127
+ fade(cap, 0.4); fade(promo, 0.4); fade(promoSub, 0.4); fade(promoUrl, 0.4);
128
+ }
129
+ show(me.endcard, 0.6);
130
+ wait(1.8);
@@ -0,0 +1,203 @@
1
+ // A different use of hilbert3: spatial indexing, not curve refinement.
2
+ // Sixty-four 3D voxels receive one continuous address order. A moving cache
3
+ // window shows why axis-adjacent visits preserve useful spatial locality.
4
+
5
+ title("A 3D Volume, One Sortable Address");
6
+ canvas("9:16");
7
+ template("black");
8
+
9
+ creator(me,"@anish2good name=Manic_Data tagline=Spatial_ideas_made_visible yt=zarigatongy x=@anish2good web=8gwifi.org/manic accent=cyan secondary=gold footer=compact cta=Animate_the_algorithm safe=clean");
10
+ socials(me);
11
+ watermark(mark,(w*0.18,h*0.08),"Made With Manic");
12
+ endcard(me,"title=Turn_Data_Into_A_Story cta=8gwifi.org/manic");
13
+
14
+ let u=(w+h-abs(w-h))/1080;
15
+
16
+ text(kicker,(cx,h*0.14),"MANIC · SPATIAL INDEXING");
17
+ text(head,(cx,h*0.24),"How do you sort a 3D world?");
18
+ text(caption,(cx,h*0.82),"First, capture a world made from 64 separate voxels.");
19
+ counter(address,(cx,h*0.72),0,0,"VOXEL "," / 63");
20
+ equation(keyLaw,(cx,h*0.71),`H(x,y,z)=d`,30*u);
21
+ text(volumeReadout,(cx,h*0.72),"64 VOXELS · 3 COORDINATES");
22
+ text(jumpWarning,(cx,h*0.665),"NON-LOCAL ORDER · DISTANCE SPIKES");
23
+ text(localResult,(cx,h*0.72),"63 / 63 STEPS STAY FACE-ADJACENT");
24
+ text(probeLabel,(0,0),"ACTIVE CACHE");
25
+
26
+ size(kicker,20*u); bold(kicker); color(kicker,cyan);
27
+ size(head,31*u); bold(head); wrap(head,w*0.80);
28
+ size(caption,21*u); bold(caption); color(caption,dim); wrap(caption,w*0.76);
29
+ size(address,23*u); bold(address); color(address,gold);
30
+ size(volumeReadout,21*u); bold(volumeReadout); color(volumeReadout,dim);
31
+ size(jumpWarning,21*u); bold(jumpWarning); color(jumpWarning,red);
32
+ size(localResult,21*u); bold(localResult); color(localResult,lime);
33
+ size(probeLabel,17*u); bold(probeLabel); color(probeLabel,gold);
34
+
35
+ camera3((16,-18,14),(0,0,0),42);
36
+
37
+ // A 4×4×4 voxel volume. The centers match the order-2 Hilbert lattice:
38
+ // -2.1, -0.7, 0.7, 2.1 on each axis.
39
+ for z in 0..4 {
40
+ for y in 0..4 {
41
+ for x in 0..4 {
42
+ cube3(voxel{x}{y}{z},
43
+ ((x-1.5)*1.4,(y-1.5)*1.4,(z-1.5)*1.4),
44
+ (1.12,1.12,1.12));
45
+ opacity(voxel{x}{y}{z},0.11);
46
+ hidden(voxel{x}{y}{z});
47
+ tag(voxel{x}{y}{z},voxels);
48
+ tag(voxel{x}{y}{z},layer{z});
49
+ }
50
+ }
51
+ }
52
+ color(layer0,blue);
53
+ color(layer1,cyan);
54
+ color(layer2,magenta);
55
+ color(layer3,gold);
56
+
57
+ // A cinematic acquisition plane sweeps upward while the volume resolves one
58
+ // layer at a time.
59
+ cube3(scanPlane,(0,0,-3.0),(5.6,5.6,0.07));
60
+ color(scanPlane,cyan); opacity(scanPlane,0.28); hidden(scanPlane);
61
+
62
+ // The route is used once as an address order—there is no recursive
63
+ // refinement and no "line fills a cube" reproduction.
64
+ hilbert3(route,(0,0,0),4.2,2,"color=gradient shade=depth");
65
+ thick(route,0.040);
66
+ hidden(route); untraced(route);
67
+
68
+ sphere3(scanner,(-2.1,-2.1,-2.1),0.19);
69
+ color(scanner,fg); hidden(scanner);
70
+ finish3(scanner,"shading=smooth material=metal mesh=0.18 shadow=0.75");
71
+
72
+ // A translucent neighborhood travels with the current address. It represents
73
+ // the small spatial working set a cache or chunked volume reader wants nearby.
74
+ cube3(cacheWindow,(-2.1,-2.1,-2.1),(1.34,1.34,1.34));
75
+ color(cacheWindow,gold); opacity(cacheWindow,0.16); hidden(cacheWindow);
76
+ finish3(cacheWindow,"shading=smooth material=glass mesh=0.10 depth=0.72 shadow=0.18");
77
+
78
+ // A deliberately poor address order: three long diagonals tear across the
79
+ // volume. It is visually dramatic because consecutive addresses are not
80
+ // spatial neighbours.
81
+ arrow3(jump0,(-2.1,-2.1,-2.1),(2.1,2.1,2.1));
82
+ arrow3(jump1,(2.1,2.1,2.1),(-2.1,2.1,-2.1));
83
+ arrow3(jump2,(-2.1,2.1,-2.1),(2.1,-2.1,2.1));
84
+ color(jump0,red); color(jump1,coral); color(jump2,red);
85
+ thick(jump0,0.045); thick(jump1,0.045); thick(jump2,0.045);
86
+ hidden(jump0); hidden(jump1); hidden(jump2);
87
+ untraced(jump0); untraced(jump1); untraced(jump2);
88
+ tag(jump0,badOrder); tag(jump1,badOrder); tag(jump2,badOrder);
89
+
90
+ pin3(probeLabel,scanner,(18,-18));
91
+
92
+ hidden(kicker); hidden(head); hidden(caption); hidden(address);
93
+ hidden(keyLaw); hidden(volumeReadout); hidden(jumpWarning); hidden(localResult);
94
+ hidden(probeLabel);
95
+
96
+ step("the world becomes data") {
97
+ par {
98
+ show(kicker,0.30); show(head,0.45); show(caption,0.40);
99
+ }
100
+ view3(voxels,"isometric",0.90,smooth,1.45);
101
+ cue(whoosh);
102
+ show(scanPlane,0.25);
103
+ show(volumeReadout,0.30);
104
+ par {
105
+ move3(scanPlane,(0,0,3.0),2.35,smooth);
106
+ stagger(0.46) {
107
+ show(layer0,0.34); show(layer1,0.34); show(layer2,0.34); show(layer3,0.34);
108
+ }
109
+ say(caption,"A scan resolves the physical world one layer at a time.",0.45,smooth);
110
+ }
111
+ fade(scanPlane,0.25);
112
+ }
113
+ wait(0.50);
114
+
115
+ step("the wrong order tears space apart") {
116
+ par {
117
+ fade(volumeReadout,0.25);
118
+ show(scanner,0.25); show(address,0.30); show(jumpWarning,0.30);
119
+ say(head,"A bad index destroys locality.",0.45,smooth);
120
+ say(caption,"Consecutive keys can jump from one corner of the volume to another.",0.45,smooth);
121
+ }
122
+ cue(whoosh);
123
+ par {
124
+ draw(jump0,0.80,smooth);
125
+ travel3(scanner,jump0,0.80,smooth);
126
+ to(address,value,63,0.80,smooth);
127
+ }
128
+ cue(whoosh);
129
+ par {
130
+ draw(jump1,0.70,smooth);
131
+ travel3(scanner,jump1,0.70,smooth);
132
+ to(address,value,3,0.70,smooth);
133
+ }
134
+ cue(whoosh);
135
+ par {
136
+ draw(jump2,0.75,smooth);
137
+ travel3(scanner,jump2,0.75,smooth);
138
+ to(address,value,60,0.75,smooth);
139
+ }
140
+ shake(jumpWarning,0.45);
141
+ }
142
+ wait(0.55);
143
+
144
+ step("hilbert order restores locality") {
145
+ par {
146
+ fade(badOrder,0.35); fade(jumpWarning,0.25);
147
+ move3(scanner,(-2.1,-2.1,-2.1),0.65,smooth);
148
+ to(address,value,0,0.65,smooth);
149
+ say(head,"One route restores locality.",0.45,smooth);
150
+ say(caption,"Hilbert order makes every next address share a face with the last.",0.45,smooth);
151
+ }
152
+ cue(chime);
153
+ par {
154
+ show(route,0.20); draw(route,1.80,smooth);
155
+ show(cacheWindow,0.30); show(probeLabel,0.30);
156
+ }
157
+ pulse(scanner,0.55);
158
+ }
159
+ wait(0.45);
160
+
161
+ step("one uninterrupted spatial journey") {
162
+ attach3(cacheWindow,scanner,(0,0,0));
163
+ par {
164
+ travel3(scanner,route,7.20,linear);
165
+ to(address,value,63,7.20,linear);
166
+ orbit3(132,30,29.0,7.20,smooth);
167
+ say(caption,"The cache window, address and camera now travel as one synchronized shot.",0.48,smooth);
168
+ }
169
+ attach3(cacheWindow,none);
170
+ }
171
+ wait(0.55);
172
+
173
+ step("the payoff") {
174
+ par {
175
+ fade(address,0.25); fade(probeLabel,0.25); fade(cacheWindow,0.30);
176
+ show(localResult,0.35);
177
+ pulse(route,0.80);
178
+ say(head,"Locality wins.",0.45,smooth);
179
+ say(caption,"All 64 voxels are visited—and all 63 transitions stay face-adjacent.",0.50,smooth);
180
+ }
181
+ }
182
+ wait(1.00);
183
+
184
+ step("turn location into a key") {
185
+ par {
186
+ fade(localResult,0.25);
187
+ show(keyLaw,0.40);
188
+ pulse(route,0.80);
189
+ say(head,"Three coordinates become one sortable key.",0.45,smooth);
190
+ say(caption,"One idea powers medical volumes, spatial databases, simulations and maps.",0.50,smooth);
191
+ }
192
+ }
193
+ wait(1.35);
194
+
195
+ step("creator call to action") {
196
+ par {
197
+ fade(kicker,0.30); fade(head,0.30); fade(caption,0.30); fade(keyLaw,0.30);
198
+ fade(scanner,0.30); fade(route,0.40); fade(voxels,0.40); fade(badOrder,0.30);
199
+ fade(volumeReadout,0.25); fade(jumpWarning,0.25); fade(localResult,0.25);
200
+ fade(me.footer,0.30); show(me.endcard,0.60);
201
+ }
202
+ }
203
+ wait(2.00);
@@ -0,0 +1,192 @@
1
+ // HOW A ROCKET LAUNCH WORKS — a 9:16 cutaway story.
2
+ // The reusable SVG supplies the vehicle; Manic supplies the teaching:
3
+ // callouts, chamber reaction, directional exhaust, thrust, motion, and CTA.
4
+
5
+ title("How a Rocket Launch Works");
6
+ canvas("9:16");
7
+ template("shorts");
8
+ voice("gtts");
9
+
10
+ creator(me, "@anish2good name=Manic_Physics tagline=Physics_made_visible yt=zarigatongy x=@anish2good web=8gwifi.org/manic accent=cyan secondary=gold footer=signature cta=Try_it_free safe=reels");
11
+ socials(me);
12
+ watermark(mark, (w*0.82, h*0.91), "Made With Manic");
13
+ endcard(me, "title=Make_Science_Move cta=8gwifi.org/manic");
14
+
15
+ text(kicker, (cx, 112), "ROCKET PHYSICS · CUTAWAY");
16
+ text(headline, (cx, 174), "How does a rocket launch?");
17
+ text(caption, (cx, 1440), "A rocket carries two ingredients—not just fuel.");
18
+ size(kicker, 21); bold(kicker); color(kicker, cyan); hidden(kicker);
19
+ size(headline, 40); bold(headline); wrap(headline, 850); hidden(headline);
20
+ size(caption, 27); color(caption, dim); wrap(caption, 880); hidden(caption);
21
+
22
+ // One importer-safe cutaway asset. Its internal sections remain crisp at any size.
23
+ let rx = 540;
24
+ let ry = 760;
25
+ svg(rocket, (rx, ry), "asset:svg/physics/rocket-cutaway.svg", 300);
26
+ hidden(rocket); z(rocket, 5);
27
+
28
+ // Screen-authored highlights make each internal region independently teachable.
29
+ polygon(payloadHi, (480, 430), (540, 395), (600, 430), (600, 550), (480, 550));
30
+ rect(fuelHi, (540, 650), 120, 155);
31
+ rect(oxidizerHi, (540, 815), 120, 140);
32
+ polygon(chamberHi, (500, 900), (580, 900), (570, 955), (540, 980), (510, 955));
33
+ polygon(nozzleHi, (515, 975), (565, 975), (590, 1115), (490, 1115));
34
+ outlined(payloadHi); outlined(fuelHi); outlined(oxidizerHi); outlined(chamberHi); outlined(nozzleHi);
35
+ outline(payloadHi, cyan); outline(fuelHi, gold); outline(oxidizerHi, blue);
36
+ outline(chamberHi, magenta); outline(nozzleHi, fg);
37
+ stroke(payloadHi, 5); stroke(fuelHi, 5); stroke(oxidizerHi, 5); stroke(chamberHi, 5); stroke(nozzleHi, 5);
38
+ opacity(payloadHi, 0.9); opacity(fuelHi, 0.9); opacity(oxidizerHi, 0.9); opacity(chamberHi, 0.9); opacity(nozzleHi, 0.9);
39
+ hidden(payloadHi); hidden(fuelHi); hidden(oxidizerHi); hidden(chamberHi); hidden(nozzleHi);
40
+
41
+ // Clean callouts; the labels stay outside the vehicle silhouette.
42
+ line(payloadLead, (605, 470), (770, 420));
43
+ line(fuelLead, (600, 630), (790, 590));
44
+ line(oxidizerLead, (480, 805), (285, 780));
45
+ line(chamberLead, (500, 930), (280, 970));
46
+ line(nozzleLead, (575, 1045), (790, 1090));
47
+ color(payloadLead, cyan); color(fuelLead, gold); color(oxidizerLead, blue);
48
+ color(chamberLead, magenta); color(nozzleLead, fg);
49
+ stroke(payloadLead, 3); stroke(fuelLead, 3); stroke(oxidizerLead, 3); stroke(chamberLead, 3); stroke(nozzleLead, 3);
50
+
51
+ text(payloadLabel, (845, 395), "PAYLOAD");
52
+ text(fuelLabel, (855, 565), "FUEL");
53
+ text(oxidizerLabel, (195, 755), "OXIDIZER");
54
+ text(chamberLabel, (180, 950), "BURN");
55
+ text(nozzleLabel, (850, 1070), "NOZZLE");
56
+ size(payloadLabel, 22); size(fuelLabel, 22); size(oxidizerLabel, 22); size(chamberLabel, 22); size(nozzleLabel, 22);
57
+ bold(payloadLabel); bold(fuelLabel); bold(oxidizerLabel); bold(chamberLabel); bold(nozzleLabel);
58
+ color(payloadLabel, cyan); color(fuelLabel, gold); color(oxidizerLabel, blue);
59
+ color(chamberLabel, magenta); color(nozzleLabel, fg);
60
+
61
+ hidden(payloadLead); hidden(fuelLead); hidden(oxidizerLead); hidden(chamberLead); hidden(nozzleLead);
62
+ hidden(payloadLabel); hidden(fuelLabel); hidden(oxidizerLabel); hidden(chamberLabel); hidden(nozzleLabel);
63
+
64
+ // Reaction and force story.
65
+ equation(reaction, (cx, 1195), `\text{fuel}+\text{oxidizer}\longrightarrow\text{hot gas}`);
66
+ size(reaction, 34); hidden(reaction);
67
+
68
+ arrow(gasDown, (225, 1070), (225, 1300));
69
+ arrow(thrustUp, (850, 1120), (850, 880));
70
+ color(gasDown, magenta); color(thrustUp, cyan);
71
+ stroke(gasDown, 8); stroke(thrustUp, 8);
72
+ hidden(gasDown); hidden(thrustUp);
73
+ text(gasLabel, (170, 1320), "EXHAUST ↓");
74
+ text(thrustLabel, (930, 900), "THRUST ↑");
75
+ size(gasLabel, 22); size(thrustLabel, 22); bold(gasLabel); bold(thrustLabel);
76
+ color(gasLabel, magenta); color(thrustLabel, cyan);
77
+ hidden(gasLabel); hidden(thrustLabel);
78
+
79
+ polygon(flame, (500, 1090), (540, 1260), (580, 1090));
80
+ gradient(flame, gold, magenta, 90); filled(flame); glow(flame, 1.1); hidden(flame); z(flame, 4);
81
+
82
+ circle(exhaustSeed, (540, 1180), 12); opacity(exhaustSeed, 0); hidden(exhaustSeed);
83
+ particles(exhaust, exhaustSeed, 28, 6, 41, "random");
84
+ color(exhaust, gold); glow(exhaust, 0.8); hidden(exhaust);
85
+ line(exhaustPath, (540, 1170), (540, 1330)); opacity(exhaustPath, 0);
86
+
87
+ tag(rocket, vehicle);
88
+ tag(payloadHi, vehicle); tag(fuelHi, vehicle); tag(oxidizerHi, vehicle);
89
+ tag(chamberHi, vehicle); tag(nozzleHi, vehicle); tag(flame, vehicle);
90
+
91
+ // Creator chrome remains screen-safe while the vehicle moves.
92
+ sticky(kicker); sticky(headline); sticky(caption); sticky(mark);
93
+ sticky(me.footer); sticky(me.endcard);
94
+
95
+ step("hook") {
96
+ par {
97
+ show(kicker, 0.35);
98
+ show(headline, 0.50);
99
+ show(caption, 0.35);
100
+ show(rocket, 0.70);
101
+ speak("A rocket does not push against the ground. So what actually makes it rise?");
102
+ }
103
+ }
104
+ wait(0.35);
105
+
106
+ step("inside-the-rocket") {
107
+ par {
108
+ stagger(0.16) {
109
+ par { show(payloadHi, 0.25); show(payloadLead, 0.25); show(payloadLabel, 0.25); }
110
+ par { show(fuelHi, 0.25); show(fuelLead, 0.25); show(fuelLabel, 0.25); }
111
+ par { show(oxidizerHi, 0.25); show(oxidizerLead, 0.25); show(oxidizerLabel, 0.25); }
112
+ }
113
+ say(caption, "Fuel stores energy. Oxidizer supplies the oxygen needed to release it.", 0.40);
114
+ speak("Inside are the payload, fuel, and oxidizer. The oxidizer is why a rocket can burn in space.");
115
+ }
116
+ }
117
+ wait(0.30);
118
+
119
+ step("combustion") {
120
+ par {
121
+ show(chamberHi, 0.25); show(chamberLead, 0.25); show(chamberLabel, 0.25);
122
+ show(reaction, 0.50);
123
+ flash(chamberHi, magenta);
124
+ pulse(chamberHi, 0.80);
125
+ say(caption, "In the chamber, fuel and oxidizer become extremely hot, high-pressure gas.", 0.40);
126
+ speak("They burn together in the combustion chamber, creating hot, high pressure gas.");
127
+ }
128
+ }
129
+ cue(pop);
130
+ wait(0.25);
131
+
132
+ step("shape-the-exhaust") {
133
+ par {
134
+ fade(reaction, 0.25);
135
+ show(nozzleHi, 0.25); show(nozzleLead, 0.25); show(nozzleLabel, 0.25);
136
+ show(flame, 0.22);
137
+ show(exhaust, 0.15);
138
+ stream(exhaust, exhaustPath, 3.2, 34, smooth);
139
+ show(gasDown, 0.40); show(gasLabel, 0.30);
140
+ say(caption, "The nozzle accelerates that gas downward into a fast exhaust jet.", 0.40);
141
+ speak("The nozzle expands and accelerates the gas downward.");
142
+ }
143
+ }
144
+ cue(whoosh);
145
+
146
+ step("equal-and-opposite") {
147
+ par {
148
+ fade(payloadHi, 0.25); fade(fuelHi, 0.25); fade(oxidizerHi, 0.25);
149
+ fade(chamberHi, 0.25); fade(nozzleHi, 0.25);
150
+ fade(payloadLead, 0.25); fade(fuelLead, 0.25); fade(oxidizerLead, 0.25);
151
+ fade(chamberLead, 0.25); fade(nozzleLead, 0.25);
152
+ fade(payloadLabel, 0.25); fade(fuelLabel, 0.25); fade(oxidizerLabel, 0.25);
153
+ fade(chamberLabel, 0.25); fade(nozzleLabel, 0.25);
154
+ fade(reaction, 0.25); fade(exhaust, 0.25);
155
+ show(thrustUp, 0.40); show(thrustLabel, 0.30);
156
+ flash(thrustUp, cyan);
157
+ say(headline, "Gas goes down. The rocket goes up.", 0.45);
158
+ say(caption, "Newton's third law turns downward exhaust momentum into upward thrust.", 0.40);
159
+ speak("Gas goes down. An equal and opposite force pushes the rocket up.");
160
+ }
161
+ }
162
+ wait(0.30);
163
+
164
+ step("launch") {
165
+ par {
166
+ fade(kicker, 0.25); fade(headline, 0.25);
167
+ shift(vehicle, (0,-250), 4.0, smooth);
168
+ shift(thrustUp, (0,-180), 4.0, smooth);
169
+ shift(thrustLabel, (0,-180), 4.0, smooth);
170
+ stream(exhaust, exhaustPath, 4.0, 38, smooth);
171
+ fade(payloadLead, 0.25); fade(fuelLead, 0.25); fade(oxidizerLead, 0.25);
172
+ fade(chamberLead, 0.25); fade(nozzleLead, 0.25);
173
+ fade(payloadLabel, 0.25); fade(fuelLabel, 0.25); fade(oxidizerLabel, 0.25);
174
+ fade(chamberLabel, 0.25); fade(nozzleLabel, 0.25);
175
+ fade(reaction, 0.25); fade(gasDown, 0.25); fade(gasLabel, 0.25);
176
+ say(caption, "A rocket carries both sides of the reaction, so the process continues above the atmosphere.", 0.45);
177
+ speak("Because it carries its own oxidizer, the same thrust cycle keeps working in space.");
178
+ }
179
+ }
180
+ cue(chime);
181
+ wait(0.55);
182
+
183
+ step("creator-cta") {
184
+ par {
185
+ fade(kicker, 0.30); fade(headline, 0.30); fade(caption, 0.30);
186
+ fade(vehicle, 0.30); fade(exhaust, 0.30);
187
+ fade(thrustUp, 0.30); fade(thrustLabel, 0.30);
188
+ fade(me.footer, 0.30); fade(mark, 0.30);
189
+ }
190
+ show(me.endcard, 0.60);
191
+ }
192
+ wait(1.6);
@@ -0,0 +1,51 @@
1
+ // Native bounded volume sampling extracts the implicit surface directly.
2
+
3
+ title("Drawing an Implicit Surface");
4
+ canvas("9:16");
5
+ template("black");
6
+ creator(me,"@anish2good name=Manic_3D tagline=Equations_made_visible yt=zarigatongy x=@anish2good web=8gwifi.org/manic accent=cyan secondary=magenta footer=compact cta=Make_math_spatial safe=clean");
7
+ socials(me);
8
+ watermark(mark,(w*0.16,h*0.055),"Made With Manic");
9
+ endcard(me,"title=Turn_Equations_Into_Worlds cta=8gwifi.org/manic");
10
+
11
+ let u=(w+h-abs(w-h))/1080;
12
+ text(kicker,(cx,h*0.10),"MANIC · IMPLICIT TO PARAMETRIC");
13
+ text(head,(cx,h*0.17),"How do we draw x² + y² − z² = 1?");
14
+ equation(eq,(cx,h*0.30),`x^2+y^2-z^2=1`,31*u);
15
+ text(caption,(cx,h*0.82),"Choose coordinates that make the identity true automatically.");
16
+ size(kicker,20*u); bold(kicker); color(kicker,cyan);
17
+ size(head,26*u); bold(head); wrap(head,w*0.76);
18
+ size(caption,20*u); bold(caption); wrap(caption,w*0.74); color(caption,dim);
19
+
20
+ implicit3(shell,"x*x+y*y-z*z",(-2.4,2.4),(-2.4,2.4),(-2.1,2.1),1,26);
21
+ color(shell,cyan); opacity(shell,0.72); finish3(shell,"shading=smooth material=glass depth=0.75");
22
+ hidden(shell);
23
+ camera3((17,17,12),(0,0,0),48,perspective);
24
+ hidden(kicker); hidden(head); hidden(eq); hidden(caption);
25
+
26
+ step("pose") { par { show(kicker,0.3); show(head,0.45); show(eq,0.45); show(caption,0.35); } }
27
+ wait(0.85);
28
+ step("parameterize") {
29
+ rewrite(eq,`\begin{aligned}x&=\cosh u\cos v\\y&=\cosh u\sin v\\z&=\sinh u\end{aligned}`,0.85,smooth);
30
+ say(caption,"Because cosh²u − sinh²u = 1, every generated point satisfies the equation.",0.45,smooth);
31
+ }
32
+ wait(0.8);
33
+ step("verify before drawing") {
34
+ par {
35
+ pulse(eq,0.80);
36
+ say(caption,"Substitution cancels cos²v + sin²v and leaves cosh²u − sinh²u = 1.",0.65,smooth);
37
+ }
38
+ }
39
+ wait(1.0);
40
+ step("reveal the surface") {
41
+ par { show(shell,1.2,smooth); orbit3(70,14,23,2.8,smooth); say(caption,"Manic samples the bounded volume and extracts exactly where the field equals one.",0.45); }
42
+ }
43
+ wait(1.0);
44
+ step("read the two directions") {
45
+ say(caption,"The angle v travels around the waist while u moves upward and outward along the surface.",0.60,smooth);
46
+ }
47
+ wait(0.95);
48
+ step("solve") { par { pulse(shell,0.8); say(head,"The identity is the geometry.",0.4,smooth); } }
49
+ wait(1.25);
50
+ step("cta") { par { fade(kicker,0.3); fade(head,0.3); fade(eq,0.3); fade(caption,0.3); fade(shell,0.45); fade(me.footer,0.3); show(me.endcard,0.6); } }
51
+ wait(2.2);
@@ -0,0 +1,56 @@
1
+ // Existing-Manic treatment of fractales/fig0120.asy.
2
+ // A finite radial construction teaches why a reflected wedge closes.
3
+
4
+ title("Six Wedges Close a Circle");
5
+ canvas("9:16");
6
+ template("black");
7
+ creator(me,"@anish2good name=Manic_Geometry tagline=Symmetry_made_visible yt=zarigatongy x=@anish2good web=8gwifi.org/manic accent=gold secondary=cyan footer=compact cta=Build_the_proof safe=clean");
8
+ socials(me);
9
+ watermark(mark,(w*0.16,h*0.055),"Made With Manic");
10
+ endcard(me,"title=Turn_Symmetry_Into_Proof cta=8gwifi.org/manic");
11
+
12
+ let u=(w+h-abs(w-h))/1080;
13
+ text(kicker,(cx,h*0.10),"MANIC · RADIAL DISSECTION");
14
+ text(head,(cx,h*0.17),"Why do six wedges close perfectly?");
15
+ text(caption,(cx,h*0.79),"One wedge turns through 60°. Six equal turns make a complete revolution.");
16
+ equation(answer,(cx,h*0.72),`6\times60^\circ=360^\circ`,34*u);
17
+ size(kicker,20*u); bold(kicker); color(kicker,gold);
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
+ let cy0=h*0.48; let rr=95*u;
22
+ polygon(seed,(cx,cy0),(cx,cy0-rr),(cx+0.866*rr,cy0-0.5*rr));
23
+ outlined(seed); outline(seed,cyan); color(seed,panel); stroke(seed,3);
24
+ line(bis,(cx,cy0),(cx+0.43*rr,cy0-0.75*rr)); color(bis,gold); stroke(bis,3);
25
+ tag(seed,wedge); tag(bis,wedge);
26
+ repeat(rosette,wedge,"layout=radial count=6 radius=0 face=out rotate=0 scale=1");
27
+ gradient(rosette,cyan,magenta,gold);
28
+ untraced(rosette); untraced(seed); untraced(bis);
29
+ circle(center,(cx,cy0),8*u); color(center,gold); hidden(center);
30
+ hidden(kicker); hidden(head); hidden(caption); hidden(answer);
31
+
32
+ step("pose") { par { show(kicker,0.3); show(head,0.45); show(caption,0.35); show(center,0.2); } }
33
+ wait(0.8);
34
+ step("start with one wedge") {
35
+ seq {
36
+ draw(seed,0.60,smooth);
37
+ draw(bis,0.40,smooth);
38
+ say(caption,"The construction begins with one 60° triangular wedge and its incenter ray.",0.4);
39
+ }
40
+ }
41
+ wait(0.85);
42
+ step("repeat around the center") {
43
+ par { fade(seed,0.2); fade(bis,0.2); draw(rosette,2.6,smooth); say(caption,"Rotate the same geometry—not a hand-drawn copy—six times.",0.4); }
44
+ }
45
+ wait(0.95);
46
+ step("read the invariant angle") {
47
+ par {
48
+ pulse(rosette,0.90);
49
+ say(caption,"Each copy contributes the same 60° turn, so the construction closes exactly after six copies.",0.60,smooth);
50
+ }
51
+ }
52
+ wait(1.0);
53
+ step("solve") { par { show(answer,0.5); pulse(rosette,0.8); say(head,"The angle sum forces closure.",0.4,smooth); } }
54
+ wait(1.25);
55
+ step("cta") { par { fade(kicker,0.3); fade(head,0.3); fade(caption,0.3); fade(answer,0.3); fade(rosette,0.4); fade(center,0.3); fade(me.footer,0.3); show(me.endcard,0.6); } }
56
+ wait(2.2);