<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[SimTooReal]]></title><description><![CDATA[SimTooReal]]></description><link>https://simtoorealhq.hashnode.dev</link><image><url>https://cdn.hashnode.com/res/hashnode/image/upload/v1593680282896/kNC7E8IR4.png</url><title>SimTooReal</title><link>https://simtoorealhq.hashnode.dev</link></image><generator>RSS for Node</generator><lastBuildDate>Tue, 22 Sep 2026 13:35:36 GMT</lastBuildDate><atom:link href="https://simtoorealhq.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Reality OS — fail-closed last gate before metal (SIM ≠ metal)]]></title><description><![CDATA[Reality OS — fail-closed last gate before metal
Learned policies are good at proposing. They are dangerous when given unconstrained authority over motors. The industry often collapses “it worked in si]]></description><link>https://simtoorealhq.hashnode.dev/reality-os-fail-closed-last-gate-before-metal-sim-metal</link><guid isPermaLink="true">https://simtoorealhq.hashnode.dev/reality-os-fail-closed-last-gate-before-metal-sim-metal</guid><category><![CDATA[robotics]]></category><category><![CDATA[Rust]]></category><category><![CDATA[ros2]]></category><category><![CDATA[safety]]></category><category><![CDATA[PhysicalAI]]></category><dc:creator><![CDATA[SimTooReal]]></dc:creator><pubDate>Thu, 17 Sep 2026 14:21:26 GMT</pubDate><content:encoded><![CDATA[<h1>Reality OS — fail-closed last gate before metal</h1>
<p>Learned policies are good at proposing. They are dangerous when given unconstrained authority over motors. The industry often collapses “it worked in sim” into “it is safe on metal.” Those are different worlds.</p>
<p><strong>Reality OS</strong> (Rust last-gate implementation) is the fail-closed gate for <strong>Reality OS + Governor</strong>: a fail-closed certified <em>command path</em> design (design intent — not an ISO/SIL certificate we pretend to hold). Public description string we use:</p>
<blockquote>
<p>Rust last-gate for Reality OS + Governor: fail-closed certified command path. SIM ≠ metal.</p>
</blockquote>
<p>The repository is private on GitHub (<code>sim-too-real/reality-os-rust</code>), licensed <strong>MIT</strong>, and available for pilot diligence. It is a <code>theworld-runtime</code> port of the authority kernel.</p>
<p>Contact: <strong><a href="mailto:vardhan@simtooreal.com">vardhan@simtooreal.com</a></strong> · <a href="https://simtooreal.com">simtooreal.com</a> · <a href="https://robosynx.com">robosynx.com</a></p>
<h2>Fail-closed Governor rules</h2>
<p>The Governor may only:</p>
<ul>
<li><strong>allow</strong></li>
<li><strong>narrow</strong></li>
<li><strong>abort</strong></li>
</ul>
<p>It <strong>cannot</strong>:</p>
<ul>
<li>invent a plan</li>
<li>upgrade a refuse into an allow</li>
<li>pretend SIM evidence is metal authority</li>
</ul>
<p><strong>SIM ≠ metal</strong> is stamped into the honesty model, not left as a slide footnote. Learned systems never write motors. That is not a branding line; it is an architectural refusal.</p>
<h2>Crate map</h2>
<p>The workspace is split so authority, physics analogs, plant I/O, and session surfaces stay separable:</p>
<table>
<thead>
<tr>
<th>Crate / surface</th>
<th>Role</th>
</tr>
</thead>
<tbody><tr>
<td><code>realityos-kernel</code></td>
<td>Core authority / last-gate types</td>
</tr>
<tr>
<td><code>physics</code></td>
<td>Physics-side support for gated paths</td>
</tr>
<tr>
<td><code>data</code></td>
<td>Data plane for gated sessions</td>
</tr>
<tr>
<td><code>plant</code></td>
<td>Plant interface boundary</td>
</tr>
<tr>
<td><code>governor</code></td>
<td>Allow / narrow / abort only</td>
</tr>
<tr>
<td><code>core</code></td>
<td>Shared primitives</td>
</tr>
<tr>
<td><code>session</code></td>
<td>Session lifecycle</td>
</tr>
<tr>
<td><code>ros2</code></td>
<td>ROS 2 integration surface</td>
</tr>
<tr>
<td><code>vport</code></td>
<td>Viewport / visualization boundary (does not grant metal authority)</td>
</tr>
<tr>
<td><code>hil</code></td>
<td>Hardware-in-the-loop analogs</td>
</tr>
<tr>
<td><code>ros-governor</code> CLI</td>
<td>Operator-facing governor CLI</td>
</tr>
</tbody></table>
<p>The point of the split is auditability: a last-gate that is one opaque binary with “AI inside” is not something we want to defend in diligence.</p>
<h2>Honest ledger (what we claim and refuse)</h2>
<p>We encourage public technical writing about this stack <strong>only</strong> when it stays inside the ledger:</p>
<table>
<thead>
<tr>
<th>Claim area</th>
<th>Status we will say in public</th>
</tr>
</thead>
<tbody><tr>
<td>SIM last-gate</td>
<td><strong>Yes</strong> — design and implementation intent for sim-side gated command path</td>
</tr>
<tr>
<td>ONLINE metal / MEASURED PFL</td>
<td><strong>No</strong></td>
</tr>
<tr>
<td>ISO 13850 / 10218 / 26262 / SIL</td>
<td><strong>No</strong></td>
</tr>
<tr>
<td>Independent HW e-stop</td>
<td><strong>No</strong> (we do not claim we supply one)</td>
</tr>
<tr>
<td>Invent any machine</td>
<td><strong>No</strong></td>
</tr>
<tr>
<td>VLA last-write on actuators</td>
<td><strong>No</strong></td>
</tr>
</tbody></table>
<p>If a partner needs metal MEASURED, ISO/SIL, or independent hardware e-stop, that is a real engineering program — not something we paper over with a README badge.</p>
<h2>What “certified command path” means here</h2>
<p>In our wording, <strong>certified command path</strong> means: the software path is designed so only allow / narrow / abort exits exist, refusals cannot be upgraded by the learner, and SIM is not silently re-labeled as metal.</p>
<p>It does <strong>not</strong> mean: third-party ISO 10218 / 26262 / SIL certification complete. When we do not have that evidence, we say <strong>No</strong>.</p>
<h2>How it sits next to RoboSynx and SimTooReal</h2>
<ul>
<li><strong><a href="https://robosynx.com">RoboSynx</a></strong> — free browser tools for URDF / SDF / MJCF, validation, 3D view, ROS 2 scaffold</li>
<li><strong><a href="https://simtooreal.com">SimTooReal</a></strong> — Isaac Lab / MuJoCo training ops, failure detection, transfer scoring</li>
<li><strong>Reality OS / Reality OS</strong> — last-gate when a team is ready to talk about command authority near hardware (pilot)</li>
</ul>
<p>Typical path: clean files → honest training metrics → transfer score → only then a fail-closed gate conversation. Skipping to metal because a demo looked smooth is how trust dies.</p>
<h2>Pilots</h2>
<p>For teams putting learned policies near metal, we discuss Reality OS as a <strong>pilot upsell</strong> with explicit scope: SIM/HIL analogs, governor behavior, and a written honesty ledger for what is still missing (metal MEASURED, independent e-stop, standards evidence).</p>
<p><strong><a href="mailto:vardhan@simtooreal.com">vardhan@simtooreal.com</a></strong></p>
<p>Fail closed. Name the holes. SIM ≠ metal.</p>
]]></content:encoded></item><item><title><![CDATA[Mech OS Datastack — machine-usable mechanical claims with provenance]]></title><description><![CDATA[Mech OS Datastack — machine-usable mechanical claims with provenance
Industrial and mechanical engineering already have enormous knowledge. Most of it is trapped in PDFs, tribal spreadsheets, and trib]]></description><link>https://simtoorealhq.hashnode.dev/mech-os-datastack-machine-usable-mechanical-claims-with-provenance</link><guid isPermaLink="true">https://simtoorealhq.hashnode.dev/mech-os-datastack-machine-usable-mechanical-claims-with-provenance</guid><category><![CDATA[robotics]]></category><category><![CDATA[#MechanicalEngineering]]></category><category><![CDATA[data]]></category><category><![CDATA[PhysicalAI]]></category><dc:creator><![CDATA[SimTooReal]]></dc:creator><pubDate>Thu, 17 Sep 2026 14:14:46 GMT</pubDate><content:encoded><![CDATA[<h1>Mech OS Datastack — machine-usable mechanical claims with provenance</h1>
<p>Industrial and mechanical engineering already have enormous knowledge. Most of it is trapped in PDFs, tribal spreadsheets, and tribal memory. Physical AI teams need something else: <strong>machine-usable claims</strong> — rights, provenance, SI quantities, and curves — that a program can query without pretending English is a database.</p>
<p><strong>Mech OS Datastack</strong> is that claims store. It is private R&amp;D / pilot diligence today. It is deliberately <strong>not</strong> a second Mech OS kernel.</p>
<p>Contact: <strong><a href="mailto:vardhan@simtooreal.com">vardhan@simtooreal.com</a></strong> · <a href="https://simtooreal.com">simtooreal.com</a> · <a href="https://robosynx.com">robosynx.com</a></p>
<h2>What it stores</h2>
<p>Mech OS Datastack holds machine-usable claims about mechanical and industrial engineering:</p>
<ul>
<li><strong>rights</strong> — what you are allowed to use and under what conditions the claim was recorded</li>
<li><strong>provenance</strong> — where a claim came from, so audits are possible</li>
<li><strong>SI quantities</strong> — numbers with units, not orphan floats</li>
<li><strong>curves</strong> — engineering curves as first-class data, not screenshots</li>
</ul>
<p>The goal is a queryable substrate for diligence and tooling — not a blog of engineering tips.</p>
<h2>Explicit non-goals</h2>
<p>Two lines we will not blur:</p>
<ol>
<li><strong>Not a second Mech OS kernel.</strong> Mech OS owns mechanism admission, conservation structure, and the honesty stamp for admitted knowing. Mech OS Datastack does <strong>not</strong> write <code>AdmissionStatus</code>.</li>
<li><strong>Fixture materials in v1 are synthetic.</strong> They are not AISI allowables. If a demo curve looks like a steel grade table, treat it as a fixture unless provenance says otherwise.</li>
</ol>
<p>Cross-repo verification with Mech OS exists so the claims store and the admission kernel stay honest about their division of labor.</p>
<h2>v1 shape: local CAS + SQLite</h2>
<p>The v1 architecture is intentionally boring and inspectable:</p>
<ul>
<li><strong>Local content-addressed storage (CAS)</strong> for blobs and artifacts</li>
<li><strong>SQLite</strong> for queryable claim indexes and metadata</li>
<li>A <strong>CLI</strong> surface:</li>
</ul>
<table>
<thead>
<tr>
<th>Command</th>
<th>Role</th>
</tr>
</thead>
<tbody><tr>
<td><code>ed ingest</code></td>
<td>Bring claims / artifacts in</td>
</tr>
<tr>
<td><code>ed query</code></td>
<td>Ask the store</td>
</tr>
<tr>
<td><code>ed gaps</code></td>
<td>Surface what is missing</td>
</tr>
<tr>
<td><code>ed report</code></td>
<td>Human-readable summaries</td>
</tr>
<tr>
<td><code>ed provenance</code></td>
<td>Trace origin</td>
</tr>
<tr>
<td><code>ed pack</code></td>
<td>Package for diligence / transfer</td>
</tr>
</tbody></table>
<p>Boring storage is a feature. Auditors and pilot partners should be able to reason about the disk layout without a mystery service.</p>
<h2>Why separate it from Mech OS</h2>
<p>Mech OS answers: <em>is this a unit-checked mechanism that may be admitted?</em></p>
<p>Mech OS Datastack answers: <em>what mechanical/industrial claims do we have, with what rights and provenance, expressed in SI?</em></p>
<p>Mixing those jobs into one process creates a temptation: let a data ingest silently become an admission. We refuse that. Mech OS Datastack never writes <code>AdmissionStatus</code>. Mech OS remains the admission authority for knowing; <code>machine::verify</code> remains the simulation-admission authority on the FP side.</p>
<h2>How teams should use this in diligence</h2>
<p>If you are evaluating SimTooReal / RoboSynx and ask “what about mechanical allowables and claim provenance?”, the honest answer is:</p>
<ul>
<li>Mech OS Datastack is the <strong>claims and provenance layer</strong></li>
<li>Mech OS is the <strong>mechanism admission layer</strong></li>
<li>Neither replaces a certified materials database you already trust for production metal decisions</li>
<li>Synthetic fixtures in v1 are labeled as such — do not treat them as AISI allowables</li>
</ul>
<p>That sentence is longer than a slogan. It is also true.</p>
<h2>Relation to the public products</h2>
<p><a href="https://robosynx.com">RoboSynx</a> helps you get robot files into simulators without install tax. <a href="https://simtooreal.com">SimTooReal</a> helps you monitor Isaac Lab / MuJoCo training and score transfer readiness.</p>
<p>Mech OS Datastack is deeper stack: the industrial-claim substrate behind diligence conversations. Public writing about it is encouraged when it stays diligence-honest — provenance, SI, synthetic fixtures named as synthetic, no fake certifications.</p>
<h2>Contact</h2>
<p><strong><a href="mailto:vardhan@simtooreal.com">vardhan@simtooreal.com</a></strong></p>
<ul>
<li><a href="https://simtooreal.com">simtooreal.com</a></li>
<li><a href="https://robosynx.com">robosynx.com</a></li>
</ul>
<p>Claims without provenance are rumors. We prefer queries with a trail.</p>
]]></content:encoded></item><item><title><![CDATA[Measuring the Sim-to-Real Gap: A Five-Pillar Framework for Robot Policy Readiness
]]></title><description><![CDATA[One of the most expensive mistakes in robotics is confusing simulation success with deployment readiness.
A policy can converge beautifully in simulation and still fail on hardware because the real ga]]></description><link>https://simtoorealhq.hashnode.dev/measuring-the-sim-to-real-gap-a-five-pillar-framework-for-robot-policy-readiness</link><guid isPermaLink="true">https://simtoorealhq.hashnode.dev/measuring-the-sim-to-real-gap-a-five-pillar-framework-for-robot-policy-readiness</guid><category><![CDATA[robotics]]></category><category><![CDATA[MuJoCo]]></category><category><![CDATA[AI]]></category><category><![CDATA[robot]]></category><dc:creator><![CDATA[SimTooReal]]></dc:creator><pubDate>Sat, 06 Jun 2026 23:41:41 GMT</pubDate><content:encoded><![CDATA[<p>One of the most expensive mistakes in robotics is confusing simulation success with deployment readiness.</p>
<p>A policy can converge beautifully in simulation and still fail on hardware because the real gap was never made explicit.</p>
<p>The problem is not that engineers do not know the sim-to-real problem exists. The problem is that many teams still evaluate it informally.</p>
<p>That usually sounds like:</p>
<ul>
<li><p>"the motions looked close enough"</p>
</li>
<li><p>"it worked on one unit"</p>
</li>
<li><p>"we added some domain randomization"</p>
</li>
<li><p>"the reward was stable"</p>
</li>
</ul>
<p>Those are not readiness criteria. They are anecdotes.</p>
<p>This article outlines a better framework based on the public SimTooReal platform: a five-pillar way to score and reason about sim-to-real transfer before a policy reaches real hardware.</p>
<h2>Why reward is not a transfer metric</h2>
<p>Reward is useful for optimization. It is not sufficient for readiness.</p>
<p>A high reward in simulation can coexist with:</p>
<ul>
<li><p>poor coverage of the action space that matters on hardware</p>
</li>
<li><p>miscalibrated friction or damping</p>
</li>
<li><p>joint distributions that diverge sharply from the real robot</p>
</li>
<li><p>stable task completion in sim but unstable control behavior in the real system</p>
</li>
</ul>
<p>This is why transfer needs its own metrics.</p>
<h2>The five-pillar framework</h2>
<p>SimTooReal describes its transfer advisor around five pillars:</p>
<ol>
<li><p>joint distribution overlap</p>
</li>
<li><p>action space coverage</p>
</li>
<li><p>physics parameter alignment</p>
</li>
<li><p>behavioral consistency</p>
</li>
<li><p>simulator fidelity</p>
</li>
</ol>
<p>Together, these give a more complete answer to the question:</p>
<p><strong>"Is this policy ready for hardware, and if not, why not?"</strong></p>
<h2>1. Joint distribution overlap</h2>
<p>Start with the actual behavior of the robot body.</p>
<p>Compare simulated and real trajectories joint by joint:</p>
<ul>
<li><p>angle distributions</p>
</li>
<li><p>velocity distributions</p>
</li>
<li><p>torque behavior where available</p>
</li>
<li><p>tail events and saturation regions</p>
</li>
</ul>
<p>If one knee, hip, wrist, or gripper joint behaves differently in reality, the failure is rarely "global." It is often local and mechanical. A per-joint view helps surface that early.</p>
<p>SimTooReal presents this as joint distribution overlap using techniques like histogram comparison and KL-style divergence checks.</p>
<p>That is a strong first pillar because it makes the failure spatially visible.</p>
<h2>2. Action space coverage</h2>
<p>A policy can look robust in sim while operating inside a narrow comfort zone.</p>
<p>That becomes dangerous when real-world disturbances push the controller into regions it barely explored during training.</p>
<p>Action coverage asks:</p>
<ul>
<li><p>how much of the policy's available action space was actually exercised</p>
</li>
<li><p>whether the real environment is demanding action behaviors not well represented in simulation</p>
</li>
<li><p>whether the run is robust or simply lucky inside a constrained envelope</p>
</li>
</ul>
<p>Low action coverage is one of the clearest signals of brittle transfer.</p>
<h2>3. Physics parameter alignment</h2>
<p>This is where system identification becomes central.</p>
<p>If the policy is fighting the wrong world model, transfer will degrade no matter how clean the training curves look.</p>
<p>SimTooReal frames this around optimization over parameters like:</p>
<ul>
<li><p>mass and inertia</p>
</li>
<li><p>friction</p>
</li>
<li><p>damping</p>
</li>
<li><p>contact restitution</p>
</li>
</ul>
<p>The idea is straightforward: use real trajectories to minimize divergence between the simulator and hardware by tuning the simulator parameters more aggressively and more systematically than manual trial-and-error allows.</p>
<p>This is one of the highest-leverage parts of transfer work because small mismatches in contact and actuation physics often create outsized behavioral differences.</p>
<h2>4. Behavioral consistency</h2>
<p>Sometimes the per-joint statistics look acceptable, but the behavior still feels wrong.</p>
<p>That is why an end-to-end consistency metric matters.</p>
<p>SimTooReal ties this to trajectory similarity, including Dynamic Time Warping style comparisons. The goal is to ask:</p>
<ul>
<li><p>does the policy express the same behavior in the same task across sim and reality</p>
</li>
<li><p>do the time-aligned trajectories remain meaningfully close</p>
</li>
<li><p>do the observed deviations indicate a harmless style change or a real control risk</p>
</li>
</ul>
<p>This is the layer that catches "it technically moves, but not the same way."</p>
<h2>5. Simulator fidelity</h2>
<p>The last pillar is more holistic.</p>
<p>Even when the controller and physics seem acceptable, the simulator can still be missing important realities:</p>
<ul>
<li><p>contact force accuracy</p>
</li>
<li><p>sensor noise characteristics</p>
</li>
<li><p>visual mismatches for perception-driven policies</p>
</li>
<li><p>unmodeled latency or actuator response</p>
</li>
</ul>
<p>Fidelity is the broadest pillar because it asks whether the world itself is good enough to support transfer claims.</p>
<p>It is also the pillar that makes teams more honest. Some transfer failures are not policy failures. They are world-model failures.</p>
<h2>Making the score actionable</h2>
<p>A transfer score is only useful if it changes what the team does next.</p>
<p>That means every low-scoring dimension should connect to a concrete intervention:</p>
<ul>
<li><p>poor joint overlap -&gt; inspect local mechanics, penalties, or joint constraints</p>
</li>
<li><p>poor action coverage -&gt; expand perturbations and scenario diversity</p>
</li>
<li><p>poor physics alignment -&gt; run system ID and recalibrate simulator parameters</p>
</li>
<li><p>poor behavioral consistency -&gt; analyze task-level divergence and sequence timing</p>
</li>
<li><p>poor fidelity -&gt; revisit contact, sensing, and latency assumptions</p>
</li>
</ul>
<p>This is what makes the framework useful for engineering. It is not just evaluative. It is directional.</p>
<h2>From scoring to deployment gates</h2>
<p>The most important consequence of explicit transfer scoring is that it enables explicit deployment gates.</p>
<p>On the public SimTooReal deployment pages, transfer validation feeds into a broader safety flow that includes:</p>
<ul>
<li><p>physics safety checks</p>
</li>
<li><p>operator preflight</p>
</li>
<li><p>shadow mode</p>
</li>
<li><p>canary rollout</p>
</li>
</ul>
<p>That is exactly where transfer analysis belongs.</p>
<p>The right question is not:</p>
<p>"Did the policy get a decent score?"</p>
<p>The right question is:</p>
<p>"Did the policy earn promotion to the next deployment stage?"</p>
<h2>Practical starting point</h2>
<p>One useful wedge in the SimTooReal product is that the transfer benchmark is public and easy to try:</p>
<p><code>https://www.simtooreal.com/score</code></p>
<p>The CLI pattern shown on the site is:</p>
<pre><code class="language-bash">simtooreal score --sim sim_traj.csv --real real_traj.csv
</code></pre>
<p>That matters because it lowers the barrier to better evaluation habits. Teams do not need to buy into a full platform before they start quantifying transfer.</p>
<h2>Final thought</h2>
<p>Sim-to-real transfer gets better when it stops being treated as an intuition problem.</p>
<p>A team that can measure:</p>
<ul>
<li><p>body-level divergence</p>
</li>
<li><p>action coverage</p>
</li>
<li><p>physics mismatch</p>
</li>
<li><p>behavioral inconsistency</p>
</li>
<li><p>fidelity gaps</p>
</li>
</ul>
<p>will make better deployment decisions than a team that only watches reward curves and demo videos.</p>
<p>That is why this five-pillar model is useful. It turns transfer into something you can inspect, compare, and gate with discipline.</p>
]]></content:encoded></item></channel></rss>