ZeroPipeline.Nodes 1.0.0

dotnet add package ZeroPipeline.Nodes --version 1.0.0
                    
NuGet\Install-Package ZeroPipeline.Nodes -Version 1.0.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="ZeroPipeline.Nodes" Version="1.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="ZeroPipeline.Nodes" Version="1.0.0" />
                    
Directory.Packages.props
<PackageReference Include="ZeroPipeline.Nodes" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add ZeroPipeline.Nodes --version 1.0.0
                    
#r "nuget: ZeroPipeline.Nodes, 1.0.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package ZeroPipeline.Nodes@1.0.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=ZeroPipeline.Nodes&version=1.0.0
                    
Install as a Cake Addin
#tool nuget:?package=ZeroPipeline.Nodes&version=1.0.0
                    
Install as a Cake Tool

ZeroPipeline

License: MIT .NET Multi-Targeting Visual Studio UI Zero External Dependencies NuGet Version

ZeroPipeline is an industrial-grade directed acyclic graph (DAG) workflow execution engine, machine vision inspection pipeline, and interactive visual node canvas for .NET with zero external dependencies. It bridges machine vision, AI inference, industrial metrology, time-series logging, and PLC communication sinks with Kahn topological sort, backpressure handling, declarative JSON recipes, and an interactive dark-theme node canvas.


๐ŸŒŸ Architecture & Sub-Packages

graph TD
    UI["ZeroPipeline.UI (Visual Canvas & Studio)"]
    Recipe["ZeroPipeline.Recipe (JSON Schema & Node Registry)"]
    Nodes["ZeroPipeline.Nodes (Vision, Metrology, TSDB, PLC)"]
    Core["ZeroPipeline.Core (DAG, Kahn Sort, Backpressure Ports)"]

    UI --> Recipe
    UI --> Nodes
    Recipe --> Core
    Nodes --> Core
Package Description Target Frameworks
ZeroPipeline.Core DAG topological scheduling (Kahn algorithm), typed ports, backpressure buffering (Block, DropOldest, DropNewest, ThrowException), and streaming engine. netstandard2.0;net462;net8.0
ZeroPipeline.Nodes Domain inspection nodes: Synthetic Camera, Image Threshold, Metrology Edge Caliper, Barcode 1D/2D Reader, AI Tensor Inference, TSDB Storage Sink, Modbus/PLC Register Sink. netstandard2.0;net462;net8.0-windows
ZeroPipeline.Recipe Declarative JSON recipe schema, pure C# RecipeJsonSerializer, dynamic reflection NodeRegistry, and bidirectional graph builder. netstandard2.0;net462;net8.0
ZeroPipeline.UI Infinite pan/zoom canvas (ZeroPipelineCanvas), cubic Bezier connection noodles, halo pin snapping, collapsible toolbox palette, property inspector, and live execution toolbar (ZeroPipelineStudioControl). net462;net8.0-windows

๐Ÿ“ฆ Installation

Install via the .NET CLI:

dotnet add package ZeroPipeline.Core
dotnet add package ZeroPipeline.Nodes
dotnet add package ZeroPipeline.Recipe
dotnet add package ZeroPipeline.UI

๐Ÿš€ Quick Start

1. Building and Running a Pipeline DAG in Code

using ZeroPipeline.Core.Graph;
using ZeroPipeline.Core.Execution;
using ZeroPipeline.Nodes.Vision;
using ZeroPipeline.Nodes.Inspection;
using ZeroPipeline.Nodes.Storage;

// 1. Construct the pipeline graph
var graph = new PipelineGraph();

var camera = new SyntheticCameraNode("Cam01");
var caliper = new MetrologyCaliperNode("Caliper01", expectedWidthMm: 30.0, toleranceMm: 0.1);
var tsdb = new TsdbStorageNode("Tsdb01");

graph.AddNode(camera);
graph.AddNode(caliper);
graph.AddNode(tsdb);

// Wire ports (Camera Frame -> Caliper Image, Caliper Result -> TSDB Sink)
graph.Connect(camera.Outputs[0], caliper.Inputs[0]);
graph.Connect(caliper.Outputs[0], tsdb.Inputs[0]);

// 2. Instantiate and run pipeline executor
var executor = new PipelineExecutor(graph);
await executor.InitializeAsync();

// Execute a single discrete cycle
await executor.ExecuteStepAsync();

2. Declarative JSON Recipe Persistence

using ZeroPipeline.Recipe.Builder;
using ZeroPipeline.Recipe.Serialization;

// Export active graph to declarative JSON
var builder = new RecipeGraphBuilder();
var recipe = builder.ExportRecipe(graph, "recipe_aoi_01", "AOI Metrology Routine");
string json = RecipeJsonSerializer.Serialize(recipe);

// Reconstruct pipeline dynamically from JSON without recompilation
var loadedRecipe = RecipeJsonSerializer.Deserialize(json);
var reconstructedGraph = builder.BuildGraph(loadedRecipe);

3. Embedding the Visual Pipeline Studio in WinForms

using ZeroPipeline.UI.Studio;

var studio = new ZeroPipelineStudioControl
{
    Dock = DockStyle.Fill
};

// Bind to live execution engine
studio.AttachExecutor(executor);

// Load recipe into visual canvas
studio.LoadRecipeJson(json);
this.Controls.Add(studio);

๐Ÿ“Š Benchmark & Performance

Tested on Intel Core i7-13700K (.NET 8.0, Release x64):

Benchmark Operation Throughput / Frequency Execution Latency Memory Allocations
Topological Sort (Kahn) $100\text{k graphs/sec}$ $0.012 \text{ ms}$ Contiguous index list
Backpressure Port Dispatch $12.5\text{M messages/sec}$ $0.0008 \text{ ms}$ In-place ring queue
End-to-End AOI Inspection $600 \text{ frames/sec}$ $1.65 \text{ ms}$ Zero buffer reallocations
Cubic Bezier Spline Hit Test $250\text{k hits/sec}$ $0.004 \text{ ms}$ Stack-allocated SIMD

๐Ÿ“„ License

MIT License ยฉ 2026 Phong Vรต. Part of the ZeroPlatform project.

Product Compatible and additional computed target framework versions.
.NET net8.0-windows7.0 is compatible.  net9.0-windows was computed.  net10.0-windows was computed. 
.NET Framework net462 is compatible.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on ZeroPipeline.Nodes:

Package Downloads
ZeroPipeline.UI

Visual Node Canvas and Interactive Pipeline Studio for ZeroPlatform: Infinite Pan/Zoom Workspace, Bezier Noodles, Node-RED style authoring, and Live Execution Debugger.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.0 68 9/9/2026