AI-POWERED DOCS
What do you want to know?
Snapshots & Changelog
Parameter Snapshot
Every published version stores a parameter snapshot: the recipe and test-set parameters captured against a fixed, versioned schema, so a version holds the full structured content of what is inside it. Each version also has a README file that presents that snapshot in readable form.
A version has two snapshot files:
parameters/recipe/<version>.json— the recipe snapshotparameters/testset/<version>.json— the test-set snapshot
Both carry a schema_version describing the shape of the file (currently 1.1). Fields use dot paths below; [] marks a list, so blocks[].type_config.labels[].name is the name of each label of each block.
Recipe snapshot
parameters/recipe/<version>.json
| Field | Type | Meaning |
|---|---|---|
schema_version | string | Schema shape version of this file. |
extracted_at | string | When the snapshot was taken. |
recipe_name | string | Recipe name. |
description | string | null | Recipe description. |
plc_recipe_id | integer | null | PLC recipe ID. |
meta_version | integer | Recipe metadata version. |
database_version | integer | Recipe database version. |
software_version | string | Recipe software version. |
imaging.preview_image.sha | string | SHA of the preview image. |
imaging.preview_image.path | string | Path of the preview image. |
imaging.exposure | integer | null | Exposure time. |
imaging.gain | number | null | Sensor gain. |
imaging.brightness | integer | null | Brightness. |
imaging.gamma | integer | null | Gamma. |
imaging.focal_length | number | null | Focal length. |
imaging.focus | number | null | Focus. |
imaging.focus_distance | number | null | Focus distance. |
imaging.rotation_mode | integer | null | Image rotation mode. |
imaging.acq_mode | integer | null | Acquisition mode. |
imaging.hdr_mode_enabled | boolean | null | HDR mode on/off. |
imaging.led_mode | integer | null | LED lighting mode. |
imaging.led_gain | integer | null | LED gain. |
imaging.led_strobe_mode | boolean | null | LED strobe on/off. |
imaging.lens_correct | boolean | null | Lens-distortion correction on/off. |
imaging.photometric_enabled | boolean | null | Photometric correction on/off. |
imaging.photometric_mode | integer | null | Photometric mode. |
imaging.awb_red | integer | null | Auto white-balance red channel. |
imaging.awb_green | integer | null | Auto white-balance green channel. |
imaging.awb_blue | integer | null | Auto white-balance blue channel. |
imaging.awb_op | boolean | null | Auto white-balance enabled. |
imaging.calibration_pixels_per_unit | number | null | Calibration scale (pixels per unit). |
imaging.calibration_unit | string | null | Calibration unit. |
imaging.trigger_debounce | integer | null | Trigger debounce. |
imaging.trigger_delay | integer | null | Trigger delay. |
imaging.raw | object | Full unparsed imaging source. |
blocks[].block_type | string | Block type (alignment, classification, segmentation, measurement, ocr, unsupervised). |
blocks[].uuid | string | Stable block identity. |
blocks[].name | string | Block name. |
blocks[].status | string | Block status. |
blocks[].is_enabled | boolean | Whether the block runs. |
blocks[].has_model | boolean | Whether a trained model is attached. |
blocks[].search_area.search_area_id | integer | null | Search-area ID. |
blocks[].search_area.search_area_bbox | list of number | null | Search-area bounding box. |
blocks[].search_area.roi_regions[].bbox | list of number | ROI bounding box. |
blocks[].search_area.roi_regions[].angle | number | ROI rotation angle. |
blocks[].type_config | object | Type-specific configuration (see below). |
blocks[].model_ref.sha | string | Trained model file SHA. |
blocks[].model_ref.path | string | Trained model file path. |
blocks[].model_ref.file_extension | string | Trained model file extension. |
aligner_reference_image.sha | string | Alignment reference image SHA. |
aligner_reference_image.path | string | Alignment reference image path. |
aligner_reference_image.full_repo_path | string | Alignment reference image path within the repo. |
node_red_flow.basic_mode | boolean | Whether the flow is in basic mode. |
node_red_flow.basic_flow_id | string | null | Basic-mode flow ID. |
node_red_flow.basic_flow_metadata | object | null | Basic-mode flow metadata. |
node_red_flow.nodes[].id | string | Node ID. |
node_red_flow.nodes[].node_type | string | Node type. |
node_red_flow.nodes[].name | string | Node name. |
node_red_flow.nodes[].x | integer | null | Node canvas X position. |
node_red_flow.nodes[].y | integer | null | Node canvas Y position. |
node_red_flow.nodes[].wires | list of list of string | Outgoing connections (per output, target node IDs). |
node_red_flow.nodes[].func | string | null | Function-node code. |
node_red_flow.nodes[].raw | object | Full unparsed node source. |
Block configuration
The fields under blocks[].type_config depend on blocks[].block_type.
| Field | Type | Meaning |
|---|---|---|
blocks[].type_config.angle_tolerance_left | number | null | alignment — left angle tolerance. |
blocks[].type_config.angle_tolerance_right | number | null | alignment — right angle tolerance. |
blocks[].type_config.confidence_score_threshold | number | null | alignment / segmentation / unsupervised — match/confidence threshold. |
blocks[].type_config.sensitivity | number | null | alignment / unsupervised — sensitivity. |
blocks[].type_config.version | integer | null | alignment — config version. |
blocks[].type_config.scale_invariant | boolean | null | alignment — scale-invariant matching on/off. |
blocks[].type_config.inference_mode | string | null | alignment — inference mode. |
blocks[].type_config.dl_performance_mode | integer | null | alignment — deep-learning performance mode. |
blocks[].type_config.skip_block | boolean | null | alignment — skip this block. |
blocks[].type_config.template_image_id_path | string | null | alignment — template image reference path. |
blocks[].type_config.labels[].name | string | classification — label name. |
blocks[].type_config.labels[].confidence_threshold | number | null | classification — per-label confidence threshold. |
blocks[].type_config.labels[].is_positive | boolean | null | classification — whether the label counts as a pass. |
blocks[].type_config.labels[].inspection_type | integer | null | classification — inspection type. |
blocks[].type_config.labels[].color | string | null | classification — display color. |
blocks[].type_config.segmentation_type | string | null | segmentation — segmentation type. |
blocks[].type_config.classes[].class_name | string | segmentation — class name. |
blocks[].type_config.classes[].mask_pixel_value | integer | null | segmentation — mask pixel value. |
blocks[].type_config.classes[].color | string | null | segmentation — display color. |
blocks[].type_config.classes[].mask_sha | string | null | segmentation — mask file SHA. |
blocks[].type_config.classes[].mask_path | string | null | segmentation — mask file path. |
blocks[].type_config.measurement_regions[] | object | measurement — measurement regions. |
blocks[].type_config.min_text_area | integer | null | ocr — minimum text area. |
blocks[].type_config.text_segmentation_threshold | number | null | ocr — text segmentation threshold. |
blocks[].type_config.unclip_ratio | number | null | ocr — unclip ratio. |
blocks[].type_config.unclip_ceiling | number | null | ocr — unclip ceiling. |
blocks[].type_config.unsupervised_type | string | null | unsupervised — method type. |
blocks[].type_config.epochs | integer | null | unsupervised — training epochs. |
blocks[].type_config.encoder | string | null | unsupervised — encoder. |
blocks[].type_config.learning_rate | number | null | unsupervised — learning rate. |
blocks[].type_config.downsampling_ratio | number | null | unsupervised — downsampling ratio. |
blocks[].type_config.tiled_mode | boolean | null | unsupervised — tiled mode on/off. |
blocks[].type_config.min_blob_area | number | null | unsupervised — minimum blob area. |
blocks[].type_config.max_blob_area | number | null | unsupervised — maximum blob area. |
blocks[].type_config.hyperparameters | object | classification / segmentation / measurement / ocr / unsupervised — training hyperparameters. |
Test-set snapshot
parameters/testset/<version>.json
| Field | Type | Meaning |
|---|---|---|
schema_version | string | Schema shape version of this file. |
extracted_at | string | When the snapshot was taken. |
name | string | Test-set name. |
description | string | null | Test-set description. |
author | string | null | Test-set author. |
image_count | integer | Number of images. |
images_with_ground_truth | integer | Number of images that have ground truth. |
search_area_ids[] | string | Search-area IDs referenced by the test set. |
per_class_distribution[].class_name | string | Class name. Reserved; currently always empty (treat as "distribution unavailable"). |
per_class_distribution[].count | integer | Image count for the class. Reserved; currently always empty. |
images[].image_id | string | Image ID. |
images[].ground_truth_fingerprint | string | null | Fingerprint of the image's ground truth. |
images[].has_ground_truth | boolean | Whether the image has ground truth. |
README
Each version also has a committed README.md that renders the snapshot in readable form. Its sections are:
- Imaging Settings — a table of the imaging parameters.
- Aligner Reference Image — the alignment reference image and its SHA-256 (only if the recipe has one).
- Inspection Blocks — one sub-section per block, headed
<name> (<block type>), with the block's UUID, status, and enabled flag, followed by a type-specific block — Classification Labels, Segmentation Classes, OCR Parameters, Unsupervised Parameters, Alignment Parameters, or a measurement-regions count. - Node-RED Flow — basic-mode flag, node count, and a table of nodes (ID, Type, Name).
- Test Set — name, description, author, image count, images with ground truth, and search areas.
Changelog
When a version is published, its parameter snapshot is compared against the previous version's to produce the changelog. The comparison is structural — field by field across the schema above, with lists (blocks, labels, classes, Node-RED nodes) matched by stable identity rather than position, so reordering never shows as a change. Recipe and test set are compared independently, and the changelog is derived from the committed snapshots on demand, so it is available for any pair of versions.
Changes are grouped into the same sections as the snapshot, and a section appears only if something in it changed. A version with no differences is noted as such, and the first version shows a full initial readout instead of a diff.