## 1 Introduction
The above-noted requirements and characteristics of the latest MAR applications on hardware and software that could be considered as deterrent factors in terms of scaling the AR experience to low-end devices are summarized in Table 1. Therefore, their users are excluded from any kind of AR-enabled experience, unless more thought goes into promoting the accessibility of this technology. This article presents ModAR, a hybrid MAR Android prototype with cross-vendor portability for planar surface tracking and overlay of 3D textured models. Physical surfaces of the real environment detected in real-time act like an origin for positioning the 3D content. The users can load or capture a pattern image of any planar object and then upload a 3D model of the OBJ format from the internal storage of their device. Alternatively, they \begin{table}
\begin{tabular}{c c} \hline \hline  & **Characteristics/Requirements** \\ \hline \multirow{4}{*}{Hardware} & High frame rate camera capture (\(\approx\)60 FPS) \\  & IMU system (magnetometer, gyroscope, accelerometer) \\  & Display resolution \\  & Quad-core CPU \\  & Android API level \\ Software & OpenGL ES version \\  & ABI (CPU Architecture) type \\ Other & Network data connectivity \\ \hline \hline \end{tabular}
\end{table} 
Table 1: Minimum technical specifications and requirements of the modern MAR applications. can select from a list of the default CH 3D models. The two main processes, i.e., camera pose estimation and 3D rendering, are wrapped into separate modules and performed at the C++ native side with the OpenCV library and at the Java side with the OpenGL 2.0 ES API, respectively. JNI library handles the communication and sharing of objects between computer and graphics work, such as frames and camera pose parameters. The development targets low-end and mid-range mobile devices which are not certified or cannot enable AR technology, due to device compatibility and operating system constraints. It adapts to low quality camera resolutions, lack of IMU data outputs, network connectivity as well as limited memory and CPU/GPU capabilities. To meet these constraints, two objectives are set: (i) fast and reliable pose estimation exclusively based on feature-based image matching; and (ii) high-performance rendering and qualitative visualization of complex 3D data. For the first objective, two combinations of feature detectors and binary descriptors are evaluated using two different parameterizations. The second objective is accomplished by explicitly managing the time and computations spent on vertex and texture data using vertex data organization, optimized vertex and index buffers, instancing, texture compression and synchronization primitives at run-time. The main contributions of this article may be summarized as follows:  
* lightweight AR system for inspection and interaction with 3D objects for both indoors and outdoors;
* precise runtime planar surface recognition through feature-based image matching with native C++ code and no dependency on AR SDKs or additional software;
* 3D OpenGL ES graphics engine dedicated to textured 3D models of OBJ format leveraging workload distribution on multi-core CPUs;
* testing and systematic analysis of the performance of well-established feature detectors and binary descriptors for low-end and mid-range devices regarding computational time, CPU usage and robustness to changes of scale, rotation and lighting;
* investigation of the optimal combination of vertex data rendering and management, synchronization and texture compression techniques for complex geometries. The remainder of this article is structured as follows. Section 2 reviews the state-of-the-art in OpenCV-based MAR applications, feature detectors and binary descriptors along with evaluation studies for MAR applications and 3D volume rendering techniques. Section 3 presents the main concepts and methodology of the MAR system implemented with pure computer vision algorithms and OpenGL ES graphics API operations.