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 optionalFIGURE_SVGmode targets the v3.6 group format; the newtests/test_bipedalwbc_figure.pyfreezes the same vertices for the shipped SVG.- The artwork keeps its paper colours on a white plate in dark mode.