Skip to main content

the infinitely hackable annotation framework

Project description

ipyannotator - the infinitely hackable annotation framework

jupytercon 2020

This is an pre-release version accompanying our jupytercon 2020 talk. We hope this repository helps you to explore how annotation UI's can be quickly build using only python code and leveraging many awesome libraries (ipywidgets, voila, ipycanvas, etc.) from the jupyter Eco-system.

At we have used the concepts underlying ipyannotator internally for various projects and this is our attempt to contribute back to the OSS community some of the benefits we have had using OOS software.

Please star, fork and open issues!

Please let us know if you find this repository useful. Your feedback will help us to turn this proof of concept into a comprehensive library.


pip install ipyannotator

dependencies (should be handled by pip)

python = "^3.7"
traitlets = '=4.3.3'
ipycanvas = "^0.5.1"
ipyevents = "^0.8.0"
ipywidgets = "^7.5.1"

Run ipyannotator as stand alone web app using voila

voila nbs/09_viola_example.ipynb --enable_nbextensions=True


This library has been written in the literate programming style popularized for jupyter notebooks by nbdev. Please explore the jupyter notebooks in nbs/ to learn more about the inner working of ipyannotator.

Also check out the following notebook for a more high level overview.

  • Tutorial demonstrating how ipyannotator can be seamlessly integrated in your     data science workflow. nbs/08_tutorial_road_damage.ipynb
  • Slides + recoding of jupytercon 2020 talk explaining the high level concepts / vision of ipyannotator. TODO add public link

Jupyter lab trouble shooting

For clean (re)install make sure to have all the lab extencions active:

jupyter lab clean to remove the staging and static directories from the lab


jupyter labextension install @jupyter-widgets/jupyterlab-manager


jupyter labextension install @jupyter-widgets/jupyterlab-manager ipycanvas


jupyter labextension install @jupyter-widgets/jupyterlab-manager ipyevents


nbdime extensions --enable [--sys-prefix/--user/--system]


jupyter labextension install @jupyter-voila/jupyterlab-preview

How to contribute

Check out and since ipyannotator is build using nbdev reading the nbdev tutorial and related docs will be very helpful.


Copyright 2020 onwards, Palaimon GmbH. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this project's files except in compliance with the License. A copy of the License is provided in the LICENSE file in this repository.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for ipyannotator, version 0.1.1
Filename, size File type Python version Upload date Hashes
Filename, size ipyannotator-0.1.1-py3-none-any.whl (22.3 kB) File type Wheel Python version py3 Upload date Hashes View
Filename, size ipyannotator-0.1.1.tar.gz (20.4 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page