Skip to content
Free to use online tool for labelling photos.
TypeScript CSS Other
Branch: develop
Clone or download
SkalskiP and fatihbaltaci update (#78) (#79)
* Merge pull request #70 from SkalskiP/develop (#71)

* new gif with ssd and posenet

* Add Docker Support (#74)

* add Dockerfile for make-sense

* Update README for Docker

* README updated

* README updated with docker logs

* readme updated

* Update Dockerfile

* Update

* basic stats

Co-authored-by: Fatih Baltacı <>

Co-authored-by: Fatih Baltacı <>
Latest commit 1574880 Jan 9, 2020
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github 1.1.0-alpha relese merge (#20) Aug 15, 2019
docker Update Dockerfile Oct 8, 2019
examples new gif with ssd and posenet Oct 1, 2019
public basic stats Jan 8, 2020
src fixes after CR 6 Sep 30, 2019
.gitignore git ignore update Jun 14, 2019
LICENSE Add LICENSE Jul 14, 2019 Update Oct 8, 2019
package.json most of integration work is done Sep 29, 2019

Build Status GitHub release (latest by date including pre-releases) Gitter


Description is a free to use online tool for labelling photos. Thanks to the use of a browser it does not require any complicated installation - just visit the website and you are ready to go. It also doesn't matter which operating system you're running on - we do our best to be truly cross-platform. It is perfect for small computer vision deeplearning projects, making the process of preparing a dataset much easier and faster. Prepared labels can be downloaded in one of multiple supported formats. The application was written in TypeScript and is based on React/Redux duo.


For AI to be free we need not just Open Source, but also a strong Open Data movement.

Andrew Ng

Sneak Peek


Figure 1. Basic version of the application - without AI support

Advanced AI functionalities strives to significantly reduce the time we have to spend on labeling photos. To achieve this, we are going to use many different AI models that will be able to give you recommendations as well as automate repetitive and tedious activities.

  • SSD model pretrained on the COCO dataset, which will do some of the work for you in drawing bboxes on photos and also (in some cases) suggest a label.
  • PoseNet model is a vision model that can be used to estimate the pose of a person in an image or video by estimating where key body joints are.

In the future, we also plan to add, among other things, models that classify photos, detect characteristic features of faces as well as whole faces. The engine that drives our AI functionalities is TensorFlow.js - JS version of the most popular framework for training neural networks. This choice allows us not only to speed up your work but also to care about the privacy of your data, because unlike with other commercial and open source tools, your photos do not have to be transferred to the server. This time AI comes to your device!


Figure 2. SSD model - allows you to detect multiple objects, speeding up the bbox labeling process


Figure 3. PoseNet model - allows you to detect people's poses in photos, automating point labeling in some usecases

Set Up the Project Locally

# clone repository
git clone

# navigate to main dir
cd make-sense

# install dependencies
npm install

# serve with hot reload at localhost:3000
npm start

To ensure proper functionality of the application locally, an npm 6.x.x and node.js v11.x.x versions are required. More information about this problem is available in the #16.

Set Up Project with Docker

# Build Docker Image
docker build -t make_sense docker/

# Run Docker Image as Service
docker run -dit -p 3000:3000 --restart=always --name=make_sense make_sense

# Get Docker Container IP
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' make_sense
# Go to `<DOCKER_CONTAINER_IP>:3000`

# Get Docker Container Logs
docker logs make_sense

Supported Keyboard Shortcuts

Functionality Context Mac Windows / Linux
Polygon autocomplete Editor Enter Enter
Cancel polygon drawing Editor Escape Escape
Delete currently selected label Editor Backspace Delete
Load previous image Editor + Left Ctrl + Left
Load next image Editor + Right Ctrl + Right
Zoom in Editor + + Ctrl + +
Zoom out Editor + - Ctrl + -
Move image Editor Up / Down / Left / Right Up / Down / Left / Right
Exit popup Popup Escape Escape

Table 1. Supported keyboard shortcuts

Supported Output Formats


Table 2. The matrix of supported labels export format, where:

  • ☑ - supported format
  • ☐ - not yet supported format
  • ☒ - format does not make sense for a given label type

You can find examples of export files along with a description and schema on our Wiki.


We don't store your images, because we don't send them anywhere in the first place.

Road Map

Our application is being actively developed. Check out our plans for the near future on our Wiki. If you have an idea for a new functionality, please hit us on Twitter and Gitter or create an issue where you can describe your concept. In the meantime, see what improvements we are planning for you in the future.


Feel free to file issues or pull requests.


   author = {Piotr Skalski},
   title = {{Make Sense}},
   howpublished = "\url{}",
   year = {2019},


This project is licensed under the GPL-3.0 License - see the LICENSE file for details

Copyright (c) 2019-present, Piotr Skalski

You can’t perform that action at this time.