A curated set of draw.io shape libraries for the AV equipment Insert Productions actually rents, plus a Python toolkit that lets Claude compose .drawio signal-flow diagrams from free-form briefs.
30 libraries · ~328 device shapes · synced to Current RMS, accuracy-verified against manufacturer specs, June 2026.
See coverage_status.md for the up-to-date inventory.
libraries/—.xmlfiles you load into draw.io as Custom Libraries (File → Open Library). Most are per-manufacturer (yamaha.xml,sennheiser.xml); a few are thematic groupings of single-device-per-vendor kit (audio-other.xml,displays.xml,comms.xml,network.xml,playback.xml,cameras.xml,mics.xml,extenders.xml,dj-kit.xml,led-panels.xml,touchscreens.xml,computers.xml).sources/— Python device specs that build each library. Edit a spec, runpython3 sources/<file>.py, the matchinglibraries/<file>.xmlregenerates.scripts/— the engine:library_io.pyparses/builds libraries,compose_diagram.pyturns a JSON spec into a.drawiofile,cable_styles.pyis the single source of truth for the cable convention,build_all.pyrebuilds everything.reference/cable_conventions.md— the cable colour/line/width legend in human-readable form.coverage_status.md— running tracker of what kit is in the libraries vs the rental list.SKILL.md— instructions for Claude.
For project managers and the rest of the team, see the Signal Flow User Guide PDF (in the technical team's shared drive) for the friendlier walkthrough.
The short version:
- Click the green Code button at the top of this repo → Download ZIP. Extract somewhere sensible.
- Open draw.io (desktop or app.diagrams.net).
- File → Open Library from File… → navigate into the
libraries/folder → select all 30.xmlfiles (Cmd+A or Ctrl+A) → Open. - Libraries appear in the left panel. Drag any device onto the canvas.
_cables.xml contains pre-styled edge templates you can drop between ports for the cable convention.
If you have the insert-drawio-signal-flow skill installed in claude.ai, just describe the flow in plain English ("ATEM 2 M/E feeds two SX40s via Videohub, with confidence returns to FOH") and Claude returns a .drawio file. See SKILL.md for the full spec the skill speaks under the hood.
python3 scripts/compose_diagram.py \
--spec /path/to/spec.json \
--output /path/to/output.drawioSpec format:
{
"title": "Studio A — camera routing",
"title_block": true,
"legend": true,
"devices": [
{ "id": "atem", "library": "blackmagic", "title": "atem 2/me" },
{ "id": "sx40", "library": "brompton", "title": "tessera SX40" }
],
"connections": [
{ "from": "atem.PGM ME1", "to": "sx40.SDI 1 (12G)", "cable": "sdi" }
]
}-
Open the relevant
sources/<file>.py(or create a new one — copy the structure frombrompton.py). -
Append a new dict to
DEVICES:{ "title": "v-1200hd", "name": "Roland V-1200HD", "subtitle": "Multi-format Switcher", "tags": ["Switcher", "Video"], "width": 160, "loose_ports": ["IP:", "Tally"], "inputs": ["SDI 1", "SDI 2", "HDMI 1", "HDMI 2"], "outputs": ["PGM", "PVW", "AUX 1", "AUX 2"], "control": ["LAN", "MIDI"], } -
Run
python3 sources/<file>.py. The matching.xmlregenerates. -
Commit and push so the team gets the new shape on their next pull.
Colour = signal type, line style = transport (solid copper, dashed fibre, dotted wireless), width = criticality. See reference/cable_conventions.md for the full table.
| Type | Colour | Notes |
|---|---|---|
| SDI | yellow | dashed if over fibre |
| HDMI / DP | purple | |
| IP video (NDI / 2110) | blue | dashed if over fibre |
| LED data (Cat6 / 10G) | dark green | dashed if over fibre |
| AES3 / MADI / Dante | mid green | dashed for Dante |
| Analog audio | pink | |
| DMX / sACN | magenta | |
| LTC / Genlock | orange | dashed for genlock |
| Network / Control | thin grey | |
| Wireless RF / IR | grey | dotted |
| USB | light grey | |
| Power 13/16A | thick black | |
| Power 32A 3-phase | thick red |
for f in sources/*.py; do python3 "$f"; doneOr:
python3 scripts/build_all.pySee coverage_status.md for the full per-library device table — it's the single source of truth, updated on every stock sync (last: June 2026, which added projectors.xml and roland.xml and ~75 shapes).
Cables, adapters, power, brackets, mounts, stands, packaging, ladders, batteries, chargers, antennas without active electronics, software licences, sub-rent placeholders, lighting fixtures (different domain — DMX universes belong in their own skill).
Internal Insert Productions tool. Device specs are derived from manufacturer-published port lists; if you redistribute, check trademark guida