Home - bglen/wire-harness-core GitHub Wiki

Potential Product Names

harness.io, wireharness.io, router.io, Wireframe

One-sentence value proposition

  • Addressing wire harness productivity issues.
  • Supercharging wire harness design productivity.
  • Design wire harnesses at lightning speed with a modern, cloud-free ECAD tool built for hardware pros.
  • The fastest, most intuitive way to design wire harnessesβ€”no cloud, no clutter.
  • Harness design reimagined: intuitive, offline, and built for speed.

Product Marketing


Product Description

  • A cross-platform wire harness design tool for building hardware much quicker. Availible as a web app and Windows/Mac/Linux native offline app.

  • Extremely intuitive for EEs familiar with ECAD workflows. The product follows a typical ECAD workflow, starting with netlist creation -> schematic layout -> schematic DRC -> 3D layout -> 3D DRC

  • Cloud-free: human-readable design files allow native git integration into user's organizations. These design files can be created and uploaded to the tool, but we never store user design data, which is appealing for sensitive customers.

  • Underlying code-based harness design API will allow future auto-generation of harness components, and allow existing LLMs with API knowledge to easily automate busywork associated with harness design

  • App integration with electronics distributors such as Octopart, Digikey, etc allow part data and harness component creation to be seamless (similar to RapidHarness). Local harness libraries are created. This will probably turn into the creation of a standard database of components that users can start off with.

  • Maintain a single source of truth with native git integration.

  • Detect, Identify, and resolve design issues with ECAD-like Design Rules


Product Aspects

To Do

Done

  • side-bar UI to allow basic functionality and tools
  • basic grid scaling functionality in fabric.js
  • Project File Formats
  • define how Data Handling works
  • wire-harness-electron builds from submodule wire-harness-core
  • buildable Electron app via wire-harness-electron
  • project.wh_proj File Schemas
  • schematic.wh_sch File Schemas

Tech Stack

Wire Harness Core

Native App (Windows/Mac/Linux)

  • Electron for cross platform native apps
  • electron-vite as a built tool for Electron and easy JS package bundling
  • vite-plugin-static-copy plugin to make Shoelace assets publicly accesable
  • wire-harness-core as a submodule

Web App

Front End

  • Static HTML template with Bootstrap elements for everything outside the editor
  • wire-harness-core as a submodule

Backend

  • Python + Flask (login, file uploads, routing)

Directory Structure

wire-harness-core/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ core/                        # Core logic: schema validation, state, undo/redo, etc.
β”‚   β”‚   β”œβ”€β”€ state/
β”‚   β”‚   β”‚   β”œβ”€β”€ projectState.js      # Manages project data, undo/redo, dirty tracking
β”‚   β”‚   β”‚   └── history.js           # Handles undo/redo stack logic
β”‚   β”‚   β”œβ”€β”€ io/
β”‚   β”‚   β”‚   β”œβ”€β”€ loader.js            # Loads and parses .wh_proj files
β”‚   β”‚   β”‚   β”œβ”€β”€ saver.js             # Save functionality (to disk or download blob)
β”‚   β”‚   β”‚   β”œβ”€β”€ schemaValidator.js   # Uses AJV to validate against schemas
β”‚   β”‚   β”‚   └── fileUtils.js         # Helpers for file type detection, path handling, etc.
β”‚   β”‚   └── schema/
β”‚   β”‚       └── project.schema.json  # JSON Schema for project.wh_proj
β”‚   β”‚
β”‚   └── ui/                          # UI rendering logic (not tied to a specific framework)
β”‚       β”œβ”€β”€ components/
β”‚       β”‚   β”œβ”€β”€ LoadButton.js        # File input and load handler
β”‚       β”‚   └── SaveButton.js
β”‚       β”œβ”€β”€ canvas/                  # Canvas/grid rendering logic (e.g., Fabric.js or WebGL)
β”‚       β”‚   └── canvasManager.js
β”‚       └── utils/
β”‚           └── debounce.js
β”‚  
β”œβ”€β”€ README.md
└── .gitignore