Skip to main content

Cross-platform GUI for Pulsim power electronics simulator

Project description

PulsimGui — Dark Theme

PulsimGui

Professional GUI for power electronics simulation with Pulsim.

Release PyPI Docs License: MIT Python 3.10+

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.

Scope with A/B cursors

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_telemetry
  • backend_telemetry
  • fallback_trace
  • loss_summary
  • thermal_summary
  • component_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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pulsimgui-1.1.1.tar.gz (1.2 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pulsimgui-1.1.1-py3-none-any.whl (1.1 MB view details)

Uploaded Python 3

File details

Details for the file pulsimgui-1.1.1.tar.gz.

File metadata

  • Download URL: pulsimgui-1.1.1.tar.gz
  • Upload date:
  • Size: 1.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pulsimgui-1.1.1.tar.gz
Algorithm Hash digest
SHA256 49d95f45f6daef69c24b812c22d850c940cb0bece627980b255caf255be487d0
MD5 d439a6f17d335f9d0fe5d8c020244ad8
BLAKE2b-256 c356e6c4b0ff1e9d43a0ace3f1655d7e5f58ce6309ac11cc77c3145b68dcea0e

See more details on using hashes here.

Provenance

The following attestation bundles were made for pulsimgui-1.1.1.tar.gz:

Publisher: release.yml on lgili/PulsimGUI

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pulsimgui-1.1.1-py3-none-any.whl.

File metadata

  • Download URL: pulsimgui-1.1.1-py3-none-any.whl
  • Upload date:
  • Size: 1.1 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pulsimgui-1.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 b5d44667553993a54d05d8c070c8fdfa125ebe0bb3a07a846ba57536f5d9f828
MD5 3f2ff9e3451ae4ff53d99a098dce1b56
BLAKE2b-256 2786589238feb3031589c5e9edffc5ec5c8533b6f660d92333457751ff3b7b84

See more details on using hashes here.

Provenance

The following attestation bundles were made for pulsimgui-1.1.1-py3-none-any.whl:

Publisher: release.yml on lgili/PulsimGUI

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page