<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type="text/xsl" href="rss.xsl"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>Jaegyeom Kim Blog</title>
        <link>https://cmaybe.github.io/blog</link>
        <description>Jaegyeom Kim Blog</description>
        <lastBuildDate>Wed, 09 Sep 2026 00:00:00 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>en</language>
        <item>
            <title><![CDATA[Why WebAssembly Instead of ROS or ROS 2?]]></title>
            <link>https://cmaybe.github.io/blog/why-wasm-not-ros</link>
            <guid>https://cmaybe.github.io/blog/why-wasm-not-ros</guid>
            <pubDate>Wed, 09 Sep 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Why this blog uses WebAssembly for an interactive browser demo instead of ROS or ROS 2.]]></description>
            <content:encoded><![CDATA[<p>ROS and ROS 2 are excellent choices for building complete robot systems. They provide communication, tools, drivers, visualization, and a large ecosystem.</p>
<p>This blog post has a narrower goal: make the mathematics of kinematics, planning, and dynamics visible and runnable in a browser.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="a-different-problem">A different problem<a href="https://cmaybe.github.io/blog/why-wasm-not-ros#a-different-problem" class="hash-link" aria-label="Direct link to A different problem" title="Direct link to A different problem" translate="no">​</a></h2>
<p>This blog post is not trying to operate a robot or connect multiple hardware nodes. It demonstrates forward kinematics, inverse kinematics, motion planning, and dynamics.</p>
<p>For that purpose, the main requirement is a small, self-contained program that anyone can open and run without preparing a robotics development environment.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="why-webassembly-fits">Why WebAssembly fits<a href="https://cmaybe.github.io/blog/why-wasm-not-ros#why-webassembly-fits" class="hash-link" aria-label="Direct link to Why WebAssembly fits" title="Direct link to Why WebAssembly fits" translate="no">​</a></h2>
<ul>
<li class=""><strong>No installation:</strong> visitors do not need ROS, ROS 2, a workspace, or system packages.</li>
<li class=""><strong>Runs in the browser:</strong> the same page works on Linux, macOS, Windows, and mobile devices.</li>
<li class=""><strong>Interactive visualization:</strong> sliders and 3D controls can call the compiled algorithms immediately.</li>
<li class=""><strong>Native implementation:</strong> the computational core remains C++ and is compiled to WebAssembly rather than rewritten in JavaScript.</li>
<li class=""><strong>Easy sharing:</strong> a static site can host the complete example without a backend or robot middleware.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="what-ros-or-ros-2-would-add">What ROS or ROS 2 would add<a href="https://cmaybe.github.io/blog/why-wasm-not-ros#what-ros-or-ros-2-would-add" class="hash-link" aria-label="Direct link to What ROS or ROS 2 would add" title="Direct link to What ROS or ROS 2 would add" translate="no">​</a></h2>
<p>ROS or ROS 2 would be the better choice when the example needs hardware drivers, sensor streams, distributed nodes, robot description files, lifecycle management, or integration with a larger autonomy stack.</p>
<p>Those are system-integration requirements, not requirements for explaining the underlying mathematics. ROS and ROS 2 organize a running robot system, while WebAssembly packages a computation so that it can run inside a web page.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="the-practical-boundary">The practical boundary<a href="https://cmaybe.github.io/blog/why-wasm-not-ros#the-practical-boundary" class="hash-link" aria-label="Direct link to The practical boundary" title="Direct link to The practical boundary" translate="no">​</a></h2>
<p>The browser demo keeps the algorithmic core small and observable. A real robot application can still use the same C++ concepts inside a ROS or ROS 2 node, where middleware connects the planner and controller to sensors, actuators, and other processes.</p>
<p>For this project, WebAssembly is a presentation and distribution choice. It lowers the barrier to experimentation while keeping the robotics implementation close to the native C++ code.</p>]]></content:encoded>
            <category>Robotics</category>
            <category>WebAssembly</category>
            <category>Modern Robotics</category>
        </item>
    </channel>
</rss>