mateuszzwierzycki/Owl
47.3
Weak · 28 September 2026
13.5k
lines of production code
VB.NET
primary language
5
measurements over time
What this system is
Features
Add Grasshopper wrapper for Accord.NET ActivationNetwork
The Owl.Accord.GH.Common library now includes support for the Accord.NET ActivationNetwork. A new GH\_ActivationNetwork class wraps the Accord Neuro library's ActivationNetwork, enabling serialization, deserialization, and casting within Grasshopper. A corresponding Param\_ActivationNetwork class allows users to pass and store ActivationNetwork objects in Grasshopper definitions, with file-based loading and icon support.
Owl.Accord.GH.Common · high confidence
Add neural network and video capture extensions
The Owl.Accord.Extensions library now includes new components for working with the Accord.NET framework and video input. This adds a custom TFSigmoid activation function, extension methods for reconstructing, trimming, duplicating, and evaluating ActivationNetwork instances, and a FrameCapture class for listing and capturing frames from video devices.
Owl.Accord.Extensions · high confidence
Added MQTT connectivity components for publishing and subscribing
The Owl.GH.Networking module now includes new components for MQTT communication. Users can connect to an MQTT broker via the new 'MQTT Connect' component, which opens a form to configure host, port, credentials, and topics. The 'MQTT Publish' component allows sending messages to a specified topic with configurable QoS and retain flags. Additionally, the 'MQTT Read' component processes incoming messages from a buffer, exposing topics and message content as outputs. These components enable real-time IoT data exchange within Grasshopper.
Owl.GH.Networking · high confidence
Added OwlParamTester component for testing Owl.GH.Common
Added a new Grasshopper component, OwlParamTester, which demonstrates how to use Owl.GH.Common. The component accepts an OwlTensorSet input and outputs the average of the tensor values. The project also includes standard Visual Studio project files, resource files, and an app.config that redirects RhinoCommon to version 5.1.30000.16.
Owl.ParamSetup/Owl.ParamSetup · high confidence
Added QAgent class for Q-Learning implementation
A new QAgent class has been added to the Owl.Learning/QLearning namespace, providing a complete implementation of the Q-Learning algorithm. The class manages a Q-matrix (Tensor) and exposes properties for the discount factor (Gamma) and learning rate (Alpha). It includes methods for choosing actions based on current state and epsilon-greedy exploration, updating Q-values with rewards, and managing random number generation for reproducibility.
Owl.Learning/QLearning · high confidence
Added neural network components for activation and backpropagation learning
The Owl.Learning.Neuro library now includes a complete set of classes to define and train a multi-layer neural network. This includes ActivationNetwork, ActivationLayer, and ActivationNeuron to construct the network architecture, along with BackPropagationLearning to handle the training process. Users can now create networks with configurable layers and neurons, and train them using backpropagation with adjustable learning rate and momentum parameters.
Owl.Learning.Neuro · high confidence
Added project metadata and configuration files for the Owl.Learning module
The Owl.Learning project now includes its core assembly metadata and configuration files, including AssemblyInfo.vb (defining version 2.1.0.0 and copyright details), Application.myapp (configuring application behavior), and Settings files (enabling application settings persistence). These changes establish the foundational identity and configuration for the learning module.
Owl.Learning/My Project · high confidence
Initial release of the Owl framework and its components
The repository now includes the complete Owl framework, a set of libraries for machine-learning-oriented data pre- and post-processing, normalization, serialization, and visualization. The release introduces the core Owl.Core library, Owl.Learning for machine learning methods, and various Grasshopper (GH) plugins and extensions (Owl.GH, Owl.Accord.GH, etc.) that enable developers to use Owl types within GH environments. A .gitignore file is also added to manage build artifacts and user-specific files.
(repo-wide) · high confidence
K-Means clustering now supports custom distance and averaging functions
The K-Means clustering algorithm has been enhanced to allow users to provide their own distance metric and cluster-averaging logic. A new \KMeansEngineMetric\ class accepts delegates for these functions, enabling flexible, user-defined clustering behavior instead of relying solely on the default Euclidean-style calculations.
Owl.Learning/Clustering · high confidence
New Owl.GH.Common library with Grasshopper integration types
The Owl.GH.Common library has been introduced, providing a suite of base classes and data types for the Grasshopper environment. This includes component base classes like ImageComponentBase for handling image-based UI elements, and OwlComponentBase which establishes a consistent 'Owl' category for new tools. The update also adds Goo wrappers for core data structures—such as Tensor, TensorSet, Network, QAgent, and QLearning—enabling seamless data flow between Grasshopper and the underlying C\# logic. Additionally, a Trigger class and its corresponding Goo wrapper are added to support event-driven workflows within the canvas.
Owl.GH.Common · high confidence
New Owl.Learning components for supervised, unsupervised, and reinforcement learning
The Owl.Learning module now includes a comprehensive set of new components for machine learning workflows. For supervised learning, users can construct, deconstruct, and compute outputs from neural networks (ConstructNetwork, ConstructNetwork\_Direct, DeconstructNetwork, Compute). Unsupervised learning gains K-Means clustering (KMeansClustering, KMeansClusteringEx), line clustering (ClusterDirections), and Markov chain sequence generation (MarkovChain). Reinforcement learning is supported via components to construct and deconstruct Q-Agents, update Q-values, choose actions, and build Q-matrices (ConstructQLearn, DeconstructQLearn, UpdateQ, ChooseAction, ConstructQMatrix, Matrix2QMatrix). Additionally, a new LifeSaver component provides a graphical interface for managing learning tasks within Grasshopper.
Owl.GH · high confidence
New image conversion and transformation utilities
Added new modules for image processing: \ImageConverters\ provides functions to convert between Tensors and Bitmaps (including grayscale and multi-channel formats), while \ImageFunctions\ introduces tensor operations for cropping, mirroring, rotating, and transposing images. Additionally, the \mnistImageReader\ and \mnistLabelReader\ classes were removed, and the \ColorHSL\ structure was moved to the \Structures\ namespace.
Owl.Core · high confidence
New neural network and visualization components
Adds a suite of new components for building, training, and visualizing neural networks. The 'Backpropagation' and 'Resilient' components enable supervised training using the Accord.NET library, with options for learning rate, momentum, and iterations. A 'Compute' component allows for forward passes to generate outputs, while 'EvaluateNetwork' calculates error metrics. Network management is supported via 'AssignNetworkValues' and 'GetNetworkValues' to modify or inspect weights and biases. Visualization is enhanced with 'NetPreview' and 'NetworkPreview\_OBSOLETE' for 2D network diagrams, and 'DisplayCompute' for tensor visualization. Additionally, 'TSNE' provides dimensionality reduction, and 'CameraView' enables webcam frame capture.
Owl.Accord.GH · high confidence
New neural network components: NeuronFunctions, Initializers, and Network classes
The Owl.Learning/Networks area introduces new foundational classes for building neural networks. A new NeuronFunctions namespace provides base and concrete activation functions (Tanh, Linear, ReLU, Sigmoid) with derivative support. An Initializers namespace adds a RandomInitializer for weight/bias initialization. The core Network class now supports mixed activation functions per layer and includes optimized compute methods, enabling more flexible network architectures.
Owl.Learning/Networks · high confidence
Behavioural changes
Owl.ParamSetup project restructured with 32/64-bit build support
The Owl.ParamSetup project has been reorganized to support both 32-bit and 64-bit build configurations, allowing users to choose the appropriate architecture for their environment. The solution file has been renamed and updated to reflect the new project structure, with separate build configurations for Debug32 and Debug64 platforms. This change enables better compatibility with different Grasshopper/Rhino environments by providing targeted builds for each architecture.
Owl.ParamSetup · medium confidence
Refactored image processing components into the Owl.Learning project
Moved image processing classes (Convolution, ImageModifier, ImageModifierLayer, ImageNetwork, Normalizer, Pooling, Rectification, Subsampling) from Owl.Core to Owl.Learning/Images. Updated the Convolution class to use Double instead of Integer for kernel values, changed the default for multithreading in ImageModifier.Apply to False, and updated the Normalizer to scale values to a 0-1 range instead of 0-255. Also moved MarkovChain to Owl.Learning/Markov.
Owl.Learning/Images, Owl.Learning/Markov · medium confidence
Dependencies
Added new project structures and updated third-party dependencies
The build system was reorganized with the addition of several new project files, including Owl.Accord.Extensions, Owl.Accord.GH.Common, Owl.Accord.GH, Owl.GH.Common, Owl.GH.Networking, Owl.GH, Owl.Learning.Neuro, Owl.Learning, and Owl.ParamSetup. These projects now reference specific versions of the Accord (3.8.0), Grasshopper (7.16.22067.13001), and RhinoCommon (7.16.22067.13001) libraries, alongside other dependencies like System.Reactive (5.0.0) and System.Net.Mqtt (0.5.42-beta).
(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
Score
- CAI 48 → 47 (-0.9)
- Rubric changed (rubric-2026.08.15 → rubric-2026.09.16) — scores are not directly comparable.
Lenses
- Code Health 92 → 92 (-0.2)
- Architecture 98 → 98 (+0.2)
- Maturity 46 → 42 (-3.5)
- Readiness 23 → 23 (+0.0)
- Security 100 → 100 (+0.0)
Resolved (43)
- Bounded contexts not declared
- Build did not complete in the analyzer
- Duplicated block (10 lines × 2) (Owl.Accord.GH/Components/Display/NetworkPreview_Attributes.vb)
- Duplicated block (10 lines × 2) (Owl.Core/Images/Image operations/ImageConverters.vb)
- Duplicated block (11 lines × 2) (Owl.GH/Params/Param_OwlFiles.vb)
- Duplicated block (12 lines × 2) (Owl.Learning/Clustering/KMeansEngine.vb)
- Duplicated block (13 lines × 2) (Owl.Learning.Neuro/BackpropagationLearning.cs)
- Duplicated block (15 lines × 2) (Owl.Accord.GH/Components/Display/NetworkPreview_Attributes.vb)
- Duplicated block (5 lines × 3) (Owl.Accord.GH/Components/Backpropagation/BackOwl.vb)
- Duplicated block (5 lines × 5) (Owl.Accord.GH/Components/Backpropagation/BackpropLearning.vb)
- Duplicated block (6 lines × 2) (Owl.GH/Params/Param_OwlFiles.vb)
- Duplicated block (8 lines × 2) (Owl.Accord.GH/Components/Display/NetworkPreview_Attributes.vb)
- Duplicated block (9 lines × 2) (Owl.Accord.GH/Components/Backpropagation/BackpropLearning.vb)
- Duplicated block (9 lines × 2) (Owl.Learning/Clustering/KMeansEngine.vb)
- Duplicated block (9 lines × 2) (Owl.Learning/Clustering/KMeansEngine.vb)
- Further orphaned files (smaller)
- Inconsistency in naming the collection of components: 'Neurons' for a layer, 'Layers' for a network. While distinct, the pattern of pluralizing the component name is consistent. However, there is a parameter naming inconsistency: 'input' vs 'inputs' vs 'desiredOutput' vs 'output'. Specifically, 'input' (singular) is used in BackPropagationLearning.CalculateError and ActivationNeuron.Compute, while 'inputs' (plural) is used in BackPropagationLearning.Run and ActivationLayer.Compute. This is a minor inconsistency in parameter naming for the same concept (the input data).
- Low cohesion: Tensor (LCOM4 5) (Owl.Core/Tensors/Tensor.vb)
- Monorepo: only 1 of 2 solutions was scored
- No exposed public API
- …and 23 more
New (28)
- Build failed
- Dormant codebase
- Duplicated block (10 lines × 2) (Owl.Accord.GH/Components/Backpropagation/BackpropLearning.vb)
- Duplicated block (11 lines × 2) (Owl.Learning/Clustering/KMeansEngine.vb)
- Duplicated block (11 lines × 2) (Owl.Learning/Clustering/KMeansEngine.vb)
- Duplicated block (12 lines × 2) (Owl.Core/IO/TensorSerialization.vb)
- Duplicated block (12 lines × 3) (Owl.Accord.Extensions/Visualization/Visualization.vb)
- Duplicated block (13 lines × 2) (Owl.GH/Params/Param_OwlFiles.vb)
- Duplicated block (13 lines × 2) (Owl.Learning.Neuro/BackpropagationLearning.cs)
- Duplicated block (16 lines × 2) (Owl.Accord.GH/Components/Display/NetworkPreview_Attributes.vb)
- Duplicated block (17 lines × 2) (Owl.Accord.GH/Components/Display/NetworkPreview_Attributes.vb)
- Duplicated block (19 lines × 2) (Owl.Learning/Clustering/KMeansEngine.vb)
- Duplicated block (20 lines × 2) (Owl.Core/Images/Image operations/ImageConverters.vb)
- Duplicated block (26 lines × 2) (Owl.Core/Images/Image operations/ImageConverters.vb)
- Duplicated block (33–34 lines × 2) (Owl.Accord.GH/Components/Display/NetworkPreview_Attributes.vb)
- Duplicated block (5 lines × 2) (Owl.Accord.GH/Components/Unsupervised/TSNE.vb)
- Duplicated block (5 lines × 3) (Owl.Accord.GH/Components/Backpropagation/BackpropLearning.vb)
- Duplicated block (6 lines × 2) (Owl.Accord.GH/Components/Backpropagation/BackpropLearning.vb)
- Duplicated block (6 lines × 2) (Owl.GH/Params/Param_OwlFiles.vb)
- Duplicated block (6 lines × 3) (Owl.Accord.GH/Components/Backpropagation/BackOwl.vb)
- …and 8 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
mateuszzwierzycki/Owl 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 28 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 d86de4ce3f5bda57611d3f2570ccfb76a88cf057 — the exact code this score is about.
- Scored under rubric-2026.09.16 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-2d9048c36d26.