Boxes, arrows, and signal flow — the node-graph UI that powers OpenJVID (and hopefully more).

Overview

JNodeGraph is a node-based graphing system which allows for simple flow-chart-like systems. Developed for systems which require signal flows, such as audio or video, it supports three types of nodes: Transmitters, Transceivers, and Receivers.

Repo: github.com/danschirripa/JNodeGraph

Operational Logic

A JNodeGraph system must start with a Transmitter. When a Transmitter presents information to the graph, that data is processed procedurally through the flow, eventually terminating at the Receiver.

Generally:

  1. A Transmitter ingests data
  2. A Transceiver modifies that data
  3. A Receiver handles the egress of that data

When links are made between JNodeComponents (UI nodes), a linkage event is fired, which can be used to perform a variety of tasks. The JNodeFlowPane is a Swing object which manages all JNodeComponents and performs linkages as well as basic component selection highlighting.

OpenJVID’s front-end UI is built on jNodeGraph.