Feature List - bglen/wire-harness-core GitHub Wiki

Feature List

This list is intended to drive development by breaking down high-level functional requirements into individual features that can be developed and integrated into the app piece-by-piece. This list is not organized by priority, or what will be included in an MVP.

General Application

  • Cross-platform availability

    • Web app (via browser)

    • Offline native app (Electron-based for Windows/Mac/Linux)

  • Local file-based storage

    • Human-readable YAML or JSON formats (.wh_proj, .wh_sch, etc.)

    • Autosave and manual save with "dirty" state tracking

    • No cloud storage, fully local and portable

  • Git-friendly file structure

    • Files are structured to minimize merge conflicts

    • Semantic versioning support for projects

    • Optional wh.gitignore file for good repo management

  • Undo/redo history system

    • Immutable state editing (copy-on-write)

    • Unlimited undo/redo stack with timestamps

  • Extensible API for LLM integration

    • Fully documented JSON-based harness schema

    • Exposed API hooks for LLMs to generate/edit harnesses

    • Sandbox mode for simulated LLM-generated edits

  • Responsive UI and theming

    • Light/dark modes

    • Zoom/pan for canvases

    • Layouts that adapt to screen size and OS

Project Data

  • Project creation and loading

    • Start from scratch

    • import .wh_proj

    • Import from external netlists or ECAD exports

  • Project metadata

    • Name, description, tags

    • Versioning, author, date

  • Multi-sheet (hierarchal) schematic support

    • Tabs or hierarchical tree view

    • Cross-sheet net referencing

  • File structure

    • project.wh_proj – entry point

    • schematic.wh_sch, layout.wh_2d, layout.wh_3d, components.wh_lib, etc.

  • Multiple Harness Configurations

    • Create multiple versions of the harness schematics to support different features / changes.

    • The default editing context will apply to all configurations. Switch context to specifically edit a certain config. These edits will automatically be highlighted in output files (PDF harness schematics)

    • This feature is particularly used in automotive environments.

Schematics

  • Object placement and editing

    • Drag-and-drop wires, terminals, connectors

    • Rotate, group, align

  • Netlist editing

    • Manual entry or import from ECAD tools

    • Auto-generate nets from wire connections

  • Labeling and annotations

    • Add net names, wire IDs, comments

    • Auto-label wires based on netlist or config

  • Schematic snapping and grid system

    • Adjustable grid size

    • Smart alignment and spacing tools

  • Copy/paste support across sheets

    • Clipboard integration

    • Object duplication with ID reassignment

Components

  • Component creation wizard for manual creation

    • Define pin count, layout, gender, mount type

    • Assign part number and metadata

  • Auto-generation of components from datasheet.

    • Use pre-trained LLM datasheet reading model to populate the creation wizard

    • dragging a datasheet directly into the canvas will active the wizard

  • Wire types and attributes

    • Define gauge, insulation, color, voltage rating

    • Include mechanical and electrical specs

  • Splices, terminations, breakouts

    • Specialized parts with rule-based usage
  • Reusable component templates

    • Save user-created connectors and wires for future use

    • Allow users to save common bundling / looming schemes so they can be easily re-applied

Libraries

  • Local component library system

    • Stored in components.wh_lib

    • User-editable JSON/YAML format

  • Distributor API integration with search in-app

    • Octopart

    • Digikey

    • Mouser

    • Auto-fill metadata and datasheets

  • Part metadata fields

    • Manufacturer

    • part number

    • specs, RoHS compliance, cost, etc.

  • Library import/export

    • Share part libraries across users or organizations

2D Routing

  • 2D layout editor

    • Draw bundles, wires, branches

    • Add mounting points and clamps

  • Connector positioning and orientation

    • Define physical location and rotation

    • Mirror/layout tools

  • Routing path tools

    • Auto-bundle wires by shared route

    • Manual and assisted routing

  • Length estimation

    • Auto-calculate length of each wire

    • Include slack or tolerance factor

3D Routing

  • Import 3D assemblies

    • Load vehicle or system geometry

    • STEP import

    • IGES import

  • Route harness in 3D

    • Drag wires through mounting points

    • Define cable path constraints

    • harness bend radius limitations

    • Define component locations (connectors, devices)

    • intuitive 3D interaction with wires

  • Auto-flatten to 2D harness board

    • For drawing harness build boards from 3D route

Design Rule Checks

  • Pop up to easily set up DRC at the creation of a new project

  • Schematic DRC

    • Unconnected pins

    • Open nets

    • Invalid net labels

    • Short circuits / net overlaps

    • Incompatible wire size with connector

    • Solder connection identification (ex:, notify if solder cup connectors violate rule for no soldering set by user)

    • unnecessary wire size change (ex: 20 awg goes to 18 awg without splicing)

    • inconsistent labeling

    • inconsistent wire colors

    • connector missing components (TPA, terminals, boots, key, plugs, etc)

    • incompatible connector mating (keying issue, pin - pin, etc)

  • 3D Layout DRC

    • Wire length limits (voltage drop limit)

    • Unsupported bend radius

    • unsupported harness (length / weight limits between mounting points)

    • Missing strain reliefs

  • Library validation

    • Incomplete component metadata

    • Deprecated parts warning

Project Data Exports

  • Bill of Materials (BOM)

    • CSV export with part data and quantities
  • Wire / cut-list

    • Pin-to-pin wire mappings with length, color, gauge
  • Schematic PDF export

    • Printable format for documentation
  • DXF export for 2D layouts

    • Send to vendors or import into CAD tools
  • 3D harness export (future)

    • STEP file generation from 3D routing