Aruco Unity


Bring augmented reality to Unity by tracking ArUco markers in real time. Standard mono cameras, such as webcams, but also stereo cameras and fisheye lenses are supported.

It uses the OpenCV’s ArUco Marker Detection module and the OpenCV’s camera calibration modules calib3d and ccalib.

Demo 1 Demo 2

Left: AR Roll a ball. Right: The markers tracking allows to extend the phone’s screen.


Get ArucoUnity:

Then, import ArucoUnity.package in your Unity project.

A typical workflow with ArucoUnity is:

  1. Create Markers, print and place them in the environment.
  2. Calibrate a Camera using a calibration board.
  3. Track Markers.

See the documentation online for details:



The first version of this project has been developed as part of the master thesis of Erwan Normand and was supported by the ÉTS - École de Technologie Supérieure.

I’m developing the second version on my own. If this project helped you, please consider buying me a coffee in return 😃

Buy Me A Coffee


See the LICENSE file for license rights and limitations (3-clause BSD license).

See for the OpenCV license. ArucoUnity uses the following modules: aruco, cablid3d, ccalib


The OpenCV’s Aruco module implements this paper:

Garrido-Jurado, S., Muñoz-Salinas, R., Madrid-Cuevas, F. J., & Marín-Jiménez, M. J. (2014). Automatic generation and detection of highly reliable fiducial markers under occlusion. Pattern Recognition, 47(6), 2280-2292.

The fisheye calibration operated with the OpenCV’s ccalib module is based on these papers:

Mei, C., & Rives, P. (2007, April). Single view point omnidirectional camera calibration from planar grids. In Robotics and Automation, 2007 IEEE International Conference on (pp. 3945-3950). IEEE.

Li, B., Heng, L., Koser, K., & Pollefeys, M. (2013, November). A multiple-camera system calibration toolbox using a feature descriptor-based calibration pattern. In Intelligent Robots and Systems (IROS), 2013 IEEE/RSJ International Conference on (pp. 1301-1307). IEEE.