跳转至

v3.8 BipedalWBC framework on the homepage

Built and verified in a Linux sandbox (MkDocs 1.6.1, Material 9.7.6, headless Chromium 156) on 2026-11-02. Not committed, pushed or deployed.

Approach

Earlier rounds re-implemented PowerPoint's layout (text line model, arrowheads, image resampling) and never converged. This round starts from PowerPoint's own PDF export of Origin_framework.pptx (pdftocairo -svg), so every glyph outline, glyph origin, outline, arrowhead and composited image layer is PowerPoint's. tools/build_bipedalwbc_figure.py only regroups the 246 primitives into the 60 OOXML leaf elements, in OOXML paint order. Two deliberate substitutions: the 12 math labels use the PPTX MathJax vector strips with their srcRect (sharper than PowerPoint's 300 ppi raster), and "Delopyment" is respelled with PowerPoint's own glyphs and advances.

Fidelity (6 px/pt, Chromium render of the committed SVG vs Poppler render of the PowerPoint PDF)

Check Result Evidence
Text ink boxes, 17 labels (all except respelled title) max 0.167 pt (1 px at 6×); 9 labels exact tools/compare_bipedalwbc_render.py, output/fidelity/v38/report.json
Mean absolute difference, whole figure 1.54 / 255 same
Residual blobs surviving 5 px erosion only the respelled "Deployment" (intended) and 15 px inside the trajectory icon (raster resampling) output/fidelity/v38/diff.png
Connector routes vs OOXML and approved v3.6 vertices ≤ 0.01 pt; arrow tips on OOXML endpoints ≤ 0.02 pt tests/test_bipedalwbc_figure.py
Paint order equals OOXML and the approved v3.6 order (60/60) same

Behaviour

Check Result
Old "Ideas in motion" figures removed; section is "Projects & Ideas"
Reveal at 1440×900 pins; 6 steps; ghost outlines → outline trace → fill/label fade → connector draw with arrowhead on arrival → one signal dot; elements never move
Play once releases at the end, static afterwards; scroll back static; instant navigation away and back static
End key finishes figure, reaches footer, no pin left
Viewports pins at 1024×768, 768×1024, 1280×720, 1366×600, 1440×900, 1920×1080; card fits the viewport below the header
Reduced motion, ≤ 700 px wide, no JS static full figure with numbered step text; narrow screens add six per-step zoomed views (same artwork, viewBox only)
320–1920 × light/dark no horizontal overflow, no page errors
/HOME/friends/ no errors, no overflow
Strict build pass
Python suites tests 22 (3 skipped), tools 138

Limitations

  • WebKit/Safari and Firefox were not tested (Chromium only).
  • Real touch devices were not tested; touch was emulated.
  • In the narrow-screen step views, the smallest 10 pt labels render at about 7.6 px at 375 px wide (6.1 px at 320). The full figure above them is legible only when zoomed.
  • tests/test_bipedalwbc_connector_freeze.py's optional FIGURE_SVG mode targets the v3.6 group format; the new tests/test_bipedalwbc_figure.py freezes the same vertices for the shipped SVG.
  • The artwork keeps its paper colours on a white plate in dark mode.