Skip to main content

FlyPix Release: v3.11.0

ยท 5 min read

Version 3.11.0 introduces custom Data Properties, letting projects define their own schema of fields โ€” booleans, numbers, strings, colors, dates, enums, objects, and lists โ€” for every annotation, manageable right from the inspector and included in GeoJSON export/import. The annotations table also gains a column for each data property and for each annotation's layer, with per-column sorting and type-aware filtering. Other notable changes include a move of the annotations table into its own module, simplified advanced training settings, table filters that now affect map visibility, relaxed inference region validation, and broader WMTS projection support. This release also fixes a handful of minor issues.

Changelogโ€‹

Major New Features

๐Ÿ’ฅ
Custom Data Properties

Projects can now define their own custom data properties for annotations, described using a JSON Schema. This lets you manage properties of many data types on every annotation in the project โ€” booleans, numbers, strings, colors, dates, enums, nested objects, and lists. These values can also be included when exporting annotations as GeoJSON, and set from a column (or a fallback default) when importing annotations from GeoJSON. See the Data Properties deep dive for more details.

New Features and Improvements

โœจ
Data Properties and Layer Info in the Analytics Table

The annotations table now shows a column for each of your project's configured custom data properties, alongside a new column identifying each annotation's layer (source vector). Every column can be sorted, and most support filtering suited to their type โ€” text search, number and date ranges, or a checklist of existing values.

โœจ
Broader WMTS Projection Support

WMTS sources advertising a wider range of coordinate systems can now be added to a project. Previously, only a small set of hard-coded EPSG codes were recognized; unsupported projections are now resolved automatically against a much larger reference list.

Changes

๐Ÿ”„
Moved Project Classes List

The project classes list has been moved to the project Settings page.

๐Ÿ”„
Moved Analytics Table to Its Own Module

The annotation attributes table has moved out of the Analytics panel and into its own module, next to Scenes, as a scrollable list. Column headers now support click-to-sort, shown with an up or down arrow, and each sortable column has its own filter button that opens a set of range filters, replacing the previous single filter row.

๐Ÿ”„
Simplified Advanced Training Settings

Advanced Settings in model training now offers a single control, the number of training epochs. The crop size and learning rate sliders have been removed: the latest training pipeline determines both values automatically, so setting them manually no longer had any effect. Existing models are unaffected.

๐Ÿ”„
Table Filters Now Affect Map Visibility

Filtering the annotations table by class, layer, or a data property now also hides the matching annotations on the map, and anywhere else annotation visibility applies, instead of only in the table.

๐Ÿ”„
Relaxed Inference Region Validation

Inference regions are no longer flagged as "Too Sparse" or "Too Thin". Only containment within the raster is still checked, so inference regions of any size or shape are now accepted.

Fixes

๐Ÿ”ง

Fixed a crash when opening the details page of a model that was trained without a validation dataset. Metrics that could not be measured are now shown as empty values.

๐Ÿ”ง

Fixed classes copied into a project not appearing until the page was refreshed, which left their annotations shown in a fallback gray color. Copied classes and their colors now appear immediately.

Deep Divesโ€‹

Data Propertiesโ€‹

Every project can now define its own set of data properties: custom, project-specific fields you attach to each annotation, such as species, height, condition, or inspection date. You define the shape of these properties once, using a JSON Schema, and every annotation in the project can then carry values matching that shape.

Once a schema is defined, the inspector lets you manage properties of many data types on every annotation in the project, with no separate configuration step required โ€” booleans (checkboxes), numbers, strings, colors, dates, single-choice options (enums, shown as dropdowns/selectors), nested objects, and lists. Anything more complex falls back to a raw JSON view. When you select multiple annotations with differing values, the inspector shows a clear "Mixed" state instead of guessing.

Data properties can also be included when exporting annotations as GeoJSON: the export dialog's new Data Properties section lets you choose which fields to include and rename their output columns, the same way the existing built-in properties work.

The same section exists on import: pick which column in the uploaded file each field should read from (or leave a column unmatched and set a fallback default value instead), using the same type-aware controls as the inspector. A file exported with default column names imports right back into the same shape with no configuration needed.

This is the foundation for a broader set of capabilities we're building toward, including tighter Geosense integration and automatic property inference. Data properties can already be sorted and filtered directly in the Analytics table.