libdots is a 2D localization library based on Anoto® technology. It is used to localize a camera-equipped device on a surface with a printed encoded pattern. It is written in pure c and has no external library dependencies other than libc. Tools to generate the dotted pattern and overlay it onto any PDF file is included (written in c++). Download link for the entire source achive can be found below.

libdots screenshot

It has been successfully compiled and tested on:

  • The PIC32MZ1024ECG064 microcontroller, built with xc32 v1.34.
  • Ubuntu 14.04, 15.04, 15.10

If you use libdots for academic purposes, please cite the associated paper to this release (

    Real-Time High-Accuracy 2D Localization with Structured Patterns
    Lukas Hostettler and Ayberk Özgür and Séverin Lemaignan and Pierre Dillenbourg and Francesco Mondada
    International Conference on Robotics and Automation, 2016

This library is released under the LGPLv3 free software license. However, please see below for an important, patent-related, legal notice.

The Anoto® technology is still patented in certain countries (in particular, in the United States of America and the United Kingdom). Therefore, in these countries, you must license the Anoto® technology before using this software. The technology used in libdots is covered by these patents: EP1224606, EP1222604, EP1451767 and EP1515265.