Something went wrong. Try again.
Monorepo for Aesthetic.Computer aesthetic.computer
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194{ "cells": [ { "cell_type": "markdown", "id": "q2x236nvt0d", "metadata": {}, "source": [ "# KidLisp Cards — Visual Preview\n", "\n", "Tiny koans of KidLisp wisdom. Each program is 2-4 lines and produces a static pattern.\n", "\n", "This notebook renders each card using a minimal Python KidLisp interpreter (PIL-based) so we can see the output instantly and curate the best ones for the card deck." ] }, { "cell_type": "code", "execution_count": 1, "id": "er6d68jtzz6", "metadata": { "execution": { "iopub.execute_input": "2026-03-15T00:37:48.225489Z", "iopub.status.busy": "2026-03-15T00:37:48.223257Z", "iopub.status.idle": "2026-03-15T00:37:48.332264Z", "shell.execute_reply": "2026-03-15T00:37:48.330180Z" } }, "outputs": [], "source": [ "import sys, os; sys.path.insert(0, os.path.join(os.getcwd(), \"notebooks\") if not os.getcwd().endswith(\"notebooks\") else os.getcwd())\n", "from ac import show_card" ] }, { "cell_type": "markdown", "id": "s6ssh45ry6", "metadata": {}, "source": [ "## Lines" ] }, { "cell_type": "code", "execution_count": 2, "id": "7sgh977d8vd", "metadata": { "execution": { "iopub.execute_input": "2026-03-15T00:37:48.341514Z", "iopub.status.busy": "2026-03-15T00:37:48.340438Z", "iopub.status.idle": "2026-03-15T00:37:48.488791Z", "shell.execute_reply": "2026-03-15T00:37:48.483075Z" } }, "outputs": [ { "data": { "text/html": [ "\n", " <div style=\"display:inline-block; margin:10px; vertical-align:top; max-width:504px;\">\n", " <div style=\"background:#111; border-radius:12px; padding:12px; border:1px solid #333;\">\n", " <div style=\"color:#eee; font-family:monospace; font-size:14px; font-weight:bold; margin-bottom:8px;\">Starburst</div>\n", " <img src=\"data:image/png;base64,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\" style=\"border-radius:8px; display:block;\" />\n", " <pre style=\"color:#9d9; font-family:monospace; font-size:13px; margin:10px 0 0 0; white-space:pre-wrap; line-height:1.5;\">(wipe black)\n", "(ink white)\n", "(repeat 72 i (line 80 60 (+ 80 (* 55 (cos (* i 0.087)))) (+ 60 (* 55 (sin (* i 0.087))))))</pre>\n", " </div>\n", " </div>" ], "text/plain": [ "<IPython.core.display.HTML object>" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", " <div style=\"display:inline-block; margin:10px; vertical-align:top; max-width:504px;\">\n", " <div style=\"background:#111; border-radius:12px; padding:12px; border:1px solid #333;\">\n", " <div style=\"color:#eee; font-family:monospace; font-size:14px; font-weight:bold; margin-bottom:8px;\">Crosshatch</div>\n", " <img src=\"data:image/png;base64,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\" style=\"border-radius:8px; display:block;\" />\n", " <pre style=\"color:#9d9; font-family:monospace; font-size:13px; margin:10px 0 0 0; white-space:pre-wrap; line-height:1.5;\">(wipe white)\n", "(ink 0 0 0 40)\n", "(repeat 40 i (line (* i 4) 0 (* i 4) 120))\n", "(repeat 40 i (line 0 (* i 3) 160 (* i 3)))</pre>\n", " </div>\n", " </div>" ], "text/plain": [ "<IPython.core.display.HTML object>" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", " <div style=\"display:inline-block; margin:10px; vertical-align:top; max-width:504px;\">\n", " <div style=\"background:#111; border-radius:12px; padding:12px; border:1px solid #333;\">\n", " <div style=\"color:#eee; font-family:monospace; font-size:14px; font-weight:bold; margin-bottom:8px;\">Vanish</div>\n", " <img src=\"data:image/png;base64,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\" style=\"border-radius:8px; display:block;\" />\n", " <pre style=\"color:#9d9; font-family:monospace; font-size:13px; margin:10px 0 0 0; white-space:pre-wrap; line-height:1.5;\">(wipe navy)\n", "(ink cyan)\n", "(repeat 30 i (line 0 (* i 4) 160 60))\n", "(repeat 30 i (line 160 (* i 4) 0 60))</pre>\n", " </div>\n", " </div>" ], "text/plain": [ "<IPython.core.display.HTML object>" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", " <div style=\"display:inline-block; margin:10px; vertical-align:top; max-width:504px;\">\n", " <div style=\"background:#111; border-radius:12px; padding:12px; border:1px solid #333;\">\n", " <div style=\"color:#eee; font-family:monospace; font-size:14px; font-weight:bold; margin-bottom:8px;\">Envelope</div>\n", " <img src=\"data:image/png;base64,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\" style=\"border-radius:8px; display:block;\" />\n", " <pre style=\"color:#9d9; font-family:monospace; font-size:13px; margin:10px 0 0 0; white-space:pre-wrap; line-height:1.5;\">(wipe black)\n", "(ink lime)\n", "(repeat 50 i (line 0 (* i 2.4) (* i 3.2) 0))\n", "(repeat 50 i (line 160 (- 120 (* i 2.4)) (- 160 (* i 3.2)) 120))</pre>\n", " </div>\n", " </div>" ], "text/plain": [ "<IPython.core.display.HTML object>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "show_card(\"Starburst\", \"\"\"(wipe black)\n", "(ink white)\n", "(repeat 72 i (line 80 60 (+ 80 (* 55 (cos (* i 0.087)))) (+ 60 (* 55 (sin (* i 0.087))))))\"\"\")\n", "\n", "show_card(\"Crosshatch\", \"\"\"(wipe white)\n", "(ink 0 0 0 40)\n", "(repeat 40 i (line (* i 4) 0 (* i 4) 120))\n", "(repeat 40 i (line 0 (* i 3) 160 (* i 3)))\"\"\")\n", "\n", "show_card(\"Vanish\", \"\"\"(wipe navy)\n", "(ink cyan)\n", "(repeat 30 i (line 0 (* i 4) 160 60))\n", "(repeat 30 i (line 160 (* i 4) 0 60))\"\"\")\n", "\n", "show_card(\"Envelope\", \"\"\"(wipe black)\n", "(ink lime)\n", "(repeat 50 i (line 0 (* i 2.4) (* i 3.2) 0))\n", "(repeat 50 i (line 160 (- 120 (* i 2.4)) (- 160 (* i 3.2)) 120))\"\"\")" ] }, { "cell_type": "markdown", "id": "4ninytc16d8", "metadata": {}, "source": [ "## Circles" ] }, { "cell_type": "code", "execution_count": 3, "id": "0tycfrpodz4", "metadata": { "execution": { "iopub.execute_input": "2026-03-15T00:37:48.497942Z", "iopub.status.busy": "2026-03-15T00:37:48.496880Z", "iopub.status.idle": "2026-03-15T00:37:48.588598Z", "shell.execute_reply": "2026-03-15T00:37:48.583968Z" } }, "outputs": [ { "data": { "text/html": [ "\n", " <div style=\"display:inline-block; margin:10px; vertical-align:top; max-width:504px;\">\n", " <div style=\"background:#111; border-radius:12px; padding:12px; border:1px solid #333;\">\n", " <div style=\"color:#eee; font-family:monospace; font-size:14px; font-weight:bold; margin-bottom:8px;\">Ripple</div>\n", " <img src=\"data:image/png;base64,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\" style=\"border-radius:8px; display:block;\" />\n", " <pre style=\"color:#9d9; font-family:monospace; font-size:13px; margin:10px 0 0 0; white-space:pre-wrap; line-height:1.5;\">(wipe black)\n", "(outline)\n", "(repeat 30 i (ink 0 (* i 8) 255) (circle 80 60 (* i 4)))</pre>\n", " </div>\n", " </div>" ], "text/plain": [ "<IPython.core.display.HTML object>" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", " <div style=\"display:inline-block; margin:10px; vertical-align:top; max-width:504px;\">\n", " <div style=\"background:#111; border-radius:12px; padding:12px; border:1px solid #333;\">\n", " <div style=\"color:#eee; font-family:monospace; font-size:14px; font-weight:bold; margin-bottom:8px;\">Dots</div>\n", " <img src=\"data:image/png;base64,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\" style=\"border-radius:8px; display:block;\" />\n", " <pre style=\"color:#9d9; font-family:monospace; font-size:13px; margin:10px 0 0 0; white-space:pre-wrap; line-height:1.5;\">(wipe white)\n", "(ink black)\n", "(repeat 10 y (repeat 10 x (circle (+ 12 (* x 16)) (+ 10 (* y 12)) 3)))</pre>\n", " </div>\n", " </div>" ], "text/plain": [ "<IPython.core.display.HTML object>" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", " <div style=\"display:inline-block; margin:10px; vertical-align:top; max-width:504px;\">\n", " <div style=\"background:#111; border-radius:12px; padding:12px; border:1px solid #333;\">\n", " <div style=\"color:#eee; font-family:monospace; font-size:14px; font-weight:bold; margin-bottom:8px;\">Target</div>\n", " <img src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAMLElEQVR4nO3dUXLjOBIEUPZG3//K3g/9sMNBDSWSyALqvQPMiADkjEqj6T8/Pz8/GwAw1P/SHwAAOhLAABAggAEgQAADQIAABoAAAQwAAQIYAAIEMAAECGAACBDAABAggAEg4G/6A0Abf/6kP8HnvCoeHmMCBoAAAQwAASpo+MSMNfIVV55XfQ1vmYABIEAAA0CACpreulXKI326tiprmjEBA0CAAAaAABU061Ivz+XMfqmpWYgJGAACBDAABKigmZ+quY+jvVZNMyETMAAECGAACFBBU5t6mTPcoGZCJmAACBDAABCggqYGVTNPc4OaYkzAABAggAEgQAVNjtqZCvbnUB3NQCZgAAgQwAAQoILmearm3ypXnZ33y01pBjIBA0CAAAaAgD8/P7oVbtKtuvTV+c0ZgNNMwAAQIIABIEAFzTUrVY6+CuM5PzRmAgaAAAEMAAEqaD43e23oyNfnjNGACRgAAgQwAASooDk2Yw3oOPfhfDI5EzAABAhgAAhQQfOvWWo9x5YjzjCTMAEDQIAABoAAFTS1KzvHk7s45xRjAgaAAAEMAAEq6K7UcXTm/FOACRgAAgQwAASooDupVrt1PnrV9mLPvtTReS8aMAEDQIAABoAAFfTqVGpjVFvnkezpGKuuc2MmYAAIEMAAEKCCXpHq7F7V1nNGzsC9Zl9Pts0EDAAZAhgAAlTQq6hQkc14lCqsGy/Oz3dmXDe2zQQMABkCGAACVNAzU3+dV2Gt+I4zdt4sa8W2mYABIEMAA0CACno2aq73KqwPYziH71VeH7bNBAwAGQIYAAL+pj8Ak6hcZ1Wo+xhvv+/Vzuf+8zifHDABA0CAAAaAALegZ5CqsKodDVUen3KGX6qtA9tmAgaADAEMAAEq6KpUVS8daucKa26dx/Mdb88EDAABAhgAAlTQlaikXmavQ6ut5xPs0b1891syAQNAgAAGgADvgiZnxhpTZfdyZh0q7+/RZ7O/DGQCBoAAAQwAAW5Bp3W7/Vi5ltzztXiOM/Bet58JjZmAASBAAANAgFvQnXSr1M5Qu413tObVzsn+84w8J/v/V7U14VYmYAAIEMAAEOAWdMLIWknt/JsjX5/z81uHnxvNmIABIEAAA0CAW9CjVK7UVqVGm9csN6VXlboB3owJGAACBDAABKigV9ThluYRddnaKrykwgs6uIkJGAACBDAABHgRx5M6/MP5ClXYSke4w5l5Qudz6MxMywQMAAECGAAC3ILmc53rvk9VWKsjn362ymte4Yawl1fwIRMwAAQIYAAIUEHPrFvNVfl5K1fNdzl6xmr7UqGOHqnb8y7EBAwAAQIYAAK8iONuq/6j+FS1Ve14qvjOs3cvq35Pq+3vhEzAABAggAEgQAV9t6croFXrrL1qR1LtfJ09fVnp+1ttTydkAgaAAAEMAAFexHEHFeV1Feos+/icai/x8PKK67z7+jITMAAECGAACFBB869udVy3562mW43Z7Xl5ywQMAAECGAACVNAzWLWqSj2X2rmmVD276o3oVZ9rISZgAAgQwAAQ4F3Q31rpz36t9CxHZqzgnlgr63DeSt+LlZ5lISZgAAgQwAAQ4BZ0VWqc6yrXrRXegXyk2rp5ecV1bkSXZAIGgAABDAABKmie17k2nPHZjz5zt+pSbcvDTMAAECCAASBABd3VqpVaheeasXY+o0Ilu+qN6FWfi7dMwAAQIIABIEAF/YkK9eYsRtZoqX3pXBVWuCk9sratUL/PQp1+mgkYAAIEMAAEqKArUdfUZ4/eU9XWZ4/KMAEDQIAABoAAFXQnK9VNKz0L161083alZ+EtEzAABAhgAAhQQXOfVeuyVZ/raavetl31uRjOBAwAAQIYAAJU0MxjZN1XrXa+8uwVnmVkbesWMZMwAQNAgAAGgAAV9H9xy5GRnjhvR/9N9SxP8+uAt0zAABAggAEgQAWd9nQto0I/L1WRpfYoVQ96kcV5T++RvYgyAQNAgAAGgAAVNNe42fidanWf26rfUeFygQkYAAIEMAAEqKCpbaVab5ZnWamOXulZWI4JGAACBDAABKig6U0tmeUWMY2ZgAEgQAADQIAKGp40e63qFjE8xgQMAAECGAACBDAABAhgAAgQwAAQIIABIEAAA0CAAAaAAAEMAAECGAACBDAABAhgAAgQwAAQIIABIMCfI4Qn7f+E34x/mtCfIITHmIABIEAAA0CACpre9rWwunW8GWt5uIkJGAACBDAABKigqW32W8R7szzLSlX8Ss/CckzAABAggAEgQAXNNW4Rf6daHW3vvlNh75iWCRgAAgQwAASooNOernCrVZ2Vper01B6lamfn8Lyn98heRJmAASBAAANAgAr6v6hwGemocrxy9txwJsXZe8sEDAABAhgAAlTQzGPkrwOqvWCkwme4osPtbviQCRgAAgQwAASooLlPtdr2Lqs+19NW/VcDqz4Xw5mAASBAAANAgAq6k5VeKrLSs3DdSr8aWOlZeMsEDAABAhgAAlTQlbhtW589es+vA+qzR2WYgAEgQAADQIAK+hNu3p43sqpN7cvR/6tDNV3h/I9c5wrPO4sO5/8mJmAACBDAABCggu5q1Tq9wnOtelO6wjlZaT33Vn0u3jIBA0CAAAaAABU0z1u1kj1jxpvSFarmCqwDDzMBA0CAAAaAABV0VZ1r27tUuBF95MzneWLfq63DGc7/dTPuewMmYAAIEMAAEPDn50e/c9nT9c6q77xNHT11XH0dzsZK32sx8hUTMAAECGAACHALegar3ohOPVfl29GddaidR1r1uRZiAgaAAAEMAAEqaP7VrZ7t9rzVrPQrlTO6PS9vmYABIEAAA0CACvoOaszrKtz0Pvr/2tPrqlWv9vS6ans6IRMwAAQIYAAI8C7ou3mX7L2qHU/V5Xn27mXV72m1/Z2QCRgAAgQwAASooJ+06p8A61DlfapzNW1fflv1u1l5rydkAgaAAAEMAAFexDGzCi+vGKny83Z4iUe1NT+y0pqf0e15F2ICBoAAAQwAASpoPlfh3deV6+i9Tz+bFyl8p0INu9J6MoQJGAACBDAABHgRxygdqkU1ICN1Pm8dfp40YAIGgAABDAABbkGvKHVD2O1onqZ2ZiEmYAAIEMAAEKCCHqVCPdvN0TqrpuvzHcnyHRnCBAwAAQIYAAK8iCOtwz+or1wnOv51OCe/dfj50JgJGAACBDAABLgF3UnnF3QccVN6vGpn4EiH2pkoEzAABAhgAAhwC7qSVPWkajvP1+U8+3tet+8+22YCBoAMAQwAAW5Bk3NUf1WuLs98tg61XuU9OqPDHlGeCRgAAgQwAAS4BV2VW5Evs1edZ1RYc+s8nu94eyZgAAgQwAAQoIKegarqpUNNyr2c4Zdq68C2mYABIEMAA0CACno2KqzfVNM4n79VXhO2zQQMABkCGAACvAuac/Y1WrVqa/951NF9VDuHe84hJ5iAASBAAANAgFvQM6tQc81yfCqsFd9xxs6bZa3YNhMwAGQIYAAIUEGvQv31nQrrxovz850Z141tMwEDQIYABoAAFfSKKtRie7MfsWrrOSNn4F6zryfbZgIGgAwBDAABKujVqc7GqLbOI9nTMVZd58ZMwAAQIIABIEAF3YlKrY5qe7FnX+rovBcNmIABIEAAA0CACrqralXbniPJ05x/CjABA0CAAAaAABU06jh6cM4pxgQMAAECGAACVND8q3JNt+fYcsQZZhImYAAIEMAAEKCC5tgsVd6e49yH88nkTMAAECCAASBABc3nZqz+9hz5+pwxGjABA0CAAAaAABU018xeFe75Kozn/NCYCRgAAgQwAASooLnPSnXiGb46vzkDcJoJGAACBDAABKigeV63WvKMyl87+/Vb5f1iWiZgAAgQwAAQoIImR9VJNX4cMpAJGAACBDAABPxNfwAa29d96mhS1M6EmIABIEAAA0CACpoajmpA1TR3UTVTjAkYAAIEMAAEqKCp7UxtqKZGvcyETMAAECCAASBABc383KDuQ9XMQkzAABAggAEgQAXNutygnot6mWZMwAAQIIABIEAFTW+f1p4q6/NUyvCWCRgAAgQwAASooOETV2rVGetrNTI8xgQMAAECGAACVNAwijoX2DEBA0CAAAaAAAEMAAECGAACBDAABAhgAAgQwAAQIIABIOD/QfdmmFYi9g0AAAAASUVORK5CYII=\" style=\"border-radius:8px; display:block;\" />\n", " <pre style=\"color:#9d9; font-family:monospace; font-size:13px; margin:10px 0 0 0; white-space:pre-wrap; line-height:1.5;\">(wipe white)\n", "(repeat 8 i (if (% i 2) (ink red) (ink white)) (circle 80 60 (- 64 (* i 8))))</pre>\n", " </div>\n", " </div>" ], "text/plain": [ "<IPython.core.display.HTML object>" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", " <div style=\"display:inline-block; margin:10px; vertical-align:top; max-width:504px;\">\n", " <div style=\"background:#111; border-radius:12px; padding:12px; border:1px solid #333;\">\n", " <div style=\"color:#eee; font-family:monospace; font-size:14px; font-weight:bold; margin-bottom:8px;\">Eclipse</div>\n", " <img src=\"data:image/png;base64,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\" style=\"border-radius:8px; display:block;\" />\n", " <pre style=\"color:#9d9; font-family:monospace; font-size:13px; margin:10px 0 0 0; white-space:pre-wrap; line-height:1.5;\">(wipe navy)\n", "(ink yellow)\n", "(circle 80 60 40)\n", "(ink navy)\n", "(circle 90 55 38)</pre>\n", " </div>\n", " </div>" ], "text/plain": [ "<IPython.core.display.HTML object>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "show_card(\"Ripple\", \"\"\"(wipe black)\n", "(outline)\n", "(repeat 30 i (ink 0 (* i 8) 255) (circle 80 60 (* i 4)))\"\"\")\n", "\n", "show_card(\"Dots\", \"\"\"(wipe white)\n", "(ink black)\n", "(repeat 10 y (repeat 10 x (circle (+ 12 (* x 16)) (+ 10 (* y 12)) 3)))\"\"\")\n", "\n", "show_card(\"Target\", \"\"\"(wipe white)\n", "(repeat 8 i (if (% i 2) (ink red) (ink white)) (circle 80 60 (- 64 (* i 8))))\"\"\")\n", "\n", "show_card(\"Eclipse\", \"\"\"(wipe navy)\n", "(ink yellow)\n", "(circle 80 60 40)\n", "(ink navy)\n", "(circle 90 55 38)\"\"\")" ] }, { "cell_type": "markdown", "id": "40byx7c911s", "metadata": {}, "source": [ "## Boxes & Composition" ] }, { "cell_type": "code", "execution_count": 4, "id": "05w5tk8q077", "metadata": { "execution": { "iopub.execute_input": "2026-03-15T00:37:48.600298Z", "iopub.status.busy": "2026-03-15T00:37:48.599152Z", "iopub.status.idle": "2026-03-15T00:37:48.666212Z", "shell.execute_reply": "2026-03-15T00:37:48.664275Z" } }, "outputs": [ { "data": { "text/html": [ "\n", " <div style=\"display:inline-block; margin:10px; vertical-align:top; max-width:504px;\">\n", " <div style=\"background:#111; border-radius:12px; padding:12px; border:1px solid #333;\">\n", " <div style=\"color:#eee; font-family:monospace; font-size:14px; font-weight:bold; margin-bottom:8px;\">Mondrian</div>\n", " <img src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAF3klEQVR4nO3cQWrDQBAAQW/Q/788OQdssLE3jayqo0DMHgTNgNg1M3MDAP7VT30AALgiAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgc77y81vrcSQDgQmzAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASDw1kUcz5jdA/hu4wsCzu3RpVU2YAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgc2yfMbB8BAGdjAwaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgsP8u6NvaP4Iv9tpd4svnBpyEDRgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0Dg2D9i9o8AgJOxAQNAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAwFEfAD5ppj4BwF9r3X9uAwaAgAADQECAASAgwAAQEGAACGz/C3o9+v0LAC7MBgwAAQEGgIAAA0BAgAEgIMAAEPgFem4P3wWLCPsAAAAASUVORK5CYII=\" style=\"border-radius:8px; display:block;\" />\n", " <pre style=\"color:#9d9; font-family:monospace; font-size:13px; margin:10px 0 0 0; white-space:pre-wrap; line-height:1.5;\">(wipe white)\n", "(ink red) (box 5 5 50 40)\n", "(ink blue) (box 60 50 100 65)\n", "(ink yellow) (box 5 50 50 30)\n", "(ink black) (stroke 3) (outline) (box 5 5 155 115)</pre>\n", " </div>\n", " </div>" ], "text/plain": [ "<IPython.core.display.HTML object>" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", " <div style=\"display:inline-block; margin:10px; vertical-align:top; max-width:504px;\">\n", " <div style=\"background:#111; border-radius:12px; padding:12px; border:1px solid #333;\">\n", " <div style=\"color:#eee; font-family:monospace; font-size:14px; font-weight:bold; margin-bottom:8px;\">Quilt</div>\n", " <img src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAFwklEQVR4nO3XwU0EQAwEQYMcAI8NmMyPMBrJVQnYv9Z8zfx+JvBTHHXXXXfdddfdf3L3O7oLAKcJMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoDAzqtfAIB7LGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgMDOq18AgHssYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAwM6rXwCAeyxgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoDAzqtfAIB7LGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgMDOq18AgHssYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAwM6rXwCAeyxgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoDAzqtfAIB7LGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgMDOq18AgHssYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAwM6rXwCAeyxgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoDAzqtfAIB7LGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgMDOq18AgHssYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAwB986QYxEoIHSgAAAABJRU5ErkJggg==\" style=\"border-radius:8px; display:block;\" />\n", " <pre style=\"color:#9d9; font-family:monospace; font-size:13px; margin:10px 0 0 0; white-space:pre-wrap; line-height:1.5;\">(resolution 16 12)\n", "(repeat 12 y (repeat 16 x (ink (* x 16) (* y 20) 128) (box x y 1 1)))</pre>\n", " </div>\n", " </div>" ], "text/plain": [ "<IPython.core.display.HTML object>" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", " <div style=\"display:inline-block; margin:10px; vertical-align:top; max-width:504px;\">\n", " <div style=\"background:#111; border-radius:12px; padding:12px; border:1px solid #333;\">\n", " <div style=\"color:#eee; font-family:monospace; font-size:14px; font-weight:bold; margin-bottom:8px;\">Nest</div>\n", " <img src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAGHElEQVR4nO3dwW3DMBQFQSVwE+ovvasMp4PAgUUvJc4UQPC2+Kf3tf08nxsA8FHf9QcAYEUCDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEHiMeHTfjhHPAkDu2PZT3nEBA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAJD5ghHMHEIwH+dNR04ggsYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAELjMHOEIJg4B5jHzdOAILmAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAYOk5whFMHAIrWG06cAQXMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASBgjvACTBwC7zAdOCcXMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASBgjnBRJg5hTqYD1+ECBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAATMEXIaE4esxnQg73ABA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAALmCJmaiUPOYjqQ2biAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAFzhCzHxOH8TAeyAhcwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAwKP+AHzase31FwBcwABQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAOUKmZjoQuCsXMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASBgjpDTmA4EeJ0LGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAwR7go04EALRcwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABIGCO8AJMBwLcjwsYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEDBHeDLTgQC8wgUMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACCw9R2g6EICKCxgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQuMwcoelAAO7EBQwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAIDJkjNB0IAH9zAQNAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQ+AWsxiBW19svOAAAAABJRU5ErkJggg==\" style=\"border-radius:8px; display:block;\" />\n", " <pre style=\"color:#9d9; font-family:monospace; font-size:13px; margin:10px 0 0 0; white-space:pre-wrap; line-height:1.5;\">(wipe black)\n", "(repeat 10 i (ink (* i 25) 100 (- 255 (* i 25))) (box (* i 7) (* i 5) (- 160 (* i 14)) (- 120 (* i 10))))</pre>\n", " </div>\n", " </div>" ], "text/plain": [ "<IPython.core.display.HTML object>" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", " <div style=\"display:inline-block; margin:10px; vertical-align:top; max-width:504px;\">\n", " <div style=\"background:#111; border-radius:12px; padding:12px; border:1px solid #333;\">\n", " <div style=\"color:#eee; font-family:monospace; font-size:14px; font-weight:bold; margin-bottom:8px;\">Bars</div>\n", " <img src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAFo0lEQVR4nO3VQRGAQBADwQVJKEEJ/n/ggqm661aQvOaYmXc2ct1PPeFX/q7N37X5u7azHgAAOxJgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0DgAxh/Cl/fFA+rAAAAAElFTkSuQmCC\" style=\"border-radius:8px; display:block;\" />\n", " <pre style=\"color:#9d9; font-family:monospace; font-size:13px; margin:10px 0 0 0; white-space:pre-wrap; line-height:1.5;\">(wipe black)\n", "(repeat 8 i (ink (% (* i 50) 256) (% (* i 80) 256) (% (* i 110) 256)) (box (* i 20) 0 20 120))</pre>\n", " </div>\n", " </div>" ], "text/plain": [ "<IPython.core.display.HTML object>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "show_card(\"Mondrian\", \"\"\"(wipe white)\n", "(ink red) (box 5 5 50 40)\n", "(ink blue) (box 60 50 100 65)\n", "(ink yellow) (box 5 50 50 30)\n", "(ink black) (stroke 3) (outline) (box 5 5 155 115)\"\"\")\n", "\n", "show_card(\"Quilt\", \"\"\"(resolution 16 12)\n", "(repeat 12 y (repeat 16 x (ink (* x 16) (* y 20) 128) (box x y 1 1)))\"\"\")\n", "\n", "show_card(\"Nest\", \"\"\"(wipe black)\n", "(repeat 10 i (ink (* i 25) 100 (- 255 (* i 25))) (box (* i 7) (* i 5) (- 160 (* i 14)) (- 120 (* i 10))))\"\"\")\n", "\n", "show_card(\"Bars\", \"\"\"(wipe black)\n", "(repeat 8 i (ink (% (* i 50) 256) (% (* i 80) 256) (% (* i 110) 256)) (box (* i 20) 0 20 120))\"\"\")" ] }, { "cell_type": "markdown", "id": "unkf6grdp8", "metadata": {}, "source": [ "## Math & Curves" ] }, { "cell_type": "code", "execution_count": 5, "id": "a8evfobqyxq", "metadata": { "execution": { "iopub.execute_input": "2026-03-15T00:37:48.674806Z", "iopub.status.busy": "2026-03-15T00:37:48.673960Z", "iopub.status.idle": "2026-03-15T00:37:48.788588Z", "shell.execute_reply": "2026-03-15T00:37:48.787445Z" } }, "outputs": [ { "data": { "text/html": [ "\n", " <div style=\"display:inline-block; margin:10px; vertical-align:top; max-width:504px;\">\n", " <div style=\"background:#111; border-radius:12px; padding:12px; border:1px solid #333;\">\n", " <div style=\"color:#eee; font-family:monospace; font-size:14px; font-weight:bold; margin-bottom:8px;\">Wave</div>\n", " <img src=\"data:image/png;base64,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\" style=\"border-radius:8px; display:block;\" />\n", " <pre style=\"color:#9d9; font-family:monospace; font-size:13px; margin:10px 0 0 0; white-space:pre-wrap; line-height:1.5;\">(wipe white)\n", "(ink navy)\n", "(repeat 160 x (plot x (+ 60 (* 40 (sin (* x 0.05))))))</pre>\n", " </div>\n", " </div>" ], "text/plain": [ "<IPython.core.display.HTML object>" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", " <div style=\"display:inline-block; margin:10px; vertical-align:top; max-width:504px;\">\n", " <div style=\"background:#111; border-radius:12px; padding:12px; border:1px solid #333;\">\n", " <div style=\"color:#eee; font-family:monospace; font-size:14px; font-weight:bold; margin-bottom:8px;\">Lissajous</div>\n", " <img src=\"data:image/png;base64,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\" style=\"border-radius:8px; display:block;\" />\n", " <pre style=\"color:#9d9; font-family:monospace; font-size:13px; margin:10px 0 0 0; white-space:pre-wrap; line-height:1.5;\">(wipe black)\n", "(ink lime)\n", "(repeat 600 t (plot (+ 80 (* 60 (sin (* t 0.03)))) (+ 60 (* 50 (cos (* t 0.02))))))</pre>\n", " </div>\n", " </div>" ], "text/plain": [ "<IPython.core.display.HTML object>" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", " <div style=\"display:inline-block; margin:10px; vertical-align:top; max-width:504px;\">\n", " <div style=\"background:#111; border-radius:12px; padding:12px; border:1px solid #333;\">\n", " <div style=\"color:#eee; font-family:monospace; font-size:14px; font-weight:bold; margin-bottom:8px;\">Spiral</div>\n", " <img src=\"data:image/png;base64,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\" style=\"border-radius:8px; display:block;\" />\n", " <pre style=\"color:#9d9; font-family:monospace; font-size:13px; margin:10px 0 0 0; white-space:pre-wrap; line-height:1.5;\">(wipe black)\n", "(ink white)\n", "(repeat 500 t (plot (+ 80 (* (/ t 10) (cos (* t 0.1)))) (+ 60 (* (/ t 10) (sin (* t 0.1))))))</pre>\n", " </div>\n", " </div>" ], "text/plain": [ "<IPython.core.display.HTML object>" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", " <div style=\"display:inline-block; margin:10px; vertical-align:top; max-width:504px;\">\n", " <div style=\"background:#111; border-radius:12px; padding:12px; border:1px solid #333;\">\n", " <div style=\"color:#eee; font-family:monospace; font-size:14px; font-weight:bold; margin-bottom:8px;\">Honeycomb</div>\n", " <img src=\"data:image/png;base64,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\" style=\"border-radius:8px; display:block;\" />\n", " <pre style=\"color:#9d9; font-family:monospace; font-size:13px; margin:10px 0 0 0; white-space:pre-wrap; line-height:1.5;\">(wipe black)\n", "(repeat 6 y (repeat 8 x (ink (* x 30) (* y 40) 200) (circle (+ 10 (* x 20) (* (% y 2) 10)) (+ 12 (* y 20)) 9)))</pre>\n", " </div>\n", " </div>" ], "text/plain": [ "<IPython.core.display.HTML object>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "show_card(\"Wave\", \"\"\"(wipe white)\n", "(ink navy)\n", "(repeat 160 x (plot x (+ 60 (* 40 (sin (* x 0.05))))))\"\"\")\n", "\n", "show_card(\"Lissajous\", \"\"\"(wipe black)\n", "(ink lime)\n", "(repeat 600 t (plot (+ 80 (* 60 (sin (* t 0.03)))) (+ 60 (* 50 (cos (* t 0.02))))))\"\"\")\n", "\n", "show_card(\"Spiral\", \"\"\"(wipe black)\n", "(ink white)\n", "(repeat 500 t (plot (+ 80 (* (/ t 10) (cos (* t 0.1)))) (+ 60 (* (/ t 10) (sin (* t 0.1))))))\"\"\")\n", "\n", "show_card(\"Honeycomb\", \"\"\"(wipe black)\n", "(repeat 6 y (repeat 8 x (ink (* x 30) (* y 40) 200) (circle (+ 10 (* x 20) (* (% y 2) 10)) (+ 12 (* y 20)) 9)))\"\"\")" ] }, { "cell_type": "markdown", "id": "aqjo63z2r7p", "metadata": {}, "source": [ "## Color & Gradients" ] }, { "cell_type": "code", "execution_count": 6, "id": "dxxq5urzy17", "metadata": { "execution": { "iopub.execute_input": "2026-03-15T00:37:48.795051Z", "iopub.status.busy": "2026-03-15T00:37:48.794366Z", "iopub.status.idle": "2026-03-15T00:37:49.143692Z", "shell.execute_reply": "2026-03-15T00:37:49.142176Z" } }, "outputs": [ { "data": { "text/html": [ "\n", " <div style=\"display:inline-block; margin:10px; vertical-align:top; max-width:19224px;\">\n", " <div style=\"background:#111; border-radius:12px; padding:12px; border:1px solid #333;\">\n", " <div style=\"color:#eee; font-family:monospace; font-size:14px; font-weight:bold; margin-bottom:8px;\">Spectrum</div>\n", " <img src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAASwAAAAB4CAYAAAApk20VAAAl2klEQVR4nOzT0YkDUBRCwTyrTvWbreF+CTJTgSDnfb6/34dZ78+9y558p+l3m3636Xebfrfpd5t+t+l3m3636Xebfrfpd5t+t+l3m3636Xebfrfpd5t+t+l3m3636Xebfrfpd5t+t+l3m3636Xebfrfpd5t+t+l3m3636Xebfrfpd5t+t+l3m3636Xebfrfpd5t+t+l3m3636Xebfrfpd5t+t+l3m3636Xebfrfpd5t+t+l3m3636Xebfrfpd5t+t+l3m3636Xebfrfpd5t+t+l3m3636Xebfrfpd5t+t+l3m3636Xebfrfpd5t+t73n32Uv/l2m32363abfbfrdpt9t+t2m32363abfbfrdpt9t+t2m32363abfbfrdpt9t+t2m32363abfbfrdpt9t+t2m32363abfbfrdpt9t+t2m32363abfbfrdpt9t+t2m32363abfbfrdpt9t+t2m32363abfbfrdpt9t+t2m32363abfbfrdpt9t+t2m32363abfbfrdpt9t+t2m32363abfbfrdpt9t+t2m32363abfbfrdpt9t+t2m32363abfbfrdpt9taQ8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAm7QEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANykPQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgJu0BwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcJP2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbtIeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADATdoDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4SXsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3aQ8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAm7QEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANykPQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgJu0BwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcJP2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbtIeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADATdoDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4SXsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3aQ8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAm7QEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANykPQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgJu0BwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcJP2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbtIeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADATdoDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4SXsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3aQ8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAm7QEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANykPQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgJu0BwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcJP2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbtIeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADATdoDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4SXsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3aQ8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAm7QEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANykPQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgJu0BwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcJP2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbtIeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADATdoDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4SXsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3aQ8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAm7QEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANykPQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgJu0BwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcJP2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbtIeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADATdoDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4SXsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3aQ8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAm7QEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANykPQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgJu0BwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcJP2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbtIeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADATdoDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4SXsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3aQ8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAm7QEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANykPQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgJu0BwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcJP2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbtIeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADATdoDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4SXsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3aQ8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAm7QEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANykPQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgJu0BwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcJP2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbtIeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADATdoDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4SXsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3aQ8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAm7QEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANykPQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgJu0BwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcJP2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbtIeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADATdoDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4SXsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3aQ8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAm7QEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANykPQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgJu0BwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcJP2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbtIeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADATdoDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4SXsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3aQ8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAm7QEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANykPQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgJu0BwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcJP2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbtIeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADATdoDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4SXsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3aQ8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAm7QEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANykPQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgJu0BwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcJP2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbtIeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADATdoDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4SXsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3aQ8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAm7QEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANykPQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgJu0BwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcJP2AAAAAAAAAACA/3bnmAYAAAAB0Gb/0Gbw8oEEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsMk7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAJu8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACbvAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzyDgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsMk7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAJu8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACbvAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGzyDgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsMk7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAJu8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACbAsYZ8mQ5FEU7AAAAAElFTkSuQmCC\" style=\"border-radius:8px; display:block;\" />\n", " <pre style=\"color:#9d9; font-family:monospace; font-size:13px; margin:10px 0 0 0; white-space:pre-wrap; line-height:1.5;\">(resolution 160 1)\n", "(repeat 160 x (ink x (* 1.5 (abs (- x 80))) (- 255 x)) (box x 0 1 1))</pre>\n", " </div>\n", " </div>" ], "text/plain": [ "<IPython.core.display.HTML object>" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", " <div style=\"display:inline-block; margin:10px; vertical-align:top; max-width:504px;\">\n", " <div style=\"background:#111; border-radius:12px; padding:12px; border:1px solid #333;\">\n", " <div style=\"color:#eee; font-family:monospace; font-size:14px; font-weight:bold; margin-bottom:8px;\">Field</div>\n", " <img src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAFvklEQVR4nO3dsQ2AMBAEwQcRIKqmc+jBBBswk1tytrrot5n7mUXn6kNvvfXWW2+9/fnb/cNbAGCRAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAASOueovAMD/WMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgHOEABCwgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAAB5wgBIGABA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAALOEQJAwAIGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABJwjBICABQwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAIOEcIAAELGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABBwjhAAAhYwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABIOAcIQAELGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAwDlCAAhYwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAc4QAELCAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAHnCAEgYAEDQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAs4RAkDAAgaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEnCMEgIAFDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAg4RwgAAQsYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEHCOEAACFjAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEg4BwhAAQsYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0DAOUIACFjAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIBzhAAQsIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAecIASBgAQNAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACzhECQMACBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAScIwSAgAUMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACDhHCAABCxgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQcI4QAAIWMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASDwAj1tBlv+/uG8AAAAAElFTkSuQmCC\" style=\"border-radius:8px; display:block;\" />\n", " <pre style=\"color:#9d9; font-family:monospace; font-size:13px; margin:10px 0 0 0; white-space:pre-wrap; line-height:1.5;\">(resolution 32 24)\n", "(repeat 24 y (repeat 32 x (ink (* x 8) (* y 10) 128) (plot x y)))</pre>\n", " </div>\n", " </div>" ], "text/plain": [ "<IPython.core.display.HTML object>" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", " <div style=\"display:inline-block; margin:10px; vertical-align:top; max-width:504px;\">\n", " <div style=\"background:#111; border-radius:12px; padding:12px; border:1px solid #333;\">\n", " <div style=\"color:#eee; font-family:monospace; font-size:14px; font-weight:bold; margin-bottom:8px;\">Chevron</div>\n", " <img src=\"data:image/png;base64,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\" style=\"border-radius:8px; display:block;\" />\n", " <pre style=\"color:#9d9; font-family:monospace; font-size:13px; margin:10px 0 0 0; white-space:pre-wrap; line-height:1.5;\">(wipe black)\n", "(repeat 8 i (ink (* i 30) 100 255) (tri 0 (* i 15) 80 (+ 10 (* i 15)) 160 (* i 15)))</pre>\n", " </div>\n", " </div>" ], "text/plain": [ "<IPython.core.display.HTML object>" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", " <div style=\"display:inline-block; margin:10px; vertical-align:top; max-width:504px;\">\n", " <div style=\"background:#111; border-radius:12px; padding:12px; border:1px solid #333;\">\n", " <div style=\"color:#eee; font-family:monospace; font-size:14px; font-weight:bold; margin-bottom:8px;\">Sierpinski</div>\n", " <img src=\"data:image/png;base64,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\" style=\"border-radius:8px; display:block;\" />\n", " <pre style=\"color:#9d9; font-family:monospace; font-size:13px; margin:10px 0 0 0; white-space:pre-wrap; line-height:1.5;\">(wipe black)\n", "(ink white)\n", "(repeat 128 y (repeat 128 x (if (= 0 (& x y)) (plot (+ 16 x) y))))</pre>\n", " </div>\n", " </div>" ], "text/plain": [ "<IPython.core.display.HTML object>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "show_card(\"Spectrum\", \"\"\"(resolution 160 1)\n", "(repeat 160 x (ink x (* 1.5 (abs (- x 80))) (- 255 x)) (box x 0 1 1))\"\"\", h=1, scale=120)\n", "\n", "show_card(\"Field\", \"\"\"(resolution 32 24)\n", "(repeat 24 y (repeat 32 x (ink (* x 8) (* y 10) 128) (plot x y)))\"\"\", w=32, h=24, scale=15)\n", "\n", "show_card(\"Chevron\", \"\"\"(wipe black)\n", "(repeat 8 i (ink (* i 30) 100 255) (tri 0 (* i 15) 80 (+ 10 (* i 15)) 160 (* i 15)))\"\"\")\n", "\n", "show_card(\"Sierpinski\", \"\"\"(wipe black)\n", "(ink white)\n", "(repeat 128 y (repeat 128 x (if (= 0 (& x y)) (plot (+ 16 x) y))))\"\"\", w=160, h=128, scale=3)" ] }, { "cell_type": "markdown", "id": "ft0wiveuvbc", "metadata": {}, "source": [ "## Dense Patterns (pushing repeat + math)" ] }, { "cell_type": "code", "execution_count": 7, "id": "1qwvoo6ztn3", "metadata": { "execution": { "iopub.execute_input": "2026-03-15T00:37:49.151343Z", "iopub.status.busy": "2026-03-15T00:37:49.150480Z", "iopub.status.idle": "2026-03-15T00:37:49.802122Z", "shell.execute_reply": "2026-03-15T00:37:49.800540Z" } }, "outputs": [ { "data": { "text/html": [ "\n", " <div style=\"display:inline-block; margin:10px; vertical-align:top; max-width:504px;\">\n", " <div style=\"background:#111; border-radius:12px; padding:12px; border:1px solid #333;\">\n", " <div style=\"color:#eee; font-family:monospace; font-size:14px; font-weight:bold; margin-bottom:8px;\">Moire</div>\n", " <img src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAFkklEQVR4nO3VMQEAIAzAsIEu/OvCBT1IFPTrmpkzAMBTuw4AgB8ZMAAEDBgAAgYMAAEDBoCAAQNAwIABIGDAABAwYAAIGDAABAwYAAIGDAABAwaAgAEDQMCAASBgwAAQMGAACBgwAAQMGAACBgwAAQMGgIABA0DAgAEgYMAAEDBgAAgYMAAEDBgAAgYMAAEDBoCAAQNAwIABIGDAABAwYAAIGDAABAwYAAIGDAABAwaAgAEDQMCAASBgwAAQMGAACBgwAAQMGAACBgwAAQMGgIABA0DAgAEgYMAAEDBgAAgYMAAEDBgAAgYMAAEDBoCAAQNAwIABIGDAABAwYAAIGDAABAwYAAIGDAABAwaAgAEDQMCAASBgwAAQMGAACBgwAAQMGAACBgwAAQMGgIABA0DAgAEgYMAAEDBgAAgYMAAEDBgAAgYMAAEDBoCAAQNAwIABIGDAABAwYAAIGDAABAwYAAIGDAABAwaAgAEDQMCAASBgwAAQMGAACBgwAAQMGAACBgwAAQMGgIABA0DAgAEgYMAAEDBgAAgYMAAEDBgAAgYMAAEDBoCAAQNAwIABIGDAABAwYAAIGDAABAwYAAIGDAABAwaAgAEDQMCAASBgwAAQMGAACBgwAAQMGAACBgwAAQMGgIABA0DAgAEgYMAAEDBgAAgYMAAEDBgAAgYMAAEDBoCAAQNAwIABIGDAABAwYAAIGDAABAwYAAIGDAABAwaAgAEDQMCAASBgwAAQMGAACBgwAAQMGAACBgwAAQMGgIABA0DAgAEgYMAAEDBgAAgYMAAEDBgAAgYMAAEDBoCAAQNAwIABIGDAABAwYAAIGDAABAwYAAIGDAABAwaAgAEDQMCAASBgwAAQMGAACBgwAAQMGAACBgwAAQMGgIABA0DAgAEgYMAAEDBgAAgYMAAEDBgAAgYMAAEDBoCAAQNAwIABIGDAABAwYAAIGDAABAwYAAIGDAABAwaAgAEDQMCAASBgwAAQMGAACBgwAAQMGAACBgwAAQMGgIABA0DAgAEgYMAAEDBgAAgYMAAEDBgAAgYMAAEDBoCAAQNAwIABIGDAABAwYAAIGDAABAwYAAIGDAABAwaAgAEDQMCAASBgwAAQMGAACBgwAAQMGAACBgwAAQMGgIABA0DAgAEgYMAAEDBgAAgYMAAEDBgAAgYMAAEDBoCAAQNAwIABIGDAABAwYAAIGDAABAwYAAIGDAABAwaAgAEDQMCAASBgwAAQMGAACBgwAAQMGAACBgwAAQMGgIABA0DAgAEgYMAAEDBgAAgYMAAEDBgAAgYMAAEDBoCAAQNAwIABIGDAABAwYAAIGDAABAwYAAIGDAABAwaAgAEDQMCAASBgwAAQMGAACBgwAAQMGAACBgwAAQMGgIABA0DAgAEgYMAAEDBgAAgYMAAEDBgAAgYMAAEDBoCAAQNAwIABIGDAABAwYAAIGDAABAwYAAIGDAABAwaAgAEDQMCAASBgwAAQMGAACBgwAAQMGAACBgwAAQMGgIABA0DAgAEgYMAAEDBgAAgYMAAEDBgAAgYMAAEDBoCAAQNAwIABIGDAABAwYAAIGDAABAwYAAIGDAABAwaAgAEDQMCAASBgwAAQMGAACBgwAAQMGAACBgwAAQMGgIABA0DAgAEgYMAAEDBgAAgYMAAEDBgAAgYMAAEDBoCAAQNAwIABIGDAABAwYAAIGDAABAwYAAIGDAABAwaAgAEDQMCAASBgwAAQMGAACBgwAAQMGAACBgwAAQMGgIABA0DAgAEgYMAAEDBgAAgYMAAEDBgAAgYMAAEDBoCAAQNAwIABIGDAABAwYAAIGDAABAwYAAIGDAABAwaAgAEDQMCAASBgwAAQMGAACBgwAAQMGAACBgwAAQMGgIABA0DAgAEgcAGPbQMM0Wxg3QAAAABJRU5ErkJggg==\" style=\"border-radius:8px; display:block;\" />\n", " <pre style=\"color:#9d9; font-family:monospace; font-size:13px; margin:10px 0 0 0; white-space:pre-wrap; line-height:1.5;\">(wipe white)\n", "(ink 0 0 0 60)\n", "(repeat 80 i (circle 60 60 (* i 2)))\n", "(repeat 80 i (circle 100 60 (* i 2)))</pre>\n", " </div>\n", " </div>" ], "text/plain": [ "<IPython.core.display.HTML object>" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", " <div style=\"display:inline-block; margin:10px; vertical-align:top; max-width:504px;\">\n", " <div style=\"background:#111; border-radius:12px; padding:12px; border:1px solid #333;\">\n", " <div style=\"color:#eee; font-family:monospace; font-size:14px; font-weight:bold; margin-bottom:8px;\">Plaid</div>\n", " <img src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAGy0lEQVR4nO3csa2kQBRFwdcbEmOQvwfGxMRPYZDQHoMqu9UX76gd1syxDQDwX/2rPwAA3kiAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAYB0z2xMX7df1vXP+XOtj165du3btvnXXCxgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAwJo5HvkXNADwOy9gAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACKxjZnviov26vnfOn2t97Nq1a9eu3bfuegEDQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEFgzxyP/ggYAfucFDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAIF1zGxPXLRf1/fO+XOtj127du3atfvWXS9gAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAJr5njkX9AAwO+8gAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASCwjpntiYv26/reOX+u9bFr165du3bfuusFDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BgzRyP/AsaAPidFzAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAE1jGzPXHRfl3fO+fPtT527dq1a9fuW3e9gAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAIrJnjkX9BAwC/8wIGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAwDpmticu2q/re+f8udbHrl27du3afeuuFzAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAgTVzPPIvaADgd17AABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEFjHzPbERft1fe+cP9f62LVr165du2/d9QIGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABILBmjkf+BQ0A/M4LGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAALrmNmeuGi/ru+d8+daH7t27dq1a/etu17AABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAATWzPHIv6ABgN95AQNAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BgHTPbExft1/W9c/5c62PXrl27du2+ddcLGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoDAmjke+Rc0APA7L2AACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAIrGNme+Ki/bq+d86fa33s2rVr167dt+56AQNAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQWDPHI/+CBgB+5wUMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAgXXMbE9ctF/X9875c62PXbt27dq1+9ZdL2AACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAmvmeORf0ADA77yAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABILCOme2Ji/br+t45f671sWvXrl27dt+66wUMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQOAPLzoObtS1eccAAAAASUVORK5CYII=\" style=\"border-radius:8px; display:block;\" />\n", " <pre style=\"color:#9d9; font-family:monospace; font-size:13px; margin:10px 0 0 0; white-space:pre-wrap; line-height:1.5;\">(wipe white)\n", "(repeat 16 i (ink 200 0 0 50) (box (* i 10) 0 5 120))\n", "(repeat 12 i (ink 0 0 200 50) (box 0 (* i 10) 160 5))</pre>\n", " </div>\n", " </div>" ], "text/plain": [ "<IPython.core.display.HTML object>" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", " <div style=\"display:inline-block; margin:10px; vertical-align:top; max-width:504px;\">\n", " <div style=\"background:#111; border-radius:12px; padding:12px; border:1px solid #333;\">\n", " <div style=\"color:#eee; font-family:monospace; font-size:14px; font-weight:bold; margin-bottom:8px;\">Sunflower</div>\n", " <img src=\"data:image/png;base64,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MAAkEEHDgmr+o7il3c+J7i9Le3SxPiFzJ1tX/1N8vv0v+3zXkRMwACRQgAEggQiaTTXF/N4uaX7v8N7ohq3uuoTdsJ8pBqHcLGkQysuK9aOn85RdMeClWfIBL/3fF3O8f20Lg0dOLT7Tw5b7vZPLCRgAEijAAJBABM1aqD8c6/72k/1t98mIKJtbmo0MTIcTMAAkUIABIIEIGpi54a+io776HUMnYOQEDAA5FGAASCCCZub6I2KYRn3yEg7TWDDd8+N6Nk+Y/vWsfxhd3/3ldX3DrDgBA0ACBRgAEoigIUF9cXEruj10BV+W6ukRuQ/P8BMGq8MJGAASKMAAkEAEzdKojo/1cMz2n6c9Pbp820O23+U7nBu3pav2c1u6RdHExzvqNHGzwJyAASCBAgwACUTQsIKGb8W6utr0n799fcTv7YNWJ37v2uLWk638mtlyAgaABAowACQQQQNAAidgAEigAANAgl2yN8CaeX+xvnPiPpZA++WYgdxed3VmIPf7xhzs+jxzsFlfTsAAkEABBoAEuqBZes1HY3hCd9v84QnV5yNiHW68HBFr9cq4hsMj8q8hrAMnYABIoAADQAIRNPyv/tMx37i++erMN156fXSDj+rV6QYHJ2AASKAAA0ACETQssf6Fsa53zdzJYqoPi3V/auZO4P9zAgaABAowACQQQQMTa3aPjvHuEh3jsB1OwACQQAEGgAQiaEjQPCeGS3RPNlwC1pETMAAkUIABIIEImpXVnRmdus1BU+rUvSBuNTjaezluNbgIujfFdWvu77rByAkYAHIowACQQAQN6+S77471le+euRNYe07AAJBAAQaABCJoAEjgBAwACRRgAEiwS/YGgPG6r8W6uVbmToBpcQIGgAQKMAAk0AUNbKp+TczT7h82pXnawGjkBAwAORRgAEggggaABE7AAJBAAQaABAowACRQgAEggQIMAAkUYABIoAADQAIFGAASKMAAkEABBoAECjAAJFCAASCBAgwACRRgAEigAANAAgUYABIowACQQAEGgAQKMAAkUIABIIECDAAJFGAASKAAA0ACBRgAEijAAJBAAQaABAowACRQgAEggQIMAAn+Byyla2QDmeiNAAAAAElFTkSuQmCC\" style=\"border-radius:8px; display:block;\" />\n", " <pre style=\"color:#9d9; font-family:monospace; font-size:13px; margin:10px 0 0 0; white-space:pre-wrap; line-height:1.5;\">(wipe black)\n", "(repeat 500 i\n", " (ink (* (% i 8) 32) (+ 100 (% (* i 7) 155)) (* (% i 5) 50))\n", " (plot (+ 80 (* (* i 0.1) (cos (* i 2.4)))) (+ 60 (* (* i 0.1) (sin (* i 2.4))))))</pre>\n", " </div>\n", " </div>" ], "text/plain": [ "<IPython.core.display.HTML object>" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", " <div style=\"display:inline-block; margin:10px; vertical-align:top; max-width:504px;\">\n", " <div style=\"background:#111; border-radius:12px; padding:12px; border:1px solid #333;\">\n", " <div style=\"color:#eee; font-family:monospace; font-size:14px; font-weight:bold; margin-bottom:8px;\">Interference</div>\n", " <img src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAOfUlEQVR4nO3dwW6lMBZF0Ur//z+nJ60WTwopkLk+B9Va4wdmj6xrEfL1/f39/ed/vr6+/rzZIUVLES2dtHTS0mmi5T+P3AUAuMUGDAABX3/+/Pm+8Lv/23mkML2Wls61tHSupaVzLS2da125vwkYAAJswAAQcPsI+q7jGP6x8AvfiNPSSUsnLZ209DABA0CADRgAApaOoCfeIkv94baW/fdMraulc10tnetqmVvXBAwAATZgAAj4OIJ+43c7z55ZS5aWTlo6aek03WICBoAAGzAABFx6C7rh6OCpZ9DyLC1z91mhZe4+K7TM3WdFqsUEDAABNmAACBj5FvSVMbzh2OEKLZ20dNLSSUsnEzAABNiAASDgsSPolZG/7bhAy/q1E7SsXztBy/q1E7SsXzvh+DwmYAAIsAEDQMDpEXTb2H5099m07KHl+u930nL99ztpuf77nXa2mIABIMAGDAABNmAACLABA0CADRgAAnyI4wda1q+doGX92gla1q+doGX92gk+xAEAYTZgAAjw7wj/QksnLZ20dNLSyQQMAAE2YAAIuHQE3TDOP/UMWp6lZe4+K7TM3WeFlrn7rEi1mIABIMAGDAABH0fQDUcBd509s5YsLZ20dNLSabrFBAwAATZgAAhY+hDHxJFC6phCy/57ptbV0rmuls51tcytawIGgAAbMAAEjHwL+ug4en8s/JK34I60dNLSSUsnLT1MwAAQYAMGgIDbR9A73yKbXktL51paOtfS0rmWls61rtzfBAwAATZgAAj4+j7MyW95c+zMG781ekZLJy2dtHTS8jsTMAAE2IABIMBb0IP337mWls61tHSupaVzrX+txQQMAAE2YAAI8C3oG7R00tJJSyctPUzAABBgAwaAgKUj6Im3yFJ/uK1l/z1T62rpXFdL57pa5tY1AQNAgA0YAAI+jqDf+N3Os2fWkqWlk5ZOWjpNt5iAASDABgwAAZfegm44OnjqGbQ8S8vcfVZombvPCi1z91mRajEBA0CADRgAAka+BX1lDG84drhCSyctnbR00tLJBAwAATZgAAh47Ah6ZeRvOy7Qsn7tBC3r107Qsn7tBC3r1044Po8JGAACbMAAEHB6BN02th/dfTYte2i5/vudtFz//U5arv9+p50tJmAACLAB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\" style=\"border-radius:8px; display:block;\" />\n", " <pre style=\"color:#9d9; font-family:monospace; font-size:13px; margin:10px 0 0 0; white-space:pre-wrap; line-height:1.5;\">(wipe black)\n", "(repeat 120 y (repeat 160 x\n", " (if (= 0 (% (+ (* x x) (* y y)) 17))\n", " (do (ink 255 255 255) (plot x y)))))</pre>\n", " </div>\n", " </div>" ], "text/plain": [ "<IPython.core.display.HTML object>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "show_card(\"Moire\", \"\"\"(wipe white)\n", "(ink 0 0 0 60)\n", "(repeat 80 i (circle 60 60 (* i 2)))\n", "(repeat 80 i (circle 100 60 (* i 2)))\"\"\")\n", "\n", "show_card(\"Plaid\", \"\"\"(wipe white)\n", "(repeat 16 i (ink 200 0 0 50) (box (* i 10) 0 5 120))\n", "(repeat 12 i (ink 0 0 200 50) (box 0 (* i 10) 160 5))\"\"\")\n", "\n", "show_card(\"Sunflower\", \"\"\"(wipe black)\n", "(repeat 500 i\n", " (ink (* (% i 8) 32) (+ 100 (% (* i 7) 155)) (* (% i 5) 50))\n", " (plot (+ 80 (* (* i 0.1) (cos (* i 2.4)))) (+ 60 (* (* i 0.1) (sin (* i 2.4))))))\"\"\")\n", "\n", "show_card(\"Interference\", \"\"\"(wipe black)\n", "(repeat 120 y (repeat 160 x\n", " (if (= 0 (% (+ (* x x) (* y y)) 17))\n", " (do (ink 255 255 255) (plot x y)))))\"\"\")" ] }, { "cell_type": "markdown", "id": "93747ahdb9h", "metadata": {}, "source": [ "## Minimal Koans (1-2 lines)" ] }, { "cell_type": "code", "execution_count": 8, "id": "t94n554r7s", "metadata": { "execution": { "iopub.execute_input": "2026-03-15T00:37:49.811116Z", "iopub.status.busy": "2026-03-15T00:37:49.810141Z", "iopub.status.idle": "2026-03-15T00:37:49.892116Z", "shell.execute_reply": "2026-03-15T00:37:49.889935Z" } }, "outputs": [ { "data": { "text/html": [ "\n", " <div style=\"display:inline-block; margin:10px; vertical-align:top; max-width:504px;\">\n", " <div style=\"background:#111; border-radius:12px; padding:12px; border:1px solid #333;\">\n", " <div style=\"color:#eee; font-family:monospace; font-size:14px; font-weight:bold; margin-bottom:8px;\">Horizon</div>\n", " <img src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAFmUlEQVR4nO3XMRHAMBDEwHeQh2XgOCyswrsIrtPcmnn3AABHPfUAALiRAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgMDa3+x6BADcxgMGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAj8vPcHIxYkyysAAAAASUVORK5CYII=\" style=\"border-radius:8px; display:block;\" />\n", " <pre style=\"color:#9d9; font-family:monospace; font-size:13px; margin:10px 0 0 0; white-space:pre-wrap; line-height:1.5;\">(wipe navy)\n", "(ink gold)\n", "(box 0 70 160 50)</pre>\n", " </div>\n", " </div>" ], "text/plain": [ "<IPython.core.display.HTML object>" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", " <div style=\"display:inline-block; margin:10px; vertical-align:top; max-width:504px;\">\n", " <div style=\"background:#111; border-radius:12px; padding:12px; border:1px solid #333;\">\n", " <div style=\"color:#eee; font-family:monospace; font-size:14px; font-weight:bold; margin-bottom:8px;\">Pip</div>\n", " <img src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAFw0lEQVR4nO3dQQ4CIRAAQTD+/8vrF9gYadSqswcupDNkss4xxjUAgK0e9QEA4B8JMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEg8KwPANxzLfxmbjgH8B4TMAAEBBgAAnPxRQvY7BMX09M0nMMEDAABAQaAgAADQECAASAgwAAQsAUNB9l5GW1EQ8sEDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACPsQBh/J3hPDbTMAAEBBgAAgIMAAEBBgAAgIMAAFb0PBlVi6sbWc4nwkYAAICDAABT9AAEDABA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACLwAsR4Nx5rB9KIAAAAASUVORK5CYII=\" style=\"border-radius:8px; display:block;\" />\n", " <pre style=\"color:#9d9; font-family:monospace; font-size:13px; margin:10px 0 0 0; white-space:pre-wrap; line-height:1.5;\">(wipe black)\n", "(ink red)\n", "(circle 80 60 4)</pre>\n", " </div>\n", " </div>" ], "text/plain": [ "<IPython.core.display.HTML object>" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", " <div style=\"display:inline-block; margin:10px; vertical-align:top; max-width:504px;\">\n", " <div style=\"background:#111; border-radius:12px; padding:12px; border:1px solid #333;\">\n", " <div style=\"color:#eee; font-family:monospace; font-size:14px; font-weight:bold; margin-bottom:8px;\">Cross</div>\n", " <img src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAFw0lEQVR4nO3XwQ0CQQwEQYw2/5RNCHw4GnRVEczDUsuzu/sAAL7qWQ8AgDsSYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAROPQDubmbqCY/drSfA7fiAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABIHDqAVxrZuoJ/AF38vt2t57Ah/mAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0Dg1AO41u7WE3hjZuoJ7gQCPmAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASBw6gFwd7tbTwACPmAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEHgBPW4V0QWDpu4AAAAASUVORK5CYII=\" style=\"border-radius:8px; display:block;\" />\n", " <pre style=\"color:#9d9; font-family:monospace; font-size:13px; margin:10px 0 0 0; white-space:pre-wrap; line-height:1.5;\">(wipe white)\n", "(ink black)\n", "(box 75 20 10 80)\n", "(box 40 50 80 10)</pre>\n", " </div>\n", " </div>" ], "text/plain": [ "<IPython.core.display.HTML object>" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", " <div style=\"display:inline-block; margin:10px; vertical-align:top; max-width:504px;\">\n", " <div style=\"background:#111; border-radius:12px; padding:12px; border:1px solid #333;\">\n", " <div style=\"color:#eee; font-family:monospace; font-size:14px; font-weight:bold; margin-bottom:8px;\">Corner</div>\n", " <img src=\"data:image/png;base64,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X3jhDCfyUpoNDRgAAgIYAAImaMzOUDBHL08DBoCAAAaAgAl6IQ5rwKAc7liSBgwAAQEMAAET9MV54QwT81L60jRgAAgIYAAImKAvyOwMF2SOvhwNGAACAhgAAiboiTmsAYtyuOMSNGAACAhgAAiYoCfjhTNwl5fSU9GAASAggAEgYIKegNkZ2M0cPTwNGAACAhgAAibogTisAZzC4Y4hacAAEBDAABAwQce8cAYyXkqnNGAACAhgAAiYoANmZ2A45ui304ABICCAASBggj6RwxrAlBzueAsNGAACAhgAAibog3nhDFyWl9KH0oABICCAASBggj6A2RlYjjn6ZRowAAQEMAAETNA7OKwB8A2HO56iAQNAQAADQMAE/QdeOAM8yUvpH2nAABAQwAAQMEF/w+wMcDBz9G80YAAICGAACCw9QTusARBwuON204ABoCGAASCw3ATthTPAoBZ7Ka0BA0BAAANAYIkJ2uwMMJkF5mgNGAACAhgAApeaoB3WALigix7u0IABICCAASAw/QTthTPAoiZ/Ka0BA0BAAANAYMoJ2uwMwBcTztEaMAAEBDAABIaeoB3WAGC3SQ53aMAAEBDAABAYboL2whmAUwz2UloDBoCAAAaAwBATtNkZgLcaYI7WgAEgIIABIPDWCdphDQCGEx3u0IABICCAASBw+gTthTMAUzr5pbQGDAABAQwAgVMmaLMzAJdywhytAQNAQAADQOClCdphDQCWc9DhDg0YAAICGAACuydoL5wB4Bs7X0prwAAQEMAAEHhogjY7A8AOD8zRGjAABAQwAAS+TNAOawDAwe4c7tCAASAggAEg8A8PLlT/ZpemBQAAAABJRU5ErkJggg==\" style=\"border-radius:8px; display:block;\" />\n", " <pre style=\"color:#9d9; font-family:monospace; font-size:13px; margin:10px 0 0 0; white-space:pre-wrap; line-height:1.5;\">(wipe black)\n", "(ink cyan)\n", "(line 0 0 160 120)\n", "(ink magenta)\n", "(line 160 0 0 120)</pre>\n", " </div>\n", " </div>" ], "text/plain": [ "<IPython.core.display.HTML object>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "show_card(\"Horizon\", \"\"\"(wipe navy)\n", "(ink gold)\n", "(box 0 70 160 50)\"\"\")\n", "\n", "show_card(\"Pip\", \"\"\"(wipe black)\n", "(ink red)\n", "(circle 80 60 4)\"\"\")\n", "\n", "show_card(\"Cross\", \"\"\"(wipe white)\n", "(ink black)\n", "(box 75 20 10 80)\n", "(box 40 50 80 10)\"\"\")\n", "\n", "show_card(\"Corner\", \"\"\"(wipe black)\n", "(ink cyan)\n", "(line 0 0 160 120)\n", "(ink magenta)\n", "(line 160 0 0 120)\"\"\")" ] }, { "cell_type": "markdown", "id": "buarwrf1xi8", "metadata": {}, "source": [ "## Turtle Graphics (crawl, left, right, goto, face)" ] }, { "cell_type": "code", "execution_count": 9, "id": "kk5izjajmv", "metadata": { "execution": { "iopub.execute_input": "2026-03-15T00:37:49.900778Z", "iopub.status.busy": "2026-03-15T00:37:49.899821Z", "iopub.status.idle": "2026-03-15T00:37:49.973118Z", "shell.execute_reply": "2026-03-15T00:37:49.971174Z" } }, "outputs": [ { "data": { "text/html": [ "\n", " <div style=\"display:inline-block; margin:10px; vertical-align:top; max-width:504px;\">\n", " <div style=\"background:#111; border-radius:12px; padding:12px; border:1px solid #333;\">\n", " <div style=\"color:#eee; font-family:monospace; font-size:14px; font-weight:bold; margin-bottom:8px;\">Square</div>\n", " <img src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAFxElEQVR4nO3ZOw7CQBAFwV3k+195yIhILFluPlURInpZa9Z7rTULALjVox4AAP9IgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABA46gHAOTNTTyCw964ncDEXMAAEBBgAAp6g4Yt5lvxtPjf8NhcwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAIGjHgCcs/d+/Z6Zt/8Dn88FDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACRz0AuMbM1BOAE1zAABAQYAAI7LWWdysAuJkLGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEnsyCENXfUodwAAAAAElFTkSuQmCC\" style=\"border-radius:8px; display:block;\" />\n", " <pre style=\"color:#9d9; font-family:monospace; font-size:13px; margin:10px 0 0 0; white-space:pre-wrap; line-height:1.5;\">(wipe black)\n", "(ink white)\n", "(repeat 4 i (crawl 40) (right 90))</pre>\n", " </div>\n", " </div>" ], "text/plain": [ "<IPython.core.display.HTML object>" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", " <div style=\"display:inline-block; margin:10px; vertical-align:top; max-width:504px;\">\n", " <div style=\"background:#111; border-radius:12px; padding:12px; border:1px solid #333;\">\n", " <div style=\"color:#eee; font-family:monospace; font-size:14px; font-weight:bold; margin-bottom:8px;\">Star</div>\n", " <img src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAHQ0lEQVR4nO3dwYrbSBRAUTn0h/vPnc0weEjUI7VdviXpnFUWTai4A5f3KMq3Zbk/FgDgo37VBwCAKxJgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAh81QcA+ITH4/7vn2+3+7c/C59gAgaAgAADQECAASAgwAAQEGAACLgFDZzW2s1nN6KZgQkYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAARuy3J/1IcAeJe9j2x4lIOKCRgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABDzEARzeux7T8CgHn2QCBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDACBr/oAAD/h0QyOzgQMAAEBBoCAFTTAP55X2VbcjGYCBoCAAANAQIABICDAABAQYAAIuAUNHIabyZyJCRgAAgIMAAEraIC/8CgHo5mAASAgwAAQEGAACAgwAAQEGAACbkEDU3MDmbMyAQNAQIABIGAFDfA/PMrBCCZgAAgIMAAEbstyf9SHAH7meR0KI1izj2MCBoCAAANAwAoaTmJtHX3EFeLMN41nPtteZ/o/c0QmYAAICDAABDzEASextjY808p0Bkd/lOOIZz4rEzAABAQYAAJW0HByR1+Z8jq/9zmZgAEgIMAAELCChgtZW0ev/cwnWZO+brbfKd8zAQNAQIABIGAFDRfl4Y7XzXDD3O/ruEzAABAQYAAIWEED/zHDWpU/ueF8PiZgAAgIMAAErKCBVaMf7rDi/p7P59xMwAAQEGAACFhBA5t4uGMcN5yvyQQMAAEBBoCAFTTwkpm/4vCT9j5gYnWPCRgAAgIMAAEraOBttqxbt/z8WVk788wEDAABAQaAgBU0MNyWm9JnZe3MGhMwAAQEGAACVtBA5ky3o9dWzVdbubOdCRgAAgIMAAEraGC4vTeBZ745fKa1OS0TMAAEBBgAAlbQwHRm+4rDmVfiHJcJGAACAgwAAStoYGpbvuJwxFr4XX//2jrdKhsTMAAEBBgAAlbQwBCj163vWu3OcMuaazIBA0BAgAEgYAUNHN7ehzvcRmYGJmAACAgwAARuy3J/1IcAzmeGNe/MN5xn+HxomYABICDAABBwCxp4mxnWqlvOMMM5wQQMAAEBBoCAFTRweHtXynsf7oARTMAAEBBgAAhYQQOHMWJdXN2U9jY1JmAACAgwAASsoIGXjF6fVutZN6UZzQQMAAEBBoCAFTQwhZnXvN6UZgQTMAAEBBgAAlbQQOboK1yPafAKEzAABAQYAAK3Zbk/6kMAx7J33TrzDecRXvn3WmVfhwkYAAICDAABt6CBIa68SvVwB1uYgAEgIMAAELCCBt7GivV7Hu7gmQkYAAICDAABD3EAm6w9LvHMKvVnfLbXZAIGgIAAA0DALWhgN+vQ99rycAfnYwIGgIAAA0DALWgACJiAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABIPAbZ4kmyOwys1kAAAAASUVORK5CYII=\" style=\"border-radius:8px; display:block;\" />\n", " <pre style=\"color:#9d9; font-family:monospace; font-size:13px; margin:10px 0 0 0; white-space:pre-wrap; line-height:1.5;\">(wipe navy)\n", "(ink yellow)\n", "(repeat 5 i (crawl 50) (right 144))</pre>\n", " </div>\n", " </div>" ], "text/plain": [ "<IPython.core.display.HTML object>" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", " <div style=\"display:inline-block; margin:10px; vertical-align:top; max-width:504px;\">\n", " <div style=\"background:#111; border-radius:12px; padding:12px; border:1px solid #333;\">\n", " <div style=\"color:#eee; font-family:monospace; font-size:14px; font-weight:bold; margin-bottom:8px;\">Spiral Walk</div>\n", " <img src=\"data:image/png;base64,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\" style=\"border-radius:8px; display:block;\" />\n", " <pre style=\"color:#9d9; font-family:monospace; font-size:13px; margin:10px 0 0 0; white-space:pre-wrap; line-height:1.5;\">(wipe black)\n", "(ink cyan)\n", "(repeat 100 i (crawl (* i 0.5)) (right 30))</pre>\n", " </div>\n", " </div>" ], "text/plain": [ "<IPython.core.display.HTML object>" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", " <div style=\"display:inline-block; margin:10px; vertical-align:top; max-width:504px;\">\n", " <div style=\"background:#111; border-radius:12px; padding:12px; border:1px solid #333;\">\n", " <div style=\"color:#eee; font-family:monospace; font-size:14px; font-weight:bold; margin-bottom:8px;\">Hexagon</div>\n", " <img src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAGp0lEQVR4nO3dQXKbUBBAQUj5/ldWNl6wMGUjAY8P3SdQBVKvZjRR5mmaXhMAcKp/9QcAgCcSYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAS+6g8AbPOaXvVHeLR5muuPwE2YgAEgIMAAELCChgEs185WoC3Pgr2YgAEgIMAAEBBgAAgIMAAEBBgAAvM0+Vf9cEWuba/PM+ITJmAACAgwAAQEGAACAgwAAQEGgIAraLgQV7Xj8uzYygQMAAEBBoCAFTTErC7vxzPlL0zAABAQYAAICDAABAQYAAICDAABV9AQcCX7HJ41a0zAABAQYAAICDAABAQYAAICDAABV9BwEteweAdYMgEDQECAASBgBQ0HsnJkjXcDEzAABAQYAAICDAABAQaAgAADQMAVNOzMdStbeWeeyQQMAAEBBoCAAANAQIABICDAABBwBQ07cMXKXrxLz2ECBoCAAANAwAoa3mRVyNG8Y/dmAgaAgAADQECAASAgwAAQEGAACLiChg1cpVLx7t2PCRgAAgIMAAEBBoCAAANAQIABIOAKGn7h+pSr8U7egwkYAAICDAABK2j4gRUfo/CujssEDAABAQaAgAADQECAASAgwAAQcAUN31yTMjrv8FhMwAAQEGAACAgwAAQEGAACAgwAAVfQPJqrUe7Ku319JmAACAgwAASsoOGblR2j8w6PxQQMAAEBBoCAAANAQIABICDAABBwBQ0/cE3KKLyr4zIBA0BAgAEgIMAAEBBgAAgIMAAEXEHDL1yZcjXeyXswAQNAQIABIPBVfwC4uuWKz+oP2IsJGAACAgwAAStogAH4+uN+TMAAEBBgAAj4IQ54k5UgR/OO3ZsJGAACAgwAAVfQ8CY/0AF8wgQMAAEBBoCAFTTAhfg64zlMwAAQEGAACFhBww5cRANbmYABICDAABCwggaI+drimUzAABAQYAAI+O8I4UBWi6zxbmACBoCAAANAwBU0HMgPdABrTMAAEBBgAAhYQQOcxNcQLJmAASAgwAAQsIKGk7iIBpZMwAAQEGAACFhBAxzI1w2sMQEDQECAASBgBQ0BF9GACRgAAgIMAIF5mhb7LyBlHX0PniN/YQIGgIAAA0DAFTTADqyd2coEDAABAQaAgBU0XIgf6IDnMAEDQECAASDghzhgANbR1+S58AkTMAAEBBgAAgIMAAEBBoCAAANAwBU0DMblbcufP3sxAQNAQIABICDAABAQYAAICDAABFxBw8Be/vqezuUzezEBA0BAgAEgYAUNAAETMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEPgPPWOVyyMHdaMAAAAASUVORK5CYII=\" style=\"border-radius:8px; display:block;\" />\n", " <pre style=\"color:#9d9; font-family:monospace; font-size:13px; margin:10px 0 0 0; white-space:pre-wrap; line-height:1.5;\">(wipe black)\n", "(ink magenta)\n", "(repeat 6 i (crawl 30) (right 60))</pre>\n", " </div>\n", " </div>" ], "text/plain": [ "<IPython.core.display.HTML object>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "show_card(\"Square\", \"\"\"(wipe black)\n", "(ink white)\n", "(repeat 4 i (crawl 40) (right 90))\"\"\")\n", "\n", "show_card(\"Star\", \"\"\"(wipe navy)\n", "(ink yellow)\n", "(repeat 5 i (crawl 50) (right 144))\"\"\")\n", "\n", "show_card(\"Spiral Walk\", \"\"\"(wipe black)\n", "(ink cyan)\n", "(repeat 100 i (crawl (* i 0.5)) (right 30))\"\"\")\n", "\n", "show_card(\"Hexagon\", \"\"\"(wipe black)\n", "(ink magenta)\n", "(repeat 6 i (crawl 30) (right 60))\"\"\")" ] }, { "cell_type": "code", "execution_count": 10, "id": "0gc4to6khg7k", "metadata": { "execution": { "iopub.execute_input": "2026-03-15T00:37:49.981371Z", "iopub.status.busy": "2026-03-15T00:37:49.980390Z", "iopub.status.idle": "2026-03-15T00:37:50.084488Z", "shell.execute_reply": "2026-03-15T00:37:50.081967Z" } }, "outputs": [ { "data": { "text/html": [ "\n", " <div style=\"display:inline-block; margin:10px; vertical-align:top; max-width:504px;\">\n", " <div style=\"background:#111; border-radius:12px; padding:12px; border:1px solid #333;\">\n", " <div style=\"color:#eee; font-family:monospace; font-size:14px; font-weight:bold; margin-bottom:8px;\">Snowflake</div>\n", " <img src=\"data:image/png;base64,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\" style=\"border-radius:8px; display:block;\" />\n", " <pre style=\"color:#9d9; font-family:monospace; font-size:13px; margin:10px 0 0 0; white-space:pre-wrap; line-height:1.5;\">(wipe navy)\n", "(ink white)\n", "(repeat 6 i\n", " (repeat 3 j (crawl 20) (right 60) (crawl 20) (left 120))\n", " (right 60))</pre>\n", " </div>\n", " </div>" ], "text/plain": [ "<IPython.core.display.HTML object>" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", " <div style=\"display:inline-block; margin:10px; vertical-align:top; max-width:504px;\">\n", " <div style=\"background:#111; border-radius:12px; padding:12px; border:1px solid #333;\">\n", " <div style=\"color:#eee; font-family:monospace; font-size:14px; font-weight:bold; margin-bottom:8px;\">Polygon Ring</div>\n", " <img src=\"data:image/png;base64,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\" style=\"border-radius:8px; display:block;\" />\n", " <pre style=\"color:#9d9; font-family:monospace; font-size:13px; margin:10px 0 0 0; white-space:pre-wrap; line-height:1.5;\">(wipe black)\n", "(repeat 36 i\n", " (ink (* i 7) 128 255)\n", " (goto 80 60) (face (* i 10))\n", " (crawl 40) (right 90) (crawl 15) (right 90) (crawl 15))</pre>\n", " </div>\n", " </div>" ], "text/plain": [ "<IPython.core.display.HTML object>" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", " <div style=\"display:inline-block; margin:10px; vertical-align:top; max-width:504px;\">\n", " <div style=\"background:#111; border-radius:12px; padding:12px; border:1px solid #333;\">\n", " <div style=\"color:#eee; font-family:monospace; font-size:14px; font-weight:bold; margin-bottom:8px;\">Tree</div>\n", " <img src=\"data:image/png;base64,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CAhgAAg4BQ13mXYiesIa4I2ZgAEgIIABIKCChkJVR6udYQwTMAAEBDAABAQwAAQEMAAEBDAABJyChtrVJ6KdfIaRTMAAEBDAABAQwAAQEMAAEBDAABBwChomedWJaCefYTwTMAAEBDAABD6O4/isFwF849FqWu0M45mAASAggAEgIIABICCAASAggAEg4BQ0rMbJZ9iCCRgAAgIYAAICGAACAhgAAgIYAAICGAACAhgAAgIYAAL/1AsAHnTm6wiB8UzAABAQwAAQEMAAEBDAABAQwAAQEMAAEBDAABAQwAAQEMAAEBDAABAQwAAQEMAAEBDAABAQwAAQEMAAEBDAABAQwAAQEMAAEBDAABAQwAAQEMAAEBDAABAQwAAQEMAAEBDAABAQwAAQEMAAEBDAABAQwAAQEMAAEBDAABAQwAAQEMAAEBDAABAQwAAQEMAAEBDAABAQwAAQEMAAEBDAABAQwAAQEMAAEBDAABAQwAAQEMAAEBDAABAQwAAQEMAAEBDAABAQwAAQEMAAEBDAABAQwAAQEMAAEBDAABAQwAAQEMAAEBDAABAQwAAQEMAAEBDAABAQwAAQEMAAEBDAABAQwAAQEMAAEBDAABAQwAAQEMAAEBDAABAQwAAQEMAAEBDAABAQwAAQEMAAEBDAABAQwAAQEMAAEBDAABAQwAAQEMAAEBDAABAQwAAQEMAAEBDAABAQwAAQEMAAEBDAABAQwAAQEMAAEBDAABAQwAAQEMAAEBDAABAQwAAQEMAAEBDAABAQwAAQEMAAEBDAABAQwAAQEMAAEBDAABAQwAAQ+DiO47NeBAC8GxMwAAQEMAAEBDAABAQwAAQEMAAEBDAABAQwAAQEMAAEBDAABAQwAAQEMAAEBDAABAQwAAQEMAAEBDAABAQwAAQEMAAEBDAABAQwAAQEMAAEBDAABAQwAAQEMAAEBDAABAQwAAQEMAAE/gdl8VEy53gClAAAAABJRU5ErkJggg==\" style=\"border-radius:8px; display:block;\" />\n", " <pre style=\"color:#9d9; font-family:monospace; font-size:13px; margin:10px 0 0 0; white-space:pre-wrap; line-height:1.5;\">(wipe black)\n", "(ink green) (goto 80 110) (face 270)\n", "(later branch len\n", " (if (> len 3)\n", " (do (crawl len) (left 30) (branch (* len 0.7))\n", " (right 60) (branch (* len 0.7)) (left 30)\n", " (up) (crawl (- 0 len)) (down))))\n", "(branch 35)</pre>\n", " </div>\n", " </div>" ], "text/plain": [ "<IPython.core.display.HTML object>" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "\n", " <div style=\"display:inline-block; margin:10px; vertical-align:top; max-width:504px;\">\n", " <div style=\"background:#111; border-radius:12px; padding:12px; border:1px solid #333;\">\n", " <div style=\"color:#eee; font-family:monospace; font-size:14px; font-weight:bold; margin-bottom:8px;\">Zigzag</div>\n", " <img src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAGdElEQVR4nO3cwU3DQBRF0YQO6YiOKDFsBwQiiZNcj+ecCry7+qMnny+Xy+UEv/l4r7/gdPr4rL8A4Cne6g8AgBUJMAAEzp6gucr4HO1ZGGAzFzAABAQYAAICDAABAQaAgAADQMAKmttZRANs5gIGgIAAA0BAgAEgIMAAEBBgAAhYQbONRTTAXVzAABAQYAAIeILmcTxHA1zNBQwAAQEGgIAAA0BAgAEgIMAAELCCPrpxmZx9g0U0wE8uYAAICDAABDxBr8SPMgB2wwUMAAEBBoCAAANAQIABICDAABCwgl6VRTRAygUMAAEBBoCAAANAQIABICDAABCwgsYiGiDgAgaAgAADQMATNN95jgZ4CRcwAAQEGAACAgwAAQEGgIAAA0DACnoG4zI5+waLaIBHcgEDQECAASDgCXo2fpQBcAguYAAICDAABAQYAAICDAABAQaAgBX0zCyiAablAgaAgAADQECAASAgwAAQEGAACFhBH4VFNMBUXMAAEBBgAAgIMAAEBBgAAgIMAAEr6COyiAbYPRcwAAQEGAACAgwAAQEGgIAAA0DACvpVxmVy9g0W0QB74QIGgIAAA0DAE3TBjzIAlucCBoCAAANAQIABICDAABAQYAAIWEHXLKIBluQCBoCAAANAQIABICDAABAQYAAIWEHviUU0wDJcwAAQEGAACAgwAAQEGAACAgwAASvovbKIBjg0FzAABAQYAAICDAABAQaAgAADQMAK+hbjMjn7BotogCNwAQNAQIABIOAJ+l5+lAHABi5gAAgIMAAEBBgAAgIMAAEBBoCAFfQjWEQDcCMXMAAEBBgAAgIMAAEBBoCAAANAwAr60SyiAbiCCxgAAgIMAAFP0M/kORqAP7iAASAgwAAQEGAACAgwAAQEGAAC662gx2Vy9g0W0QCrcwEDQECAASCw3hP0yI8yAIi4gAEgIMAAEBBgAAgIMAAEBBgAAmuvoEcW0QC8kAsYAAICDAABAQaAgAADQECAASBgBf0bi2gAnswFDAABAQaAgAADQECAASAgwAAQsIL+j0U0AE/gAgaAgAADQECAASAgwAAQEGAACMy5gh6Xydk3WEQDcD8XMAAEBBgAAnM+QY/8KAOACbmAASAgwAAQEGAACAgwAAQEGAAC86+gRxbRAEzCBQwAAQEGgIAAA0BAgAEgIMAAEDjWCnpkEQ3AjrmAASAgwAAQEGAACAgwAAQEGAACx11BjyyiAdgZFzAABAQYAAICDAABAQaAgAADQKBbQY/LZGA7C3+YigsYAAICDACBNX7EAQA74wIGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAAEBBoCAAANAQIABICDAABAQYAAICDAABAQYAAICDAABAQaAgAADQECAASAgwAAQEGAACAgwAAQEGAACAgwAAQEGgIAAA0BAgAEgIMAAEBBgAAgIMAAEBBgAAgIMAIEvmqjeGJUrC2wAAAAASUVORK5CYII=\" style=\"border-radius:8px; display:block;\" />\n", " <pre style=\"color:#9d9; font-family:monospace; font-size:13px; margin:10px 0 0 0; white-space:pre-wrap; line-height:1.5;\">(wipe white)\n", "(ink coral) (goto 10 60) (face 0)\n", "(repeat 15 i\n", " (crawl 10) (if (% i 2) (right 120) (left 120)))</pre>\n", " </div>\n", " </div>" ], "text/plain": [ "<IPython.core.display.HTML object>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "show_card(\"Snowflake\", \"\"\"(wipe navy)\n", "(ink white)\n", "(repeat 6 i\n", " (repeat 3 j (crawl 20) (right 60) (crawl 20) (left 120))\n", " (right 60))\"\"\")\n", "\n", "show_card(\"Polygon Ring\", \"\"\"(wipe black)\n", "(repeat 36 i\n", " (ink (* i 7) 128 255)\n", " (goto 80 60) (face (* i 10))\n", " (crawl 40) (right 90) (crawl 15) (right 90) (crawl 15))\"\"\")\n", "\n", "show_card(\"Tree\", \"\"\"(wipe black)\n", "(ink green) (goto 80 110) (face 270)\n", "(later branch len\n", " (if (> len 3)\n", " (do (crawl len) (left 30) (branch (* len 0.7))\n", " (right 60) (branch (* len 0.7)) (left 30)\n", " (up) (crawl (- 0 len)) (down))))\n", "(branch 35)\"\"\")\n", "\n", "show_card(\"Zigzag\", \"\"\"(wipe white)\n", "(ink coral) (goto 10 60) (face 0)\n", "(repeat 15 i\n", " (crawl 10) (if (% i 2) (right 120) (left 120)))\"\"\")" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.11.14" } }, "nbformat": 4, "nbformat_minor": 5}