Wire Harness Designer

Install?

Design wire harnesses in the browser and export a professional, print-ready PDF assembly drawing. Pick connectors, wire gauge, colour and stripe, sleeving, and connector-to-connector lengths; get a live fishbone diagram with a wire schedule and title block. Click any wire or connector in the drawing to edit it. Save and reload the whole harness as JSON.

adom-wiki pkg install adom/wire-harness-designer

Latest: v1.0.0, published

Contents

README

markdown

Wire Harness Designer

Design a wire harness in the browser and export a professional, print-ready PDF assembly drawing. Pick connectors, wire gauge, colour and stripe, sleeving, and connector-to-connector lengths; get a live fishbone diagram with a wire schedule and a title block. Click any wire or connector in the drawing to edit it. Save and reload the whole harness as JSON.

Wire Harness Designer

Install

adom-wiki pkg install adom/wire-harness-designer
wire-harness-designer open        # starts the server and opens the webview

What it does

  • Connectors: type (Deutsch, Molex, JST, M12, D-Sub, ring terminals, flying leads, …), pin count, and where each sits: auto, an end, or a branch up/down.
  • Wires: From/To connector + pin, AWG gauge (drives strand thickness), colour with an optional stripe, and a signal/notes label.
  • Lengths are per connector pair. Set J1 ↔ J2 once and every wire on that pair uses it (the Segment Lengths section). Older files with per-wire lengths migrate automatically.
  • Wire wrap / sleeving: braided, spiral, convoluted tube, harness tape, or heat shrink over a span of the trunk, each drawn with a distinct hatch and a callout.
  • Live diagram: connector face views with numbered pins, a colourful wire ribbon along the trunk, sleeves, length dimensions, a wire schedule, and a standard title block.
  • Click-to-edit: click any wire or connector in the drawing to change its colour, gauge, signal, length, type, pins, and more, inline.
  • Export PDF: a real vector PDF (crisp at any zoom), multi-page when the schedule overflows. Sheet sizes: Tabloid, A3, Letter.
  • Save / Load JSON: the whole harness is one adom.wire-harness/v1 document, so a drawing can be regenerated, diffed, or version-controlled.

The drawing

Harness diagram, wire schedule, and title block

Everything you see (connectors, the wire ribbon, sleeves, the schedule, and the title block) comes from one layout engine, so the on-screen preview matches the exported PDF exactly.

Click any wire or connector to edit it

Click-to-edit popover

CLI

wire-harness-designer open       # start the server (if needed) and open the webview  [default]
wire-harness-designer serve      # run the static server in the foreground
wire-harness-designer health     # is the server running?
wire-harness-designer --version

Default port is 8830 (override with PORT). Everything (preview, PDF, JSON) runs client-side; the Node server only serves static files so the webview has a URL to load.

How it is built

One layout engine emits a renderer-agnostic draw list that feeds both outputs:

public/harness-layout.js   model JSON -> draw list (PDF points, y-down)
public/render-svg.js       draw list -> SVG   (live preview + click targets)
public/render-pdf.js       draw list -> jsPDF (vector PDF export)
public/app.js              state, editors, click-to-edit, tooltips, toasts, save/load
server.js                  static file server (no app logic)

Harness JSON

{
  "schema": "adom.wire-harness/v1",
  "meta": { "name": "Sensor Harness", "partNumber": "WH-1042", "revision": "A" },
  "connectors": [ { "id": "J1", "type": "Deutsch DT06-4S", "pins": 4, "side": "left" } ],
  "wires":      [ { "id": "W1", "from": { "conn": "J1", "pin": 1 },
                    "to": { "conn": "TB1", "pin": 1 }, "gauge": "16", "color": "RD",
                    "signal": "+12V" } ],
  "segments":   [ { "a": "J1", "b": "TB1", "length": 780 } ],
  "wraps":      [ { "type": "Braided sleeve", "start": 40, "end": 300 } ]
}

samples/sensor-harness.json is the built-in starter (also the Sample button).

Drive API

For AI/CLI testing the app exposes window.harnessApp: getModel(), setModel(m), exportPDF(), saveJSON(), pdfDataUrl(), toast(msg, type).

License

MIT.