SKYLAKE1314/MeteorSystemForDotNet
42.4
Weak · 20 September 2026
11k
lines of production code
VB.NET
primary language
1
measurement over time
What this system is
MeteorSystem is a WPF-based industrial inspection platform that orchestrates computer vision workflows using template matching, YOLOv26 object detection, and OCR/barcode decoding. It integrates hardware control via Modbus I/O and manages multi-camera streams through a robust UVC subsystem, while supporting AI inference via local Ollama instances and GPU-accelerated OpenVINO. The system provides a comprehensive UI for template training and parameter tuning, along with WebSocket and JSON-based interfaces for external task routing and result reporting.
Features
Added IoBoardMode enum and helper module for board mode parsing
A new IoBoardMode enumeration (IO, PLC, NONE) and a helper module have been added to support parsing board mode strings and checking if hardware is enabled. This provides a standardized way to handle IO board mode configuration within the UI layer.
UI/IoIoBoard · high confidence
Added application configuration file
The project now includes an Application.myapp file that defines core application settings, including setting Form1 as the main form, enabling visual styles, and configuring shutdown and single-instance behavior.
My Project · high confidence
Added image conversion helper modules
New helper modules were added to the image processing library to facilitate conversions between WPF and OpenCV formats. Specifically, ImageConvertExt provides a method to convert BitmapSource objects to OpenCV Mat instances, while ImageToBase64 adds a method to convert OpenCV Mat objects back to WPF BitmapSource objects, leveraging the OpenCvSharp library.
Sys/Data/Images · high confidence
Initial application configuration and settings infrastructure
The Meteor Project now includes the foundational configuration files required for the application to run, specifically Application.myapp, Settings.settings, and their corresponding Designer.vb files. This establishes the application's entry point (Form1), enables visual styles, and defines user-scoped settings for language (defaulting to zhTW), camera device selection, I/O modes, auto-startup behavior, and OCR/decode modes. These changes provide the necessary framework for the application to persist user preferences and initialize correctly.
Meteor Project · high confidence
Initial project scaffolding with startup UI, Live2D overlay, and core algorithm modules
This change introduces the foundational structure of the application, adding several new source files and configuration assets. It includes a startup window (Startup.xaml/vb) that displays progress updates and applies a Windows acrylic blur effect, alongside a global progress reporting mechanism (AppProgress.vb) and application state holder (AppState.vb). A Live2D overlay feature is added via a transparent WebView2 window (KawaiiJK.xaml/vb) that loads local assets from a mapped virtual host. Core algorithmic capabilities are introduced with a ContourRenderer class for image processing using OpenCvSharp, and a PageManager for initializing main application pages. Additionally, logging configuration for the MVSDK runtime is provided via a new properties file.
(repo-wide) · high confidence
Initial release of MeteorSystem WPF application
Introduces the core WPF application structure for the MeteorSystem vision platform, including the main window with a collapsible navigation sidebar, a startup sequence that initializes camera services, OCR engines (PaddleOCR and Ollama), and barcode decoding, and a tray icon for silent start and background operation.
(repo-wide) · high confidence
Introduce template snapshot persistence with OCR and barcode support
The Snapshot module now includes a complete set of classes and storage logic for persisting template configurations. This introduces support for serializing and deserializing template data, including new fields for enabling and storing expected text for both OCR and barcode recognition. The system uses JSON files for storage, with atomic write operations to ensure data integrity, and maintains a separate store for the last used template path.
Sys/Algorithm/Core/Snapshot · high confidence
Introduction of IOController for hardware interaction and LogCenter for event-based logging
This change introduces the IOController class in Sys/Data, which manages hardware I/O board interactions via Modbus. It handles OK/NG result processing by triggering specific hardware actions (such as green light pulses and buzzer control) and playing associated audio files (Correct.wav, Error.wav), while enforcing a 500ms hardware cooldown to prevent rapid successive actions. Additionally, a new LogCenter module is added to provide a centralized, event-driven logging mechanism (LogAdded event) for the system.
Sys/Data · high confidence
Introduction of JSON-based and ResourceDictionary localization systems
The application now supports dynamic language switching through two new managers. The \LanguageManager\ loads text translations from JSON files (e.g., \zhTW.json\) located in the \UI/Languages/document\ directory, persisting the user's choice in settings and raising a \LanguageChanged\ event. Additionally, the \LocalizationManager\ enables switching WPF resource dictionaries from the same directory, allowing for UI theme or string resource updates based on the selected language.
UI/Languages · high confidence
Introduction of JSON-based task routing and data models
Added TaskData and TaskRouter classes to handle incoming JSON messages for task lifecycle events. The TaskRouter parses JSON payloads to extract task status (Start, Pause, Resume, End) and associated metadata (RequestId, StationId, PartCode, etc.), then dispatches the parsed TaskData objects to corresponding event handlers.
Sys/Data/Json · high confidence
Introduction of WebSocket communication components
The Sys/Data/WebSocket area now includes new implementation files for WebSocket connectivity: WebSocketClient.vb provides a client-side connection, message sending, and reception loop; WebSocketManager.vb and WebSocketServer.vb provide server-side capabilities including listening on a specified port, managing connected clients, handling incoming messages, and broadcasting messages to all connected clients.
Sys/Data/WebSocket · high confidence
Introduction of custom styled message box and window design utilities
This change introduces a new custom WPF message box component (MeteorMessageBox) that replaces standard dialogs with a styled interface featuring support for error, warning, information, and question icons, as well as configurable button layouts (OK, Cancel, Yes/No). It also adds a WindowDesigner helper class to simplify window management by providing methods for enabling drag-to-move functionality on specific UI elements and configuring standard window control buttons (minimize, maximize, close) with hover effects.
UI · high confidence
Introduction of inspection result data models
New VB.NET classes have been added to define the structure of detection and inspection results. DetectionModels.vb introduces DetectionResult and DetectionItem to handle lists of items, base64 images, and confidence scores. Metadata.vb defines algorithm version, inspection order, and part type. PartInspect.vb provides a dedicated model for individual inspection records including task details, recognized part names/codes, and image URLs.
Sys/Data/result · high confidence
Introduction of structured logging and camera settings model
The application now includes a new Logger class that provides structured logging (Debug, Info, Warn, Error) with timestamped, color-coded output in the WPF UI, and a CameraSettings class to manage camera configuration data.
Sys/Push · high confidence
New Laplacian-based image quality scoring
A new Laplacian scoring algorithm has been added to the core system, allowing users to evaluate image sharpness or focus quality. The implementation converts input images to grayscale, applies the Laplacian operator, and returns a score based on the variance of the resulting pixel values.
Sys/Algorithm/Core/Laplacian · high confidence
New Modbus I/O controller classes for buzzer and digital input handling
Added three new classes in the Sys/Data/Modbus module to manage Modbus-based hardware interactions: BuzzerController, DIScanf, and ModbusBuzzer. BuzzerController provides a high-level API to trigger buzzer outputs (specifically for 'NG' labels) with configurable duration, retry logic, and thread-safe execution. DIScanf monitors digital input states on an IO card and raises events when changes are detected. ModbusBuzzer serves as the underlying communication layer, handling TCP connections to Modbus devices, writing to coils (digital outputs), and reading digital inputs, with support for connection timeouts and error logging.
Sys/Data/Modbus · high confidence
New UVC camera subsystem with reliable multi-camera support and high-resolution handling
A new UVC camera module has been introduced to replace the previous camera handling logic, providing robust support for multiple USB video devices. The system now enumerates cameras by precisely matching WMI device identifiers with DirectShow indices, ensuring stable device selection even when multiple cameras share the same name. It includes a camera service that manages individual camera streams and a video recorder capable of capturing high-resolution footage by automatically enforcing MJPG compression to prevent USB bandwidth bottlenecks. The subsystem also features a resolution configuration system with a comprehensive list of common presets and a pool for managing active camera connections.
Sys/UVC · high confidence
New YOLOv26 object detection capability with OpenVINO GPU acceleration
A new deep learning detection module has been added to the system, introducing the Yolo26Detector class for object detection tasks. This component leverages the Microsoft ONNX Runtime and integrates OpenVINO as an execution provider to enable GPU-accelerated inference. The detector processes input images by resizing and padding them to a fixed 640x640 resolution, normalizes pixel values, and runs inference against an ONNX model. It returns a list of DetectionBox objects containing class IDs, confidence scores, and bounding box coordinates, with a configurable score threshold to filter low-confidence results.
Sys/Algorithm/Core/DeepLearning · high confidence
New algorithm services for barcode decoding, OCR, and template management
This change introduces several new services in the algorithm layer. BarcodeDecodeService adds support for decoding various barcode formats (QR, Code 128, EAN, etc.) using ZXing, with optional WeChat QR code detection via OpenCV and image enhancement via CLAHE. OllamaOcrService integrates with a local Ollama instance to perform OCR using the glm-ocr model, including preloading the model into GPU memory for zero-latency inference. PaddleOcrService provides CPU-based OCR using PaddleOCR with ROI support, skew detection, and deskewing capabilities. ImageFileService simplifies image loading, and TemplateCache manages template data from disk with support for both legacy and new directory structures.
Sys/Algorithm/Services · high confidence
New image processing and UI helper utilities for algorithm workflows
Added a set of helper classes in the Sys/Algorithm/Helpers directory to support image handling and user interaction. CvImageHelper and ImageConvertHelper provide safe conversion between OpenCvSharp Mat objects and WPF BitmapSource, including robust stride handling and background-thread fallbacks to prevent memory access violations. ImageRenderHelper calculates the correct display rectangle for images within UI controls to maintain aspect ratio. DialogHelper simplifies opening image files, and ExceptionHelper provides a standardized way to display error messages via the application's message box.
Sys/Algorithm/Helpers · high confidence
New inspection workflow pages: Home, Algorithm, Detection, and Model Management
The application now includes a comprehensive set of UI pages to support a full inspection workflow. The Home page serves as the central hub, featuring a toolbar for camera selection, image loading, and starting/stopping detection, alongside a real-time log viewer and image rendering area. The Algorithm page provides tools for template-based matching, allowing users to capture or load images, define ROIs, and adjust matching parameters like threshold, pyramid levels, and Canny edge detection. A new Detection page enables YOLO26 model inference, allowing users to load ONNX models and run detection on images with adjustable confidence scores. Finally, the Model Edit page offers a searchable, sortable list of templates with options to train, revise, delete, or edit parameters for each template group.
Pages · high confidence
New template matching engine with ROI and training capabilities
The template matching subsystem has been significantly expanded with new core components. A new TemplateMatcher class now handles matching with configurable options (threshold, pyramid level, Canny parameters, angle steps) and includes logic to soften template boundaries to prevent edge artifacts. Template management is now supported via a TemplateManager that saves and loads templates (image and JSON config) to a local directory, with support for multi-camera slotting. A new TemplateTrainingStore allows users to add training samples with polygon-based ROIs, managing a cache of samples and metadata for model refinement. Additionally, new ROI classes (RoiController, RoiCalculator) provide UI interaction for drawing ROIs on images and accurately mapping display coordinates to image pixels, handling aspect ratio scaling correctly.
Sys/Algorithm/Core/Matching · high confidence
New template training and management dialogs with live preview
Added a suite of new dialogs in Pages/Dialogs to support template creation and management: TemplateTrainDialog for capturing images from cameras or files, drawing ROIs, and configuring matching parameters; TemplateManageDialog for listing and deleting training samples; TemplateParamEditDialog and TemplateEditDialog for adjusting thresholds, OCR, and barcode settings; CameraPickDialog for selecting camera devices; and LivePreviewWindow for real-time visual feedback with OCR/barcode results.
Pages/Dialogs · high confidence
Behavioural changes
New barcode and OCR detection stages with conditional flow execution
The Home page now includes dedicated Barcode and OCR stages that run conditionally based on the template's configuration. The system checks if barcode or OCR is enabled and if expected text is provided; if not, these stages are skipped entirely. When enabled, the barcode stage uses a dedicated decoder with a live preview window, while the OCR stage supports both standard (PaddleOCR) and AI (Ollama) modes, also with live preview. The detection flow now adapts to the template's settings rather than executing all stages unconditionally, improving performance and reliability.
Pages/Home · high confidence
New template creation and editing UI with improved matching logic
The application now includes new UI windows for creating and editing templates, allowing users to input basic information such as name and gender. Alongside these interface additions, the underlying image matching algorithm has been refined: the previous CLAHE contrast enhancement has been removed to prevent score instability during object movement, and a symmetric pyramid-downscaling approach is now used to ensure consistent feature processing between the search image and the template. Additionally, coordinate scaling has been corrected to accurately map match results back to the original image dimensions.
UI/Algorithm · high confidence
Dependencies
Initial project setup with .NET 10 and AI/OCR dependencies
The application project file has been created, targeting the .NET 10.0 Windows framework with WPF and Windows Forms support. It introduces a comprehensive set of dependencies for computer vision and AI tasks, including OpenCvSharp 4.13, PaddleOCR 3.3.1, and Intel's ONNX Runtime with OpenVino 1.24.1. Additional libraries added for communication and UI include NModbus 4.0.0-alpha010, NModbus4 3.0.0-alpha2, Fleck 1.2.0, Newtonsoft.Json 13.0.5-beta1, and WPF-UI 4.3.0.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Baseline
- First survey — no prior run to compare against. CAI 42.
Lenses
- Code Health 48
- Architecture 95
- Maturity 53
- Readiness 22
- Security 100
Changes since last survey
- 147 commits — 122 feature/other, 25 fixes
By area
- (repo) — 39 commits
- (root) — 17 commits
- Pages/Home — 16 commits
- Pages/HomePage.xaml.vb — 16 commits
- Sys/Algorithm — 14 commits
- Pages/AlgorithmPage.xaml.vb — 7 commits
- Pages/HomePage.xaml — 7 commits
- Sys/Data — 7 commits
- Sys/UVC — 6 commits
- Pages/Dialogs — 4 commits
- UI/Languages — 3 commits
- Pages/AlgorithmPage.xaml — 2 commits
- Pages/SettingPage.xaml.vb — 2 commits
- UI/Live2D — 2 commits
- My Project/Application.myapp — 1 commit
- Pages/ProcessPage.xaml — 1 commit
- Pages/SettingPage.xaml — 1 commit
- Pages/TemplateTrainDialog.xaml.vb — 1 commit
- libs/halcon2405Runtime — 1 commit
Notable commits
- fix: Fix camera selection to use camera 1 only, add template management button, improve decode flow logging
- fix: bug fix.
- fix: bug fix.
- fix: bugs fix.
- fix: bugs fix.
- fix: bugs fix.
- fix: bugs fix.
- fix: bugs fix.
- fix: bugs fix.
- fix: bugs fix.
- fix: bugs fix.
- fix: bugs fix.
- fix: bugs fix.
- fix: bugs fix.
- fix: bugs fix.
- fix: bugs fix.
- fix: bugs fix.
- fix: bugs fix.
- fix: bugs fix.
- fix: bugs fix.
- …and 127 more
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
SKYLAKE1314/MeteorSystemForDotNet was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 20 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 5e8b690a9e009dfe3bc57e2f4d6760d32e5140ad — the exact code this score is about.
- Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-b51f968c9b10.