systems  by lethain

Tool for describing, running, and visualizing systems diagrams

Created 7 years ago
393 stars

Top 73.3% on SourcePulse

GitHubView on GitHub
Project Summary

This project provides a domain-specific language (DSL) and tools for defining, simulating, and visualizing system dynamics models. It's targeted at engineers and researchers who need to model complex systems with stocks, flows, and formulas, offering a clear, text-based approach for rapid prototyping and analysis.

How It Works

The system uses a declarative syntax to define stocks (variables with values and limits) and flows (connections between stocks with rates or conversion factors). Models are parsed into an internal representation and then simulated over discrete time steps. The DSL supports formulas for initial values, maximums, and flow rates, allowing for dynamic and interdependent system behavior.

Quick Start & Requirements

  • Install via pip: pip install systems
  • For local development: git clone https://github.com/lethain/systems.git, cd systems, python3 -m venv ./env, source ./env/bin/activate, python setup.py develop.
  • Jupyter Notebook usage requires brew install graphviz and pip install jupyter pandas matplotlib.
  • Official tutorial: [link to tutorial]
  • Syntax specification: [link to spec.md]

Highlighted Details

  • Command-line tools for running (systems-run), visualizing (systems-viz), formatting (systems-format), and lexing (systems-lex).
  • Supports various flow types: rate, conversion, and leak, with customizable formulas.
  • Error messages are designed to be human-readable, indicating line numbers and specific parsing issues.
  • Can be integrated into Python code for programmatic model execution and analysis.

Maintenance & Community

  • Project maintained by lethain.
  • Issues can be reported via GitHub issues.

Licensing & Compatibility

  • The README does not explicitly state a license.

Limitations & Caveats

  • The project does not specify a license, which may impact commercial use or integration into closed-source projects.
  • Visualization requires external tools like Graphviz.
Health Check
Last Commit

4 months ago

Responsiveness

Inactive

Pull Requests (30d)
0
Issues (30d)
0
Star History
1 stars in the last 30 days

Explore Similar Projects

Starred by Andrej Karpathy Andrej Karpathy(Founder of Eureka Labs; Formerly at Tesla, OpenAI; Author of CS 231n), Magnus Müller Magnus Müller(Cofounder of Browser Use), and
83 more.

langchain by langchain-ai

0.4%
116k
Framework for building LLM-powered applications
Created 2 years ago
Updated 1 day ago
Feedback? Help us improve.