@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.
- package/CONTRIBUTING.md +40 -0
- package/README.md +155 -0
- package/dist/client/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
- package/dist/client/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
- package/dist/client/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
- package/dist/client/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
- package/dist/client/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
- package/dist/client/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
- package/dist/client/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
- package/dist/client/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
- package/dist/client/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
- package/dist/client/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
- package/dist/client/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
- package/dist/client/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
- package/dist/client/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
- package/dist/client/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
- package/dist/client/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
- package/dist/client/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
- package/dist/client/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
- package/dist/client/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
- package/dist/client/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
- package/dist/client/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
- package/dist/client/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
- package/dist/client/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
- package/dist/client/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
- package/dist/client/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
- package/dist/client/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
- package/dist/client/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
- package/dist/client/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
- package/dist/client/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
- package/dist/client/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
- package/dist/client/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
- package/dist/client/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
- package/dist/client/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
- package/dist/client/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
- package/dist/client/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
- package/dist/client/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
- package/dist/client/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
- package/dist/client/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
- package/dist/client/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
- package/dist/client/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
- package/dist/client/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
- package/dist/client/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
- package/dist/client/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
- package/dist/client/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
- package/dist/client/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
- package/dist/client/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
- package/dist/client/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
- package/dist/client/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
- package/dist/client/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
- package/dist/client/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
- package/dist/client/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
- package/dist/client/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
- package/dist/client/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
- package/dist/client/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
- package/dist/client/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
- package/dist/client/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
- package/dist/client/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
- package/dist/client/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
- package/dist/client/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
- package/dist/client/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
- package/dist/client/assets/abap-CRCWOmpq.js +1 -0
- package/dist/client/assets/apex-DnsZk_dE.js +1 -0
- package/dist/client/assets/azcli-1IWB1ccx.js +1 -0
- package/dist/client/assets/bat-DPkNLes8.js +1 -0
- package/dist/client/assets/bicep-Corcdgou.js +2 -0
- package/dist/client/assets/cameligo-CGrWLZr3.js +1 -0
- package/dist/client/assets/clojure-D9WOWImG.js +1 -0
- package/dist/client/assets/codicon-CgENjH2v.ttf +0 -0
- package/dist/client/assets/coffee-B7EJu28W.js +1 -0
- package/dist/client/assets/cpp-SEyurbux.js +1 -0
- package/dist/client/assets/csharp-BoL64M5l.js +1 -0
- package/dist/client/assets/csp-C46ZqvIl.js +1 -0
- package/dist/client/assets/css-DQU6DXDx.js +3 -0
- package/dist/client/assets/cssMode-CtRONlr8.js +4 -0
- package/dist/client/assets/cypher-D84EuPTj.js +1 -0
- package/dist/client/assets/dart-D8lhlL1r.js +1 -0
- package/dist/client/assets/dockerfile-DLk6rpji.js +1 -0
- package/dist/client/assets/ecl-BO6FnfXk.js +1 -0
- package/dist/client/assets/editor.worker-CZyr7Ur9.js +26 -0
- package/dist/client/assets/elixir-BRjLKONM.js +1 -0
- package/dist/client/assets/flow9-Cac8vKd7.js +1 -0
- package/dist/client/assets/freemarker2-BTSNJUl8.js +3 -0
- package/dist/client/assets/fsharp-fd1GTHhf.js +1 -0
- package/dist/client/assets/go-O9LJTZXk.js +1 -0
- package/dist/client/assets/graphql-LQdxqEYJ.js +1 -0
- package/dist/client/assets/handlebars-qkUBjVg6.js +1 -0
- package/dist/client/assets/hcl-DxDQ3s82.js +1 -0
- package/dist/client/assets/html-pguqE00h.js +1 -0
- package/dist/client/assets/htmlMode-BCCLuk2F.js +4 -0
- package/dist/client/assets/index-BFrMLHHu.css +1 -0
- package/dist/client/assets/index-CdBC-xgi.js +1250 -0
- package/dist/client/assets/ini-BvajGCUy.js +1 -0
- package/dist/client/assets/java-SYsfObOQ.js +1 -0
- package/dist/client/assets/javascript-ciDUXdez.js +1 -0
- package/dist/client/assets/jsonMode-BmkXC0tI.js +10 -0
- package/dist/client/assets/julia-DQXNmw_w.js +1 -0
- package/dist/client/assets/kotlin-qQ0MG-9I.js +1 -0
- package/dist/client/assets/less-GGFNNJHn.js +2 -0
- package/dist/client/assets/lexon-Canl7DCW.js +1 -0
- package/dist/client/assets/liquid-CwE4UIwf.js +1 -0
- package/dist/client/assets/lua-D28Ae8-K.js +1 -0
- package/dist/client/assets/m3-DPitgjJI.js +1 -0
- package/dist/client/assets/markdown-B811l8j2.js +1 -0
- package/dist/client/assets/mdx-K_9Emnjy.js +1 -0
- package/dist/client/assets/mips-CdjsipkG.js +1 -0
- package/dist/client/assets/msdax-CYqgjx_P.js +1 -0
- package/dist/client/assets/mysql-BHd6q0vd.js +1 -0
- package/dist/client/assets/objective-c-B1aVtJYH.js +1 -0
- package/dist/client/assets/pascal-BhNW15KB.js +1 -0
- package/dist/client/assets/pascaligo-5jv8CcQD.js +1 -0
- package/dist/client/assets/perl-DlYyT36c.js +1 -0
- package/dist/client/assets/pgsql-Dy0bjov7.js +1 -0
- package/dist/client/assets/php-120yhfDK.js +1 -0
- package/dist/client/assets/pla-CjnFlu4u.js +1 -0
- package/dist/client/assets/postiats-CQpG440k.js +1 -0
- package/dist/client/assets/powerquery-DdJtto1Z.js +1 -0
- package/dist/client/assets/powershell-Bu_VLpJB.js +1 -0
- package/dist/client/assets/protobuf-IBS6jZEB.js +2 -0
- package/dist/client/assets/pug-kFxLfcjb.js +1 -0
- package/dist/client/assets/python-BzIc0EVe.js +1 -0
- package/dist/client/assets/qsharp-q7JyzKFN.js +1 -0
- package/dist/client/assets/r-BIFz-_sK.js +1 -0
- package/dist/client/assets/razor-lXZl6dtu.js +1 -0
- package/dist/client/assets/redis-CHOsPHWR.js +1 -0
- package/dist/client/assets/redshift-CBifECDb.js +1 -0
- package/dist/client/assets/restructuredtext-CghPJEOS.js +1 -0
- package/dist/client/assets/ruby-CYWGW-b1.js +1 -0
- package/dist/client/assets/rust-DMDD0SHb.js +1 -0
- package/dist/client/assets/sb-BYAiYHFx.js +1 -0
- package/dist/client/assets/scala-Bqvq8jcR.js +1 -0
- package/dist/client/assets/scheme-Dhb-2j9p.js +1 -0
- package/dist/client/assets/scss-CTwUZ5N7.js +3 -0
- package/dist/client/assets/shell-CsDZo4DB.js +1 -0
- package/dist/client/assets/solidity-CME5AdoB.js +1 -0
- package/dist/client/assets/sophia-RYC1BQQz.js +1 -0
- package/dist/client/assets/sparql-KEyrF7De.js +1 -0
- package/dist/client/assets/sql-BdTr02Mf.js +1 -0
- package/dist/client/assets/st-C7iG7M4S.js +1 -0
- package/dist/client/assets/swift-D7IUmUK8.js +1 -0
- package/dist/client/assets/systemverilog-DgMryOEJ.js +1 -0
- package/dist/client/assets/tcl-PloMZuKG.js +1 -0
- package/dist/client/assets/tsMode-BAXmgo_t.js +11 -0
- package/dist/client/assets/twig-BfRIq3la.js +1 -0
- package/dist/client/assets/typescript-Cdf8nS1n.js +1 -0
- package/dist/client/assets/typespec-CzxlYoT_.js +1 -0
- package/dist/client/assets/vb-BwAE3J76.js +1 -0
- package/dist/client/assets/wgsl-B_1kOXbF.js +298 -0
- package/dist/client/assets/xml-DGyPgYnj.js +1 -0
- package/dist/client/assets/yaml-Dqv3HtbL.js +1 -0
- package/dist/client/index.html +14 -0
- package/dist/client/manic-logo.png +0 -0
- package/dist/client/wasm/manic_lang.d.ts +74 -0
- package/dist/client/wasm/manic_lang.js +302 -0
- package/dist/client/wasm/manic_lang_bg.wasm +0 -0
- package/dist/client/wasm/manic_lang_bg.wasm.d.ts +13 -0
- package/dist/server/agentProtocol.d.ts +131 -0
- package/dist/server/agentProtocol.js +21 -0
- package/dist/server/agentProtocol.js.map +1 -0
- package/dist/server/agentRuns.d.ts +46 -0
- package/dist/server/agentRuns.js +138 -0
- package/dist/server/agentRuns.js.map +1 -0
- package/dist/server/agentThreads.d.ts +20 -0
- package/dist/server/agentThreads.js +205 -0
- package/dist/server/agentThreads.js.map +1 -0
- package/dist/server/aiSecrets.d.ts +21 -0
- package/dist/server/aiSecrets.js +68 -0
- package/dist/server/aiSecrets.js.map +1 -0
- package/dist/server/app.d.ts +34 -0
- package/dist/server/app.js +804 -0
- package/dist/server/app.js.map +1 -0
- package/dist/server/assets.d.ts +34 -0
- package/dist/server/assets.js +659 -0
- package/dist/server/assets.js.map +1 -0
- package/dist/server/candidateFix.d.ts +28 -0
- package/dist/server/candidateFix.js +111 -0
- package/dist/server/candidateFix.js.map +1 -0
- package/dist/server/cli.d.ts +2 -0
- package/dist/server/cli.js +118 -0
- package/dist/server/cli.js.map +1 -0
- package/dist/server/diagnostics.d.ts +13 -0
- package/dist/server/diagnostics.js +73 -0
- package/dist/server/diagnostics.js.map +1 -0
- package/dist/server/engineCheck.d.ts +7 -0
- package/dist/server/engineCheck.js +60 -0
- package/dist/server/engineCheck.js.map +1 -0
- package/dist/server/engineInstall.d.ts +34 -0
- package/dist/server/engineInstall.js +228 -0
- package/dist/server/engineInstall.js.map +1 -0
- package/dist/server/enginePaths.d.ts +3 -0
- package/dist/server/enginePaths.js +76 -0
- package/dist/server/enginePaths.js.map +1 -0
- package/dist/server/folderPicker.d.ts +1 -0
- package/dist/server/folderPicker.js +54 -0
- package/dist/server/folderPicker.js.map +1 -0
- package/dist/server/manicAgent.d.ts +75 -0
- package/dist/server/manicAgent.js +476 -0
- package/dist/server/manicAgent.js.map +1 -0
- package/dist/server/manicEnv.d.ts +18 -0
- package/dist/server/manicEnv.js +64 -0
- package/dist/server/manicEnv.js.map +1 -0
- package/dist/server/promptStore.d.ts +11 -0
- package/dist/server/promptStore.js +85 -0
- package/dist/server/promptStore.js.map +1 -0
- package/dist/server/renderJobs.d.ts +54 -0
- package/dist/server/renderJobs.js +290 -0
- package/dist/server/renderJobs.js.map +1 -0
- package/dist/server/settings.d.ts +40 -0
- package/dist/server/settings.js +262 -0
- package/dist/server/settings.js.map +1 -0
- package/dist/server/smartDraw.d.ts +7 -0
- package/dist/server/smartDraw.js +88 -0
- package/dist/server/smartDraw.js.map +1 -0
- package/dist/server/workspace.d.ts +27 -0
- package/dist/server/workspace.js +172 -0
- package/dist/server/workspace.js.map +1 -0
- package/examples/.manic-output/40b6f3b9-7638-4c0e-bb4f-570d45d1b225/job.json +26 -0
- package/examples/.manic-output/993f3788-f75e-445c-ba45-c401907b3c02/job.json +26 -0
- package/examples/.manic-output/993f3788-f75e-445c-ba45-c401907b3c02/markers.json +13 -0
- package/examples/.manic-output/993f3788-f75e-445c-ba45-c401907b3c02/out.mp4 +0 -0
- package/examples/.manic-workbench-threads/thread_3ce7448a13f64f9e887d1bc8106a97a8.json +45 -0
- package/examples/.manic-workbench-threads/thread_d494cda29249477591056234719e4a3a.json +21 -0
- package/examples/.manic-workbench-threads/thread_e98ebdc225184ea5b8ddda8b44541f63.json +29 -0
- package/examples/README.md +35 -0
- package/examples/a-story-1.manic +222 -0
- package/examples/a-story.manic +100 -0
- package/examples/achromat-cinematic.manic +105 -0
- package/examples/achromat.manic +32 -0
- package/examples/aes-decrypt.manic +359 -0
- package/examples/aes-encrypt.manic +359 -0
- package/examples/aes-round.manic +70 -0
- package/examples/aes-story.manic +622 -0
- package/examples/ai-story.manic +118 -0
- package/examples/analysis.manic +53 -0
- package/examples/archimedes_pi.manic +89 -0
- package/examples/area_under_curve.manic +131 -0
- package/examples/art-rakkan.manic +69 -0
- package/examples/aspheric-lens.manic +32 -0
- package/examples/astronomical-watch.manic +96 -0
- package/examples/asymptote-randomwalk3-reference.manic +58 -0
- package/examples/asymptote-tiling-reference.manic +65 -0
- package/examples/aws-clustered-web-services.manic +186 -0
- package/examples/aws-event-processing-clusters-poc.manic +97 -0
- package/examples/aws-three-tier-web-application.manic +134 -0
- package/examples/band.manic +43 -0
- package/examples/banner.manic +37 -0
- package/examples/bayes.manic +27 -0
- package/examples/bellcurve.manic +41 -0
- package/examples/bfs_dfs.manic +35 -0
- package/examples/block-tackle.manic +26 -0
- package/examples/bloom-scope.manic +172 -0
- package/examples/boolean.manic +46 -0
- package/examples/boxplot-wave.manic +93 -0
- package/examples/boxplot.manic +43 -0
- package/examples/brace.manic +46 -0
- package/examples/brachistochrone-annotated.manic +51 -0
- package/examples/brachistochrone.manic +27 -0
- package/examples/bubble_sort.manic +41 -0
- package/examples/bullet-block-annotated.manic +48 -0
- package/examples/bullet-block.manic +11 -0
- package/examples/bullet-impact.manic +65 -0
- package/examples/bungee.manic +9 -0
- package/examples/c4-internet-banking-components.manic +33 -0
- package/examples/c4-internet-banking-containers.manic +29 -0
- package/examples/c4-internet-banking.manic +26 -0
- package/examples/c4-story.manic +171 -0
- package/examples/c4-test.manic +52 -0
- package/examples/c4-zoom.manic +69 -0
- package/examples/calculus-demo.manic +129 -0
- package/examples/calculus-one.manic +288 -0
- package/examples/captions.manic +31 -0
- package/examples/car-suspension-annotated.manic +57 -0
- package/examples/car-suspension.manic +8 -0
- package/examples/cart-pendulum.manic +11 -0
- package/examples/charts-bar-line.manic +26 -0
- package/examples/charts-column-race.manic +19 -0
- package/examples/charts-gdp-race.manic +43 -0
- package/examples/charts-german-elections.manic +28 -0
- package/examples/charts-line-race.manic +21 -0
- package/examples/circle-in-three.manic +156 -0
- package/examples/circle-thirds-no-triangle.manic +161 -0
- package/examples/clip-window.manic +34 -0
- package/examples/cloud-feathers.manic +50 -0
- package/examples/cloud-jellyfish-v2.manic +87 -0
- package/examples/cloud-jellyfish.manic +48 -0
- package/examples/cloud-kaleidoscope.manic +48 -0
- package/examples/cloud-koi.manic +51 -0
- package/examples/cloud-lissajous.manic +23 -0
- package/examples/cloud-medusae.manic +46 -0
- package/examples/cloud-phoenix.manic +49 -0
- package/examples/cloud-plumes.manic +47 -0
- package/examples/cloud-pottery.manic +104 -0
- package/examples/cloud-shells.manic +50 -0
- package/examples/cloud-starfield.manic +23 -0
- package/examples/cloud-wave-lattice.manic +23 -0
- package/examples/cloud-word.manic +31 -0
- package/examples/cloud3-ripple.manic +53 -0
- package/examples/cloud3-sphere.manic +26 -0
- package/examples/clt.manic +35 -0
- package/examples/collide-blocks-annotated.manic +45 -0
- package/examples/collide-blocks.manic +11 -0
- package/examples/compare-pendulum.manic +11 -0
- package/examples/complex-flowchart.manic +196 -0
- package/examples/compound-pulley.manic +25 -0
- package/examples/conics.manic +46 -0
- package/examples/coordinates.manic +52 -0
- package/examples/correlation.manic +35 -0
- package/examples/covariance.manic +30 -0
- package/examples/creator-affine-fern-growth.manic +72 -0
- package/examples/creator-bowl-to-saddle.manic +86 -0
- package/examples/creator-branch-counting-tree3.manic +77 -0
- package/examples/creator-chaos-game-fern.manic +72 -0
- package/examples/creator-circle-inversion-chain.manic +61 -0
- package/examples/creator-convex-hull-depth.manic +59 -0
- package/examples/creator-coordinate-worlds.manic +182 -0
- package/examples/creator-ellipse-reflection-property.manic +59 -0
- package/examples/creator-free-kicks.manic +261 -0
- package/examples/creator-geometry-language-showcase.manic +259 -0
- package/examples/creator-geometry-morph-promo.manic +151 -0
- package/examples/creator-heightmap-world.manic +130 -0
- package/examples/creator-hilbert3-spatial-index.manic +203 -0
- package/examples/creator-how-rocket-launch-works.manic +192 -0
- package/examples/creator-implicit-surface-parameterized.manic +51 -0
- package/examples/creator-incenter-dissection.manic +56 -0
- package/examples/creator-lattice-paths.manic +118 -0
- package/examples/creator-line-inversion.manic +49 -0
- package/examples/creator-lsystem-fractal-curve.manic +121 -0
- package/examples/creator-mandelbrot-escape-test.manic +58 -0
- package/examples/creator-monty-hall.manic +104 -0
- package/examples/creator-noise-story.manic +123 -0
- package/examples/creator-one-tile-pattern-story.manic +169 -0
- package/examples/creator-pathfinding.manic +82 -0
- package/examples/creator-point-to-plane-distance.manic +167 -0
- package/examples/creator-race-quiz.manic +76 -0
- package/examples/creator-randomwalk3-diffusion.manic +72 -0
- package/examples/creator-reflected-ellipse.manic +48 -0
- package/examples/creator-rule90-sierpinski.manic +64 -0
- package/examples/creator-three-shadows-of-a-curve.manic +48 -0
- package/examples/creator-trigonometry-one-angle.manic +307 -0
- package/examples/creator-v2-latex-algebra.manic +29 -0
- package/examples/creator-v2-latex-calculus.manic +37 -0
- package/examples/creator-v2-latex-physics.manic +29 -0
- package/examples/creator-v2-olympiad-geometry.manic +92 -0
- package/examples/creator-v2-options-socials.manic +21 -0
- package/examples/creator-v2-timers.manic +25 -0
- package/examples/creator-v2-timing-square.manic +25 -0
- package/examples/creator-v2-timing.manic +34 -0
- package/examples/creator-v2.manic +36 -0
- package/examples/creator-why-rockets-use-stages.manic +198 -0
- package/examples/creator-wrap-real-line.manic +51 -0
- package/examples/cubic-graphs.manic +432 -0
- package/examples/curve-features.manic +41 -0
- package/examples/definedmotion-fourier-gallery.manic +171 -0
- package/examples/derivative-of-ln-x.manic +194 -0
- package/examples/diagonalise.manic +56 -0
- package/examples/dijkstra.manic +29 -0
- package/examples/dimensions-unfold.manic +211 -0
- package/examples/disc-integration.manic +172 -0
- package/examples/double-incline.manic +9 -0
- package/examples/double-integral3.manic +43 -0
- package/examples/double-pendulum.manic +35 -0
- package/examples/double-spring.manic +9 -0
- package/examples/drop-mass.manic +25 -0
- package/examples/eigen3.manic +34 -0
- package/examples/equal_cuts.manic +44 -0
- package/examples/equation.manic +16 -0
- package/examples/equilateral.manic +57 -0
- package/examples/euler_line.manic +51 -0
- package/examples/exponential-shells.manic +188 -0
- package/examples/extrude3.manic +37 -0
- package/examples/factorial-flowchart.manic +69 -0
- package/examples/fibonacci-sphere.manic +57 -0
- package/examples/flow-lorenz.manic +47 -0
- package/examples/fourier-series-live-wave.manic +114 -0
- package/examples/fourier-square-wave-live.manic +114 -0
- package/examples/fractal_tree.manic +39 -0
- package/examples/frame3-grid-policies.manic +48 -0
- package/examples/ftc.manic +54 -0
- package/examples/function_graph.manic +54 -0
- package/examples/galton-board-process.manic +150 -0
- package/examples/gcp-clustered-web-services.manic +186 -0
- package/examples/gcp-message-collecting.manic +139 -0
- package/examples/geo-pythagoras-short.manic +119 -0
- package/examples/glsl-boxgrid.manic +105 -0
- package/examples/glsl-parameter.manic +30 -0
- package/examples/glsl-raymarch.manic +59 -0
- package/examples/glsl-shapes.manic +122 -0
- package/examples/gradient-descent-field.manic +116 -0
- package/examples/gradient-fastest-descent-shorts.manic +153 -0
- package/examples/gradient-fastest-descent.manic +125 -0
- package/examples/gradient-pendulum-shorts.manic +117 -0
- package/examples/gradient.manic +74 -0
- package/examples/graph.manic +45 -0
- package/examples/graph_moving.manic +67 -0
- package/examples/grid-astar.manic +15 -0
- package/examples/grid-life-soup.manic +31 -0
- package/examples/grid-life-zoo.manic +46 -0
- package/examples/grid-life.manic +19 -0
- package/examples/grid-wfc.manic +13 -0
- package/examples/growing-fractal-tree3.manic +58 -0
- package/examples/gun-shot.manic +82 -0
- package/examples/hashmap.manic +38 -0
- package/examples/heightmap3-world.manic +64 -0
- package/examples/heightmap3.manic +23 -0
- package/examples/hilbert-curve3-space-filling.manic +117 -0
- package/examples/hill_run.manic +71 -0
- package/examples/histogram.manic +43 -0
- package/examples/hotdog-taco.manic +147 -0
- package/examples/hue_wave.manic +35 -0
- package/examples/hypothesis.manic +32 -0
- package/examples/image.manic +29 -0
- package/examples/incircle_tangents.manic +64 -0
- package/examples/incline-bumper.manic +11 -0
- package/examples/incline-pulley.manic +11 -0
- package/examples/incline-showcase.manic +55 -0
- package/examples/inline-math.manic +16 -0
- package/examples/inscribed-angle-short.manic +56 -0
- package/examples/integral-sqrt-tanx.manic +255 -0
- package/examples/integrals.manic +274 -0
- package/examples/inverse-derivatives.manic +94 -0
- package/examples/k8s-cluster-components.manic +82 -0
- package/examples/k8s-stateful-architecture.manic +134 -0
- package/examples/k8s-three-tier.manic +146 -0
- package/examples/kapitza.manic +11 -0
- package/examples/latex-disintegration.manic +123 -0
- package/examples/lens-paper.manic +36 -0
- package/examples/lens-prescription.manic +33 -0
- package/examples/lens-system.manic +34 -0
- package/examples/lens.manic +31 -0
- package/examples/limit-infinity.manic +30 -0
- package/examples/limit.manic +33 -0
- package/examples/linear-algebra-3d.manic +50 -0
- package/examples/linear-algebra.manic +115 -0
- package/examples/linear-map.manic +39 -0
- package/examples/linear-map3.manic +33 -0
- package/examples/linear-system.manic +99 -0
- package/examples/linear_transform.manic +43 -0
- package/examples/linked_list.manic +38 -0
- package/examples/lln.manic +31 -0
- package/examples/loop-cinematic.manic +41 -0
- package/examples/loop-track.manic +11 -0
- package/examples/lorenz-attractor.manic +55 -0
- package/examples/lorenz-shells.manic +43 -0
- package/examples/lost-in-patterns.manic +149 -0
- package/examples/lsystem-asymptote-curves.manic +81 -0
- package/examples/manic-ml-activation-focus.manic +133 -0
- package/examples/manic-ml-cnn-edge-story.manic +102 -0
- package/examples/manic-ml-forward-pass.manic +93 -0
- package/examples/manic-ml-learning-step.manic +116 -0
- package/examples/manic-ml-logits-sampling.manic +112 -0
- package/examples/manic-ml-scalar-to-tensor.manic +143 -0
- package/examples/manic-ml-token-embedding.manic +110 -0
- package/examples/manic-ml-transformer-attention.manic +102 -0
- package/examples/manic-ml-transformer-block.manic +116 -0
- package/examples/manic-promo.manic +64 -0
- package/examples/map-attractor.manic +45 -0
- package/examples/mask-lens.manic +33 -0
- package/examples/matrix.manic +37 -0
- package/examples/matrix3.manic +101 -0
- package/examples/matrix_addition.manic +66 -0
- package/examples/matrix_addition_plane.manic +91 -0
- package/examples/maxwell-boltzmann-effusion-v2.manic +142 -0
- package/examples/maxwell-boltzmann-process.manic +86 -0
- package/examples/microservices-platform.manic +140 -0
- package/examples/molecule.manic +8 -0
- package/examples/morph-icons.manic +29 -0
- package/examples/morph.manic +29 -0
- package/examples/morph3.manic +49 -0
- package/examples/motion-flow-foundation.manic +148 -0
- package/examples/motion-graphics-v2-story.manic +189 -0
- package/examples/motion-graphics-v2.manic +81 -0
- package/examples/motion-graphics.manic +81 -0
- package/examples/multivariable3.manic +26 -0
- package/examples/mystory.manic +9 -0
- package/examples/newton.manic +39 -0
- package/examples/newtons-cradle.manic +10 -0
- package/examples/nine_point.manic +59 -0
- package/examples/noise-terrain.manic +16 -0
- package/examples/off-axis.manic +32 -0
- package/examples/onprem-advanced-web-service-v2.manic +196 -0
- package/examples/onprem-advanced-web-service.manic +175 -0
- package/examples/orthocenter.manic +63 -0
- package/examples/param3.manic +43 -0
- package/examples/parameter-journeys.manic +154 -0
- package/examples/parameterized-field-advection.manic +57 -0
- package/examples/parameterized-generated-families3.manic +83 -0
- package/examples/particles-flow.manic +61 -0
- package/examples/pascal-triangle.manic +92 -0
- package/examples/pendulum-annotated.manic +72 -0
- package/examples/pendulum-damped.manic +35 -0
- package/examples/pendulum.manic +38 -0
- package/examples/perfect-reel.manic +43 -0
- package/examples/pie.manic +41 -0
- package/examples/pieday.manic +113 -0
- package/examples/piston.manic +7 -0
- package/examples/popkorn-field.manic +38 -0
- package/examples/prism-cinematic.manic +36 -0
- package/examples/prism.manic +32 -0
- package/examples/probability.manic +57 -0
- package/examples/process-branching-dispatch.manic +71 -0
- package/examples/process-stream-observe.manic +54 -0
- package/examples/projection.manic +57 -0
- package/examples/prompt-test-10.manic +257 -0
- package/examples/prompt-test-11.manic +168 -0
- package/examples/prompt-test-12.manic +177 -0
- package/examples/prompt-test-13.manic +228 -0
- package/examples/prompt-test-14.manic +319 -0
- package/examples/prompt-test-15.manic +325 -0
- package/examples/prompt-test-16.manic +252 -0
- package/examples/prompt-test-2.manic +239 -0
- package/examples/prompt-test-3.manic +336 -0
- package/examples/prompt-test-4.manic +195 -0
- package/examples/prompt-test-5.manic +223 -0
- package/examples/prompt-test-6.manic +222 -0
- package/examples/prompt-test-7.manic +156 -0
- package/examples/prompt-test-8.manic +266 -0
- package/examples/prompt-test-9.manic +171 -0
- package/examples/prompt-test.manic +158 -0
- package/examples/pulley-annotated.manic +54 -0
- package/examples/pulley-paper.manic +52 -0
- package/examples/pulley-scale.manic +23 -0
- package/examples/pulley.manic +24 -0
- package/examples/quadratic-formula-continuity.manic +110 -0
- package/examples/quiz-euler.manic +52 -0
- package/examples/quiz-geometry-2.manic +107 -0
- package/examples/quiz-geometry.manic +108 -0
- package/examples/quiz-skins.manic +22 -0
- package/examples/raft-cm.manic +24 -0
- package/examples/ramp.manic +25 -0
- package/examples/ray-fan.manic +27 -0
- package/examples/raymarch-alpha.manic +39 -0
- package/examples/raymarch-boxgrid.manic +47 -0
- package/examples/raymarch-docker-latency.manic +74 -0
- package/examples/raymarch-metaballs.manic +37 -0
- package/examples/raymarch-sculpture.manic +39 -0
- package/examples/raymarch-shapes3.manic +31 -0
- package/examples/reactive-integral.manic +172 -0
- package/examples/reactive-math-journey.manic +185 -0
- package/examples/reactive-math-notation.manic +150 -0
- package/examples/reactive-multiformat.manic +130 -0
- package/examples/reactive-world.manic +111 -0
- package/examples/refraction-paper.manic +40 -0
- package/examples/refraction.manic +32 -0
- package/examples/resonance.manic +10 -0
- package/examples/rewrite-exponential-cubic.manic +141 -0
- package/examples/rewrite-integration.manic +199 -0
- package/examples/riemann_rainbow.manic +61 -0
- package/examples/riemann_readout.manic +61 -0
- package/examples/robot-arm.manic +25 -0
- package/examples/rref.manic +48 -0
- package/examples/second-law-thermodynamics.manic +385 -0
- package/examples/series-parallel-springs.manic +8 -0
- package/examples/serverless-processing.manic +145 -0
- package/examples/shader-cellular.manic +35 -0
- package/examples/shader-fractal.manic +45 -0
- package/examples/shader-fx.manic +34 -0
- package/examples/shader-glitch-grid.manic +55 -0
- package/examples/shader-parameter.manic +25 -0
- package/examples/shader-patterns.manic +37 -0
- package/examples/shader-plasma.manic +43 -0
- package/examples/shader-shapes-dsl.manic +46 -0
- package/examples/shader-shapes.manic +37 -0
- package/examples/shader-warp.manic +22 -0
- package/examples/shapes-howto.manic +411 -0
- package/examples/sine_wave.manic +42 -0
- package/examples/skew.manic +40 -0
- package/examples/smoke.rs +57 -0
- package/examples/solids3.manic +22 -0
- package/examples/some-story.manic +299 -0
- package/examples/spinning-cylinder-flow.manic +87 -0
- package/examples/spline.manic +21 -0
- package/examples/spot-diagram.manic +32 -0
- package/examples/spring-annotated.manic +60 -0
- package/examples/spring-chain.manic +11 -0
- package/examples/spring-damped.manic +33 -0
- package/examples/spring-incline.manic +10 -0
- package/examples/spring-paper.manic +46 -0
- package/examples/spring-pendulum.manic +14 -0
- package/examples/spring.manic +33 -0
- package/examples/sqrt-tanx.manic +217 -0
- package/examples/ssl-handshake-sdf.manic +116 -0
- package/examples/stack_queue.manic +53 -0
- package/examples/statistics.manic +60 -0
- package/examples/story-addressable-asset-cues.manic +71 -0
- package/examples/story-dependent-chain-history.manic +56 -0
- package/examples/story-living-dependency-cloud.manic +50 -0
- package/examples/story-time-varying-field3.manic +57 -0
- package/examples/story.manic +4 -0
- package/examples/string-art-breath.manic +70 -0
- package/examples/string-wave.manic +10 -0
- package/examples/summary.manic +48 -0
- package/examples/svg-howto.manic +172 -0
- package/examples/svg-import.manic +18 -0
- package/examples/systems-architecture-poc.manic +92 -0
- package/examples/systems-arrow-patterns.manic +151 -0
- package/examples/systems-foundation.manic +71 -0
- package/examples/systems-rabbitmq-consumers.manic +118 -0
- package/examples/table.manic +39 -0
- package/examples/table_braces.manic +54 -0
- package/examples/tangent-length-short.manic +57 -0
- package/examples/tangent.manic +29 -0
- package/examples/tangents.manic +54 -0
- package/examples/taylor.manic +44 -0
- package/examples/terminal_boot.manic +40 -0
- package/examples/test.manic +61 -0
- package/examples/text-guide.manic +304 -0
- package/examples/textbook-coordinate-worlds.manic +129 -0
- package/examples/textbook-doubly-list.manic +33 -0
- package/examples/textbook-function-to-solid.manic +126 -0
- package/examples/textbook-geometry-dimension-reduction.manic +129 -0
- package/examples/textbook-incline-fbd.manic +43 -0
- package/examples/textbook-length-area-volume.manic +137 -0
- package/examples/textbook-matrix-inverses.manic +172 -0
- package/examples/textbook-pulley.manic +35 -0
- package/examples/textbook-statistical-dimensions.manic +151 -0
- package/examples/textbook-tension.manic +39 -0
- package/examples/textbook-watermelon-sections.manic +216 -0
- package/examples/thales-semicircle-short.manic +53 -0
- package/examples/three-d-v2-lab.manic +83 -0
- package/examples/three-d-v2-story.manic +106 -0
- package/examples/three-d-v2.manic +69 -0
- package/examples/three_d.manic +39 -0
- package/examples/timing-v2-scene.manic +47 -0
- package/examples/trajectory.manic +28 -0
- package/examples/transform_copy.manic +35 -0
- package/examples/transforms.manic +54 -0
- package/examples/trapped-light-dimensions.manic +226 -0
- package/examples/tree-of-leaves.manic +215 -0
- package/examples/triangle.manic +68 -0
- package/examples/two_person_walk.manic +296 -0
- package/examples/two_pointer.manic +32 -0
- package/examples/type-to-sdf.manic +139 -0
- package/examples/typewriter.manic +28 -0
- package/examples/vector_field.manic +32 -0
- package/examples/vertical-spring.manic +10 -0
- package/examples/volume3.manic +21 -0
- package/examples/volumes-solid-of-revolution.manic +111 -0
- package/examples/walk.manic +154 -0
- package/examples/wheel-duo.manic +91 -0
- package/examples/wheel-radial.manic +78 -0
- package/examples/wheel-square.manic +83 -0
- package/examples/wireframe-spheres.manic +37 -0
- package/examples/zeroth-law-thermodynamics.manic +269 -0
- package/package.json +59 -0
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
// Creator problem: count a hexagonal mosaic without counting 37 tiles one by
|
|
2
|
+
// one. `repeat` constructs the exact layers; counters and semantic LaTeX turn
|
|
3
|
+
// the geometry into a short visual proof.
|
|
4
|
+
|
|
5
|
+
title("How Many Tiles Are in Three Hexagonal Rings?");
|
|
6
|
+
canvas("9:16");
|
|
7
|
+
template("blank");
|
|
8
|
+
|
|
9
|
+
creator(me, "@anish2good name=Manic_Geometry tagline=Patterns_made_visible yt=zarigatongy x=@anish2good web=8gwifi.org/manic accent=cyan secondary=magenta footer=compact cta=Create_without_keyframes safe=clean");
|
|
10
|
+
socials(me);
|
|
11
|
+
watermark(mark, (w*0.16, h*0.055), "Made With Manic");
|
|
12
|
+
endcard(me, "title=Turn_Patterns_Into_Proofs cta=8gwifi.org/manic");
|
|
13
|
+
|
|
14
|
+
let u = (w+h-abs(w-h))/1080;
|
|
15
|
+
let boardY = h*0.43;
|
|
16
|
+
let tileR = 19*u;
|
|
17
|
+
|
|
18
|
+
text(kicker, (cx,h*0.105), "MANIC · VISUAL COUNTING");
|
|
19
|
+
text(headline, (cx,h*0.17), "Three rings surround one tile.");
|
|
20
|
+
text(question, (cx,h*0.235), "How many tiles are there altogether?");
|
|
21
|
+
text(caption, (cx,h*0.77), "Do not count one by one. Count what each ring adds.");
|
|
22
|
+
size(kicker, 20*u); bold(kicker); color(kicker, cyan);
|
|
23
|
+
size(headline, 31*u); bold(headline); wrap(headline,w*0.80);
|
|
24
|
+
size(question, 25*u); bold(question); wrap(question,w*0.78); color(question,gold);
|
|
25
|
+
size(caption, 22*u); bold(caption); wrap(caption,w*0.78); color(caption,dim);
|
|
26
|
+
|
|
27
|
+
// One regular hexagonal tile is the only authored artwork.
|
|
28
|
+
polygon(tile,
|
|
29
|
+
(cx,boardY-tileR),
|
|
30
|
+
(cx+0.866*tileR,boardY-0.5*tileR),
|
|
31
|
+
(cx+0.866*tileR,boardY+0.5*tileR),
|
|
32
|
+
(cx,boardY+tileR),
|
|
33
|
+
(cx-0.866*tileR,boardY+0.5*tileR),
|
|
34
|
+
(cx-0.866*tileR,boardY-0.5*tileR));
|
|
35
|
+
color(tile, gold); glow(tile, 0.75);
|
|
36
|
+
|
|
37
|
+
// The question silhouette: all 37 tiles, deliberately subdued.
|
|
38
|
+
repeat(questionField, tile,
|
|
39
|
+
"layout=hex rings=4 spacing=39 rotate=30 scale=0.90");
|
|
40
|
+
color(questionField, dim); opacity(questionField,0.30);
|
|
41
|
+
untraced(questionField);
|
|
42
|
+
|
|
43
|
+
// Declare largest first and smallest last. When all four groups are visible,
|
|
44
|
+
// the later cumulative layers cover their shared interior, leaving each newly
|
|
45
|
+
// added ring in its own semantic colour.
|
|
46
|
+
repeat(layer4, tile,
|
|
47
|
+
"layout=hex rings=4 spacing=39 rotate=30 scale=0.90");
|
|
48
|
+
color(layer4,lime); hidden(layer4); untraced(layer4);
|
|
49
|
+
|
|
50
|
+
repeat(layer3, tile,
|
|
51
|
+
"layout=hex rings=3 spacing=39 rotate=30 scale=0.90");
|
|
52
|
+
color(layer3,magenta); hidden(layer3); untraced(layer3);
|
|
53
|
+
|
|
54
|
+
repeat(layer2, tile,
|
|
55
|
+
"layout=hex rings=2 spacing=39 rotate=30 scale=0.90");
|
|
56
|
+
color(layer2,cyan); hidden(layer2); untraced(layer2);
|
|
57
|
+
|
|
58
|
+
repeat(layer1, tile,
|
|
59
|
+
"layout=hex rings=1 spacing=39 rotate=30 scale=0.90");
|
|
60
|
+
color(layer1,gold); hidden(layer1); untraced(layer1);
|
|
61
|
+
|
|
62
|
+
hidden(tile);
|
|
63
|
+
|
|
64
|
+
counter(total, (cx,h*0.655), 1, 0, "TOTAL ", " TILES");
|
|
65
|
+
size(total,25*u); bold(total); color(total,gold); hidden(total);
|
|
66
|
+
|
|
67
|
+
equation(work, (cx,h*0.70),
|
|
68
|
+
`N=\textcolor{gold}{1}+\textcolor{cyan}{6}+\textcolor{magenta}{12}+\textcolor{lime}{18}`,
|
|
69
|
+
31*u);
|
|
70
|
+
hidden(work);
|
|
71
|
+
|
|
72
|
+
hidden(kicker); hidden(headline); hidden(question); hidden(caption);
|
|
73
|
+
|
|
74
|
+
step("pose the mosaic problem") {
|
|
75
|
+
par {
|
|
76
|
+
show(kicker,0.35);
|
|
77
|
+
show(headline,0.50);
|
|
78
|
+
show(question,0.45);
|
|
79
|
+
show(caption,0.40);
|
|
80
|
+
draw(questionField,1.25,smooth);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
wait(1.10);
|
|
84
|
+
|
|
85
|
+
step("focus on the construction") {
|
|
86
|
+
par {
|
|
87
|
+
fade(questionField,0.35);
|
|
88
|
+
say(caption,"Begin with the single centre tile.",0.40);
|
|
89
|
+
cam((cx,boardY),0.45,smooth);
|
|
90
|
+
zoom(1.10,0.45,smooth);
|
|
91
|
+
show(total,0.35);
|
|
92
|
+
}
|
|
93
|
+
show(layer1,0.05);
|
|
94
|
+
draw(layer1,0.45,smooth);
|
|
95
|
+
pulse(layer1,0.55);
|
|
96
|
+
}
|
|
97
|
+
wait(0.40);
|
|
98
|
+
|
|
99
|
+
step("the first ring adds six") {
|
|
100
|
+
par {
|
|
101
|
+
show(layer2,0.05);
|
|
102
|
+
to(total,value,7,0.55,smooth);
|
|
103
|
+
say(caption,"Ring 1 adds 6 tiles: one on each side.",0.40);
|
|
104
|
+
}
|
|
105
|
+
stagger(0.055) {
|
|
106
|
+
for i in 0..7 { draw(layer2.i{i},0.28,smooth); }
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
wait(0.35);
|
|
110
|
+
|
|
111
|
+
step("the second ring adds twelve") {
|
|
112
|
+
par {
|
|
113
|
+
show(layer3,0.05);
|
|
114
|
+
to(total,value,19,0.65,smooth);
|
|
115
|
+
say(caption,"Ring 2 has twice as many positions, so it adds 12.",0.45);
|
|
116
|
+
}
|
|
117
|
+
stagger(0.035) {
|
|
118
|
+
for i in 0..19 { draw(layer3.i{i},0.22,smooth); }
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
wait(0.35);
|
|
122
|
+
|
|
123
|
+
step("the third ring adds eighteen") {
|
|
124
|
+
par {
|
|
125
|
+
show(layer4,0.05);
|
|
126
|
+
to(total,value,37,0.75,smooth);
|
|
127
|
+
say(caption,"Ring 3 adds 18 more. Every new ring contributes another six.",0.45);
|
|
128
|
+
}
|
|
129
|
+
stagger(0.022) {
|
|
130
|
+
for i in 0..37 { draw(layer4.i{i},0.18,smooth); }
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
wait(0.55);
|
|
134
|
+
|
|
135
|
+
step("write what the colors counted") {
|
|
136
|
+
par {
|
|
137
|
+
show(work,0.50);
|
|
138
|
+
say(caption,"The colored layers give the sum directly.",0.40);
|
|
139
|
+
cam((cx,cy),0.45,smooth);
|
|
140
|
+
zoom(1.0,0.45,smooth);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
wait(0.55);
|
|
144
|
+
|
|
145
|
+
step("recognize the pattern") {
|
|
146
|
+
rewrite(work, `N=1+6(1+2+3)`,0.80,smooth);
|
|
147
|
+
say(caption,"Factor out six: the ring numbers form a triangular sum.",0.45);
|
|
148
|
+
}
|
|
149
|
+
wait(0.55);
|
|
150
|
+
|
|
151
|
+
step("solve") {
|
|
152
|
+
par {
|
|
153
|
+
rewrite(work, `N=\textcolor{lime}{37}`,0.85,smooth);
|
|
154
|
+
say(caption,"So the mosaic contains exactly 37 tiles.",0.45);
|
|
155
|
+
pulse(total,0.80);
|
|
156
|
+
recolor(headline,gold,0.50);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
wait(1.10);
|
|
160
|
+
|
|
161
|
+
step("call to action") {
|
|
162
|
+
par {
|
|
163
|
+
fade(kicker,0.30); fade(headline,0.30); fade(question,0.30);
|
|
164
|
+
fade(caption,0.30); fade(total,0.30); fade(work,0.30);
|
|
165
|
+
fade(layer1,0.35); fade(layer2,0.35); fade(layer3,0.35); fade(layer4,0.35);
|
|
166
|
+
fade(me.footer,0.30); show(me.endcard,0.60);
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
wait(1.80);
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
// The Shortest Path — a Short where VECTOR art poses the problem and a Manic
|
|
2
|
+
// ALGORITHM solves it. An imported robot and pin (crisp `svg()` vectors) sit at the
|
|
3
|
+
// start and goal of a maze; a naive straight line cuts through the walls; then A*
|
|
4
|
+
// (`gridastar`) searches the space cell-by-cell and traces the true shortest route.
|
|
5
|
+
// Vectors imported, path computed — Manic does both, in one branded 9:16 file.
|
|
6
|
+
title("The Shortest Path");
|
|
7
|
+
canvas("9:16");
|
|
8
|
+
template("shorts");
|
|
9
|
+
|
|
10
|
+
voice("elevenlabs"); // promo narration (ELEVENLABS_API_KEY)
|
|
11
|
+
// voice("elevenlabs", "alice");
|
|
12
|
+
// voice("cartesia"); // voice("gtts"); // free fallback
|
|
13
|
+
// speak("…") = voice only; say(cap, "…") = on-screen caption.
|
|
14
|
+
|
|
15
|
+
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");
|
|
16
|
+
watermark(mk, (w*0.955-100, h*0.045+24), "Made With Manic");
|
|
17
|
+
|
|
18
|
+
// --- the maze grid + the cell geometry (so the vector icons land on cells) ---
|
|
19
|
+
let cs = w*0.11;
|
|
20
|
+
let gx = cx;
|
|
21
|
+
let gy = h*0.43;
|
|
22
|
+
let sx = gx - 2.5*cs; let sy = gy - 3.5*cs; // start cell (0,0) centre
|
|
23
|
+
let px = gx + 2.5*cs; let py = gy + 3.5*cs; // goal cell (5,7) centre
|
|
24
|
+
|
|
25
|
+
grid(g, "@ . . . . . ; # # # # # . ; . . . . . . ; . # # # # # ; . . . . . . ; # # # # # . ; . . . . . . ; . # # # # *", (gx, gy), 6, 8, cs);
|
|
26
|
+
neighbors(g, "4");
|
|
27
|
+
|
|
28
|
+
// --- imported vector characters (faithful colours, crisp at any size) ---
|
|
29
|
+
svg(bot, (sx, sy), "asset:svg/robot.svg", cs*0.8); z(bot, 6); hidden(bot);
|
|
30
|
+
svg(dest, (px, py), "asset:svg/pin.svg", cs*0.8); z(dest, 6); hidden(dest);
|
|
31
|
+
|
|
32
|
+
// the naive "just go straight" line — cuts across the walls
|
|
33
|
+
line(naive, (sx, sy), (px, py)); color(naive, red); dashed(naive); z(naive, 4); hidden(naive);
|
|
34
|
+
|
|
35
|
+
text(hook, (cx, h*0.12), "Can the robot reach the pin?");
|
|
36
|
+
size(hook, 34); color(hook, gold); bold(hook); wrap(hook, w*0.82);
|
|
37
|
+
text(cap, (cx, h*0.78), ""); size(cap, 30); color(cap, dim); wrap(cap, w*0.84);
|
|
38
|
+
socials(me);
|
|
39
|
+
endcard(me, "title=Try_Manic cta=8gwifi.org/manic");
|
|
40
|
+
untraced(hook); cursor(hook);
|
|
41
|
+
|
|
42
|
+
// 1 — HOOK
|
|
43
|
+
mark("hook");
|
|
44
|
+
type(hook, 1.2);
|
|
45
|
+
speak("How does a robot find its way through a maze?");
|
|
46
|
+
|
|
47
|
+
// 2 — BUILD: the maze is the world; the imported vectors are its characters
|
|
48
|
+
show(cap, 0.3); say(cap, "a maze — the robot and pin are imported SVG vectors");
|
|
49
|
+
speak("Drop in a robot and its goal — both imported as crisp SVG vectors.");
|
|
50
|
+
par { show(bot, 0.5); show(dest, 0.5); }
|
|
51
|
+
wait(0.6);
|
|
52
|
+
|
|
53
|
+
// 3 — PROBLEM: the straight line fails
|
|
54
|
+
fade(hook, 0.4); recolor(cap, red); say(cap, "a straight line? it cuts right through the walls");
|
|
55
|
+
speak("The obvious answer — a straight line — slams right into the walls.");
|
|
56
|
+
show(naive, 0.5); flash(naive, red);
|
|
57
|
+
wait(0.9);
|
|
58
|
+
|
|
59
|
+
// 4 — SOLVE: A* searches, then traces the real route
|
|
60
|
+
fade(naive, 0.4); recolor(cap, dim); say(cap, "A* searches the space, cell by cell…");
|
|
61
|
+
speak("So Manic runs A-star — searching the grid, cell by cell,");
|
|
62
|
+
gridastar(g, (0,0), (5,7), manhattan);
|
|
63
|
+
recolor(cap, gold); say(cap, "…and traces the true shortest path");
|
|
64
|
+
speak("until it traces the true shortest path around every wall.");
|
|
65
|
+
draw(g.path, 1.6);
|
|
66
|
+
wait(0.6);
|
|
67
|
+
|
|
68
|
+
// 5 — POINT
|
|
69
|
+
recolor(cap, cyan); say(cap, "vectors imported, path computed — Manic does both");
|
|
70
|
+
speak("Vectors imported, path computed — Manic does both. Turn plain text into animated explainers, free, at eight g wifi dot org slash manic.");
|
|
71
|
+
wait(1.2);
|
|
72
|
+
|
|
73
|
+
// 6 — END CARD — clear the maze, path, and characters so the CTA stands alone
|
|
74
|
+
mark("endcard");
|
|
75
|
+
par {
|
|
76
|
+
fade(cap, 0.4); fade(me.footer, 0.4);
|
|
77
|
+
fade(g.cells, 0.4); fade(g.lines, 0.4); fade(g.path, 0.4);
|
|
78
|
+
fade(g.frontier, 0.4); fade(g.visited, 0.4);
|
|
79
|
+
fade(bot, 0.4); fade(dest, 0.4);
|
|
80
|
+
}
|
|
81
|
+
show(me.endcard, 0.6);
|
|
82
|
+
wait(1.6);
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
// A pure-3D textbook problem. Every geometric object stays spatial:
|
|
2
|
+
// a point, a plane, its normal, the perpendicular foot, and the shortest path.
|
|
3
|
+
|
|
4
|
+
title("Shortest Distance from a Point to a Plane");
|
|
5
|
+
canvas("9:16");
|
|
6
|
+
template("neon");
|
|
7
|
+
|
|
8
|
+
creator(me,"@anish2good name=Manic_Geometry tagline=3D_math_made_visible yt=zarigatongy x=@anish2good web=8gwifi.org/manic accent=cyan secondary=magenta footer=compact safe=clean");
|
|
9
|
+
socials(me);
|
|
10
|
+
watermark(manicMark,(w*0.17,h*0.065),"Made With Manic");
|
|
11
|
+
endcard(me,"title=Make_3D_Math_Move cta=8gwifi.org/manic");
|
|
12
|
+
|
|
13
|
+
let u = (w+h-abs(w-h))/2160;
|
|
14
|
+
text(kicker,(cx,h*0.075),"MANIC · VECTOR GEOMETRY"); size(kicker,22*u); bold(kicker); color(kicker,cyan); hidden(kicker);
|
|
15
|
+
text(headline,(cx,h*0.125),"How far is a point from a plane?"); size(headline,38*u); bold(headline); wrap(headline,w*0.82); hidden(headline);
|
|
16
|
+
text(chapter,(cx,h*0.185),"THE SHORTEST PATH MUST BE PERPENDICULAR"); size(chapter,22*u); bold(chapter); color(chapter,gold); wrap(chapter,w*0.82); hidden(chapter);
|
|
17
|
+
equation(problem,(cx,h*0.235),`P=(2,2,5),\qquad \Pi:x+y+z=3`,36*u); hidden(problem);
|
|
18
|
+
|
|
19
|
+
equation(work,(cx,h*0.745),`d(P,\Pi)=?`,43*u); hidden(work);
|
|
20
|
+
text(caption,(cx,h*0.815),"A slanted route is longer. The normal reveals the minimum."); size(caption,24*u); bold(caption); wrap(caption,w*0.80); hidden(caption);
|
|
21
|
+
text(note,(cx,h*0.86),"Find the direction · locate the foot · measure the segment"); size(note,21*u); color(note,dim); wrap(note,w*0.80); hidden(note);
|
|
22
|
+
|
|
23
|
+
// The frame uses the same physical coordinates as the problem:
|
|
24
|
+
// x,y in [-3,3] and z in [0,6] map one-to-one into a 6-unit display cube.
|
|
25
|
+
// A perspective three-quarter view balances both facts: the plane reads as a
|
|
26
|
+
// full surface, while its perpendicular keeps enough screen length to remain
|
|
27
|
+
// obvious. This story never switches to an orthographic/textbook projection.
|
|
28
|
+
camera3((20,-5,17),(0,0,2.8),42);
|
|
29
|
+
frame3(world,(0,0,3),(6,6,6),"x=-3..3 y=-3..3 z=0..6 xmajor=1 ymajor=1 zmajor=2 planes=xy:min mode=spatial");
|
|
30
|
+
hidden(world);
|
|
31
|
+
|
|
32
|
+
// Pi: x+y+z=3, rendered as z=3-x-y over a bounded patch.
|
|
33
|
+
surface3(plane,"3-x-y",(-1.5,1.5),(-1.5,1.5),20);
|
|
34
|
+
color(plane,cyan);
|
|
35
|
+
finish3(plane,"material=glass shading=flat mesh=0.38 depth=0.32 shadow=0.12");
|
|
36
|
+
hidden(plane);
|
|
37
|
+
|
|
38
|
+
// Crisp boundary keeps the translucent plane readable on a phone.
|
|
39
|
+
line3(edge0,(-1.5,-1.5,6),(1.5,-1.5,3)); color(edge0,cyan); thick(edge0,0.045); untraced(edge0); hidden(edge0); tag(edge0,planeEdge);
|
|
40
|
+
line3(edge1,(1.5,-1.5,3),(1.5,1.5,0)); color(edge1,cyan); thick(edge1,0.045); untraced(edge1); hidden(edge1); tag(edge1,planeEdge);
|
|
41
|
+
line3(edge2,(1.5,1.5,0),(-1.5,1.5,3)); color(edge2,cyan); thick(edge2,0.045); untraced(edge2); hidden(edge2); tag(edge2,planeEdge);
|
|
42
|
+
line3(edge3,(-1.5,1.5,3),(-1.5,-1.5,6)); color(edge3,cyan); thick(edge3,0.045); untraced(edge3); hidden(edge3); tag(edge3,planeEdge);
|
|
43
|
+
|
|
44
|
+
// P is the given point. Q is its perpendicular projection onto Pi.
|
|
45
|
+
point3(P,(2,2,5),0.20); color(P,magenta); hidden(P); tag(P,geometry);
|
|
46
|
+
point3(Q,(0,0,3),0.18); color(Q,gold); hidden(Q); tag(Q,geometry);
|
|
47
|
+
text(pLabel,(0,0),"P (2, 2, 5)"); size(pLabel,22*u); bold(pLabel); color(pLabel,magenta); hidden(pLabel); pin3(pLabel,P,(20,-18)); tag(pLabel,geometry);
|
|
48
|
+
text(qLabel,(0,0),"Q (0, 0, 3)"); size(qLabel,22*u); bold(qLabel); color(qLabel,gold); hidden(qLabel); pin3(qLabel,Q,(-24,20)); tag(qLabel,geometry);
|
|
49
|
+
|
|
50
|
+
// The gradient of x+y+z-3 is n=(1,1,1).
|
|
51
|
+
arrow3(normal,(0,0,3),(1.15,1.15,4.15)); color(normal,gold); thick(normal,0.075); untraced(normal); hidden(normal);
|
|
52
|
+
point3(nTip,(1.15,1.15,4.15),0.01); hidden(nTip);
|
|
53
|
+
text(nLabel,(0,0),"n = (1, 1, 1)"); size(nLabel,21*u); bold(nLabel); color(nLabel,gold); hidden(nLabel); pin3(nLabel,nTip,(18,-14));
|
|
54
|
+
|
|
55
|
+
// The minimum-distance segment is parallel to n and ends at Q.
|
|
56
|
+
line3(distanceLine,(0,0,3),(2,2,5)); color(distanceLine,lime); thick(distanceLine,0.105); untraced(distanceLine); hidden(distanceLine); tag(distanceLine,geometry);
|
|
57
|
+
point3(distanceMid,(1,1,4),0.01); hidden(distanceMid);
|
|
58
|
+
text(distanceLabel,(0,0),"d = 2√3"); size(distanceLabel,23*u); bold(distanceLabel); color(distanceLabel,lime); hidden(distanceLabel); pin3(distanceLabel,distanceMid,(-22,-20)); tag(distanceLabel,geometry);
|
|
59
|
+
|
|
60
|
+
// A small spatial right-angle mark: one side lies in Pi, one follows n.
|
|
61
|
+
line3(right0,(0,0,3),(0.45,-0.45,3)); color(right0,fg); thick(right0,0.045); untraced(right0); hidden(right0); tag(right0,rightMark);
|
|
62
|
+
line3(right1,(0.45,-0.45,3),(0.70,-0.20,3.25)); color(right1,fg); thick(right1,0.045); untraced(right1); hidden(right1); tag(right1,rightMark);
|
|
63
|
+
line3(right2,(0.70,-0.20,3.25),(0.25,0.25,3.25)); color(right2,fg); thick(right2,0.045); untraced(right2); hidden(right2); tag(right2,rightMark);
|
|
64
|
+
|
|
65
|
+
step("pose the spatial problem") {
|
|
66
|
+
seq {
|
|
67
|
+
par {
|
|
68
|
+
show(kicker,0.35); show(headline,0.50); show(chapter,0.45);
|
|
69
|
+
show(problem,0.55); show(work,0.40); show(caption,0.45); show(note,0.40);
|
|
70
|
+
}
|
|
71
|
+
show(world,0.70);
|
|
72
|
+
par {
|
|
73
|
+
show(plane,0.75);
|
|
74
|
+
show(edge0,0.10); draw(edge0,0.70,smooth);
|
|
75
|
+
show(edge1,0.10); draw(edge1,0.70,smooth);
|
|
76
|
+
show(edge2,0.10); draw(edge2,0.70,smooth);
|
|
77
|
+
show(edge3,0.10); draw(edge3,0.70,smooth);
|
|
78
|
+
}
|
|
79
|
+
stagger(0.12) { show(P,0.25); show(pLabel,0.30); pulse(P,0.60); }
|
|
80
|
+
wait(0.65);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
step("read the plane normal") {
|
|
85
|
+
seq {
|
|
86
|
+
par {
|
|
87
|
+
say(chapter,"1 · READ THE NORMAL FROM THE PLANE",0.40,smooth);
|
|
88
|
+
say(caption,"The coefficients of x, y, and z point perpendicular to Π.",0.50,smooth);
|
|
89
|
+
say(note,"For ax + by + cz + d = 0, the normal is (a,b,c).",0.45,smooth);
|
|
90
|
+
rewrite(work,`\Pi:x+y+z-3=0`,0.65,smooth);
|
|
91
|
+
fade(pLabel,0.30);
|
|
92
|
+
}
|
|
93
|
+
par {
|
|
94
|
+
show(Q,0.25);
|
|
95
|
+
show(normal,0.10); draw(normal,1.10,smooth);
|
|
96
|
+
show(nLabel,0.35);
|
|
97
|
+
rewrite(work,`\mathbf n=(1,1,1)`,0.80,smooth);
|
|
98
|
+
}
|
|
99
|
+
pulse(normal,0.65);
|
|
100
|
+
wait(0.60);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
step("locate the perpendicular foot") {
|
|
105
|
+
seq {
|
|
106
|
+
par {
|
|
107
|
+
fade(normal,0.35); fade(nLabel,0.35);
|
|
108
|
+
say(chapter,"2 · DROP THE PERPENDICULAR",0.40,smooth);
|
|
109
|
+
say(caption,"Move from P opposite the normal until the plane equation becomes true.",0.50,smooth);
|
|
110
|
+
say(note,"Q = P − t n must lie on Π.",0.40,smooth);
|
|
111
|
+
rewrite(work,`Q=(2,2,5)-t(1,1,1)`,0.80,smooth);
|
|
112
|
+
}
|
|
113
|
+
rewrite(work,`(2-t)+(2-t)+(5-t)=3\Rightarrow t=2`,1.00,smooth);
|
|
114
|
+
par {
|
|
115
|
+
show(distanceLine,0.10); draw(distanceLine,1.20,smooth);
|
|
116
|
+
show(right0,0.10); draw(right0,0.55,smooth);
|
|
117
|
+
show(right1,0.10); draw(right1,0.45,smooth);
|
|
118
|
+
show(right2,0.10); draw(right2,0.55,smooth);
|
|
119
|
+
rewrite(work,`Q=(0,0,3)`,0.75,smooth);
|
|
120
|
+
}
|
|
121
|
+
pulse(Q,0.65);
|
|
122
|
+
wait(0.65);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
step("measure the shortest segment") {
|
|
127
|
+
seq {
|
|
128
|
+
par {
|
|
129
|
+
say(chapter,"3 · MEASURE THE NORMAL SEGMENT",0.40,smooth);
|
|
130
|
+
say(caption,"The point-to-plane formula measures exactly the green segment PQ.",0.50,smooth);
|
|
131
|
+
say(note,"Absolute value gives distance; the denominator normalizes n.",0.45,smooth);
|
|
132
|
+
rewrite(work,`d=\frac{|2+2+5-3|}{\sqrt{1^2+1^2+1^2}}`,1.05,smooth);
|
|
133
|
+
}
|
|
134
|
+
rewrite(work,`d=\frac{6}{\sqrt3}=\textcolor{lime}{2\sqrt3}`,0.90,smooth);
|
|
135
|
+
par {
|
|
136
|
+
rewrite(work,`\boxed{d(P,\Pi)=\textcolor{lime}{2\sqrt3}}`,0.75,smooth);
|
|
137
|
+
show(distanceLabel,0.30);
|
|
138
|
+
pulse(distanceLine,0.80);
|
|
139
|
+
}
|
|
140
|
+
wait(0.75);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
step("orbit the proof") {
|
|
145
|
+
seq {
|
|
146
|
+
par {
|
|
147
|
+
say(chapter,"THE ANSWER IS A SPATIAL RELATIONSHIP",0.45,smooth);
|
|
148
|
+
say(caption,"Orbit the proof: PQ stays normal to Π from every viewpoint.",0.50,smooth);
|
|
149
|
+
say(note,"One plane · one projection · one shortest path",0.45,smooth);
|
|
150
|
+
fade(pLabel,0.35); fade(qLabel,0.35);
|
|
151
|
+
}
|
|
152
|
+
par { orbit3(38,28,24,1.80,smooth); pulse(distanceLine,0.70); }
|
|
153
|
+
par { orbit3(68,30,24,1.80,smooth); pulse(plane,0.70); }
|
|
154
|
+
wait(0.80);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
step("creator call to action") {
|
|
159
|
+
par {
|
|
160
|
+
fade(world,0.45); fade(plane,0.45); fade(planeEdge,0.45);
|
|
161
|
+
fade(geometry,0.45); fade(rightMark,0.45);
|
|
162
|
+
fade(problem,0.35); fade(work,0.35); fade(chapter,0.35);
|
|
163
|
+
fade(caption,0.35); fade(note,0.35);
|
|
164
|
+
show(me.endcard,0.60);
|
|
165
|
+
}
|
|
166
|
+
wait(1.80);
|
|
167
|
+
}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
// creator-race-quiz.manic — a Creator Short that PROVES a claim with a race chart.
|
|
2
|
+
// Poses a quiz (which economy grew fastest since 1990?), lets you guess, reveals
|
|
3
|
+
// the answer, then plays a bar-chart RACE that settles it — the data as the payoff.
|
|
4
|
+
// Shows the charts kit composing with quiz cards, voice, and creator chrome.
|
|
5
|
+
//
|
|
6
|
+
// ELEVENLABS_API_KEY=... manic examples/creator-race-quiz.manic --record out.mp4
|
|
7
|
+
title("The Race-Chart Quiz");
|
|
8
|
+
canvas("9:16");
|
|
9
|
+
template("shorts");
|
|
10
|
+
voice("elevenlabs");
|
|
11
|
+
|
|
12
|
+
creator(me, "@anish2good name=Manic tagline=Turn_plain_text_into_amazing_data_videos yt=zarigatongy x=@anish2good web=8gwifi.org/manic accent=cyan secondary=magenta footer=signature cta=Try_it_free safe=reels");
|
|
13
|
+
watermark(mark, (w*0.955-100, h*0.045+24), "Made With Manic");
|
|
14
|
+
|
|
15
|
+
// --- the question ---
|
|
16
|
+
text(kick, (cx, h*0.13), "Since 1990, which economy grew the FASTEST?");
|
|
17
|
+
size(kick, 46); color(kick, fg); bold(kick); wrap(kick, w*0.86); hidden(kick);
|
|
18
|
+
|
|
19
|
+
// --- four option cards (India · China · S. Korea · Brazil) ---
|
|
20
|
+
let cy0 = h*0.30; let ch = h*0.09; let gap = h*0.115;
|
|
21
|
+
rect(card1, (cx, cy0), w*0.74, ch); outlined(card1); outline(card1, dim); stroke(card1, 3); hidden(card1);
|
|
22
|
+
rect(card2, (cx, cy0+gap), w*0.74, ch); outlined(card2); outline(card2, dim); stroke(card2, 3); hidden(card2);
|
|
23
|
+
rect(card3, (cx, cy0+gap*2), w*0.74, ch); outlined(card3); outline(card3, dim); stroke(card3, 3); hidden(card3);
|
|
24
|
+
rect(card4, (cx, cy0+gap*3), w*0.74, ch); outlined(card4); outline(card4, dim); stroke(card4, 3); hidden(card4);
|
|
25
|
+
text(lbl1, (cx, cy0), "India"); size(lbl1, 40); color(lbl1, fg); bold(lbl1); hidden(lbl1);
|
|
26
|
+
text(lbl2, (cx, cy0+gap), "China"); size(lbl2, 40); color(lbl2, fg); bold(lbl2); hidden(lbl2);
|
|
27
|
+
text(lbl3, (cx, cy0+gap*2), "South Korea"); size(lbl3, 40); color(lbl3, fg); bold(lbl3); hidden(lbl3);
|
|
28
|
+
text(lbl4, (cx, cy0+gap*3), "Brazil"); size(lbl4, 40); color(lbl4, fg); bold(lbl4); hidden(lbl4);
|
|
29
|
+
|
|
30
|
+
// --- the proof: a GDP bar-chart race (labels only), hidden until the reveal ---
|
|
31
|
+
racechart(gdp, "bar", "1990 1998 2006 2014 2020 2026");
|
|
32
|
+
racedata(gdp, "
|
|
33
|
+
USA, 5.96, 8.6, 13.8, 17.5, 21.1, 30.3
|
|
34
|
+
China, 0.36, 1.1, 2.8, 10.5, 14.7, 20.5
|
|
35
|
+
Japan, 3.13, 4.1, 4.6, 4.9, 5.1, 4.4
|
|
36
|
+
India, 0.32, 0.4, 0.9, 2.0, 2.7, 4.6
|
|
37
|
+
Brazil, 0.46, 0.9, 1.1, 2.5, 1.5, 2.4
|
|
38
|
+
South Korea, 0.28, 0.6, 1.0, 1.5, 1.6, 1.9
|
|
39
|
+
");
|
|
40
|
+
|
|
41
|
+
text(cap, (cx, h*0.70), ""); size(cap, 34); color(cap, dim); bold(cap); wrap(cap, w*0.86); hidden(cap);
|
|
42
|
+
|
|
43
|
+
socials(me);
|
|
44
|
+
endcard(me, "title=Race_ANY_Dataset cta=8gwifi.org/manic");
|
|
45
|
+
|
|
46
|
+
// ---------------- the story ----------------
|
|
47
|
+
fade(gdp, 0.01); // keep the race hidden during the quiz
|
|
48
|
+
show(kick);
|
|
49
|
+
speak("Since nineteen-ninety, one economy grew faster than every other major country. Which one?");
|
|
50
|
+
stagger(0.16) { show(card1); show(card2); show(card3); show(card4); }
|
|
51
|
+
par { show(lbl1); show(lbl2); show(lbl3); show(lbl4); }
|
|
52
|
+
show(cap, 0.3); say(cap, "Lock in your guess…");
|
|
53
|
+
wait(1.0);
|
|
54
|
+
|
|
55
|
+
speak("The answer? China.");
|
|
56
|
+
par { recolor(card2, gold); pulse(card2); recolor(lbl2, gold); }
|
|
57
|
+
par { fade(card1); fade(card3); fade(card4); fade(lbl1); fade(lbl3); fade(lbl4); }
|
|
58
|
+
wait(0.6);
|
|
59
|
+
|
|
60
|
+
speak("But don't take my word for it — let the data settle it.");
|
|
61
|
+
par { fade(card2); fade(lbl2); fade(kick); fade(cap); }
|
|
62
|
+
show(gdp);
|
|
63
|
+
par {
|
|
64
|
+
race(gdp, 8.0);
|
|
65
|
+
seq {
|
|
66
|
+
speak("Watch China — from the bottom of the pack,");
|
|
67
|
+
speak("climbing past Brazil, Korea, India, even Japan,");
|
|
68
|
+
speak("all the way to number two.");
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
wait(0.6);
|
|
72
|
+
|
|
73
|
+
speak("The data doesn't argue. And this whole video is one Manic script — drop in any dataset, get a race. Free, at eight g wifi dot org slash manic.");
|
|
74
|
+
par { fade(gdp); }
|
|
75
|
+
show(me.endcard);
|
|
76
|
+
wait(2.6);
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
// Creator short: many random decisions do not create visual noise only—the
|
|
2
|
+
// choice model leaves a characteristic 3D signature.
|
|
3
|
+
|
|
4
|
+
title("Can Randomness Have a Shape?");
|
|
5
|
+
canvas("9:16");
|
|
6
|
+
template("paper");
|
|
7
|
+
|
|
8
|
+
creator(me, "@anish2good name=Manic_Generative tagline=Randomness_made_visible yt=zarigatongy x=@anish2good web=8gwifi.org/manic accent=cyan secondary=magenta footer=compact cta=Animate_the_invisible safe=clean");
|
|
9
|
+
socials(me);
|
|
10
|
+
watermark(mark, (w*0.16,h*0.055), "Made With Manic");
|
|
11
|
+
endcard(me, "title=Make_Invisible_Systems_Visible cta=8gwifi.org/manic");
|
|
12
|
+
|
|
13
|
+
let u = (w+h-abs(w-h))/1080;
|
|
14
|
+
text(kicker, (cx,h*0.11), "MANIC · RANDOM SYSTEMS");
|
|
15
|
+
text(headline, (cx,h*0.18), "Can randomness have a shape?");
|
|
16
|
+
text(caption, (cx,h*0.77), "Start at one point. Choose one of six directions.");
|
|
17
|
+
text(count, (cx,h*0.70), "100 STEPS");
|
|
18
|
+
size(kicker,20*u); bold(kicker); color(kicker,cyan);
|
|
19
|
+
size(headline,31*u); bold(headline); wrap(headline,w*0.78);
|
|
20
|
+
size(caption,23*u); bold(caption); wrap(caption,w*0.75);
|
|
21
|
+
size(count,20*u); bold(count); color(count,gold);
|
|
22
|
+
|
|
23
|
+
camera3((9,-12,8),(0,0,0),38,orthographic);
|
|
24
|
+
randomwalk3(w100,(0,0,0),100,42,"mode=axis color=direction scale=0.25");
|
|
25
|
+
randomwalk3(w1000,(0,0,0),1000,42,"mode=axis color=direction shade=depth scale=0.16");
|
|
26
|
+
randomwalk3(w10000,(0,0,0),10000,42,"mode=axis color=direction shade=depth scale=0.09");
|
|
27
|
+
untraced(w100); untraced(w1000); untraced(w10000);
|
|
28
|
+
hidden(w1000); hidden(w10000);
|
|
29
|
+
hidden(kicker); hidden(headline); hidden(caption); hidden(count);
|
|
30
|
+
|
|
31
|
+
step("one random journey") {
|
|
32
|
+
par {
|
|
33
|
+
show(kicker,0.35); show(headline,0.45); show(caption,0.40); show(count,0.35);
|
|
34
|
+
draw(w100,1.25,smooth); view3(w100,"fit",0.55,smooth,1.35);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
wait(0.55);
|
|
38
|
+
|
|
39
|
+
step("the cloud begins to emerge") {
|
|
40
|
+
par {
|
|
41
|
+
fade(w100,0.35); show(w1000,0.05);
|
|
42
|
+
say(count,"1,000 STEPS",0.30);
|
|
43
|
+
say(caption,"More choices reveal a spreading 3D cloud.",0.40);
|
|
44
|
+
}
|
|
45
|
+
par { draw(w1000,1.75,smooth); view3(w1000,"fit",0.55,smooth,1.35); }
|
|
46
|
+
}
|
|
47
|
+
wait(0.60);
|
|
48
|
+
|
|
49
|
+
step("scale exposes the law") {
|
|
50
|
+
par {
|
|
51
|
+
fade(w1000,0.35); show(w10000,0.05);
|
|
52
|
+
say(count,"10,000 STEPS · SAME SEED",0.30);
|
|
53
|
+
say(caption,"The individual turns are random. The large-scale diffusion is not.",0.45);
|
|
54
|
+
}
|
|
55
|
+
par { draw(w10000,2.30,smooth); view3(w10000,"fit",0.60,smooth,1.35); }
|
|
56
|
+
orbit3(112,30,11,1.70,smooth);
|
|
57
|
+
}
|
|
58
|
+
wait(0.85);
|
|
59
|
+
|
|
60
|
+
step("creator takeaway") {
|
|
61
|
+
say(caption,"Manic turns a model and a seed into a camera-ready explanation.",0.45);
|
|
62
|
+
recolor(headline,gold,0.45);
|
|
63
|
+
}
|
|
64
|
+
wait(1.00);
|
|
65
|
+
|
|
66
|
+
step("call to action") {
|
|
67
|
+
par {
|
|
68
|
+
fade(kicker,0.30); fade(headline,0.30); fade(caption,0.30); fade(count,0.30);
|
|
69
|
+
fade(w10000,0.40); fade(me.footer,0.30); show(me.endcard,0.60);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
wait(1.80);
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
// Existing-Manic treatment of animations/fig0110.asy.
|
|
2
|
+
// Solve a concrete reflection across x=c with two ordinary ellipses.
|
|
3
|
+
|
|
4
|
+
title("Reflecting an Ellipse");
|
|
5
|
+
canvas("9:16");
|
|
6
|
+
template("black");
|
|
7
|
+
creator(me,"@anish2good name=Manic_Geometry tagline=Conics_made_visible yt=zarigatongy x=@anish2good web=8gwifi.org/manic accent=magenta secondary=cyan footer=compact cta=Reflect_the_conic safe=clean");
|
|
8
|
+
socials(me);
|
|
9
|
+
watermark(mark,(w*0.16,h*0.055),"Made With Manic");
|
|
10
|
+
endcard(me,"title=Build_Visual_Proofs cta=8gwifi.org/manic");
|
|
11
|
+
|
|
12
|
+
let u=(w+h-abs(w-h))/1080; let yy=h*0.48; let mirrorX=cx;
|
|
13
|
+
text(kicker,(cx,h*0.10),"REFLECTION · CONIC SECTIONS");
|
|
14
|
+
text(head,(cx,h*0.17),"Reflect an ellipse across x = 0.");
|
|
15
|
+
text(caption,(cx,h*0.79),"Reflection negates every x-coordinate and preserves every distance to the mirror.");
|
|
16
|
+
equation(eq,(cx,h*0.72),`(x,y)\mapsto(-x,y)`,34*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,19*u); bold(caption); wrap(caption,w*0.74); color(caption,dim);
|
|
20
|
+
|
|
21
|
+
line(mirror,(mirrorX,h*0.31),(mirrorX,h*0.65)); color(mirror,dim); dashed(mirror,12); stroke(mirror,3);
|
|
22
|
+
ellipse(left,(cx-130*u,yy),105*u,62*u,-18); color(left,cyan); stroke(left,4); untraced(left);
|
|
23
|
+
reflectpath(right,left,mirror,320); color(right,magenta); stroke(right,4); untraced(right);
|
|
24
|
+
dot(C,(cx-130*u,yy),8*u); dot(Cp,(cx+130*u,yy),8*u); color(C,gold); color(Cp,gold);
|
|
25
|
+
line(distance,(cx-130*u,yy),(cx+130*u,yy)); color(distance,gold); dashed(distance,10); untraced(distance);
|
|
26
|
+
untraced(mirror); hidden(C); hidden(Cp); hidden(distance);
|
|
27
|
+
hidden(kicker); hidden(head); hidden(caption); hidden(eq);
|
|
28
|
+
|
|
29
|
+
step("pose") {
|
|
30
|
+
par { show(kicker,0.3); show(head,0.4); show(caption,0.35); }
|
|
31
|
+
seq { draw(mirror,0.55,smooth); draw(left,0.75,smooth); show(C,0.2); }
|
|
32
|
+
}
|
|
33
|
+
wait(0.85);
|
|
34
|
+
step("reflect the center") { par { show(distance,0.45); show(Cp,0.25); show(eq,0.4); say(caption,"The center moves to the opposite side by the same perpendicular distance.",0.4); } }
|
|
35
|
+
wait(0.85);
|
|
36
|
+
step("reflect every boundary point") { par { draw(right,0.85,smooth); say(caption,"Applying the same map to the whole boundary produces the reflected ellipse.",0.45); } }
|
|
37
|
+
wait(0.95);
|
|
38
|
+
step("check what reflection preserves") {
|
|
39
|
+
par {
|
|
40
|
+
pulse(distance,0.80);
|
|
41
|
+
say(caption,"Every point keeps the same perpendicular distance from the mirror, so lengths and angles are unchanged.",0.60,smooth);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
wait(1.0);
|
|
45
|
+
step("solve") { par { pulse(right,0.75); say(head,"Same shape. Opposite orientation.",0.4,smooth); } }
|
|
46
|
+
wait(1.25);
|
|
47
|
+
step("cta") { par { fade(kicker,0.3); fade(head,0.3); fade(caption,0.3); fade(eq,0.3); fade(mirror,0.3); fade(left,0.3); fade(right,0.3); fade(C,0.3); fade(Cp,0.3); fade(distance,0.3); fade(me.footer,0.3); show(me.endcard,0.6); } }
|
|
48
|
+
wait(2.2);
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
// Rule 90 → Sierpinski — a QUIZ-style Creator v2 Short. Rule 90 is the elementary
|
|
2
|
+
// cellular automaton where each new cell = its two upper neighbours, XOR'd. From a
|
|
3
|
+
// single seed it draws Sierpinski's triangle — because XOR of two parents is exactly
|
|
4
|
+
// Pascal's triangle mod 2 (a cell is lit iff C(n,k) is ODD). Two birds, one stone:
|
|
5
|
+
// the CA, the binomial parity, and the fractal are the same picture. The gasket is
|
|
6
|
+
// the quiz's media (fit with `figure`), building as you're asked to predict it.
|
|
7
|
+
title("Rule 90 → Sierpinski");
|
|
8
|
+
canvas("9:16");
|
|
9
|
+
template("shorts");
|
|
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=magenta footer=signature cta=Try_it_free safe=reels");
|
|
12
|
+
watermark(manicMark, (w*0.955-100, h*0.045+24), "Made With Manic");
|
|
13
|
+
|
|
14
|
+
// The gasket: only the LIT cells (odd binomials) are drawn, so it reads as the
|
|
15
|
+
// clean Sierpinski triangle. `figure` fits the whole group into the media region.
|
|
16
|
+
let N = 16;
|
|
17
|
+
let cw = 30;
|
|
18
|
+
let rh = 30;
|
|
19
|
+
for n in 0..N {
|
|
20
|
+
for k in 0..n+1 {
|
|
21
|
+
let val = prod(i in 1..k+1 : (n-k+i)/i);
|
|
22
|
+
let odd = round(val - 2*floor(val/2));
|
|
23
|
+
if odd > 0.5 {
|
|
24
|
+
dot(sc{n}_{k}, (cx + (k - n*0.5)*cw, cy - N*rh*0.5 + n*rh), 11);
|
|
25
|
+
color(sc{n}_{k}, magenta); tag(sc{n}_{k}, sier); tag(sc{n}_{k}, srow{n});
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
figure(sier);
|
|
30
|
+
hidden(sier); // hidden at first, then builds row by row while you predict
|
|
31
|
+
|
|
32
|
+
quiz(q, "Rule 90: start with one dot. Each new cell = its two upper neighbours, XOR'd. What shape appears?",
|
|
33
|
+
"studio layout=media-first reveal=fade density=comfortable motion=calm safe=reels accent=cyan");
|
|
34
|
+
option(q, "A checkerboard");
|
|
35
|
+
option(q, "Sierpinski's triangle", correct);
|
|
36
|
+
option(q, "Random static");
|
|
37
|
+
option(q, "A solid pyramid");
|
|
38
|
+
explain(q, "XOR of two parents = Pascal's triangle mod 2 — the ODD cells are Sierpinski.", "Why");
|
|
39
|
+
|
|
40
|
+
timing(q, "calm ask=1.2 options=1.1 think=5.2 reveal=0.8 hold=2.4 stagger=0.06");
|
|
41
|
+
timerstyle(q, "look=ring position=below number=inside direction=drain size=medium thickness=1.1 color=cyan track=dim label=PREDICT font=mono finish=pulse");
|
|
42
|
+
|
|
43
|
+
socials(me);
|
|
44
|
+
endcard(me, "title=Try_Manic cta=8gwifi.org/manic");
|
|
45
|
+
|
|
46
|
+
// Play the quiz; in parallel, Rule 90 builds the gasket row by row so it finishes
|
|
47
|
+
// right as the answer is revealed.
|
|
48
|
+
mark("hook");
|
|
49
|
+
par {
|
|
50
|
+
run(q);
|
|
51
|
+
seq {
|
|
52
|
+
wait(1.1);
|
|
53
|
+
for n in 0..N { show(srow{n}, 0.16); wait(0.26); }
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
mark("endcard");
|
|
58
|
+
par {
|
|
59
|
+
fade(q.parts, 0.45);
|
|
60
|
+
fade(sier, 0.45);
|
|
61
|
+
fade(me.footer, 0.45);
|
|
62
|
+
}
|
|
63
|
+
show(me.endcard, 0.6);
|
|
64
|
+
wait(1.6);
|