Node-RED is a flow-based, low-code programming environment for event-driven applications, primarily used in IoT, home automation, and API integration. The runtime is a Node.js server that manages a visual editor (browser-based) and a set of built-in nodes for common operations (HTTP, MQTT, file I/O, data transformation, etc.). The architecture is a modular monorepo with packages for the runtime, editor API, editor client, node registry, core nodes, and shared utilities. Flows are JSON configurations that define a graph of connected nodes, executed event-driven via message passing. The system supports plugins, subflows, context storage (with pluggable backends), projects with Git integration, and authentication strategies.
Foblex Flow is an Angular-native library for building visual node editors, workflow builders, diagram editors, and AI pipeline UIs. It provides a comprehensive set of components and directives (f-flow, f-canvas, f-node, f-connection, f-connector, f-draggable, f-minimap, f-selection-area, etc.) along with plugins for managed state (undo/redo), accessibility (keyboard navigation), layout engines (dagre, elk), reflow-on-resize, and control schemes. The repository is a monorepo (NX) containing the core library, layout packages, a markdown renderer, a documentation portal with SSR, and multiple example applications (call center, schema designer, tournament bracket, UML diagram, marketing automation). The library is production-ready, actively maintained, and demonstrates high craftsmanship with decoupled architecture (mediator pattern), signal-based state management, Web Worker offloading for connection rendering, and extensive E2E testing.
Nodify is a production-grade WPF library for building node-based graph editors. It provides a comprehensive set of custom controls (NodifyEditor, ItemContainer, Connector, various connection types, Minimap, GroupingNode, StateNode, etc.) along with a sophisticated input processing system based on composable state machines. The library is designed for MVVM, exposes rich command and event hooks, and supports full theming with dark/light/Nodify themes. The codebase demonstrates high craftsmanship in its input state machine pattern (InputProcessor/InputElementStateStack), undo/redo framework (ActionsHistory), gesture customization system (EditorGestures), and performance optimizations (BoxValue, connector safe-zone hit-testing). It ships with five example applications (Calculator, Playground, Shapes, StateMachine, Workflow) that showcase real-world usage patterns including sub-workflows, real-time collaboration simulation, and undo/redo. The library targets a wide range of .NET frameworks from .NET Framework 4.7.2 through .NET 10 preview, with CI builds and NuGet publishing pipelines. Despite a large API surface and some mutable global settings, the code is well-organized, extensively documented, and actively maintained.
This is a comprehensive visual programming system called 'Unit' that implements a dataflow/reactive paradigm where programs are composed of interconnected units (MIMO finite state machines) in a directed graph. The system includes a full-stack runtime (Node.js server and browser client), a graph editor UI with drag-and-drop, a rich library of built-in functional units (arithmetic, string, array, control flow, etc.), platform API wrappers (canvas, audio, Bluetooth, WebSocket, etc.), and a custom spec language for defining units. The architecture is centered around a core class hierarchy (Unit, Graph, Pin, Component) with a reactive push-based execution model. The project is actively maintained with a large community (4920 stars) and demonstrates sophisticated engineering in areas like force-directed layout simulation, custom parser with type inference, and a comprehensive debugging infrastructure. While the codebase is extensive and well-structured, some components (e.g., the main Component class) are large and tightly coupled, and there are signs of duplication and incomplete implementations in some areas.
This is a graphical editor for creating and managing bash scripts using a node-based interface. Users can visually construct bash scripts by dragging and dropping nodes representing different bash constructs (commands, flow control, variables, etc.) and connecting them to define execution flow. The application generates the corresponding bash script from the visual representation and allows users to run and view the output directly within the editor. The application follows a modular architecture with clear separation between the graph model (nodes and edges), the view (UI components), and the controller (application logic). It uses PySide6 for the GUI and implements features like project management, syntax highlighting, theme support, and undo/redo functionality. The code demonstrates good software engineering practices with proper encapsulation, reusable components, and attention to user experience details.
FlowGram is a comprehensive, production-grade visual workflow development framework from ByteDance. The codebase implements two distinct editing paradigms — fixed-layout (automatic positioning with composite nodes like loops, branches) and free-layout (node-position-free with lines) — both built on a shared plugin architecture using inversify for dependency injection. The framework includes a form engine with reactive fields, validation, and effects; a variable engine with AST-based type inference and scoped lifecycle; and a runtime engine capable of executing workflows with executors for LLM, HTTP, code (QuickJS sandbox), and conditions. The repository contains over 40 packages managed via Rush monorepo, encompassing core libraries, plugins (history, minimap, auto-layout, group, snap, clipboard, export), UI material libraries (Semi UI, Ant Design), a CLI tool for scaffolding, multiple demo applications, and comprehensive documentation. The system is actively maintained with regular commits, CI workflows, and E2E tests. Notable technical decisions include a local fork of the use-gesture library for canvas interaction, heavy decorator-based IoC, and support for both React 17 and 18. While the architecture is well-structured and extensible, the codebase shows signs of duplication between fixed and free layouts, numerous demo-specific components, and some deprecated APIs that indicate ongoing refactoring.
Rivulet is an interpreter for an esoteric programming language of the same name, where code is written using semigraphic characters that form flowing strands. The system parses these visual programs into executable glyphs, interprets them according to unique semantics involving lists, strands, and conditional rollbacks, and can output results as text, numbers, or SVG visualizations. The architecture separates parsing, interpretation, and visualization concerns into distinct modules. While primarily a language implementation, the SVG generator demonstrates reusable visualization techniques.
This repository provides a reusable, interactive node editor library built on top of Dear ImGui. It is a pure C++ library with a public API that enables embedding a visual node/graph editor into any ImGui-based application. The core implementation handles node and link creation, dragging, selection, zoom/pan, context menus, cut/copy/paste, flow animations, and state serialization via a bundled JSON library. It is not a standalone application but ships with several examples and an application framework (Win32/DirectX11, GLFW/OpenGL) to demonstrate usage. The architecture is modular, with separate components for canvas rendering, bezier math, and JSON serialization, making individual parts reusable in other projects. The repository is well-maintained with active issue triage and recent commits, though it has medium technical drift due to heavy version-conditional code for Dear ImGui compatibility and reliance on some outdated dependencies (DirectX SDK, older stb versions).
ImNodeFlow is a C++ library that provides node-based editor functionality for Dear ImGui applications. It enables developers to create visual programming interfaces with customizable nodes, input/output pins, and bezier curve connections. The library handles all aspects of the node editor including grid management, node rendering, link rendering, user interactions (dragging, clicking, popup menus), and connection logic. The architecture centers around the ImNodeFlow class which manages the infinite grid, nodes, and links. Custom nodes are created by deriving from BaseNode and implementing the draw() method for node content. The system uses a retained-mode approach for nodes and links while leveraging ImGui's immediate-mode rendering for the UI. Key features include zoom/pan support, connection filtering, customizable styling, and popup events for right-click and dropped links. While primarily a UI component library, the repository includes specialized mathematical utilities that could be reused independently. The bezier math implementation for connection rendering and the context wrapper for zoom/pan functionality demonstrate particularly strong encapsulation and could be extracted for use in other projects.
This repository is a Vue.js 3 component library for building interactive node-based diagrams, inspired by react-diagrams. It provides a `Diagram` component that renders an SVG canvas with draggable nodes, ports, and links, supporting pan/zoom, grid snapping, resizable nodes, custom node types, context menus, serialization, and edit modes. The architecture is a classic Vue component library: a main `Diagram.vue` orchestrates SVG rendering via `vue-svg-pan-zoom`, while `DiagramModel` and `DiagramNode` classes manage the data model. The codebase includes extensive Storybook stories and a documentation site built with Nuxt. While functional and well-documented, the main diagram component is monolithic and mixes concerns, and some features (like port deletion) are incomplete. The library is actively maintained and uses modern tooling (Vite, TypeScript, Vitest).
This is the official Scratch 3.0 graphical user interface (scratch-gui), a React/Redux single-page application that provides the complete web-based editor for creating, editing, and running Scratch projects. It integrates tightly with the Scratch ecosystem (scratch-vm, scratch-blocks, scratch-render, scratch-storage, etc.) to deliver block-based programming, sprite/costume/sound management, stage rendering, hardware extensions, cloud variables, tutorials, and project save/load. The architecture is heavily modular with many Higher-Order Components (HOCs) and relies on a centralized Redux store. While the codebase is large and well-structured for its domain, it exhibits significant technical drift due to outdated dependencies (React 16, Redux 3, Jest 21) and reliance on deprecated lifecycle methods. The repository is being archived and migrated to the scratch-editor mono-repo, as announced in the README.
This repository provides the firmware and desktop tools for Petoi's quadruped robots (Bittle, Nybble, Chero). The core is an Arduino-based firmware (OpenCat.ino) running on ATmega328P (NyBoard) that handles servo control, gait generation, IMU integration, sensor processing (IR, ultrasonic, gesture, voice), and skill execution via pre-programmed motion sequences. A Python desktop application (pyUI) offers firmware upload, joint calibration, skill composition, and debugging. A Python serial API (serialMaster, OpenCatPythonAPI) enables scripting robot behaviors. The architecture is monolithic firmware with conditional compilation for multiple hardware variants and sensor options. While the project has a large user base and extensive documentation, the codebase shows signs of technical drift: it is explicitly legacy (development moved to OpenCatESP32), relies on outdated libraries, has duplicated code (e.g., three copies of IRremote), and uses global state and hardcoded paths. The skill system and serial protocol are well-defined patterns, but overall reusability is limited by tight coupling to specific hardware and board versions.
Flowise is an open-source, low-code platform for visually building AI agents, chatbots, and LLM-powered workflows. The monorepo contains a full-stack application: an Express/TypeORM backend (packages/server), a React/MUI frontend (packages/ui), a component library (packages/components) defining hundreds of pluggable nodes for LLMs, tools, memory, vector stores, and retrievers, a newer canvas SDK (packages/agentflow) for embedding agent flows, and an observability package (packages/observe) for execution monitoring. The platform supports multi-tenancy, RBAC, SSO, job queues (BullMQ), and enterprise features like usage quotas and audit logging. Despite being archived, the codebase demonstrates a comprehensive architecture for a visual AI orchestration platform with extensive third-party integrations (LangChain, LlamaIndex, OpenAI, Anthropic, etc.). However, the code exhibits significant technical drift: many nodes are marked as deprecated, database migrations are duplicated across four dialects, and there is evidence of incomplete migration from v1 to v2 canvas components. The repository is large and functionally rich, but its maintenance status (archived) and accumulation of deprecation warnings reduce its long-term viability.