Skip to content

Repository files navigation

ceramnote

ceramnote is a React + TypeScript single-page application for digitizing and annotating images of a physical ceramic tile database. It enables users to upload images, create and manage annotations, run AI-powered detection models, and export structured data for digital archiving or analysis.


🚀 Features

  • Image Upload & Navigation

    • Upload one or multiple images of ceramic tiles.
    • Navigate between images using the custom scrollbar or keyboard shortcuts.
    • Visual indicator for annotation density per image.
  • Annotation Tools

    • Draw, select, and edit bounding box annotations on images.
    • Inspector panel for editing annotation properties.
    • Copy/paste annotation fields for efficient data entry.
  • AI Model Integration

    • Load ONNX models (e.g., YOLO) for automated detection of tiles or features.
    • Run inference on images to auto-generate annotations.
    • Support for custom user-uploaded ONNX models.
  • Annotation Management

    • View, select, and delete annotations.
    • Keyboard navigation for rapid annotation review.
    • Annotation grid for spatial navigation.
  • Export Functionality

    • Export all or current image annotations as a ZIP file.
    • ZIP includes cropped tile images and a JSON file with annotation data.

🖼️ Screenshots


🛠️ Getting Started

Prerequisites

Installation

git clone https://github.com/yourusername/ceramnote.git
cd ceramnote
npm install
# or
yarn install

Running the App

npm run dev
# or
yarn dev

Open http://localhost:5173 in your browser.


📝 Usage Guide

1. Upload Images

  • Click the Filebar at the top to upload one or more images of ceramic tiles.
  • Use the AnnotationScrollbar (right panel) to navigate between images.

2. Annotate Tiles

  • Use the Toolbar (left panel) to select annotation tools (rectangle, selector, etc.).
  • Draw bounding boxes on the canvas to create annotations.
  • Select an annotation to edit its properties in the Inspector (left panel).

3. AI-Assisted Annotation

  • Load built-in or custom ONNX models via the Filebar.
  • Click Preprocess or press Space to run detection models and auto-generate annotations.

4. Manage Annotations

  • Use keyboard shortcuts for navigation:
    • Ctrl + /: Switch images
    • ///: Navigate annotation grid
    • Delete: Delete selected annotation
  • Copy/paste annotation fields using the Inspector.

5. Export Data

  • Click Export All or Export Current in the Filebar.
  • Progress is shown in a modal loading bar (with cancel option).
  • Downloaded ZIP contains:
    • Cropped tile images (images/)
    • annotations.json with all annotation data

⚙️ Configuration

  • Model files should be placed in the /models directory or uploaded via the UI.

🧩 Tech Stack

  • React + TypeScript
  • Vite (build tool)
  • TailwindCSS (styling)
  • Radix UI (UI primitives)
  • ONNX Runtime Web (AI inference)
  • JSZip (exporting ZIP files)
  • fast-average-color (color analysis)
  • Custom annotation and tool system

📦 Building for Production

npm run build
# or
yarn build

The output will be in the dist/ directory. It can be run directly via

npm run preview
# or
yarn preview

📦 Usage with Podman

podman build -t glazer-admin .
podman run -d --name glazer-admin -p 80:80 glazer-admin

Glazer will run on port 80. Visit http://localhost to start annotating.


📄 License

...TBA


✨ Acknowledgements


For questions or support, please open an issue on GitHub.

About

Glaze Database System: Search Application

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages