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