How SpecVolt turns electrical loads into a fully compliant panel layout — try it live
Inside SpecVolt’s three-stage API pipeline: from load specifications to UL508A-compliant physical layouts — with interactive simulations you can run right here.
The problem with manual panel layout
Designing a physical electrical control panel is not just a wiring problem — it is a spatial constraint-satisfaction problem. Every component has physical dimensions, heat dissipation, clearance requirements, and zone restrictions defined by UL508A and NEC Article 110.26. A designer working manually must track all of these simultaneously, often catching violations only during the UL inspector visit.
SpecVolt’s panel layout API automates this. You provide electrical load specifications; the API returns a fully dimensioned layout with component positions, wireways, and zones — with a built-in compliance check.
The three-stage pipeline
The pipeline maps naturally onto three concerns: what components are needed, what rules constrain their placement, and where to put them. A fourth verification stage gives you a clean compliance report.
Why four stages instead of one? The solver (stage 3) can optimize freely without worrying about reporting. The verifier (stage 4) produces a clean audit trail without cluttering the placement algorithm. And constraints (stage 2) are generated dynamically — so switching from UL508A to IEC changes the constraint set without touching the solver.
Stage 1 in detail: mapping loads to physical components
The first function, mapLoadsToComponents(loads, standardConfig), invokes a server-side edge function that translates each LoadItem into a ComponentDimensions object. The key fields it adds that the designer never had to think about:
- Physical size (width × height × depth in mm) — sourced from manufacturer datasheets for the selected model
- clearanceLeft / Right / Top / Bottom — the minimum air gap required around that component
- mountType — whether the component mounts on a DIN rail, panel-mount stud, or door mount
- heatDissipation (Watts) — critical for the thermal zone allocation in stage 3
If the edge function is unavailable, the client falls back to a deterministic approximation: heatDissipation = load.power × 0.05, and standard clearances from UL508A Table 10.4 are applied.
Stage 2: generating constraints from UL508A
This is where compliance knowledge is encoded. generateLayoutConstraints calls getUL508AEnclosureRequirements() — a Gemini AI-backed function — and builds four constraint types:
- SEPARATION (priority 100) — minimum 25.4 mm (1 inch) between live parts per UL508A
- ZONE (priority 90) — power and control components must be at least 150 mm apart in separate physical zones
- PROXIMITY (priority 60–70) — logically related components (contactor + overload relay) should be co-located
- ALIGNMENT (priority 40–50) — components of the same type align on a common axis for wiring efficiency
Stage 3: the layout solver
The generate-panel-layout edge function receives the component list and constraint set and returns a PanelLayout — absolute XY coordinates for every component, wireway routes, and four named zones (POWER, CONTROL, PLC, DISTRIBUTION). All coordinates are in millimeters from the top-left corner of the panel backplate.
The solver runs entirely server-side, which means the algorithm can be improved or retrained without a frontend deploy, and the constraint logic cannot be inspected or reverse-engineered from the browser bundle.
| AWG / kcmil | Base Ampacity | Temp CF | Fill CF | Adjusted | VD% | Status |
|---|
Why cable sizing is non-trivial
NEC cable sizing involves stacking multiple correction factors, and getting any one wrong can result in nuisance tripping, voltage sag, or — worse — cable overheating. SpecVolt’s calculateCableSize applies them in sequence:
- 125% continuous load rule — if a load runs for 3+ hours continuously, NEC requires the conductor to be rated for 125% of the FLA
- Temperature derating (NEC 310.15) — ambient temperatures above 30°C derate ampacity. At 40°C (typical panel interior), copper conductors derate to 88% of table values
- Conduit fill derating — more than 3 current-carrying conductors in one conduit derate to 80% (4–6 conductors) or 70% (7–9)
- Voltage drop check — if the calculated AWG produces more than 3% voltage drop at the given length, the calculator automatically steps up to the next larger size
The cable sizing service also returns findAlternativeSizes() — multiple size options with cost/performance tradeoffs — so the designer can choose between a minimum-compliant selection and a conservative oversized option with better voltage regulation.
How SpecVolt structures compliance validation
The ComplianceValidationService runs seven independent validation passes in sequence, each covering a different UL508A or NEC chapter:
- SCCR Validation — short-circuit current rating using the “weakest link” principle across all series-connected components
- Safety Requirements — emergency stops, door interlocks, arc flash labeling, working clearances
- Component Selection — 125% continuous current rating check for overcurrent devices
- NEC Article 440 — hermetic compressor rules (only runs when HVAC loads are present)
- Design & Construction — enclosure rating, wire bending space, feeder protection sizing
- Marking & Documentation — nameplate requirements, conductor labeling
- Application-Specific — HVAC, CNC, or conveyor-specific rules activated by the application type
Each pass returns a list of ComplianceViolation objects with a severity (critical, error, warning) and a rule reference (e.g. “UL508A §10.3”). The overall compliance score is Math.round((passed / total_rules) * 100).
Important: Items with severity = “critical” block the panel from receiving a UL listing stamp, regardless of the overall score. In SpecVolt, emergency stop and door interlock are mandatory — they cannot be compensated by other passing items.
What’s coming next in SpecVolt
The layout and compliance APIs described here are production features in SpecVolt v1.1. On the roadmap for v1.2:
- 3D enclosure preview — three-dimensional visualization of the generated layout using the same XY+depth coordinates returned by
generateOptimalLayout - Thermal simulation — using per-component
heatDissipationvalues to predict enclosure temperature rise and flag components that need forced-air cooling - Wire numbering export — automatic generation of wire numbers using the from-to scheme and export to PDF wiring diagrams
- Manufacturer BOM linkage — auto-populated BOM with real part numbers, pricing, and lead times from Allen-Bradley, Schneider, and Siemens catalogs
Your next panel — designed, sized,
and compliance-checked in minutes
SpecVolt handles the spatial math, the NEC calculations, and the UL508A rules so you can focus on the engineering that matters.
