This is a synthesis of two outside-agent reads that the user pasted in, cross-checked against what XOSC actually ships at v0.4. It is not gospel — both outside agents were unaware of features XOSC already has, so several "easy wins" they suggested are already done. The table below tells the truth.
The competitive landscape
| Tool | Strength | Weakness vs. XOSC |
|---|---|---|
| Chataigne | Exhaustive protocol support, free, open-source, deeply scriptable. | Tree-based UI, steep learning curve. XOSC's node graph is much more approachable. |
| Bitfocus Companion | Industry standard for Stream Deck-style button grids. Massive device library. | Locked to button-grid paradigm; can't model "any input → any OSC" without fighting it. |
| OSCulator | The Wii-mote / MIDI → OSC tool. Very simple, very mature. | macOS only. Windows VJs have no equivalent — XOSC fills exactly that gap. |
| TouchDesigner / Max/MSP | Limitless. | Heavy, paid, learning curve measured in months. Not the right tool for "wire a button to a clip." |
| ShowCockpit | Modular routing, lighting-designer-flavoured. | Paid, per-driver licensing. |
Where XOSC already lives:
- Windows-first (the underserved market for OSCulator-style tools).
- Node-graph UI, no scripting required.
- Native serial (COM) input — Resolume + Companion both miss this.
- Air-gap-friendly (CSP-locked, no telemetry, loopback default).
- 10 themes, 2-pane inspector layout, real keyboard shortcuts.
- Live composition picker for Resolume (v0.4) — paths are pickable, not typed.
The agents' "easy wins" — already shipped vs. still open
| Agent suggestion | Status |
|---|---|
| Resolume "magic dropdown" — fetch composition tree, show parameters | Shipped in v0.4. src/features/inspector/ResolumeParamPicker.tsx + electron/resolume-bridge.ts:fetch-json. |
| Live clip thumbnails | Shipped in v0.4. Polled at ~1.5 Hz when WS is open. |
| Resolume parameter ranges + types | Shipped in v0.4. resolumeTree.ts parses valuetype, min, max, options. |
| Range / curve / invert / deadzone per input | Shipped in v0.3. Full InputTransform in store.ts. |
| OSC throttling for continuous values | Shipped in v0.2. Per-stream coalescing in electron/osc-engine.ts and resolume-bridge.ts. |
| Resolume WS feedback as input source | Shipped in v0.3. resolume-in node + useResolumeSubscriptions. |
| Modifier-prefix ("a", "+", etc.) | Shipped in v0.2. OutputInspector preset. |
| Premium dark visual identity | Shipped baseline. Solder/Phosphor/Blueprint/Vapor/etc. — 8 dark themes + 2 light. |
| Math / logic nodes (clamp, scale, hold, double-tap) | Shipped in v0.5.0. Full transform node kind. |
| OSC inbound listener (incoming packets become events) | Shipped in v0.5.0. osc-in node kind. |
| mDNS / network auto-discovery | Shipped in v0.5.3. bonjour-service browser + host picker. |
| Two-way Resolume → Arduino LED feedback | Shipped in v0.5.4. New serial-out sink: payload template with {v} / {V} / {s} placeholders, line ending picker; shares the open port with a serial-in node on the same path. |
| Dedicated OSC monitor node | Shipped in v0.5.1. monitor sink kind. |
| Hold-timer / double-tap modifiers | Shipped in v0.5.0 as transform ops. |
| Portable / no-installer build | Declined by user. |
Net: every "above and beyond" suggestion from the outside agents is now in production except DMX (parked indefinitely per user). v0.5.4 marks the v0.5 line as feature-complete except #16.
Where XOSC currently loses vs. competitors
These are the honest gaps. Use them as the bar to clear before declaring v0.5 done.
| Gap | Tool that has it | Severity for XOSC users | Plan |
|---|---|---|---|
| Sequence / cue-list / beat-pad surface | Chataigne, ShowCockpit, lighting consoles | M (only matters if user does lighting) | DMX milestone (dmx-feasibility.md). |
| Network DMX (Art-Net, sACN) | Most lighting tools | M-H for lighting use | DMX milestone, phase 16e. |
| Plugin / extension system | Chataigne | L | Out of scope for v0.5; revisit. |
| Multi-machine / sync | Companion (companion-satellite), TouchDesigner | L for solo use, M for multi-stage | Not planned. |
| Physical Stream Deck / control-surface integration | Companion | M | Wire a Stream Deck via Companion + OSC; XOSC consumes the OSC. Acceptable. |
| Audio-reactive triggers (BPM detection from line-in) | Resolume, Ableton | L | Punt indefinitely. |
| Macro / scripted automations | Chataigne (JS) | L-M | Logic nodes cover the 80 %; full scripting deferred. |
The visual-identity question
One outside agent leaned hard on "biomechanical / obsidian / pulsing crimson lines." XOSC has already chosen a design language: flat, hairline borders, no fake-glossy panels, scrollbar accent, 10 themes. The Solder default is amber-on-graphite, deliberately not the cyan-purple SaaS template.
We're not going to add gloss, neon, or "viscous" anything. The themes already include Vapor (synthwave), Phosphor (CRT green), and Newsprint (light) for variety. The pulse-on-fire effect for wires is the right kind of feedback to add — but as a small theme-tinted halo, not a "physical pulse." Tracked under v0.5 backlog #15 (the OSC monitor) implicitly: when traffic flows, the wire breathes.
The "compete by being lighter" thesis
XOSC's actual edge is:
1. Setup → first OSC packet in ~60 seconds. No scripts, no daemons, no licensing.
2. The graph is the documentation. A new user can see the whole flow without reading a manual.
3. Air-gap friendly. The venue's offline laptop runs XOSC fine.
4. Node-graph + Resolume picker is a 1-2 punch nobody else has. Companion is grid-based; Chataigne is tree-based; XOSC is graph-based. The picker turns Resolume integration from copy-paste into point-and-click.
Don't lose any of those by chasing feature parity. v0.5 should make the existing strengths sharper, not blur them.