Skip to content

Conversation

@asahtik
Copy link

@asahtik asahtik commented Dec 2, 2025

Purpose

This is a complete rewrite of the previous pipeline graph. While some code is copy pasted, the entire modified NodeGraphQt code was dropped in favour of the official NodeGraphQt package.

This version supports depthai version 3.3.0 or higher.

It has the ability to visualize the entire pipeline, including host nodes, along with debugging information like node states I/O states and FPS data.

Specification

None / not applicable

Dependencies & Potential Impact

None / not applicable

Deployment Plan

None / not applicable

Testing & Validation

None / not applicable

Copilot AI review requested due to automatic review settings December 2, 2025 13:42
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR represents a complete rewrite of the pipeline graph visualization system. The main change is dropping a modified version of NodeGraphQt in favor of using the official NodeGraphQt package (v0.6.43). The new implementation adds support for visualizing host nodes and debugging information including node states, I/O states, and FPS data for depthai version 3.3.0 or higher.

Key Changes

  • Replaced custom NodeGraphQt implementation with official package dependency
  • Added comprehensive node state visualization with timing statistics
  • Implemented dynamic port state updates with color-coded status indicators
  • Added bridge connection support for XLinkIn/XLinkOut nodes

Reviewed changes

Copilot reviewed 47 out of 53 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
test_script/mock_depthai_output.py New test script for generating mock depthai output
test_script/README.md Documentation for testing the pipeline graph
requirements.txt Updated to use official NodeGraphQt v0.6.43
depthai_pipeline_graph/pipeline_graph.py Major rewrite with new state visualization and debugging features
depthai_pipeline_graph/node_structs.py New file containing node state structures and custom widgets
depthai_pipeline_graph/NodeGraphQt/* Entire custom implementation removed (multiple files deleted)

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

record_output += line
if args.verbose:
print(line.rstrip('\n'))
print(line.rstrqip('\n'))
Copy link

Copilot AI Dec 2, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Typo in method name: rstrqip should be rstrip.

Copilot uses AI. Check for mistakes.
import argparse

arg_parser = argparse.ArgumentParser(description="Mock DepthAI Output Generator")
arg_parser.add_argument("--file", type=str, required=True, default="spatial_detection_output.txt", help="Input file path")
Copy link

Copilot AI Dec 2, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The default parameter in add_argument has no effect when required=True. The default value will never be used because the argument must always be provided.

Copilot uses AI. Check for mistakes.
return f"{self.dai_node['name']}.{self.name} ({self.id})"

import collections
from .node_structs import *
Copy link

Copilot AI Dec 2, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Import pollutes the enclosing namespace, as the imported module depthai_pipeline_graph.node_structs does not define 'all'.

Copilot uses AI. Check for mistakes.
from Qt import QtWidgets, QtCore
from .NodeGraphQt import NodeGraph, BaseNode, PropertiesBinWidget
from .NodeGraphQt.constants import ViewerEnum
from NodeGraphQt import NodeGraph, PropertiesBinWidget
Copy link

Copilot AI Dec 2, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Import of 'PropertiesBinWidget' is not used.

Copilot uses AI. Check for mistakes.
def __str__(self):
return f"{self.dai_node['name']}.{self.name} ({self.id})"

import collections
Copy link

Copilot AI Dec 2, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Import of 'collections' is not used.

Copilot uses AI. Check for mistakes.
@moratom
Copy link

moratom commented Dec 16, 2025

@asahtik let's update the README with updated screenshots & explained what do the colors, etc mean please, thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants