diff --git a/.nblink/environment.yml b/.nblink/environment.yml
new file mode 100644
index 0000000..1a3118c
--- /dev/null
+++ b/.nblink/environment.yml
@@ -0,0 +1,11 @@
+name: engineersCode
+channels:
+ - https://prefix.dev/emscripten-forge-4x
+ - https://prefix.dev/conda-forge
+dependencies:
+ - xeus-python
+ - numpy
+ - matplotlib
+ - imageio
+ - ipywidgets
+ - ipympl
diff --git a/.nblink/nblink-lock.json b/.nblink/nblink-lock.json
new file mode 100644
index 0000000..3d66077
--- /dev/null
+++ b/.nblink/nblink-lock.json
@@ -0,0 +1,616 @@
+{
+ "id": "8515759346578466",
+ "lockVersion": "1.0.3",
+ "platform": "emscripten-wasm32",
+ "specs": [
+ "xeus-python",
+ "numpy",
+ "matplotlib",
+ "imageio",
+ "ipywidgets",
+ "ipympl"
+ ],
+ "channels": [
+ "emscripten-forge-4x",
+ "conda-forge"
+ ],
+ "channelInfo": {
+ "emscripten-forge-4x": [
+ {
+ "url": "https://prefix.dev/emscripten-forge-4x",
+ "protocol": "https"
+ },
+ {
+ "url": "https://repo.prefix.dev/emscripten-forge-4x",
+ "protocol": "https"
+ }
+ ],
+ "conda-forge": [
+ {
+ "url": "https://prefix.dev/conda-forge",
+ "protocol": "https"
+ },
+ {
+ "url": "https://repo.prefix.dev/conda-forge",
+ "protocol": "https"
+ }
+ ]
+ },
+ "packages": {
+ "xeus-python-0.18.1-py313h6852881_0.tar.bz2": {
+ "name": "xeus-python",
+ "build": "py313h6852881_0",
+ "version": "0.18.1",
+ "subdir": "emscripten-wasm32",
+ "channel": "emscripten-forge-4x",
+ "hash": {
+ "md5": "dc42fed4a333520b6c27031aa9fc477b",
+ "sha256": "46dbedc7a95909dca49052257353774b64441b0d8edc3546beb2171dd1de696d"
+ },
+ "size": 5117719
+ },
+ "xeus-6.0.2-h0b0027f_0.tar.bz2": {
+ "name": "xeus",
+ "build": "h0b0027f_0",
+ "version": "6.0.2",
+ "subdir": "emscripten-wasm32",
+ "channel": "emscripten-forge-4x",
+ "hash": {
+ "md5": "dc8693763e78440e2029c7aefbb226a8",
+ "sha256": "d2e9404e2d2b2a200efa9cd34d0f9c14ede87b6eafeef5142214a6de17e12155"
+ },
+ "size": 310134
+ },
+ "numpy-2.4.3-py313hcf5bae3_0.tar.bz2": {
+ "name": "numpy",
+ "build": "py313hcf5bae3_0",
+ "version": "2.4.3",
+ "subdir": "emscripten-wasm32",
+ "channel": "emscripten-forge-4x",
+ "hash": {
+ "md5": "c2546d31783bb484d4455fbd075a3787",
+ "sha256": "e417ee08aad4707ee4c0ed6a3ebc9aeea6c463a39244c7a458e17a1309b7257e"
+ },
+ "size": 2798506
+ },
+ "matplotlib-3.10.8-pyh406a3f9_5.tar.bz2": {
+ "name": "matplotlib",
+ "build": "pyh406a3f9_5",
+ "version": "3.10.8",
+ "subdir": "noarch",
+ "channel": "emscripten-forge-4x",
+ "hash": {
+ "md5": "7a1da4e1627bbc8f6b2d0c7bc238f6f8",
+ "sha256": "129185b54f26bd5b1eead9fb6d9b3b22c4fbb2d411659fc9b73be3ca8948f3bd"
+ },
+ "size": 2087144
+ },
+ "matplotlib-base-3.10.8-np23py313h2ca9bdc_5.tar.bz2": {
+ "name": "matplotlib-base",
+ "build": "np23py313h2ca9bdc_5",
+ "version": "3.10.8",
+ "subdir": "emscripten-wasm32",
+ "channel": "emscripten-forge-4x",
+ "hash": {
+ "md5": "cfc034ef76cc49533dfc3c2a4d8da43b",
+ "sha256": "de6dfcf79922ecc30eeb05aa52ac0f7b95395907d080d13abd4696a9f3c71be4"
+ },
+ "size": 8530785
+ },
+ "imageio-2.37.0-pyhfb79c49_0.conda": {
+ "name": "imageio",
+ "build": "pyhfb79c49_0",
+ "version": "2.37.0",
+ "subdir": "noarch",
+ "channel": "conda-forge",
+ "hash": {
+ "md5": "b5577bc2212219566578fd5af9993af6",
+ "sha256": "8ef69fa00c68fad34a3b7b260ea774fda9bd9274fd706d3baffb9519fd0063fe"
+ },
+ "size": 293226
+ },
+ "ipywidgets-8.1.8-pyhd8ed1ab_0.conda": {
+ "name": "ipywidgets",
+ "build": "pyhd8ed1ab_0",
+ "version": "8.1.8",
+ "subdir": "noarch",
+ "channel": "conda-forge",
+ "hash": {
+ "md5": "d68e3f70d1f068f1b66d94822fdc644e",
+ "sha256": "6bb58afb7eabc8b4ac0c7e92707fb498313cc0164cf04e7ba1090dbf49af514b"
+ },
+ "size": 114376
+ },
+ "ipympl-0.10.0-pyhcf101f3_0.conda": {
+ "name": "ipympl",
+ "build": "pyhcf101f3_0",
+ "version": "0.10.0",
+ "subdir": "noarch",
+ "channel": "conda-forge",
+ "hash": {
+ "md5": "abb099ef4a8ab45d4b713f2d4277f727",
+ "sha256": "5cb435e0fe1238b0ec4baa13d52faf4490b76bb62202e5fd5bf004e95f2cf425"
+ },
+ "size": 244162
+ },
+ "python-3.13.1-h_2efca29_11_cp313.tar.bz2": {
+ "name": "python",
+ "build": "h_2efca29_11_cp313",
+ "version": "3.13.1",
+ "subdir": "emscripten-wasm32",
+ "channel": "emscripten-forge-4x",
+ "hash": {
+ "md5": "6541a249de9b863533e745bdeeb6d346",
+ "sha256": "87a2f18dd094535772fba34526a2398902e0e9e385435f135932a9e563f96acb"
+ },
+ "size": 5731072
+ },
+ "xeus-python-shell-lite-0.6.6-pyhd8ed1ab_0.conda": {
+ "name": "xeus-python-shell-lite",
+ "build": "pyhd8ed1ab_0",
+ "version": "0.6.6",
+ "subdir": "noarch",
+ "channel": "conda-forge",
+ "hash": {
+ "md5": "e053ba510540bd9f6e52a72626062e33",
+ "sha256": "59588e3f38120c0e4df3fa4347727f3f59fdc5e4e677aa0266eb560aa646b618"
+ },
+ "size": 7321
+ },
+ "xeus-python-shell-0.6.6-pyh332efcf_0.conda": {
+ "name": "xeus-python-shell",
+ "build": "pyh332efcf_0",
+ "version": "0.6.6",
+ "subdir": "noarch",
+ "channel": "conda-forge",
+ "hash": {
+ "md5": "fb78d1cc085480f0d2b38fee492ff7ae",
+ "sha256": "dd7eb23e335e9baf5b83eadf97c751d649c6128d5fc14746399c138ff45d7349"
+ },
+ "size": 7365
+ },
+ "pyodide-http-0.2.2-pyhcf101f3_0.conda": {
+ "name": "pyodide-http",
+ "build": "pyhcf101f3_0",
+ "version": "0.2.2",
+ "subdir": "noarch",
+ "channel": "conda-forge",
+ "hash": {
+ "md5": "fa9bbfc44b2482fb55bbb9e106958b71",
+ "sha256": "7e2a6f50f86910c22ab7883aa358fe1f5b4d2e2278b8f158d421c85d27057542"
+ },
+ "size": 16750
+ },
+ "xeus-python-shell-raw-0.6.6-pyhd8ed1ab_0.conda": {
+ "name": "xeus-python-shell-raw",
+ "build": "pyhd8ed1ab_0",
+ "version": "0.6.6",
+ "subdir": "noarch",
+ "channel": "conda-forge",
+ "hash": {
+ "md5": "c753450d7e2b773bb35cfd1e2253c2c9",
+ "sha256": "dd308739e9531ce75f7ba20127cbe2356d00eec63610e813e8d5a06fa0f3af4c"
+ },
+ "size": 12760
+ },
+ "pyjs-rt-4.0.2-py313h690bb57_3.tar.bz2": {
+ "name": "pyjs-rt",
+ "build": "py313h690bb57_3",
+ "version": "4.0.2",
+ "subdir": "emscripten-wasm32",
+ "channel": "emscripten-forge-4x",
+ "hash": {
+ "sha256": "8482cca682dd4634dbe0e9b015f4cd89f18983540dd8e7e56acf3b80cc136214"
+ },
+ "size": 46493
+ },
+ "emscripten-abi-4.0.9-h267e887_8.tar.bz2": {
+ "name": "emscripten-abi",
+ "build": "h267e887_8",
+ "version": "4.0.9",
+ "subdir": "noarch",
+ "channel": "emscripten-forge-4x",
+ "hash": {
+ "md5": "744cafd9d23d91fc2943a29fdbb4c6a6",
+ "sha256": "98cfd70341371eccfd6e186e3be1b18b2ac1cb859ecb9efb9a96303885a6bb2a"
+ },
+ "size": 13081
+ },
+ "python_abi-3.13-8_cp313.conda": {
+ "name": "python_abi",
+ "build": "8_cp313",
+ "version": "3.13",
+ "subdir": "noarch",
+ "channel": "conda-forge",
+ "hash": {
+ "md5": "94305520c52a4aa3f6c2b1ff6008d9f8",
+ "sha256": "210bffe7b121e651419cb196a2a63687b087497595c9be9d20ebe97dd06060a7"
+ },
+ "size": 7002
+ },
+ "nlohmann_json-abi-3.12.0-h0f90c79_1.conda": {
+ "name": "nlohmann_json-abi",
+ "build": "h0f90c79_1",
+ "version": "3.12.0",
+ "subdir": "noarch",
+ "channel": "conda-forge",
+ "hash": {
+ "md5": "59659d0213082bc13be8500bab80c002",
+ "sha256": "2a909594ca78843258e4bda36e43d165cda844743329838a29402823c8f20dec"
+ },
+ "size": 4335
+ },
+ "pillow-12.1.1-py313h6414d15_1.tar.bz2": {
+ "name": "pillow",
+ "build": "py313h6414d15_1",
+ "version": "12.1.1",
+ "subdir": "emscripten-wasm32",
+ "channel": "emscripten-forge-4x",
+ "hash": {
+ "md5": "f7dcd4bac24c291ab3283a9c19775fdd",
+ "sha256": "9c36d3e18b874ef6f18c30e1a69f083e3e4d21c75518a76dbd68811d42a489dd"
+ },
+ "size": 748948
+ },
+ "comm-0.2.3-pyhe01879c_0.conda": {
+ "name": "comm",
+ "build": "pyhe01879c_0",
+ "version": "0.2.3",
+ "subdir": "noarch",
+ "channel": "conda-forge",
+ "hash": {
+ "md5": "2da13f2b299d8e1995bafbbe9689a2f7",
+ "sha256": "576a44729314ad9e4e5ebe055fbf48beb8116b60e58f9070278985b2b634f212"
+ },
+ "size": 14690
+ },
+ "ipython-9.9.0-py313h6d8a2ba_0.tar.bz2": {
+ "name": "ipython",
+ "build": "py313h6d8a2ba_0",
+ "version": "9.9.0",
+ "subdir": "emscripten-wasm32",
+ "channel": "emscripten-forge-4x",
+ "hash": {
+ "sha256": "7887d2b248c431a1efc18fe03e43042d05c91b103b20f0cdc221e2c5792227b3"
+ },
+ "size": 1177339
+ },
+ "jupyterlab_widgets-3.0.16-pyhcf101f3_1.conda": {
+ "name": "jupyterlab_widgets",
+ "build": "pyhcf101f3_1",
+ "version": "3.0.16",
+ "subdir": "noarch",
+ "channel": "conda-forge",
+ "hash": {
+ "md5": "dbf8b81974504fa51d34e436ca7ef389",
+ "sha256": "5c03de243d7ae6247f39a402f4785d95e61c3be79ef18738e8f17155585d31a8"
+ },
+ "size": 216779
+ },
+ "traitlets-5.14.3-pyhd8ed1ab_1.conda": {
+ "name": "traitlets",
+ "build": "pyhd8ed1ab_1",
+ "version": "5.14.3",
+ "subdir": "noarch",
+ "channel": "conda-forge",
+ "hash": {
+ "md5": "019a7385be9af33791c989871317e1ed",
+ "sha256": "f39a5620c6e8e9e98357507262a7869de2ae8cc07da8b7f84e517c9fd6c2b959"
+ },
+ "size": 110051
+ },
+ "widgetsnbextension-4.0.15-pyhd8ed1ab_0.conda": {
+ "name": "widgetsnbextension",
+ "build": "pyhd8ed1ab_0",
+ "version": "4.0.15",
+ "subdir": "noarch",
+ "channel": "conda-forge",
+ "hash": {
+ "md5": "dc257b7e7cad9b79c1dfba194e92297b",
+ "sha256": "826af5e2c09e5e45361fa19168f46ff524e7a766022615678c3a670c45895d9a"
+ },
+ "size": 889195
+ },
+ "packaging-26.0-pyhcf101f3_0.conda": {
+ "name": "packaging",
+ "build": "pyhcf101f3_0",
+ "version": "26.0",
+ "subdir": "noarch",
+ "channel": "conda-forge",
+ "hash": {
+ "md5": "b76541e68fea4d511b1ac46a28dcd2c6",
+ "sha256": "c1fc0f953048f743385d31c468b4a678b3ad20caffdeaa94bed85ba63049fd58"
+ },
+ "size": 72010
+ },
+ "backcall-0.2.0-pyh9f0ad1d_0.tar.bz2": {
+ "name": "backcall",
+ "build": "pyh9f0ad1d_0",
+ "version": "0.2.0",
+ "subdir": "noarch",
+ "channel": "conda-forge",
+ "hash": {
+ "md5": "6006a6d08a3fa99268a2681c7fb55213",
+ "sha256": "ee62d6434090c1327a48551734e06bd10e65a64ef7f3b6e68719500dab0e42b9"
+ },
+ "size": 13705
+ },
+ "decorator-5.2.1-pyhd8ed1ab_0.conda": {
+ "name": "decorator",
+ "build": "pyhd8ed1ab_0",
+ "version": "5.2.1",
+ "subdir": "noarch",
+ "channel": "conda-forge",
+ "hash": {
+ "md5": "9ce473d1d1be1cc3810856a48b3fab32",
+ "sha256": "c17c6b9937c08ad63cb20a26f403a3234088e57d4455600974a0ce865cb14017"
+ },
+ "size": 14129
+ },
+ "matplotlib-inline-0.2.1-pyhd8ed1ab_0.conda": {
+ "name": "matplotlib-inline",
+ "build": "pyhd8ed1ab_0",
+ "version": "0.2.1",
+ "subdir": "noarch",
+ "channel": "conda-forge",
+ "hash": {
+ "md5": "00e120ce3e40bad7bfc78861ce3c4a25",
+ "sha256": "9d690334de0cd1d22c51bc28420663f4277cfa60d34fa5cad1ce284a13f1d603"
+ },
+ "size": 15175
+ },
+ "pickleshare-0.7.5-pyhd8ed1ab_1004.conda": {
+ "name": "pickleshare",
+ "build": "pyhd8ed1ab_1004",
+ "version": "0.7.5",
+ "subdir": "noarch",
+ "channel": "conda-forge",
+ "hash": {
+ "md5": "11a9d1d09a3615fc07c3faf79bc0b943",
+ "sha256": "e2ac3d66c367dada209fc6da43e645672364b9fd5f9d28b9f016e24b81af475b"
+ },
+ "size": 11748
+ },
+ "prompt-toolkit-3.0.52-pyha770c72_0.conda": {
+ "name": "prompt-toolkit",
+ "build": "pyha770c72_0",
+ "version": "3.0.52",
+ "subdir": "noarch",
+ "channel": "conda-forge",
+ "hash": {
+ "md5": "edb16f14d920fb3faf17f5ce582942d6",
+ "sha256": "4817651a276016f3838957bfdf963386438c70761e9faec7749d411635979bae"
+ },
+ "size": 273927
+ },
+ "pygments-2.19.2-pyhd8ed1ab_0.conda": {
+ "name": "pygments",
+ "build": "pyhd8ed1ab_0",
+ "version": "2.19.2",
+ "subdir": "noarch",
+ "channel": "conda-forge",
+ "hash": {
+ "md5": "6b6ece66ebcae2d5f326c77ef2c5a066",
+ "sha256": "5577623b9f6685ece2697c6eb7511b4c9ac5fb607c9babc2646c811b428fd46a"
+ },
+ "size": 889287
+ },
+ "stack_data-0.6.3-pyhd8ed1ab_1.conda": {
+ "name": "stack_data",
+ "build": "pyhd8ed1ab_1",
+ "version": "0.6.3",
+ "subdir": "noarch",
+ "channel": "conda-forge",
+ "hash": {
+ "md5": "b1b505328da7a6b246787df4b5a49fbc",
+ "sha256": "570da295d421661af487f1595045760526964f41471021056e993e73089e9c41"
+ },
+ "size": 26988
+ },
+ "pexpect-4.9.0-pyhd8ed1ab_1.conda": {
+ "name": "pexpect",
+ "build": "pyhd8ed1ab_1",
+ "version": "4.9.0",
+ "subdir": "noarch",
+ "channel": "conda-forge",
+ "hash": {
+ "md5": "d0d408b1f18883a944376da5cf8101ea",
+ "sha256": "202af1de83b585d36445dc1fda94266697341994d1a3328fabde4989e1b3d07a"
+ },
+ "size": 53561
+ },
+ "typing_extensions-4.15.0-pyhcf101f3_0.conda": {
+ "name": "typing_extensions",
+ "build": "pyhcf101f3_0",
+ "version": "4.15.0",
+ "subdir": "noarch",
+ "channel": "conda-forge",
+ "hash": {
+ "md5": "0caa1af407ecff61170c9437a808404d",
+ "sha256": "032271135bca55aeb156cee361c81350c6f3fb203f57d024d7e5a1fc9ef18731"
+ },
+ "size": 51692
+ },
+ "contourpy-1.3.3-py313hffb8c6e_4.tar.bz2": {
+ "name": "contourpy",
+ "build": "py313hffb8c6e_4",
+ "version": "1.3.3",
+ "subdir": "emscripten-wasm32",
+ "channel": "emscripten-forge-4x",
+ "hash": {
+ "md5": "01ddbfe7e8b222f7e3bc4c4e862581e2",
+ "sha256": "f45fa649d712e884c6d305a0d4ea3a23e9e9e1a227ec737157c694ff71f29a6d"
+ },
+ "size": 119965
+ },
+ "cycler-0.12.1-pyhcf101f3_2.conda": {
+ "name": "cycler",
+ "build": "pyhcf101f3_2",
+ "version": "0.12.1",
+ "subdir": "noarch",
+ "channel": "conda-forge",
+ "hash": {
+ "md5": "4c2a8fef270f6c69591889b93f9f55c1",
+ "sha256": "bb47aec5338695ff8efbddbc669064a3b10fe34ad881fb8ad5d64fbfa6910ed1"
+ },
+ "size": 14778
+ },
+ "fonttools-4.39.4-py313h6d8a2ba_2.tar.bz2": {
+ "name": "fonttools",
+ "build": "py313h6d8a2ba_2",
+ "version": "4.39.4",
+ "subdir": "emscripten-wasm32",
+ "channel": "emscripten-forge-4x",
+ "hash": {
+ "md5": "b87eb6d771533c8ea7e530724e6e5679",
+ "sha256": "4c1a75a957af69a7448e89ab1fcd7f86e10b0907dc9814012bdba1007b3f3c06"
+ },
+ "size": 1672331
+ },
+ "kiwisolver-1.5.0-py313hb42c9ef_1.tar.bz2": {
+ "name": "kiwisolver",
+ "build": "py313hb42c9ef_1",
+ "version": "1.5.0",
+ "subdir": "emscripten-wasm32",
+ "channel": "emscripten-forge-4x",
+ "hash": {
+ "md5": "1b263ae85355cf063f4951c2ad0a13b3",
+ "sha256": "8b43d233c9ed8d455a837bbc82e74377679282da3d06ea14d897f0c93801c4b1"
+ },
+ "size": 40395
+ },
+ "pyparsing-3.3.2-pyhcf101f3_0.conda": {
+ "name": "pyparsing",
+ "build": "pyhcf101f3_0",
+ "version": "3.3.2",
+ "subdir": "noarch",
+ "channel": "conda-forge",
+ "hash": {
+ "md5": "3687cc0b82a8b4c17e1f0eb7e47163d5",
+ "sha256": "417fba4783e528ee732afa82999300859b065dc59927344b4859c64aae7182de"
+ },
+ "size": 110893
+ },
+ "python-dateutil-2.9.0.post0-pyhe01879c_2.conda": {
+ "name": "python-dateutil",
+ "build": "pyhe01879c_2",
+ "version": "2.9.0.post0",
+ "subdir": "noarch",
+ "channel": "conda-forge",
+ "hash": {
+ "md5": "5b8d21249ff20967101ffa321cab24e8",
+ "sha256": "d6a17ece93bbd5139e02d2bd7dbfa80bee1a4261dced63f65f679121686bf664"
+ },
+ "size": 233310
+ },
+ "pytz-2026.1.post1-pyhcf101f3_0.conda": {
+ "name": "pytz",
+ "build": "pyhcf101f3_0",
+ "version": "2026.1.post1",
+ "subdir": "noarch",
+ "channel": "conda-forge",
+ "hash": {
+ "md5": "f8a489f43a1342219a3a4d69cecc6b25",
+ "sha256": "d35c15c861d5635db1ba847a2e0e7de4c01994999602db1f82e41b5935a9578a"
+ },
+ "size": 201725
+ },
+ "qhull-2020.2-h0b0027f_1.tar.bz2": {
+ "name": "qhull",
+ "build": "h0b0027f_1",
+ "version": "2020.2",
+ "subdir": "emscripten-wasm32",
+ "channel": "emscripten-forge-4x",
+ "hash": {
+ "md5": "d7d859c9b2182b224d795b6c9a6644d3",
+ "sha256": "264e785b4ab779f8c083c854546c948dc792c99ca8cc497557946d20e23a0c5a"
+ },
+ "size": 1688573
+ },
+ "zlib-1.3.2-h8b79025_0.tar.bz2": {
+ "name": "zlib",
+ "build": "h8b79025_0",
+ "version": "1.3.2",
+ "subdir": "emscripten-wasm32",
+ "channel": "emscripten-forge-4x",
+ "hash": {
+ "md5": "651e098a93f31fe5302c19a912944d5d",
+ "sha256": "4b9ba9a6bf69330ebbd337269613f1db3614edb00485c471b54b2993e8a97054"
+ },
+ "size": 886451
+ },
+ "wcwidth-0.6.0-pyhd8ed1ab_0.conda": {
+ "name": "wcwidth",
+ "build": "pyhd8ed1ab_0",
+ "version": "0.6.0",
+ "subdir": "noarch",
+ "channel": "conda-forge",
+ "hash": {
+ "md5": "c3197f8c0d5b955c904616b716aca093",
+ "sha256": "e298b508b2473c4227206800dfb14c39e4b14fd79d4636132e9e1e4244cdf4aa"
+ },
+ "size": 71550
+ },
+ "asttokens-3.0.1-pyhd8ed1ab_0.conda": {
+ "name": "asttokens",
+ "build": "pyhd8ed1ab_0",
+ "version": "3.0.1",
+ "subdir": "noarch",
+ "channel": "conda-forge",
+ "hash": {
+ "md5": "9673a61a297b00016442e022d689faa6",
+ "sha256": "ee4da0f3fe9d59439798ee399ef3e482791e48784873d546e706d0935f9ff010"
+ },
+ "size": 28797
+ },
+ "executing-2.2.1-pyhd8ed1ab_0.conda": {
+ "name": "executing",
+ "build": "pyhd8ed1ab_0",
+ "version": "2.2.1",
+ "subdir": "noarch",
+ "channel": "conda-forge",
+ "hash": {
+ "md5": "ff9efb7f7469aed3c4a8106ffa29593c",
+ "sha256": "210c8165a58fdbf16e626aac93cc4c14dbd551a01d1516be5ecad795d2422cad"
+ },
+ "size": 30753
+ },
+ "pure_eval-0.2.3-pyhd8ed1ab_1.conda": {
+ "name": "pure_eval",
+ "build": "pyhd8ed1ab_1",
+ "version": "0.2.3",
+ "subdir": "noarch",
+ "channel": "conda-forge",
+ "hash": {
+ "md5": "3bfdfb8dbcdc4af1ae3f9a8eb3948f04",
+ "sha256": "71bd24600d14bb171a6321d523486f6a06f855e75e547fa0cb2a0953b02047f0"
+ },
+ "size": 16668
+ },
+ "ptyprocess-0.7.0-pyhd8ed1ab_1.conda": {
+ "name": "ptyprocess",
+ "build": "pyhd8ed1ab_1",
+ "version": "0.7.0",
+ "subdir": "noarch",
+ "channel": "conda-forge",
+ "hash": {
+ "md5": "7d9daffbb8d8e0af0f769dbbcd173a54",
+ "sha256": "a7713dfe30faf17508ec359e0bc7e0983f5d94682492469bd462cdaae9c64d83"
+ },
+ "size": 19457
+ },
+ "six-1.17.0-pyhe01879c_1.conda": {
+ "name": "six",
+ "build": "pyhe01879c_1",
+ "version": "1.17.0",
+ "subdir": "noarch",
+ "channel": "conda-forge",
+ "hash": {
+ "md5": "3339e3b65d58accf4ca4fb8748ab16b3",
+ "sha256": "458227f759d5e3fcec5d9b7acce54e10c9e1f4f4b7ec978f3bfd54ce4ee9853d"
+ },
+ "size": 18455
+ }
+ },
+ "pipPackages": {}
+}
\ No newline at end of file
diff --git a/notebooks_en/1_Catch_Motion.ipynb b/notebooks_en/1_Catch_Motion.ipynb
index 1b3c410..23598a0 100644
--- a/notebooks_en/1_Catch_Motion.ipynb
+++ b/notebooks_en/1_Catch_Motion.ipynb
@@ -88,7 +88,6 @@
"urlretrieve(video_url, fname)\n",
"```\n",
"\n",
- "\n",
"We assume here that you downloaded the video, and you will read it from its local file name. Check the type, and note that you can get info, like the frames-per-second, using `get_meta_data()`. This function returns a dictionary, so to access one data element you would use the key (for example `'fps'` is the key for the data about frames per second)."
]
},
@@ -5358,252 +5357,6 @@
"\n",
"3. _Elementary Mechanics Using Python_ (2015), Anders Malthe-Sorenssen, Undergraduate Lecture Notes in Physics, Springer. Data at https://folk.universitetetioslo.no/malthe/mechbook/fallingtennisball02.d"
]
- },
- {
- "cell_type": "code",
- "execution_count": 1,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/html": [
- "\n",
- "\n"
- ],
- "text/plain": [
- ""
- ]
- },
- "execution_count": 1,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "# Execute this cell to load the notebook's style sheet, then ignore it\n",
- "from IPython.core.display import HTML\n",
- "css_file = '../../../styles/custom.css'\n",
- "HTML(open(css_file, \"r\").read())"
- ]
}
],
"metadata": {
@@ -5622,7 +5375,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
- "version": "3.11.9"
+ "version": "3.14.3"
}
},
"nbformat": 4,
diff --git a/notebooks_en/2_Step_Future.ipynb b/notebooks_en/2_Step_Future.ipynb
index 084ba6a..6354c10 100644
--- a/notebooks_en/2_Step_Future.ipynb
+++ b/notebooks_en/2_Step_Future.ipynb
@@ -891,252 +891,6 @@
"\n",
"4. _Computational Physics with Python_, lecture notes by Eric Ayars, California State University, Chico. Available online on the author's website: https://physics.csuchico.edu/ayars/312/handouts/comp-phys-python.pdf"
]
- },
- {
- "cell_type": "code",
- "execution_count": 1,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/html": [
- "\n",
- "\n"
- ],
- "text/plain": [
- ""
- ]
- },
- "execution_count": 1,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "# Execute this cell to load the notebook's style sheet, then ignore it\n",
- "from IPython.core.display import HTML\n",
- "css_file = '../../../styles/custom.css'\n",
- "HTML(open(css_file, \"r\").read())"
- ]
}
],
"metadata": {
@@ -1155,7 +909,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
- "version": "3.11.9"
+ "version": "3.14.3"
}
},
"nbformat": 4,
diff --git a/notebooks_en/3_Get_Oscillations.ipynb b/notebooks_en/3_Get_Oscillations.ipynb
index 9906a08..4fdf458 100644
--- a/notebooks_en/3_Get_Oscillations.ipynb
+++ b/notebooks_en/3_Get_Oscillations.ipynb
@@ -940,252 +940,6 @@
"\n",
"2. Cromer, A. (1981). Stable solutions using the Euler approximation. _American Journal of Physics_, 49(5), 455-459. https://doi.org/10.1119/1.12478\n"
]
- },
- {
- "cell_type": "code",
- "execution_count": 1,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/html": [
- "\n",
- "\n"
- ],
- "text/plain": [
- ""
- ]
- },
- "execution_count": 1,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "# Execute this cell to load the notebook's style sheet, then ignore it\n",
- "from IPython.core.display import HTML\n",
- "css_file = '../../../styles/custom.css'\n",
- "HTML(open(css_file, \"r\").read())"
- ]
}
],
"metadata": {
@@ -1204,7 +958,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
- "version": "3.13.5"
+ "version": "3.14.3"
}
},
"nbformat": 4,
diff --git a/notebooks_en/4_Birdseye_Vibrations.ipynb b/notebooks_en/4_Birdseye_Vibrations.ipynb
index 430f19e..95070e7 100644
--- a/notebooks_en/4_Birdseye_Vibrations.ipynb
+++ b/notebooks_en/4_Birdseye_Vibrations.ipynb
@@ -39,7 +39,7 @@
"from matplotlib import pyplot\n",
"%matplotlib inline\n",
"pyplot.rc('font', family='serif', size='14')\n",
- "pyplot.rcParams['text.usetex'] = True # Enable LaTeX rendering"
+ "# pyplot.rcParams['text.usetex'] = True # Enable LaTeX rendering"
]
},
{
@@ -1026,252 +1026,6 @@
"V\n",
"2. [Plotting direction fields and trajectories in the phase plane](http://scipy-cookbook.readthedocs.io/items/LoktaVolterraTutorial.html?highlight=direction%20fields#Plotting-direction-fields-and-trajectories-in-the-phase-plane), as part of the Lotka-Volterra tutorial by Pauli Virtanen and Bhupendra, in the _SciPy Cookbook_. "
]
- },
- {
- "cell_type": "code",
- "execution_count": 1,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/html": [
- "\n",
- "\n"
- ],
- "text/plain": [
- ""
- ]
- },
- "execution_count": 1,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "# Execute this cell to load the notebook's style sheet, then ignore it\n",
- "from IPython.core.display import HTML\n",
- "css_file = '../../../styles/custom.css'\n",
- "HTML(open(css_file, \"r\").read())"
- ]
}
],
"metadata": {
@@ -1290,7 +1044,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
- "version": "3.13.5"
+ "version": "3.14.3"
}
},
"nbformat": 4,