A differentiable block based hybrid system simulation framework.
Project description
A block-based time-domain system simulation framework in Python
Homepage • Documentation • PathView Editor • Sponsor
PathSim lets you model and simulate complex dynamical systems using an intuitive block diagram approach. Connect sources, integrators, functions, and scopes to build continuous-time, discrete-time, or hybrid systems.
Minimal dependencies: just numpy, scipy, and matplotlib.
Features
- Hot-swappable — modify blocks and solvers during simulation
- Stiff solvers — implicit methods (BDF, ESDIRK) for challenging systems
- Event handling — zero-crossing detection for hybrid systems
- Hierarchical — nest subsystems for modular designs
- Extensible — subclass
Blockto create custom components
Install
pip install pathsim
or with conda:
conda install conda-forge::pathsim
Quick Example
from pathsim import Simulation, Connection
from pathsim.blocks import Integrator, Amplifier, Adder, Scope
# Damped harmonic oscillator: x'' + 0.5x' + 2x = 0
int_v = Integrator(5) # velocity, v0=5
int_x = Integrator(2) # position, x0=2
amp_c = Amplifier(-0.5) # damping
amp_k = Amplifier(-2) # spring
add = Adder()
scp = Scope()
sim = Simulation(
blocks=[int_v, int_x, amp_c, amp_k, add, scp],
connections=[
Connection(int_v, int_x, amp_c),
Connection(int_x, amp_k, scp),
Connection(amp_c, add),
Connection(amp_k, add[1]),
Connection(add, int_v),
],
dt=0.05
)
sim.run(30)
scp.plot()
PathView
PathView is the graphical editor for PathSim — design systems visually and export to Python.
Learn More
- Documentation — tutorials, examples, and API reference
- Homepage — overview and getting started
- Contributing — how to contribute
Citation
If you use PathSim in research, please cite:
@article{Rother2025,
author = {Rother, Milan},
title = {PathSim - A System Simulation Framework},
journal = {Journal of Open Source Software},
year = {2025},
volume = {10},
number = {109},
pages = {8158},
doi = {10.21105/joss.08158}
}
License
MIT
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 pathsim-0.20.0.tar.gz.
File metadata
- Download URL: pathsim-0.20.0.tar.gz
- Upload date:
- Size: 7.5 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.25
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
421670b033cbe103cc5b0a1549d360b237fbdbf312d91c994d124717616d7283
|
|
| MD5 |
f89cc1e6d2781fb117a942985b831163
|
|
| BLAKE2b-256 |
c8b6d715e81bc39f0bccda1bc43e2a3712dd0dddfca7b7e8d6a7b07839f53451
|
File details
Details for the file pathsim-0.20.0-py3-none-any.whl.
File metadata
- Download URL: pathsim-0.20.0-py3-none-any.whl
- Upload date:
- Size: 202.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.25
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
24c8f5ebdc9bbc75c1c7adce0915432220ef1cc185aba67a935f152db263b00d
|
|
| MD5 |
af1d180b34df293e10c01df56fb6e5f3
|
|
| BLAKE2b-256 |
1f117257591d0ae17908c2d9b277460a2e743e86ff810197128a0488c2911c5a
|