Skip to content

PineTreeLabs/lynx

Repository files navigation

Lynx - Block Diagram Widget for Control Systems

Lightweight block diagram editor GUI for control systems in Jupyter notebooks

Lynx is a Jupyter widget that enables interactive creation and editing of block diagrams for linear SISO control systems. Designed for controls engineers working in Jupyter environments.

Features

  • Interactive Canvas: Drag-and-drop block diagram editing
  • Control Theory Blocks: Transfer Function, State Space, Gain, Sum Junction, I/O markers
  • Real-Time Validation: Algebraic loop detection, connection constraints
  • Git-Friendly Persistence: Human-readable JSON format
  • Python Integration: Use numpy expressions for parameters, export to python-control
  • SISO Systems: Focus on linear single-input, single-output control systems

For more details, see the documentation site

Quick Start

The easiest way to install from pip:

pip install lynx-nb

Source build

Backend installation

# Using UV (recommended)
uv pip install -e ".[dev]"

# Or using pip
pip install -e ".[dev]"

Frontend Setup

cd js
npm install
npm run build

Jupyter Kernel Setup

# Install Jupyter kernel for this project
uv run ipython kernel install --user --env VIRTUAL_ENV $(pwd)/.venv --name=lynx

Basic Usage

import lynx
import numpy as np

# Create a diagram
diagram = lynx.Diagram()

# Launch interactive editor (displays in Jupyter)
lynx.edit(diagram)

About

Minimalist block diagram GUI for control systems

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •