Code Monkey home page Code Monkey logo

graphprogramming's People

Contributors

penguinmenac3 avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar

graphprogramming's Issues

Python Core Execution Order

Execute the nodes in the correct order and trigger the next nodes when done. However, only trigger nodes which can actually be calculated.

OpenCV Record Node does stop Camera Node

For some weird reason the record node breaks the video input node. But only when the video input node is a camera (resource:0).

This bug does not occur when using files as video input.

Python Core Principle No New Data No Calculation

Implement the principle that when there is no change in the data no calculation is required.

It is assumed that each algorithm is deterministic when given the same input, so it is stupid to calculate an algorithm twice on the same data.

However, this does not mean that algorithms must not be random but they should be deterministic or at least not break when not called multiple times with the same data.

This also gives a simple way to implement loops without explicitly adding them to graph programming.

Python Core Use Any Executable

Implement a node that illustrates how to use any existing executable no matter what language it is written in as a node.

Std Lib Modules

Create subfolders for stdlib modules and allow prefixing them.
Remove the overhead Node ending names.

Basically order nodes into packages and make them typesafe, so that future editor versions can actually work with the type information. Some nodes may need splitting. (In some languages that means redundant code, however typesafety is nice to have wherever possible)

Packets would be (so far):
Default (graph, splitflow, any, ...)
Number (trigger, input, add, sub, equal, less, ...)
String (trigger, input, split, concat, equal, ...)
Json (parse, stringify)
Boolean (trigger, input, and, or, equal, not, ...)
Structures (for, while, if, leaky integrator)
Sys (print, network, executable, ..)
Arrays (trigger, input, concat, remove, foreach, get, insert, append, ...)
File (load, save)

Example:
InputNode -> Number.Input and String.Input
SplitNode -> String.Split

WebUI Regex for Path Check

The webui executes graphs passed without checking if the provided graph name is a trap.

You can inject code to the commandline when passing a clever graph name.

A regex that allows subfolder/Graph or subfolder/subsubfolder/Graph2 is required.

Property View For Nodes

A property view on the right side, when a node is tapped/clicked.
The property view should view properties of the nodes.

Subgraph As Node Support

The editor should support subgraphs.

Using and editing subgraphs should be made far simpler.
Also reuse of subgraphs should be made simpler.

Std Lib String Operations

Implement nodes for string operations.

Concat(a, b), IndexOf(str, ref, offset), Split(str, splitter), StartsWith(str, reference), EndsWith(str, reference), whatever seems usefull for a stdlib.

Graph Editor Load Node Information

Load the json containing a list with all availible nodes and their information.
Information means inputs and outputs (by name and type) as well as the code name of the node.

Look at the node information stored in the graphs. That information has to be loaded from some config file. Specification will soon be done.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.