Skip to main content

Graphical editor for physical modeling and simulation.

Project description

<div align=”center”> <img src=”resources/nodedge_logo.png” alt=”drawing” width=”150”/>

Nodedge

A Python3 graphic environment for next-generation engineering.

<a href=”www.nodedge.io”>Nodedge.io</a> </div>

[![PyPI - Nodedge Version](https://badge.fury.io/py/nodedge.svg)](https://badge.fury.io/py/nodedge) [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/nodedge)](https://badge.fury.io/py/nodedge) [![License](https://img.shields.io/badge/license-GPL3.0-blue.svg?style=flat)](https://choosealicense.com/licenses/gpl-3.0/) [![Test Status](https://github.com/nodedge/nodedge/actions/workflows/python-test.yml/badge.svg)](https://github.com/nodedge/nodedge/actions/workflows/python-test.yml) [![Test Coverage](https://codecov.io/gh/nodedge/nodedge/branch/main/graph/badge.svg)](https://codecov.io/gh/nodedge/nodedge) [![Documentation Status](https://readthedocs.org/projects/nodedge/badge/?version=latest)](https://nodedge.readthedocs.io/en/latest/?badge=latest) [![Code Style](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black) [![Code Scanning](https://github.com/nodedge/nodedge/actions/workflows/code-scanning.yml/badge.svg)](https:github.com/nodedge/nodedge/actions/workflows/code-scanning.yml)

# What is Nodedge?

<div>

Nodedge is the first free and open-source graphical editor for engineering applications. It provides a comprehensive and intuitive environment for a variety of applications. With Nodedge, you can: * design and simulate dynamical systems such as robotic, physical, and chemical systems * generate Python code from your diagram-like models with a simple click * interactively plot and edit the data generated by your simulation * plot and analyze log files with common extensions like csv, mf4, mat, and others.

The user interface is designed for simplicity, allowing you to sketch your program in a diagram-like flow by drag-and-dropping graphic blocks. A set of built-in block libraries implements common functionalities like scalar and matrix operations, integration, differentiation, and many others. You can also implement your own custom blocks, reuse and share them with the community.

Nodedge is written in Python, the number one programming language in the world for the number of users, and its code is fully transparent and freely available on GitHub for community collaboration and contributions. This ensures that Nodedge is constantly evolving and improving based on the latest needs of its users. </div> <br>

<div align=”center”><img src=”docs/media/nodedge_interface.png” alt=”nodedge_interface” width=”500” /></div> <br>

<h3>Physical simulation</h3>

The Nodedge simulation app allows you to simulate various types of systems and processes. These simulations can suit a variety of purposes, such as testing and analyzing the behavior of a physical model, predicting the outcomes of a chemical reaction, or studying the movements and actions of a robotic system. To learn more about it, check out the [examples](docs/resources.md#examples) provided.

<div align=”center”> <img src=”docs/media/simulator_icon.png” alt=”nodedge_interface” height=150px/> </div>

<h3>Data plotting and analysis</h3>

Nodedge provides you with an interactive plotting app, Dats. Within Dats, you can easily import the data generated by your simulation, plot, edit, and export it. You can create new variables, also called signals, by modifying the existing ones, filtering, and combining them. To learn more about it, check out the [examples](docs/resources.md#examples) provided.

<div align=”center”> <img src=”docs/media/plotter_icon.png” alt=”nodedge_interface” height=150px/> </div>

<h3>Code generation</h3>

Nodedge supports the generation of standalone Python scripts from any graphical model. In the near future, Nodedge has the goal to support code generation for various microcontroller targets. This means that users will be able to create their models graphically and then use Nodedge to convert those models into code that can be understood by off-the-shelf microcontrollers and uploaded to the hardware.

<div align=”center”> <img src=”docs/media/code_generation_icon.png” alt=”nodedge_interface” height=150px/> </div>

# Getting started

To get started, you can download the installer of Nodedge [latest release](https://github.com/nodedge/nodedge/releases/download/v0.3/NodedgeSetup.exe). If you wish to install the source code, you can install Nodedge form pip with: ` pip install nodedge ` Alternatively, you can clone our project from [Github](https://github.com/nodedge/nodedge) and install the dev requirements with: ` git clone https://github.com/nodedge/nodedge nodedge cd nodedge pip install -r .\requirements\freeze\requirements_dev.txt `

For starting contributing to Nodedge, check out the [guidelines for contributors](https://github.com/nodedge/nodedge/wiki). In particular, we recommend using PyCharm IDE. You can find some helping information on [Nodedge Wiki](https://github.com/nodedge/nodedge/wiki/Pycharm-setup) or [PyCharm website](https://www.jetbrains.com/pycharm/).

# Roadmap

Nodedge development team has a lot of exciting features planned for the future! The project is actively being developed and there are plans to add support for a wide range of features. If you wish to join our efforts, do not hesitate to contact us. Any help is welcome!

Our roadmap includes, and is not limited to: * In Dats, add support for hdf, tdms, and rosag files * In Nodedge, add support for matrix operation * In Nodedge, add support for Python custom nodes. In a custom node, the user can enter a custom piece of Python code that runs within the current Nodedge model. The custom node can be saved to the nodes library and reused it in the future * In Nodedge, add support for integral and derivative nodes * In Nodedge, add support for the simulation of dynamic systems. In particular, add a widget for the selection of a solver and its configuration * In Nodedge and Dats, add support for robotics-specific features, such as embedded code generation for common hardware platform, real-time data acquisition and inspection.

History

0.1.0 (2019-12-12)

  • First release as a library

0.2.0 (2020-01-06)

  • First implementation of calculator functions

0.2.1 (2020-03-22)

  • Cleaning and add documentation

0.2.2 (2020-08-02)

  • Improve style.

  • Add history dock widget.

  • Add scene items dock widget.

  • Fix crash after edge deletion.

0.2.3 (2020-11-29)

  • Add embedded python console.

  • Add scene code generation.

  • Add more mathematical blocks.

  • Refine style and node displacement.

  • Add item details widget.

0.3.0 (2022-11-09)

  • Add support for numpy operations.

  • Add comment element.

  • Add dats, a log analyser.

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

nodedge-0.4.0.tar.gz (41.1 MB view hashes)

Uploaded Source

Built Distribution

nodedge-0.4.0-py3-none-any.whl (206.4 kB view hashes)

Uploaded Python 3

Supported by

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