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.
- 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).
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.
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
Use installers from Releases.
python3 -m pip install --upgrade pip
python3 -m pip install pulsimguiRun:
pulsimguiThe pulsimgui package is published to PyPI by the release pipeline (.github/workflows/release.yml) whenever a new tag v* is released.
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 pulsimguiFor 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.
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
pytestPYTHONPATH=src python3 scripts/smoke_templates.pyruff check src testspython3 -m pip install -r docs/requirements.txt
mkdocs build --strict
mkdocs serveDocumentation is published through:
.github/workflows/docs-pages.yml
Automatic deploy runs on main and workflow_dispatch.
Repository setting required: Settings → Pages → Source: GitHub Actions.
- 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.
MIT — see LICENSE.
