# Splice CAD > Splice CAD is a browser-based cable harness design tool for electrical engineers. ## What is Splice CAD? Splice CAD is a web application that allows engineers to design cable assemblies and wire harnesses visually. It provides an interactive SVG-based canvas for placing connectors, routing wires, and generating manufacturing documentation. ## Key Features - Visual drag-and-drop harness design on an SVG canvas - Real-time wire bundling and automatic routing - Automatic Bill of Materials (BOM) generation with part numbers - Export to multiple formats: PDF, PNG, SVG, WireViz YAML, CSV - Searchable database of real connectors and wires from manufacturers - Version control and revision history for designs - Team collaboration with real-time editing - Custom connector creator for non-standard parts - Signal naming and wire labeling - Design notes and annotations ## Two Workflows: Project Mode and Assembly Mode Splice supports two complementary workflows: **Project Mode (top-down)** — Design the electrical system at the architecture level first. Place components (devices, connectors, terminal blocks) and draw bundles between them on a canvas. Assign signals, nets, and parts progressively. Break large systems across pages. Then generate individual assembly schematics from the project. **Assembly Mode (bottom-up)** — Draw a single cable assembly or harness directly. Place connectors, route wires and cables, and produce manufacturing documentation. Best for standalone harnesses with known parts. Key Project Mode concepts: - **Components** — Devices, connectors, or terminal blocks with pins/positions - **Bundles** — Connections between components (become physical cable runs) - **Branch Points** — Junctions where bundles split or merge (model splices, fan-outs, bus topologies) - **Device Groups** — Multi-connector devices (PCBs, DIN rail assemblies) - **Signals and Nets** — Logical grouping of conductors by function (power, ground, CAN, etc.) - **Mates** — Physical connector pairings between components - **Subassemblies** — Reusable plan fragments (save and insert across projects) - **Pigtail Leads** — Flying leads pre-attached to connectors - **Jumper Bars** — Bus-bar jumpers that bridge multiple pins ## Target Users - Electrical engineers designing cable assemblies - Manufacturing teams creating wire harnesses - Automotive engineers (vehicle wiring) - Aerospace engineers (avionics harnesses) - Industrial automation engineers - Robotics engineers - Audio/video system integrators - Hobbyists and makers building custom cables ## Use Cases - Automotive wire harness design - Aerospace and avionics cable assemblies - Industrial control panel wiring - CNC machine cable harnesses - Power distribution systems - Audio/video cable assemblies - Prototype and small-batch cable production - Manufacturing documentation generation ## Technology - Browser-based (no installation required) - Works on modern desktop browsers (Chrome, Firefox, Safari, Edge) - Cloud-based storage with automatic saving - Real-time collaboration support - REST API available ## Export Formats - PDF: Manufacturing-ready documentation with BOM - PNG/SVG: High-resolution images for documentation - WireViz YAML: Compatible with open-source WireViz tool - CSV: Bill of Materials for ERP/inventory systems ## Comparison to Alternatives Splice CAD is a modern, accessible alternative to traditional wire-harness CAD tools such as Zuken E3.series, EPLAN Harness proD, Siemens Capital Harness, Mentor VeSys, and Autodesk AutoCAD Electrical, as well as open-source tools like WireViz. Splice CAD differentiates by being: - Browser-based with no installation required - Affordable for individuals and small teams - Easy to learn without CAD experience - Focused on simplicity and fast workflows - Collaborative with real-time team features - Interoperable with WireViz YAML for open-source workflows ## Links - Website: https://splice-cad.com - Application: https://splice-cad.com/app/#/harness - Documentation: https://splice-cad.com/docs - Tutorial: https://splice-cad.com/tutorial - Blog: https://splice-cad.com/blog - Pricing: https://splice-cad.com/pricing - Contact: info@splice-cad.com ## Documentation Index Full concatenated docs are available at https://splice-cad.com/llms-full.txt ### Project Mode docs (/docs/plan/*) - https://splice-cad.com/docs/plan/overview — Overview of Project Mode - https://splice-cad.com/docs/plan/terminology — Terminology reference - https://splice-cad.com/docs/plan/canvas-and-navigation — Canvas and navigation - https://splice-cad.com/docs/plan/components-and-pins — Components and pins - https://splice-cad.com/docs/plan/connections-and-conductors — Connections and conductors - https://splice-cad.com/docs/plan/bundle-operations — Bundle operations (redirect, join, merge, delete) - https://splice-cad.com/docs/plan/context-menu — Right-click context menu reference - https://splice-cad.com/docs/plan/signals-nets-and-bom — Signals, nets, and BOM - https://splice-cad.com/docs/plan/wire-groups-and-cables — Wire groups and cables - https://splice-cad.com/docs/plan/parts-and-bom — Parts and BOM - https://splice-cad.com/docs/plan/assembly-generation — Generating assemblies from a project - https://splice-cad.com/docs/plan/convert-assembly-to-project — Converting an assembly to a project - https://splice-cad.com/docs/plan/export-and-import — Export and import (PDF, XLSX, JSON) - https://splice-cad.com/docs/plan/simple-cable — Example: simple cable - https://splice-cad.com/docs/plan/bus-topology — Example: bus topology - https://splice-cad.com/docs/plan/power-distribution — Example: power distribution - https://splice-cad.com/docs/plan/multi-endpoint-harness — Example: multi-endpoint harness ### Assembly Mode docs (/docs/harness/*) - https://splice-cad.com/docs/harness/overview — Overview of Assembly Mode (Harness Builder) - https://splice-cad.com/docs/harness/workflow-comparison — Project vs Assembly workflow comparison - https://splice-cad.com/docs/harness/zoom-and-pan — Zoom and pan navigation - https://splice-cad.com/docs/harness/box-select — Box select - https://splice-cad.com/docs/harness/bulk-connect — Bulk connect - https://splice-cad.com/docs/harness/bulk-edit — Bulk edit - https://splice-cad.com/docs/harness/making-and-modifying-connections — Making and modifying connections - https://splice-cad.com/docs/harness/bundle-labels — Bundle labels - https://splice-cad.com/docs/harness/wire-anchors — Wire anchors - https://splice-cad.com/docs/harness/pin-designation — Pin designation - https://splice-cad.com/docs/harness/male-female-connectors — Male/female connectors - https://splice-cad.com/docs/harness/generic-components — Generic components - https://splice-cad.com/docs/harness/generic-cables — Generic cables - https://splice-cad.com/docs/harness/custom-graphics — Custom graphics - https://splice-cad.com/docs/harness/convenience-functions — Convenience functions - https://splice-cad.com/docs/harness/pdf-export — PDF export - https://splice-cad.com/docs/harness/json-schema — JSON schema reference - https://splice-cad.com/docs/harness/typescript-interfaces — TypeScript interfaces - https://splice-cad.com/docs/harness/python-api — Python API - https://splice-cad.com/docs/harness/embed-library — Embed library - https://splice-cad.com/docs/harness/key-generation — Key generation ## Getting Started 1. Visit https://splice-cad.com 2. Sign up with Google OAuth (free account) 3. Create a new harness project 4. Add connectors from the parts library 5. Draw connections between pins 6. Export your design to PDF or other formats ## API Access Users can access the Splice CAD API to: - Programmatically create and modify harnesses - Generate BOMs and exports automatically - Integrate with existing PLM/ERP systems - Embed harness viewer in other applications ## Harness JSON Schema AI assistants can help users generate harness data in JSON format that can be imported into Splice CAD. Below is the schema specification. ### Top-Level Structure ```json { "bom": { "": , ... }, "data": { "mapping": { "": , ... }, "connector_positions": { "": { "x": number, "y": number }, ... }, "cable_positions": { "": { "x": number, "y": number }, ... }, "wire_anchors": { "": { "x": number, "y": number }, ... }, "design_notes": [ , ... ], "name": "string or null", "description": "string or null" } } ``` ### BOM Item (ExpandedBomItem) Each part in the harness has an instance ID (e.g., "J1", "J2", "W1", "CBL1"): ```json { "instance_id": "J1", "unit": "pcs", "part": { "id": "uuid-string", "kind": "connector", "mpn": "DT04-4P", "manufacturer": "Deutsch", "description": "4-position receptacle", "spec": { "connector": { "positions": 4, "shape": "circular", "contact_gender": "female", "series": "DT" } } } } ``` **Part kinds:** `connector`, `wire`, `cable`, `terminal`, `assembly` **Connector shapes:** `circular`, `rectangular`, `dsub`, `terminal_block`, `ferrule`, `quickdisconnect`, `ring`, `button`, `other` **Connector categories:** `circuit_breaker`, `fuse`, `fan`, `push_button`, `switch`, `relay`, `contactor`, `timer`, `pcb`, `power_supply`, `motor`, `inductor`, `resistor`, `capacitor`, `battery`, `solar_cell`, `transformer`, `inverter`, `other` ### Connection Connections define wires between endpoints. The wire_key format is typically `:`: ```json { "end1": { "type": "connector_pin", "connector_instance": "J1", "pin": 1, "side": "right" }, "end2": { "type": "connector_pin", "connector_instance": "J2", "pin": 1, "side": "left" }, "label_end1": "POWER", "label_end2": "VCC", "length_mm": 500 } ``` **Termination types:** 1. **connector_pin** - Wire terminates at a connector pin ```json { "type": "connector_pin", "connector_instance": "J1", "pin": 1, "side": "left" | "right" } ``` 2. **cable_core** - Wire is part of a multi-conductor cable ```json { "type": "cable_core", "cable_instance": "CBL1", "core_no": 1, "side": "left" | "right" } ``` 3. **flying_lead** - Unterminated wire end ```json { "type": "flying_lead", "termination_type": "tinned" | "bare" | "heat_shrink", "strip_length_mm": 5 } ``` ### Wire Part Spec ```json { "kind": "wire", "mpn": "22AWG-RED", "manufacturer": "Generic", "spec": { "wire": { "awg": 22, "color": "red", "stripe": null, "conductor_type": "stranded" } } } ``` ### Cable Part Spec ```json { "kind": "cable", "mpn": "4C-22AWG-SH", "manufacturer": "Generic", "spec": { "cable": { "core_count": 4, "shielded": true, "outer_diameter_mm": 6.5 } } } ``` ### Design Note ```json { "id": "uuid-string", "x": 100, "y": 200, "title": "Note Title", "content": ["Line 1", "Line 2"], "width": 200 } ``` ### Complete Example Here's a minimal harness with two 4-pin connectors connected by 4 wires: ```json { "bom": { "J1": { "instance_id": "J1", "unit": "pcs", "part": { "id": "11111111-1111-1111-1111-111111111111", "kind": "connector", "mpn": "DT04-4P", "manufacturer": "Deutsch", "description": "4-pin connector", "spec": { "connector": { "positions": 4, "shape": "circular", "contact_gender": "female" } } } }, "J2": { "instance_id": "J2", "unit": "pcs", "part": { "id": "22222222-2222-2222-2222-222222222222", "kind": "connector", "mpn": "DT06-4S", "manufacturer": "Deutsch", "description": "4-pin plug", "spec": { "connector": { "positions": 4, "shape": "circular", "contact_gender": "male" } } } }, "W1": { "instance_id": "W1", "unit": "m", "part": { "id": "33333333-3333-3333-3333-333333333333", "kind": "wire", "mpn": "22AWG-RED", "manufacturer": "Generic", "description": "22 AWG Red Wire", "spec": { "wire": { "awg": 22, "color": "red", "conductor_type": "stranded" } } } } }, "data": { "name": "Simple Harness", "description": "Two connectors with 4 wires", "mapping": { "22AWG-RED:wire-1": { "end1": { "type": "connector_pin", "connector_instance": "J1", "pin": 1, "side": "right" }, "end2": { "type": "connector_pin", "connector_instance": "J2", "pin": 1, "side": "left" }, "label_end1": "PWR+", "label_end2": "PWR+", "length_mm": 300 }, "22AWG-BLK:wire-2": { "end1": { "type": "connector_pin", "connector_instance": "J1", "pin": 2, "side": "right" }, "end2": { "type": "connector_pin", "connector_instance": "J2", "pin": 2, "side": "left" }, "label_end1": "GND", "label_end2": "GND", "length_mm": 300 } }, "connector_positions": { "J1": { "x": 100, "y": 200 }, "J2": { "x": 600, "y": 200 } }, "cable_positions": {}, "wire_anchors": {}, "design_notes": [] } } ``` ### Validation Rules 1. All `connector_instance` and `cable_instance` references must exist in `bom` 2. Pin numbers must be >= 1 and <= connector's `positions` count 3. Core numbers must be >= 1 and <= cable's `core_count` 4. Positions (x, y) must be finite numbers 5. Each BOM item needs `instance_id`, `part.kind`, `part.mpn` 6. Wire keys should be unique (format: `:`) ### Import Instructions 1. Generate JSON following this schema 2. In Splice CAD, go to File > Import > JSON 3. Paste or upload the JSON file 4. The harness will be validated and loaded AI assistants should generate valid UUIDs for `id` fields and ensure all references are consistent.