# 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 ## 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: 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 ## Links - Website: https://splice-cad.com - Application: https://splice-cad.com/harness-builder - Documentation: https://splice-cad.com/documentation - Pricing: https://splice-cad.com/pricing - Contact: info@splice-cad.com ## 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.