feat(sitl): wasm harness gains the real gz backend (unblocks the Gazebo wasm leg) - #391
Open
avrabe wants to merge 1 commit into
Open
feat(sitl): wasm harness gains the real gz backend (unblocks the Gazebo wasm leg)#391avrabe wants to merge 1 commit into
avrabe wants to merge 1 commit into
Conversation
BACKEND=gazebo selects the same GazeboPhysics bridge examples/falcon-sitl-gz flies, so a wasm result and a native result are comparable rather than merely adjacent. BACKEND=mock (default) is unchanged and stays dependency-free — it is the analytic plant every number in #380 came from. The gz deps are pinned to the SAME versions falcon-sitl-gz uses. A different gz-transport here would be a different bridge than the one every native SITL result was produced with, and the comparison would stop meaning anything. Builds verified both ways on this machine: `cargo build --release` (mock) and `cargo build --release --features gazebo` against brew's gz-transport13, both exit 0. RUNNING it against a live world is currently blocked by a broken local Gazebo, not by anything here: gz-sim8 8.14.0 links libswscale.9.dylib while the installed ffmpeg 9.0.1 ships libswscale.10, so `gz sim` dies in dlopen before the world loads. Also note `gz sim` is not registered as a subcommand unless GZ_CONFIG_PATH includes /opt/homebrew/opt/gz-sim8/share/gz — worth writing down, because the symptom is `gz` printing its help text with no error. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HvusAXYbHLyv3uTzfBcMbG
avrabe
enabled auto-merge (squash)
September 10, 2026 21:06
avrabe
disabled auto-merge
September 10, 2026 21:17
avrabe
enabled auto-merge (squash)
September 10, 2026 21:56
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Cherry-picked out of #382, which is held for jess's input on the
sensor-frameshape. This commit is orthogonal to that seam change and should not wait on it.
Why now
#381 landed, so the Gazebo job stopped skipping its wasm leg — and immediately
failed:
The workflow runs
cargo build --release --features gazebo, but on main thatfeature is an empty stub (
gazebo = []), declared only so the#[cfg(feature = "gazebo")]blocks inside the includedphysics.rsare aknown-false cfg rather than an unexpected one. The real deps live on #382's branch.
What it adds
BACKEND=gazeboselects the sameGazeboPhysicsbridgeexamples/falcon-sitl-gzflies, so a wasm result and a native result are comparable rather than merely
adjacent.
BACKEND=mock(default) is unchanged and stays dependency-free — it isthe analytic plant every number in #380 came from.
gz deps pinned to the same versions
falcon-sitl-gzuses. A differentgz-transporthere would be a different bridge than the one every native SITLresult was produced with, and the comparison would stop meaning anything.
Verified both ways locally
Refs #386, #382, #380
🤖 Generated with Claude Code
https://claude.ai/code/session_01HvusAXYbHLyv3uTzfBcMbG