Recent Releases of immarkus

immarkus - Version 0.8.3

Annotation View

  • Path drawing tool: A new tool for creating open or closed polylines, with the ability to convert corners into curves and adjust them using bezier handles.
  • Removed kluster.ai transcription service: due to its discontinuation.
  • Added HuggingFace Inference as a new transcription service.
  • Added experimental HuggingFace Spaces integration, allowing use of HF-hosted Gradio apps as transcription services.

- TypeScript
Published by rsimon 8 months ago

immarkus - Version 0.8.2

Annotation View

  • User can now choose how image snippets are copied to the clipboard (#235):
    • As rectangular images based on bounding box (like before)
    • As masked images, cropped to the exact shape with transparent background
  • Bugfix: the new copy-and-paste feature no longer breaks copy-and-paste from text fields.
  • The Notes field now auto-adjusts to content size (#238, #242)
  • The Notes field now includes a button to adjust font size (#238)
  • OCR service integration with the Kim Han Nom project

Export

  • When exporting annotations to Excel, users can now choose how they want to export image snippets:
    • As bounding box images
    • Or as masked and cropped images, matching the clipboard copy options (#234, #243)

- TypeScript
Published by rsimon 9 months ago

immarkus - Version 0.8.1

Annotation View

  • Improved responsive behavior for the toolbar.
  • The Google Vision OCR service now allows users to choose the level of detail: words, paragraphs or blocks (#220).
  • Added support for additional transcription services:
    • Anthropic Claude
    • Azure Computer Vision
    • LLaMA & Qwen via kluster.ai
    • Volcano Engine Doubao 1.5 Vision Pro
  • Automated transcriptions now include information about the service into the creator field of the comment body. When the user selects an annotation, creator info is displayed above the comment box (#233, #236).
  • Hover tooltips for all toolbar icons.
  • New copy-to-clipboard feature that allows user to copy the selected annotation image snippet. For non-rectangular annotations (polygons, multipolygons, ellipses), a transparency mask is applied so that only the annotated region is visible when pasted.
  • Cosmetics: the "Smart Tools" toolbar icon now has a subtle animated effect when enabled.

Images Overview

  • The IIIF Importer now supports IIIF Collection manifests, with a new dialog that lets users view the items in a collection and select specific manifests to import (#178, #221)
  • It is now possible to import the same manifest multiple times, as long as each import goes into a different folder. (A manifest can still only be imported once per folder.) (#174, #226)

- TypeScript
Published by rsimon 9 months ago

immarkus - Version 0.8.0

The main addition in this release is the introduction of a simple service extension framework for integrating OCR and AI-annotation services. IMMARKUS currently includes: * OCR.space (available since v0.7.11) * Google Cloud Vision API * Google Gemini and OpenAI GPT to transcribe specific image regions

Google and OpenAI services require an API key–users must obtain their own key and have to add it to the IMMARKUS OCR configuration.

Annotation View

  • New OCR region selection tool: The OCR dialog now includes a region selection tool, allowing users to submit a specific image area to the OCR service (PR #216)

- TypeScript
Published by rsimon 9 months ago

immarkus - Version 0.7.11

The highlight in this release is a basic OCR service integration prototype. The Smart Tools panel now includes a new option called Auto Transcribe. For demonstration purposes, this uses the free OCR.space API to showcase a potential workflow for on-demand OCR or automatic annotation.

Bildschirmfoto 2025-06-13 um 07 37 26

Annotation View

  • Bugfix: When an empty annotation is selected, clicking 'Add Note' now correctly opens the Note editor.
  • Merging Annotations: When merging annotations, the result annotation now inherits all tags, from all selected annotations. Notes from all annotations will be merged into a single note, concatenated in the order of selection.
  • Example OCR service integration: The Smart Tools panel now includes a new demonstration option called Auto Transcribe, which uses the free OCR.space API to showcase a potential workflow for on-demand OCR or automatic annotation.

Data Model

  • Bugfix: Fixed the missing icon for the Color property type in Entity Class editor.

Images Overview

  • Bugfix: When the "Hide Unannotated" filter is enabled, the Grid view now correctly displays annotated canvases.

- TypeScript
Published by rsimon 9 months ago

immarkus - Version 0.7.10

Images Overview

  • Table mode: In addition to the grid layout with large icons, the image overview now offers an alternative table mode. Users can toggle between grid and table views, with the setting persisted in local storage (#199, #200).
  • Annotation counts on folders: Like images, folders now display the number of annotations they contain. The count is calculated recursively from all nested images, manifests, or canvases.
  • Hide folders without annotations: The "Hide unannotated" filter toggle now also applies to folders (#201).
  • The IIIF "Other Viewers" dropdown now includes an option to copy the manifest URL to the clipboard.

Data Model

  • New Property Type 'Number Range': Supports capturing a numeric or year interval (from-to). Both values are optional, allowing for open intervals.

Annotation View

  • Polygon editing: you can now easily add or remove points from existing polygons.
    • To add a point, hover near a polygon edge and grab the "ghost" point handle at its center.
    • To remove a point, click it and press the Del key (or Backspace on Mac). Hold Shift, CTRL or CMD (on Mac) to select multiple points.
  • Metadata sidebar: Now includes an additional tab for the IIIF manifest metadata, alongside the canvas metadata tab.
  • Bugfix: prevents creation of broken annotations when subtracting a larger shape from a smaller shape fully contained inside it. This previously resulted in an invalid zero-size annotation that broke the interface on reload.
  • Bugfix: Editing an annotation's entity class properties now correctly updates the corresponding annotation body's modified timestamp.

Knowledge Graph

  • Folder nodes: Table-of-Contents structure from IIIF structures is now represented as folder nodes in the knowledge graph (#208, #210).
  • Search result export: Exported Excel files now include the image path in the metadata. For IIIF canvases, the path includes the Table-of-Contents structure (#197)
  • Bugfix: Selecting an Entity Class node now shows the correct number of associated annotations.

Export

  • Image metadata exports: The path column now includes IIIF Table-of-Contents information (#197).

Other

  • Migrated the project to React 19. The upgrade was previously blocked by react-spring, which now supports React 19. The deprecated react-moment, dependency was replaced with date-fns.

- TypeScript
Published by rsimon 10 months ago

immarkus - Version 0.7.9

The main addition in v0.7.9 is a new set of computer-vision powered smart polygon selection tools.

Annotation View

  • Fixes a bug that stopped the merge and subtract tool from working correctly when trying to merge/subtract with multipolygon shapes.
  • ✂️ New Smart Scissors tool works like its Photoshop counterpart, tracing the outlines of objects in the image.
  • 🧲 New Edge Snap tool makes the mouse cursor snap to corner points of nearby objects detected in the image.

- TypeScript
Published by rsimon 11 months ago

immarkus - Version 0.7.8

Images Overview

  • When importing a IIIF manifest that includes a Table of Contents (via the IIIF structures field), the Images overview now represents the Table of Contents structure as a nested folder structure. (#195)

Annotation View

  • Fixed a bug that caused annotations to become corrupted under the following conditions: i) the annotation was created with the merge or subtract tool; ii) the resulting annotation was not a simple polygon, but either a polygon with a hole or a multiple disjoint polygons.

Data Model

  • New option to import a Relationship Types model from a previously exported file, similar to the import options that already existed for Entity Classes and Image/Folder Metadata Schemas.
  • New Color property type that allows storing an arbitrary color value as part of the annotation data. (Note that this is not related to the color of the annotation shape, which remains defined by the entity class!) The field also includes an interactive color picker, enabling the user to sample a color from the image in the annotation view. (#172, #191)

screenshot-color-prop

Knowledge Graph

  • Metadata exports for folder/manifest and image/canvas nodes now include IIIF metadata (#183)

- TypeScript
Published by rsimon 11 months ago

immarkus - Version 0.7.7

Knowledge Graph

  • New "Find folder" > "with IIIF metadata" graph search option (#183)
  • New "Find image" > "with IIIF metadata" graph search option (#183). This search option covers both the metadata of the canvas itself, as well as the metadata of the parent manifest.

Export

  • Excel & CSV exports for folders and images now include IIIF metadata for manifests and canvases, if any. (Note that canvases will also "inherit" the metadata from their parent manifest.) (#184)

- TypeScript
Published by rsimon 12 months ago

immarkus - Version 0.7.6

Annotation View

  • Functionality to select multiple annotations (using SHIFT-/CTRL-/CMD-Click) and apply basic batch operations:
    • Delete all selected annotations
    • Add a tag to all selected annotations
  • Boolean shape operations: merge or subtract annotation shapes (#171)
  • AI-based smart selection tool to create polygon annotations from objects in the image using the Segment Anything model (#170, #176).

- TypeScript
Published by rsimon about 1 year ago

immarkus - Version 0.7.5

Bugfix Release

This release fixes several user interface and data management bugs.

Annotation View

  • When switching the image annotation sidebar to "custom order" mode, the "Edit" button did now work - fixed.
  • When switching the image annotation sidebar to "custom order" mode and clicking the "Delete" button:
    • Dragging the mouse over the confirmation dialog would drag the annotation card - fixed.
    • Clicking "Delete" had no effect - fixed.

Image Overview

  • When editing metadata for a IIIF canvas, this would erase the metadata on the IIIF manifest (and vice versa) - fixed.

- TypeScript
Published by rsimon about 1 year ago

immarkus - Version 0.7.4

Image Overview

Annotation View

  • The annotation list now supports a new "custom order" sort mode, allowing the user to define their own annotation order via drag-and-drop. The custom order is also reflected in the data exports (#169).
  • For convenience, the current sort mode is now persisted in local storage. This way, users no longer have to keep switching to their preferred ordering, each time they open the list, but will get the same order they last used.

- TypeScript
Published by rsimon about 1 year ago

immarkus - 🚨 Version 0.7.3

Bugfix Release

🚨 This release fixes a critical bug, which caused all annotations on a IIIF canvas to get deleted if the user deleted a single annotation from the canvas. (Note that this problem only affected IIIF canvases–not local images.)

- TypeScript
Published by rsimon about 1 year ago

immarkus - Version 0.7.2

The main addition in v0.7.2 is support for static IIIF Level 0 tilesets 🚀. IMMARKUS will fetch, stitch and crop static tiles as required to generate thumbnails and annotation snippets. Image requests are throttled (max. 20 requests/s) for polite harvesting.

List of Changes & Additions

Image Overview

  • Added a filter to hide/show thumbnails for images (and IIIF canvases) that have zero annotations (#164, #167).
  • Added support for preview images for IIIF Level 0 (pre-rendered tilesets). IMMARKUS will fetch and stitch static tiles as required to generate thumbnails.

Knowledge Graph

  • Fixed a bug that caused the selected entity class sidebar to display the wrong number of relationships in the tab, and no relationships at all if the graph mode was set to Hierarchy.
  • Added support for preview images for IIIF Level 0 (pre-rendered tilesets). IMMARKUS will fetch, stitch and crop static tiles as required to generate thumbnails and annotation snippets.

Export

  • Added support for exporting snippets for IIIF Level 0 images (pre-rendered tilesets). IMMARKUS will fetch, stitch and crop static tiles as required to generate thumbnails and annotation snippets.

Other

  • Migrated the project from Tailwind v3 to v4.
  • Data integrity: previous versions of IMMARKUS produced orphaned relationships in some cases, i.e. relationships that connected annotations which no longer existed in the project. These caused data exports to break. When loading a project with orphaned relationships, these are now filtered out when the project loads, and data integrity is restored.

- TypeScript
Published by rsimon about 1 year ago

immarkus - Version 0.7.1

There are two main additions since v0.7.0:

  • Support for IIIF metadata. Embedded IIIF metadata can now be displayed in appropriate places (Images overview sidebar, Annotation View sidebar, Knowledge Graph selection sidebar). It is possible to add custom metadata to manifests and canvases, in the same way as to folders and images.
  • Suport for IIIF Simple Image Manifests. IIIF manifests pointing to simple images (plain JPEG/PNG files without an images service) are now supported. Annotation thumbnails (for previews in various sidebars, and for Excel export) are generated on the fly, using the same client-side cropping as for locally stored images.

List of Changes & Additions

Image Overview

  • Folder symbols that represents IIIF Manifests now display no. of canvases for information.
  • IIIF manifests and canvases now have a 'Metadata' context menu option. The metadata panel is tabbed, to display either custom user-editable metadata or the embedded IIIF metadata.
  • If a manifest contains only a single image, the manifest is displayed as image thumbnail instead of folder icon.
  • If a manifest contains only a single image, the 'Metadata' context menu has a sub-menu option to show either manifest or canvas metadata.
  • When opening a manifest, the manifest overview now displays placeholder skeletons, to communicate that the manifest is currently loading.
  • In the manifest overview, there is now an "Open in other viewers" button, for viewing the manifest in Mirador, Theseus, liiive, etc.

Annotation View

  • When annotating a IIIF image, the 'Metadata' sidebar now displays a tabbed panel, to display either custom user-editable metadata or the embedded IIIF metadata.
  • The image annotation view now displays a loading spinner, to communicate that the image is still loading.

Knowledge Graph

  • When selecting an image node that represents a IIIF canvas, the selection sidebar now shows a tabbed metadata panel, to display either custom user-editable metadata or the embedded IIIF metadata.
  • Similarly, when selecting a folder node that represents a IIIF manifest, the selection sidebar now shows a tabbed metadata panel.
  • Graph search treats IIIF canvases like images, and IIIF manifests like folders, with the same entity-, relation- and metadata-based search options.

Export

  • Exports (CSV, Excel) for folder- and image-metadata now include custom user-edited metadata for IIIF manifests and canvases, respectively.
  • Note that embedded IIIF metadata is not included in the export!

- TypeScript
Published by rsimon about 1 year ago

immarkus - v0.7.0 IIIF Support 🚀

Overview

IMMARKUS now includes (beta!) support for IIIF (International Image Interoperability Framework), enabling direct integration with digital image repositories and collections.

Screenshot

What's New

  • Support for IIIF Presentation API v2 and v3
  • Any operations that use cropped annotations will leverage the IIIF Image Service
  • Current limitations:
    • No support for importing Image API info.json URLs directly
    • No support (yet!) for Level 0 tilesets

Features

IIIF Import

  • New "Import IIIF" button in the Images overview, for validating & importing presentation manifests
  • IIIF manifests appear as folders with distinctive icons
  • Individual canvases are displayed as thumbnail images

Annotation Workspace

  • Seamless integration of IIIF canvases and regular image files
  • Mixed workspace support: combine IIIF images and local files
  • Navigation:
    • Pagination and thumbnail strip navigate within manifests
    • Search functionality includes manifests as folders, and individual canvases as images

Knowledge Graph

  • Manifests are represented as folders, canvases as images
  • Mixed content support: combine IIIF images and local files in the graph seamlessly
  • Current limitation: native IIIF metadata is currently not included in searchable properties

Excel Export

  • Automated generation of image snippets via IIIF Image API
  • Snippet download from the IIIF server is rate-limited (5 requests/sec) for responsible API usage
  • Mixed content support: combine IIIF images and local files seamlessly

Other Additions/Bugfixes

  • Undo/redo history is no longer erased when adding or removing images from the annotation workspace (#56, #147).
  • The 'delete relation' button is now protected by a confirmation dialog.

- TypeScript
Published by rsimon about 1 year ago

immarkus - Version 0.6.1

Annotation View

  • Selected Annotation tab: relationship types are now editable via a dropdown (#143, #144).
  • More filter options in the Annotation List tab: all/with entity/with relationship (#143).
  • Annotation list tab: the image snippets for relationship "ends" (start- and end-annotation) on the annotation card are now clickable, and will move the start-/end-annotation into view (if the image is currently open in the annotation workspace).

- TypeScript
Published by rsimon over 1 year ago

immarkus - Version 0.6.0

Relationships

  • The relationship model was redesigned from scratch. Previously, relationships connected "entity instances" (defined implicitly, by annotations referencing an entity with the same name). Relationships are now more straightforward, understandable and explicit. They exist between two annotations, and can have a type that's defined in the data model.
  • The Data Model page now has a "Relationship Types" tab for the relationship model (similar to the entity class model).
  • A new relationship editor widget was added to the image annotation toolbar, for creating relationships between two annotations.
  • Display of relations connected to an annotation was improved in the annotation cards (#111).

Knowledge Graph Enhancements

  • Node labels can now be toggled individually, by node type.
  • Graph search has a new option to allow searching within annotation Notes (#106).
  • Graph search now features the option to search by image file- or foldername (#113, #119).
  • Graph search now allows exporting an Excel file of the annotations on the selected images (#124).
  • Graph search now allows exporting an Excel file of the relationships on the selected nodes.
  • The graph now also shows connections that were established through relationships (#104, #117, #118).
  • Graph search has new options for searching images or entity classes by relationship (#132, #135).
  • Graph search now support chaining of conditions via either AND or OR operator (#136).
  • The graph now displays self-links (as small loops on the node) (#122, #123).
  • The graph selection side panel received a style/design overhaul.
  • When selecting an entity, the side panel now also shows information about other entities connected through relations (#118).
  • When switching the graph to "Relations" mode, hovering over a link between Entity Classes will display the relation names.
  • Most of the graph state is now persistent across page changes: settings, search conditions, selection, search dialog position.
  • Bugfix: the 'hide unconnected nodes' config option is now more robust (#121).

Multi-Value Field Support

  • All field types (except Relations) now have a multi-value option (#110).

Bugfixes

  • The entity schema editor no longer allows duplicate property names (#116).
  • Browser back button now works properly in the image annotation view.
  • Memory management was improved for image snippet computation, allowing for Excel-exports of large projects. Tested with >350 images and >2.000 annotations (#139).

Other Enhancements

  • Excel export now includes a new worksheet for notes (#112).
  • Improved design for the Annotation List (in the right sidebar of the image annotation view) (#140)

- TypeScript
Published by rsimon over 1 year ago

immarkus - Version 0.5.2

  • Inbound relations are now properly surfaced in the annotation sidebar
  • Fixed a bug that caused interface to crash occasionally when adding or removing an image from the annotation workspace
  • Improved graph search
  • Improved graph mouse hover & selection behavior
  • Graph search result export
  • Selecting a folder node in the graph now brings up an appropriate side panel, with editable folder metadata
  • Knowledge graph now includes relations, and supports a filter setting that shows only relation connections
  • It's now possible to enter folder metadata for the top-level project folder, not just sub-folders

Full Changelog: https://github.com/rsimon/immarkus/compare/v0.5.1...v0.5.2

- TypeScript
Published by rsimon over 1 year ago

immarkus - Version 0.5.1

What's New

  • The 'selected annotation' panel now shows inbound relations.
  • New feature: import existing data models (entity classes, image/folder schemas) from file.
  • New feature: rotate images in 90° steps
  • Toolbars in the annotation view (main toolbar as well as tile window toolbars) are now responsive and collapse to a "compact mode" when screen space gets too narrow.

- TypeScript
Published by rsimon almost 2 years ago

immarkus - Version 0.5.0

  • Knowledge graph
    • replaced D3 with react-force-graph (#80)
    • changed UI design: selection details are now shown via a right-side drawer, graph controls/settings are at the bottom right and shift inwards as the drawer expands
    • ability to switch the graph view into fullscreen mode
    • ability to 'pin' (and unpin) nodes to a desired position by dragging them
    • support for basic filtering options: hiding unconnected nodes, hiding labels, emphasizing selected node neighborhood (#81)
    • basic "advanced filtering" dialog with filtering options by metadata property
  • Annotation view:
    • Annotation list now provides functionality for sorting and filtering (#76)
    • Bugfix: Relation field value no longer displays as [object Object] in the annotation list
    • When editing the entity class schema from the annotation view, it is now possible to select either the class itself, or any of its parent classes (#62)
  • Data export
    • Excel annotation export now includes an additional column with the image folder path (#77)
    • Separate data model export options for entity classes/image metadata/folder metadata (#79)
  • Various:
    • Bugfix: image/folder metadata form no longer shows empty if more than one schema is defined in the data model (#75)
    • Improved UI wording and information text for the X-MARKUS page
    • Clicking the 'IMMARKUS' logo placeholder now reloads the page, allowing the user to open a new folder
    • Updated npm dependencies on all packages

- TypeScript
Published by rsimon almost 2 years ago

immarkus - Version 0.4.2

Adds support for Relations property type.

Bildschirmfoto 2024-03-26 um 09 23 16

- TypeScript
Published by rsimon almost 2 years ago

immarkus - Version 0.4.1

  • Fixes a bug that caused Property Editor to include inherited properties as native/editable properties when opened from the annotation view
  • Fixes a bug that allowed users to add the same dropdown option multiple times (#63)
  • Adds a preview version of knowledge graph visualization

- TypeScript
Published by rsimon about 2 years ago

immarkus - Version 0.4.0

  • Enhancements to the "current selection" and "annotation list" sidebar tabs in the image annotation view.
  • Improved dialog for adding a new image to the annotation workspace, with options for folder browsing and search.
  • About page and Help link to Wiki
  • Bugfixes: #43, #44, #54, #59
  • Excel annotation export (beta)

- TypeScript
Published by rsimon about 2 years ago

immarkus - Version 0.3.0

First offical IMMARKUS Release

This release provides the follwoing base functionality:

  • Image annotation with support for multi-image side-by-side image view and selection tools for rectangle, polygon and ellipse
  • Semantic tagging with a hierarchical data model and the following data types for entity properties
    • Text
    • Number
    • URI
    • Options
    • Geo-coordinates
    • Measurement (value and unit)
  • Integration with external authorities
  • Metadata recording for images and folders with freely defined schemas
  • Export options

Documentation

Documentation (work in progress) is on the Wiki.

Bildschirmfoto 2024-02-20 um 09 09 31

- TypeScript
Published by rsimon about 2 years ago