Cross-platform GUI for Pulsim power electronics simulator
Project description
PulsimGui
Professional GUI for power electronics simulation with Pulsim.
Download latest release · Install from PyPI · Documentation · Report a bug
PulsimGui is a cross-platform desktop interface for Pulsim, focused on modeling and validating power converter topologies.
Key Features
- Schematic editor with drag-and-drop workflow.
- Component library focused on power electronics.
- Transient simulation with advanced solver controls.
- Advanced backend telemetry for convergence, fallback, and loss/thermal diagnostics.
- Integrated waveform viewer with signal measurements.
- Ready-to-run examples (
RC,buck,boost, and more).
PLECS-style Scope
Click any Scope component on the schematic to open a modular scope
window that streams data from pulsim's NativeLiveStream during the
run and finalises the same window with the full-resolution result on
finish — no separate live / post-sim windows.
Single shell + composable capabilities:
- Live streaming (60 Hz polling) — wired Run/Stop button on the toolbar.
- Post-sim finalisation — same curves, full-resolution arrays.
- Cursors A/B with ΔT, 1/ΔT (frequency), and per-signal ΔY readouts.
- Math signals — derived traces via a whitelisted formula
(
A + B,abs(A),derivative(A),moving_avg(A, 16), …). - FFT view — toggle the canvas to log-X magnitude (dB) of the cached signals.
- Trigger — Free Run / Single with edge + level on any source signal.
- SMPS macros — one-click Tsw / Fsw / Duty / Ripple on the visible window.
- Export — CSV (master time grid + linear interp per signal), PNG, or clipboard.
The shell adapts per scope variant: ElectricalScopeVariant (blue
accent, V default unit) and ThermalScopeVariant (orange accent,
°C). Adding a new variant is a one-file dataclass.
Official Documentation
Full documentation is available at:
Main content includes:
- Installation and execution
- GUI guides and workflow
- Simulation and backend configuration
- Practical tutorials
- Technical reference for contributors
Installation
1. Release (Recommended)
Use installers from Releases.
2. Install via pip
python3 -m pip install --upgrade pip
python3 -m pip install pulsimgui
Run:
pulsimgui
The pulsimgui package is published to PyPI by the release pipeline (.github/workflows/release.yml) whenever a new tag v* is released.
3. Development setup (source code)
git clone https://github.com/lgili/PulsimGUI.git
cd PulsimGui
python3 -m venv .venv
source .venv/bin/activate
python3 -m pip install --upgrade pip
python3 -m pip install -e ".[dev]"
python3 -m pulsimgui
Recommended Backend
For reproducible behavior, use pulsim v0.7.9.
This is required for full advanced electrothermal support in GUI runtime:
- staged thermal networks (
single_rc,foster,cauer) - shared-sink coupling (
shared_sink_id,shared_sink_rth,shared_sink_cth) - datasheet switching-loss surfaces (
loss.model=datasheet)
Quick check:
python3 -c "import pulsim; print(pulsim.__version__)"
In the app: Preferences → Simulation → Backend Runtime.
Runtime Telemetry
With modern Pulsim backends, transient runs expose structured diagnostics in SimulationResult.statistics, including solver/backend telemetry and electrothermal summaries:
linear_solver_telemetrybackend_telemetryfallback_traceloss_summarythermal_summarycomponent_electrothermal
Development
Tests
pytest
Template Smoke Test (Pre-release)
PYTHONPATH=src python3 scripts/smoke_templates.py
Lint
ruff check src tests
Local docs build
python3 -m pip install -r docs/requirements.txt
mkdocs build --strict
mkdocs serve
GitHub Pages (Docs)
Documentation is published through:
.github/workflows/docs-pages.yml
Automatic deploy runs on main and workflow_dispatch.
Repository setting required: Settings → Pages → Source: GitHub Actions.
Contributing
- Open issues for bug reports and feature requests.
- For PRs, include context, validation steps, and evidence (logs/screenshots).
- Update docs whenever a user workflow or feature changes.
License
MIT — see LICENSE.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pulsimgui-1.1.0.tar.gz.
File metadata
- Download URL: pulsimgui-1.1.0.tar.gz
- Upload date:
- Size: 1.1 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ebea2eb736be057d492cdf1543afb365b72e258294e75e17c27b9ccaa3069b51
|
|
| MD5 |
85d650eb2c776e5bcad2770b6399ba15
|
|
| BLAKE2b-256 |
161aa3e006f4149eb1e010190040f985202ad6dd728a2ed82f84a8267b281501
|
Provenance
The following attestation bundles were made for pulsimgui-1.1.0.tar.gz:
Publisher:
release.yml on lgili/PulsimGUI
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pulsimgui-1.1.0.tar.gz -
Subject digest:
ebea2eb736be057d492cdf1543afb365b72e258294e75e17c27b9ccaa3069b51 - Sigstore transparency entry: 1699081379
- Sigstore integration time:
-
Permalink:
lgili/PulsimGUI@3b41c95c7d8820aaf52b51bf7f6e36875e58b3cb -
Branch / Tag:
refs/tags/v1.1.0 - Owner: https://github.com/lgili
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@3b41c95c7d8820aaf52b51bf7f6e36875e58b3cb -
Trigger Event:
push
-
Statement type:
File details
Details for the file pulsimgui-1.1.0-py3-none-any.whl.
File metadata
- Download URL: pulsimgui-1.1.0-py3-none-any.whl
- Upload date:
- Size: 1.0 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b71a7cc1fb81f738522e37adad4b86ec0c00072ae519bcf5cc019b65637d376b
|
|
| MD5 |
5b8adbb1a132eb03be2619c1f67c067a
|
|
| BLAKE2b-256 |
2462f0f0cd77929becf5006e7b12410893b2bc4c885dda9af69c594c51d30053
|
Provenance
The following attestation bundles were made for pulsimgui-1.1.0-py3-none-any.whl:
Publisher:
release.yml on lgili/PulsimGUI
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pulsimgui-1.1.0-py3-none-any.whl -
Subject digest:
b71a7cc1fb81f738522e37adad4b86ec0c00072ae519bcf5cc019b65637d376b - Sigstore transparency entry: 1699081629
- Sigstore integration time:
-
Permalink:
lgili/PulsimGUI@3b41c95c7d8820aaf52b51bf7f6e36875e58b3cb -
Branch / Tag:
refs/tags/v1.1.0 - Owner: https://github.com/lgili
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@3b41c95c7d8820aaf52b51bf7f6e36875e58b3cb -
Trigger Event:
push
-
Statement type: