ZeroPipeline.Nodes
1.0.0
dotnet add package ZeroPipeline.Nodes --version 1.0.0
NuGet\Install-Package ZeroPipeline.Nodes -Version 1.0.0
<PackageReference Include="ZeroPipeline.Nodes" Version="1.0.0" />
<PackageVersion Include="ZeroPipeline.Nodes" Version="1.0.0" />
<PackageReference Include="ZeroPipeline.Nodes" />
paket add ZeroPipeline.Nodes --version 1.0.0
#r "nuget: ZeroPipeline.Nodes, 1.0.0"
#:package ZeroPipeline.Nodes@1.0.0
#addin nuget:?package=ZeroPipeline.Nodes&version=1.0.0
#tool nuget:?package=ZeroPipeline.Nodes&version=1.0.0
ZeroPipeline
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 | Versions 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. |
-
.NETFramework 4.6.2
- ZeroComm.Core (>= 1.0.0)
- ZeroGraphics.Core (>= 1.0.1)
- ZeroGraphics.Imaging (>= 1.0.1)
- ZeroGraphics.Vision (>= 1.0.1)
- ZeroInference.Core (>= 1.0.0)
- ZeroPipeline.Core (>= 1.0.0)
- ZeroStorage.Core (>= 1.0.0)
- ZeroTensor.Core (>= 1.0.0)
-
net8.0-windows7.0
- ZeroComm.Core (>= 1.0.0)
- ZeroGraphics.Core (>= 1.0.1)
- ZeroGraphics.Imaging (>= 1.0.1)
- ZeroGraphics.Vision (>= 1.0.1)
- ZeroInference.Core (>= 1.0.0)
- ZeroPipeline.Core (>= 1.0.0)
- ZeroStorage.Core (>= 1.0.0)
- ZeroTensor.Core (>= 1.0.0)
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 |