Skip to main content

Image

pip install grapycal grapycal-builtin PyPI - Downloads License

Discord PRs Welcome GitHub contributors

Grapycal is a general-purpose visual programming language based on Python. It provides a web-based editor for writing and running programs as a graph.

The goal of this project is to make a programming language align with human perception at best, while being powerful with the help of Python, its backend.

Compatibility:

  • Python 3.11
  • Chrome browser (Grapycal is laggy on Safari; FireFox is not tested.)

Documentation

The full documentaition can be found here.

Get Started

# Requires python 3.11
pip install grapycal grapycal-builtin
grapycal # Grapycal will open at localhost:9001

If you have any questions or ideas to share, feel free to join the Discord server.

Contribute

Grapycal is still in its early stage. Any contribution is welcome! Currently, most of our efforts are on the backend (the core of Grapycal) and extensions (nodes with various functionalities), but it's also helpful to improve the frontend and the documentation.

To contribute, please refer to the Contribution Guide to get started. The Project Board contains the current plans for Grapycal and is a good place to start.

Feel free to join the Discord Server to discuss with us.

Features

Image

  • Interactive: On the GUI, users can run different parts of the graph in arbitrary order, watch variables in real-time, and easily track the active node while the program runs.

  • Dynamic: Grapycal allows users to modify the running graph for instant changes in its behavior. That includes adjusting parameters, adding or removing nodes from a workflow, and terminating a loop.

  • Extendable: Grapycal provides a set of API for creating custom nodes for arbitary domain, such as deep learning, robotics, or music synthesis.

  • Collaborative: Custom nodes definitions can be shared as Python packages. Thus, nodes for various domains can be mixed in a graph to form a powerful tool or a creative artwork (I’ll create some examples when I have time). What’s more, Grapycal supports real-time collaboration, allowing a group of people to work on the same graph over the Internet.

Grapycal is not (yet):

  • Fast: Grapycal is yet another layer of abstraction on top of Python. Some overhead is introduced for its interactivity and dynamics. However, the overhead would be relatively small if the graph doesn’t run at a high frequency ( less than ~1000 node runs per second ). For example, if your program mainly computes with C extensions (such as NumPy) or uses GPU heavily (such as deep learning tasks), there will be little impact on performance.

  • Stable: Grapycal is not heavily tested to ensure the graph always runs as expected.

Motivation

In our daily lives, countless ideas emerge in our minds, only to be dismissed because the perceived cost of realizing them is too high. Over time, sadly, we tend to forget our inherent creativity.

The mission of Grapycal is to push more ideas over the line to be worthy of trying out.

Grapycal is helpful for conducting experiments, including training AI, physical simulations, data analysis, computer art, and more. These experiments require repeated parameter adjustments, swapping certain components of models, while simultaneously observing the phenomena generated by different parameters. We then use human judgment combined with domain knowledge to deduce the best model or other conclusions.

In this back-and-forth process between humans and machines, using traditional Python execution methods or Jupyter notebooks can be cumbersome. Therefore, we need the higher interactivity provided by Grapycal.

Dependencies

Grapycal and its dependences consist of the following 6 packages:

Acknowledgement

Grapycal is inspired by these amazing projects. Also take a look at them

These tools or libraries help Grapycal a lot:

Star History

Star History Chart

Release files for grapycal 0.11.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for grapycal 0.11.3
File Size Uploaded
grapycal-0.11.3.tar.gz 872.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for grapycal 0.11.3
File Interpreter ABI Platform
grapycal-0.11.3-py3-none-any.whl Python 3 none any Details

Total release size: 1.8 MB

Release files / grapycal-0.11.3.tar.gz

Download URL grapycal-0.11.3.tar.gz
Size 872.2 kB
Tags Source
SHA-256 checksum
How to use checksums
8373930d97db19da0bde5d8a67f5eb9c37a74d3bec3d248f8403e9a0c8e75bb8
BLAKE2b-256 checksum
How to use checksums
3c290c675765679f1fb5be8180048706e6ffe1c4b86c1a449555ffd029f59205
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.5.1 CPython/3.11.3 Windows/10

Release files / grapycal-0.11.3-py3-none-any.whl

Download URL grapycal-0.11.3-py3-none-any.whl
Size 908.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
cb9d8cc1c7ddde77e8e2754d8c549aabd2234541956175bbcbdab20138c783d8
BLAKE2b-256 checksum
How to use checksums
0dbd9bbe30358733e244d1acfd64e33c872672fcbbe4bf7710041d0db3b5e591
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.5.1 CPython/3.11.3 Windows/10

Release history Release notifications | RSS feed

This release

0.11.3 This release

2 release files

0.10.0

2 release files

0.9.0

2 release files

0.8.0

2 release files

0.6.1

2 release files

0.6.0

2 release files

0.5.5

2 release files

0.5.4

2 release files

0.5.2

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.2.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page