Repository navigation
Releases: swiftugandan/powerstudio
Release list
PowerStudio 1.2.0
PowerStudio 1.2 adds a fifth study, electromagnetic transients, and makes the results and the app easier to read and
to learn.
Electromagnetic transients. The EMT simulation (Calculate tab, Alt+W) follows the three phase voltages and
currents of the network over its first cycles at a microsecond step, where the stability simulation follows the
machines' swings over seconds. Lines longer than a step's travel are travelling waves, the others coupled π sections;
transformers are windings connected by their vector group, with any extra phase shift; machines and external grids are
EMFs behind their short-circuit impedance. Its events are three-phase, line-to-line, two-phase-to-earth and
line-to-earth faults through a resistance, their clearing, and breakers that trip or close; each pole of a breaker,
and each phase of a fault, goes out at its own current zero. Lines, cables, transformers, loads and capacitor banks out
of service can be switched in. The EMT tab shows the waveforms with a time zoom and per-phase switches, the peaks and one-cycle
RMS values of every busbar, branch, source and fault, every pole that opened, and exports CSV. Both samples come with
EMT events. The engine agrees with ngspice on five fault and switching cases, on both samples and a 100 km line, its
voltages to within 2.1e-3 of crest, natively and in WebAssembly. It is a first slice (docs/design/EMT.md): sources
keep their EMF, so a run stands for the first cycles, and there are no machine or converter controls, saturation or
arresters. It is not a compliance tool for any EMT standard or grid code.
Charts. The busbar and branch results of a load flow, the busbars of a short circuit and the branches of a
contingency analysis can be shown as a chart instead of a table: the voltage profile around 1 p.u. with each busbar's
band, the loading of each branch against 90 % and 100 %, Ik″ at every busbar and the worst loading under N-1 against
its limit. A chart shows the table's own rows, filtered and ordered as the table is, and a recorded run being compared
appears across each bar. Click a bar, or move along the bars with the keyboard, to select its element. On a grid of
tens of thousands of elements each pixel column shows its most extreme element, so peaks and dips stay visible.
Guide. One task-based guide (Help tab, "Getting started" and "Guide", published at /guide/ on the website) replaces
the old getting-started, user-guide and benchmark-kit pages. It has a first session on the IEEE 14-bus sample that
covers load flow, charts, winter and summer study cases, short circuit, N-1, stability, EMT, and exporting and
comparing results, then a chapter for each study and for comparing PowerStudio with your own tool. Browser tests
follow the chapters step by step, so the guide and the app stay in step.
Also fixed. The stability plot's read-out now escapes element names before showing them. In the EMT simulation
before release: a close sent while a tripped breaker waited for its current zeros cancels the trip, and a load
switched in takes the study case's load scaling like the loads in service.
Documents saved by 1.1, 1.0 and 0.1 open unchanged and solve as they did.
Files
PowerStudio.html: the app. Open it in a browser; it needs no installation or network.PowerStudio.html.sha256: its checksum. Check it withshasum -a 256 -c PowerStudio.html.sha256, and the build's
provenance withgh attestation verify PowerStudio.html --repo swiftugandan/powerstudio.PowerStudio.cdx.json: the software bill of materials.
docs/guide/ shows how to use the app, including the EMT simulation and charts, and docs/design/EMT.md describes the
design of the EMT simulation.
PowerStudio 1.1.0
PowerStudio 1.1 brings the single-line diagram up to the standard of a professional CAD tool. The calculations are
unchanged from 1.0; this release is about reading the results and drawing the network.
Readable results. Names and result boxes are placed so that none covers another. Each starts in its usual place
and moves aside along its line or bar when that place is taken; where nothing nearby is free, it moves further with
a thin leader line back to its element. Drag any label to put it where you want it: it stays there relative to its
element, and "Reset label positions" lets the diagram place it again. "Disentangle labels" (View tab, Shift+L) turns
placement off for labels in fixed places. On the 1.0 samples, 45 of the IEEE 14-bus sample's 80 result boxes and 18
of Riverside's 42 lay over another label; now none do, for any study, in every browser's fonts.
Precise editing. Dragged busbars snap into line with the busbars on screen, shown by a dashed guide, or to a grid of
10, 20 or 40 units; connections snap to the bar's centre and branch ends into line with their far end. Alt places
freely, the status bar shows the movement, and Escape cancels a drag. A marquee dragged right selects what lies
inside it, dragged left what it touches; clicking again where elements stack selects the one beneath. A new Arrange
tab aligns, distributes, sizes, rotates (R) and flips (X) a selection, spreads connections, and selects what is
connected, of the same kind or at the same voltage level.
Routes. Drag any segment of a branch's route to shape it; the route keeps its bends and stays square to its
busbars wherever they move. "Route around obstacles" finds the route with the fewest bends that crosses no busbar or
symbol, and a branch drawn across one is routed around it from the start.
Finding your way. An overview map (M) shows the whole diagram with the view on it, and Shift+F zooms to the
selection.
Also fixed. The ribbon cut off the third row of its stacked buttons and the group names. A drag paused for more
than a second became two undo steps. A load flow started while a recalculation on edit was running was ignored.
Reproducible builds, corrected. 1.0 said the engine builds to the same bytes on any system; the first CI run
showed it does only for the same build host, because Cargo folds the host into crate identities. Releases are built
on Linux on x86_64, and node scripts/build-engine.mjs --container rebuilds them to the same bytes on any machine
with Docker. The engine is also smaller: its symbols are stripped.
At national scale the half a million labels of a 70,000-busbar diagram with load-flow results are placed with no frame
held over 100 ms in Chromium. Documents saved by 1.0 and 0.1 open unchanged.
Files
PowerStudio.html: the app. Open it in a browser; it needs no installation or network.PowerStudio.html.sha256: its checksum. Check it withshasum -a 256 -c PowerStudio.html.sha256, and the build's
provenance withgh attestation verify PowerStudio.html --repo swiftugandan/powerstudio.PowerStudio.cdx.json: the software bill of materials.
docs/USER-GUIDE.md shows how to use the app, including the new "Working on the diagram" section, and
docs/design/CAD.md describes the design of this release.
PowerStudio 1.0.0
PowerStudio 1.0 rebuilds the calculations as a Rust engine running in WebAssembly and brings them to the standard a
national transmission operator's studies need, each checked against an independent reference. It is still one HTML
file that runs offline in the browser and sends nothing anywhere.
Engine. All calculations run in a Rust engine, compiled to WebAssembly and run in a pool of workers. It solves the
25,000-bus ACTIVSg grid's load flow in about 0.3 s and opens the 70,000-bus one.
Data exchange. CGMES 2.4.15 and 3.0 (import, and the operating point back out as SSH and SV), PSS/E RAW 32, 33
and 35 with DYR dynamic data (import and export), MATPOWER cases. Imports agree with PowSyBl on 12 CGMES
configurations, 23 RAW files and 7 large MATPOWER grids.
Load flow and contingency. Tap changers, phase shifters and switched shunts that regulate, remote voltage control,
voltage-dependent loads, distributed slack, area interchange, HVDC links. Contingency analysis with your own
multi-element contingencies, remedial actions and screening, in parallel. Checked against PowSyBl and OpenLoadFlow.
Short circuit. IEC 60909-style: power station units, three-winding transformers corrected per winding pair,
asynchronous motors, network feeders, converter-fed sources, neutral earthing, breaking currents and fault impedance.
It meets the values of the IEC TR 60909-4 example network to 1e-4 kA, three-phase, line-to-line and line-to-earth.
Stability. An implicit DAE solver with round-rotor machines and the PSS/E library's exciters, governors and
stabilisers, edited in the app or read from DYR files. Agrees with ANDES on its published cases.
Workspace. Projects with study cases, scenarios and variants, a run log with result hashes, a spreadsheet data
manager, result comparison with earlier runs, a printable study report, and diagrams that stay fast at national
scale.
Assurance. Browser tests in Chromium (WebGPU and Canvas 2D), Firefox and WebKit, and an accessibility audit
(WCAG 2.1 A and AA). Trusted Types are enforced, and projects can be exported encrypted with a passphrase. The engine
builds reproducibly, and this release carries a CycloneDX bill of materials and GitHub attestations. An operator
benchmark kit (ps compare) compares PowerStudio with your own tool on your own model.
Files
PowerStudio.html: the app. Open it in a browser; it needs no installation or network.PowerStudio.html.sha256: its checksum. Check it withshasum -a 256 -c PowerStudio.html.sha256, and the build's
provenance withgh attestation verify PowerStudio.html --repo swiftugandan/powerstudio.PowerStudio.cdx.json: the software bill of materials.
Documents saved by 0.1 open unchanged. docs/USER-GUIDE.md shows how to use the app, docs/ENGINE.md what each
calculation computes, and docs/TEST-REPORT.md the results of every check. The short-circuit calculation follows IEC
60909-0 but is not certified against it.
PowerStudio 0.1.0: load flow, short circuit, N-1 and stability in the browser
The first release of PowerStudio, a power system analysis workbench that runs in the browser. Open it at swiftugandan.github.io/powerstudio/app, or download PowerStudio.html below and open it offline. Everything runs on your device: no account, no server, no tracking.
Studies
- Load flow: Newton-Raphson with reference, PV and PQ busbars, transformer taps and phase shifts, reactive power limits, a DC start, load scaling and de-energised islands.
- Short circuit: IEC 60909-style three-phase, line-to-line and line-to-earth faults at every busbar or one location, maximum and minimum, with Ik″, ip (κ by method B or C), Ith, Sk″ and branch contributions.
- N-1 contingency: every line, transformer or machine out in turn, ranked by the loading and voltage limits it breaks, with the worst case per element on the diagram.
- Stability: a classical-model RMS simulation with fault, clearing, tripping and load-step events; rotor angle, speed, power and voltage plots; a time cursor that replays the voltages on the diagram.
Workspace
- Ribbon, model tree, single-line diagram, inspector, results panel and status bar.
- Place and connect busbars, lines, transformers, machines, external grids, loads and shunts; move, resize, reroute and reconnect on the diagram; marquee selection, copy and paste, automatic layout.
- Results on the diagram (loading and voltage colours, result boxes), sortable tables, CSV export, and results marked stale after an edit; the load flow can recalculate on every edit.
- Command palette (Ctrl+K or ⌘K), keyboard shortcuts for every study, undo and redo for every change, light and dark themes, a phone layout.
- Networks save in the browser as you work. Import PowerStudio JSON or MATPOWER
.mcases; export JSON, SVG, PNG and CSV. - Two samples: the IEEE 14-bus system (MATPOWER case14 data) and Riverside, a 110/20/0.4 kV distribution network.
- The diagram is drawn with WebGPU (signed-distance shapes and text in WGSL), with a Canvas 2D fallback. The badge names the renderer actually in use; a new GPU device is self-tested before the app relies on it.
Verification
- Load flow agrees with MATPOWER's algorithm (PYPOWER) on case14, case30 and case118 to 9 × 10⁻¹² p.u., and with pandapower on both samples to 1.3 × 10⁻¹⁵ p.u.
- Short circuit agrees with pandapower's IEC 60909 implementation to 2.1 × 10⁻¹⁵ relative for three-phase and line-to-line faults and 1.7 × 10⁻⁸ for earth faults.
- Stability: clearing 2 % before the equal-area critical clearing time keeps a machine in step, 2 % after does not.
- 63 unit and engine tests and 28 browser tests pass on macOS and on GitHub's Ubuntu runners. WebGPU itself is verified on macOS (Apple Metal and SwiftShader); on the Ubuntu runners Chromium's WebGPU does not survive, so CI exercises the Canvas 2D fallback. Details in docs/TEST-REPORT.md.
Limits
The short circuit is checked against pandapower, not certified against IEC 60909. Stability uses the classical machine model only. There are no three-winding transformers, switches or tap-changer control, and only single outages. Tested in Chromium; Firefox, Safari and Windows were not tested. See Scope and boundaries.
PowerStudio is not affiliated with, endorsed by or connected to DIgSILENT GmbH or its PowerFactory software. MIT licence.
Download
PowerStudio.html is the whole app in one file. Its SHA-256 is in PowerStudio.html.sha256; it is byte-identical to the app published at /app/.