Skill Graph — embed demo

The graph in a small iframe, as a host page would carry it. The preview is look-only (a tap or hold only shows the invitation); ⛶ or double-tap opens the full interactive view. A skill's donut has a mocap slot: it plays the skill's clip in the mocap viewer pack next to this one (no shipped skill has a clip yet, so today it says so). Standalone page: packs/skills-graph/index.html.

Example Full-View deep links (open standalone)

URL parameter reference

The URL params are the embedder's API. Bold marks the default (passable explicitly to lock it against future default changes); list params also accept all. Group and skill ids are folder-qualified since the sports separation: parkour:vault, parkour:basic_vault.

ParamMeaningPossible values
mocapHost: where the mocap-viewer pack lives (relative to the entry page)a URL, e.g. ../mocap-viewer/. Default: none (the mocap modal says the viewer is not configured)
clipbaseHost: where the mocap-clips pack lives; a skill's mocap string is a path inside ita URL, e.g. ../mocap-clips/. Default: the viewer's own bundled demo clips
viewWhich view bootstree (Skilltree) · full (Full View) · design
treeSkilltree to open (Skilltree view only)a skilltree id from skilltrees.json. Default: the first tree
sportsData folders ON (content*)folder ids from sports.json (common, parkour, trampoline) · all. Default: all
groupsSkill groups ON (content*)qualified group ids (parkour:vault,parkour:flip,…) · all. Default: every group except those flagged defaultOff in the data (today the common folder's unspecified, workout, position, kick, twist)
commonnessCommonness values ON (content*)basics · regular · uncommon · all. Default: basics
hidefamiliesHide childless children of big BASE_MOVE_IS families (content*)0 · 1
edgesEdge types ON (content*)REQUIRES · BASE_MOVE_IS · TRANSFERS_TO · TMP_PATH · APPLICABLE_AT · PART_OF · all. Default: PART_OF
nodesNode kinds ON (content*)skill · group · obstacle · all. Default: skill,group
obstaclesSingle obstacles ON, when the kind is on (content*)obstacle ids · all. Default: all
badgesBadge fields, FIRST = node center (content*)difficulty · exertion · commitment · symmetric · learned · milestone · commonness (max 5). Default: difficulty
hlSticky highlights (on top)tag:<tag> · group:<qualified group id> · field:<boolean skill field> (= explicitly true), ordered (last match wins the color). Default: none
selSelected node(s), framed on load (on top)qualified skill ids (parkour:kong); groups/obstacles with their namespace prefix (g:parkour:vault, o:<id>). Default: none
colorColor modegroup · neutral · value:<field> with field ∈ difficulty · exertion · commitment
layoutLayout: mode:pick:direction[:inv]free · order:<field>:<dir> (field as in color) · hierarchy:<edge>:<dir> with edge ∈ REQUIRES · BASE_MOVE_IS · TRANSFERS_TO; dir ∈ lr · tb (default follows screen shape); append :inv to invert
autospace / autoreformat / immediatedrag / authoringBehavior toggles0 · 1. Defaults: 1, 1, 0, 0
bloodlineReveal-on-select modeoff · neighbors · full (legacy 0 = off, 1 = full)
modeSkilltree mode for this loadlearner · explorer. Default: the device's stored choice, else learner
lang / skilllangUI language / skill-name languagede-DE · en-US (UI); any data language for skill names. Default: the device language
themeColor themeauto · light · dark
appIn-app embed: the fullscreen button becomes "back to the app"1. Default: off
titlePage/header title (entry page chrome, Full View only)any text. Default: "Skill Graph"

* content params: if any of them is present, the content families start from blank (nothing on) and the given lists apply — a link fully describes what it shows. sports and obstacles are the exception: absent = all on. A bare URL boots the curated default view.