{#- Embedded Viser playback (static client + .viser recordings). See https://viser.studio/main/embedded_visualizations/ The Viser client resolves ``playbackPath`` relative to ``viser-client/index.html``, so we must not use MkDocs' ``| url`` filter for recordings (it emits paths relative to the *docs* page, e.g. ``assets/...``, which become ``.../viser-client/assets/...`` and 404). Use a **root-absolute** path derived from ``config.site_url`` instead (e.g. ``/OpenSCvx/assets/viser-recordings/...``). -#} {% set _su = (config.site_url or "") %} {% set _osc_prefix = "" %} {% if _su and "://" in _su %} {% set _hostpath = _su.split("://", 1)[1] %} {% if "/" in _hostpath %} {% set _tail = _hostpath.split("/", 1)[1].rstrip("/") %} {% if _tail %} {% set _osc_prefix = "/" + _tail %} {% endif %} {% endif %} {% endif %} {% set osc_viser_client = ('assets/viser-client/index.html') | url %} {% set osc_viser_play_drone = _osc_prefix ~ "/assets/viser-recordings/drone_racing.viser" %} {% set osc_viser_play_franka = _osc_prefix ~ "/assets/viser-recordings/franka_fr3v2_pick_place.viser" %}

Trajectory Previews

Click. Drag. Zoom.