<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Scientific Computing on SoloSoft</title><link>https://www.solosoft.dev/tags/scientific-computing/</link><description>Recent content in Scientific Computing on SoloSoft</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Fri, 01 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://www.solosoft.dev/tags/scientific-computing/index.xml" rel="self" type="application/rss+xml"/><item><title>Pyodide: Run Python in the Browser with WebAssembly</title><link>https://www.solosoft.dev/post/pyodide-wasm-2026/</link><pubDate>Fri, 01 May 2026 00:00:00 +0000</pubDate><guid>https://www.solosoft.dev/post/pyodide-wasm-2026/</guid><description>&lt;p&gt;What if you could run Python in the browser with full access to NumPy, pandas, scikit-learn, and matplotlib, without any server backend? That is exactly what Pyodide delivers. It ports CPython to WebAssembly, making the full Python scientific computing stack available directly in the browser.&lt;/p&gt;
&lt;p&gt;Pyodide is a transformative technology for data science education, interactive documentation, and browser-based computation. Users can analyze data, train models, and visualize results entirely client-side. No servers to provision, no Python runtime to install, and no data leaves the user&amp;rsquo;s computer.&lt;/p&gt;
&lt;h2 id="what-pyodide-includes"&gt;What Pyodide Includes&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Package&lt;/th&gt;
 &lt;th&gt;Description&lt;/th&gt;
 &lt;th&gt;Version Bundled&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;NumPy&lt;/td&gt;
 &lt;td&gt;Numerical computing&lt;/td&gt;
 &lt;td&gt;Latest stable&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;pandas&lt;/td&gt;
 &lt;td&gt;Data analysis&lt;/td&gt;
 &lt;td&gt;Latest stable&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;scikit-learn&lt;/td&gt;
 &lt;td&gt;Machine learning&lt;/td&gt;
 &lt;td&gt;Latest stable&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;matplotlib&lt;/td&gt;
 &lt;td&gt;Data visualization&lt;/td&gt;
 &lt;td&gt;Latest stable&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;scipy&lt;/td&gt;
 &lt;td&gt;Scientific computing&lt;/td&gt;
 &lt;td&gt;Latest stable&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="architecture-overview"&gt;Architecture Overview&lt;/h2&gt;

&lt;figure class="mermaid-wrapper not-prose" role="img" aria-label="Mermaid diagram"&gt;
 &lt;div class="mermaid-container"&gt;
 &lt;pre class="mermaid"&gt;flowchart LR
 A[Browser Tab] --&amp;gt; B[Pyodide Runtime]
 subgraph WebAssembly
 C[CPython Interpreter]
 D[Compiled Extensions]
 E[Python Standard Library]
 end
 subgraph JavaScript
 F[Pyodide JS API]
 G[DOM Bridge]
 end
 B --&amp;gt; C
 B --&amp;gt; D
 B --&amp;gt; E
 B --&amp;gt; F
 F --&amp;gt; G
 G --&amp;gt; H[HTML/CSS DOM]&lt;/pre&gt;
 &lt;script type="application/mermaid"&gt;flowchart LR
 A[Browser Tab] --&gt; B[Pyodide Runtime]
 subgraph WebAssembly
 C[CPython Interpreter]
 D[Compiled Extensions]
 E[Python Standard Library]
 end
 subgraph JavaScript
 F[Pyodide JS API]
 G[DOM Bridge]
 end
 B --&gt; C
 B --&gt; D
 B --&gt; E
 B --&gt; F
 F --&gt; G
 G --&gt; H[HTML/CSS DOM]&lt;/script&gt;
 &lt;/div&gt;
&lt;/figure&gt;&lt;p&gt;Pyodide runs a full CPython interpreter compiled to WebAssembly. Python packages with C extensions are compiled to WASM and linked dynamically. The JavaScript bridge allows seamless data exchange between Python and JavaScript, enabling Python code to manipulate the DOM directly.&lt;/p&gt;</description></item></channel></rss>