tapflow
Self-hosted iOS & Android simulator streaming for the whole team
Simulate dynamic systems expressed in block diagram form using Python
Translation pending
Developer toolsPython · ShellGitHub @petercorkeOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗bdsim bridges the gap between mathematical block diagrams and executable Python code. Unlike traditional graphical-only tools, it treats modelling as code, allowing you to define, simulate, and analyze continuous-time, discrete-time, or hybrid systems within a modern software engineering workflow. Wires in bdsim aren't limited to scalars; they pass NumPy arrays, dictionaries, or even SpatialMath objects seamlessly through your system, integrating directly with the Robotics and Machine Vision toolboxes.
bdsim aren't limited to scalars. Seamlessly pass NumPy arrays, dictionaries, or complex objects like SE3 and SO3 from the spatialmath-python library.Block class.bdedit, a PySide-based graphical editor for visual system design and discovery.You can install bdsim directly from PyPI:
pip install bdsim
To include the graphical editor (bdedit) and its dependencies:
pip install bdsim[editor]
Install locally with help from the detailed installation guide.
Or skip setup and run the browser-based JupyterLite examples.
The power of bdsim lies in its conciseness. The step response of a simple first-order system can be defined and simulated in just a few lines of code:
import bdsim
sim = bdsim.BDSim()
bd = sim.blockdiagram()
# Define blocks
step = bd.STEP(T=1, pos=1)
plant = bd.LTI_SISO(1, [1, 1]) # 1/(s+1)
scope = bd.SCOPE()
# Connect blocks
bd.connect(step, plant)
bd.connect(plant, scope)
bd.compile()
out = sim.run(bd, T=5)
In contrast to traditional graphical simulation tools, bdsim treats modelling as code. This ensures:
Better Version Control: No more opaque binary blobs. Your models are searchable, diffable text.
Seamless Integration: Incorporate SciPy solvers, PyTorch models, or custom robotic vision pipelines directly into your simulation loops.
Scalability: Programmatically generate massive block diagrams or run large-scale batch simulations on headless servers.
Full Documentation: https://petercorke.github.io/bdsim/
Wiki: Access the community wiki for deep dives into specific block behaviours and tutorials.