Platform ARCore — solusi Google untuk augmented reality di Android, yang menggunakan kamera dan sensor inersial ponsel untuk melacak posisi di ruang angkasa. Menurut Google AR Developers, 2025, platform ini mendukung Motion Tracking, Environmental Understanding dan Light Estimation — tiga teknologi dasar untuk menempatkan objek virtual di lingkungan nyata. Arsitektur lintas platform memungkinkan pengembang membuat aplikasi AR untuk Android, iOS, Unity dan Unreal Engine dengan satu basis kode.
Utama
ARCore — adalah platform augmented reality dari Google, diumumkan pada tahun 2018 sebagai penerus Project Tango dalam format yang lebih ringan dan lebih mudah diakses. Berbeda dengan Tango yang memerlukan sensor kedalaman khusus, ARCore bekerja pada ponsel Android standar hanya menggunakan kamera dan sensor inersial (IMU).
ARCore menggunakan tiga teknologi kunci: Motion Tracking untuk melacak posisi perangkat, Environmental Understanding untuk mendeteksi bidang horizontal dan vertikal dan Light Estimation untuk menyesuaikan pencahayaan objek virtual dengan lingkungan nyata. Ketiga teknologi ini memungkinkan penempatan objek AR yang terlihat alami di permukaan apa pun.
Menurut Google I/O 2024, ARCore didukung di lebih dari 1 miliar perangkat Android, termasuk ponsel Samsung, Xiaomi, Huawei, OnePlus, Google Pixel dan lainnya. Platform ini terintegrasi dengan Google Play Services for AR yang memungkinkan pembaruan ARCore melalui Google Play Store terlepas dari versi Android.
Selama enam versi, ARCore telah mengalami evolusi yang signifikan: ARCore 1.0 — pelacakan dasar dan pengenalan bidang; ARCore 1.2 — bidang vertikal dan Augmented Images; ARCore 1.7 — Cloud Anchors untuk sesi multi-pengguna; ARCore 1.10 — Augmented Faces untuk melacak ekspresi wajah.
ARCore 1.20+ mencakup Scene Semantic Understanding — pengenalan kategori objek (lantai, langit-langit, dinding, furnitur, tanaman, pintu) melalui model ML TensorFlow Lite di perangkat. Street View Geometry API memungkinkan penggunaan peta kedalaman Google Street View untuk navigasi AR di luar ruangan.
// Inisialisasi sesi ARCore
val session = Session(context)
val config = Config(session)
config.lightEstimationMode =
Config.LightEstimationMode.ENVIRONMENTAL_HDR
config.planeFindingMode =
Config.PlaneFindingMode.HORIZONTAL_AND_VERTICAL
session.configure(config)
// Pemrosesan frame
val frame = session.update()
val pointCloud = frame.acquirePointCloud()
val planes = session.getAllTrackables(
Plane::class.java
)
ARCore menggunakan pendekatan hybrid: IMU (modul pengukuran inersial) memprediksi posisi perangkat dengan frekuensi tinggi (hingga 1000 Hz), dan odometri visual mengoreksi kesalahan berdasarkan analisis titik fitur dari kamera dengan frekuensi 30–60 Hz. Pendekatan ini memberikan akurasi pelacakan sekitar 1–2 sentimeter dalam kondisi stasioner.
Proses Environmental Understanding bekerja dalam tiga tahap: pertama ARCore menemukan titik fitur (feature points) pada gambar kamera, kemudian mengidentifikasi kumpulan titik yang terletak pada bidang yang sama dan memperkirakannya menjadi poligon. Setelah pengenalan bidang, ARCore membuat objek Trackable tipe Plane yang diperbarui seiring datangnya frame baru.
Menurut Google, ARCore menentukan bidang berukuran 10x10 sentimeter pada jarak hingga 1 meter dari kamera. Untuk ruangan berukuran sedang (kamar 20 m²) pemindaian penuh bidang memakan waktu sekitar 2–4 detik. Saat menggunakan Depth API dengan dukungan sensor ToF, akurasi pengenalan meningkat 40%.
Depth API — teknologi ARCore yang membangun peta kedalaman adegan berdasarkan analisis stereo gambar kamera. Pada perangkat dengan sensor ToF (Time-of-Flight) peta kedalaman diperoleh secara instan dengan akurasi hingga 2 cm. Pada perangkat tanpa sensor kedalaman, Depth API menggunakan machine learning untuk memperkirakan kedalaman dari satu frame, memberikan akurasi sekitar 10 cm.
Scene Mesh — jaringan tiga dimensi lingkungan yang dibangun ARCore secara real-time. Jaringan ini digunakan untuk fisika tabrakan, oklusi objek virtual dan penerapan bayangan. Scene Mesh tersedia di perangkat dengan OpenGL ES 3.1 dan dukungan Depth API, mencakup hingga 500 ribu poligon per frame.
// Mendapatkan peta kedalaman
val depthImage = frame.acquireDepthImage16Bits()
// Menempatkan objek pada bidang yang dikenali
val hitResult = frame.hitTest(x, y)
.firstOrNull { it.trackable is Plane }
hitResult?.let { result ->
val anchor = session.createAnchor(
result.hitPose
)
val model = ModelRenderable.builder()
.setSourceId(R.raw.my_model)
.build()
.exceptionally { null }
AnchorNode(anchor).apply {
this.renderable = model.get()
}
}
Meskipun ARCore dan ARKit menyelesaikan tugas yang sama — pelacakan posisi, pengenalan bidang dan estimasi pencahayaan — pendekatan dan ekosistem mereka berbeda. ARCore mengutamakan lintas platform dan kompatibilitas, sementara ARKit menggunakan integrasi mendalam dengan perangkat keras Apple.
Perbedaan utama: ARCore bekerja di Android dan iOS melalui ARCore SDK, ARKit — hanya di iOS. ARCore menggunakan Cloud Anchors untuk sinkronisasi melalui Firebase, ARKit — ARWorldMap untuk pertukaran langsung antar perangkat. ARCore dengan Depth API mendukung sensor ToF, ARKit dengan LiDAR — pemindaian laser dengan akurasi hingga 3 cm.
Menurut tes perbandingan Google 2024, akurasi pelacakan ARCore pada perangkat dengan giroskop dan sensor ToF sebanding dengan ARKit di iPhone dengan LiDAR — kesalahan tidak melebihi 2 cm pada jarak 2 meter. Pada perangkat tanpa ToF, ARCore kalah dari ARKit dalam kecepatan inisialisasi: 3 detik dibandingkan 0,5 detik.
Pilihan antara ARCore dan ARKit tergantung pada audiens target: jika aplikasi hanya untuk iOS — ARKit memberikan kinerja lebih baik dan akses ke fitur eksklusif LiDAR. Jika dukungan kedua platform diperlukan — ARCore dengan ARCore iOS SDK memungkinkan penggunaan basis kode seragam dengan perbedaan platform minimal, meskipun dengan hilangnya beberapa kemampuan perangkat keras masing-masing platform.
| Fitur | ARCore | ARKit |
|---|---|---|
| Platform | Android + iOS + Unity/Unreal | hanya iOS |
| Sensor kedalaman | ToF (opsional) | LiDAR (model Pro) |
| Sinkronisasi | Cloud Anchors (Firebase) | ARWorldMap (Multipeer) |
| Pelacakan wajah | Augmented Faces | Face Tracking (TrueDepth) |
| Akurasi VIO | 1–3 cm | 0,5–1 cm |
Integrasi ARCore dimulai dengan menambahkan dependensi Google Play Services for AR di build.gradle: com.google.ar:core. Aplikasi harus memeriksa ketersediaan ARCore di perangkat melalui ArCoreApk.checkAvailability() — jika ARCore tidak terinstal, sarankan pengguna untuk menginstalnya dari Google Play Store.
Proyek dasar ARCore meliputi: pembuatan Session dan Config, konfigurasi SurfaceView untuk menampilkan kamera, memulai sesi melalui session.resume() dan memproses frame melalui session.update(). Untuk rendering objek 3D digunakan Sceneform SDK (pustaka Google berbasis Filament) atau Unity/Unreal untuk adegan kompleks.
Google merekomendasikan Sceneform untuk aplikasi Kotlin — menyediakan komponen siap pakai: ModelRenderable untuk memuat model 3D (OBJ, glTF, FBX), ViewRenderable untuk menyematkan Android View ke dalam adegan AR dan MotionEvent untuk menangani sentuhan. Sceneform secara otomatis mengelola siklus hidup sesi AR dan pelepasan sumber daya.
ARCore dapat kehilangan pelacakan saat pencahayaan tidak memadai, permukaan seragam atau gerakan perangkat cepat. Status pelacakan tersedia melalui frame.getTrackingState() — nilai TRACKING, PAUSED dan STOPPED. Saat beralih ke PAUSED disarankan untuk menjeda rendering dan menampilkan rekomendasi kepada pengguna: “Gerakkan perangkat lebih lambat” atau “Pergi ke tempat yang lebih terang”.
Untuk pemulihan otomatis setelah kegagalan, ARCore mendukung relokalisasi berdasarkan peta titik fitur yang disimpan. Pengembang dapat menyimpan peta melalui session.serialize() dan memulihkannya melalui session.deserialize() — ini berguna untuk pengalaman AR jangka panjang di mana pengguna kembali ke ruang fisik yang sama. Pemulihan peta memakan waktu 1–2 detik, asalkan lingkungan tidak berubah secara signifikan.
class ARCoreActivity : AppCompatActivity() {
private lateinit var session: Session
override fun onResume() {
super.onResume()
when (ArCoreApk.getInstance()
.checkAvailability(this)
) {
ArCoreApk.Availability.SUPPORTED_INSTALLED -> {
session = Session(this)
session.resume()
}
else -> {
showInstallPrompt()
}
}
}
}
Pertanyaan yang sering diajukan
ARCore didukung di lebih dari 1 miliar perangkat Android, termasuk Google Pixel 2+, Samsung Galaxy S7+, Xiaomi Mi 8+, Huawei P20+, OnePlus 6+, Sony Xperia XZ2+ dan banyak lainnya. Daftar lengkap perangkat bersertifikat dipublikasikan di developers.google.com/ar/devices.
Fungsi dasar ARCore — Motion Tracking dan Environmental Understanding — tidak memerlukan internet. Cloud Anchors dan Augmented Images dengan tautan cloud memerlukan koneksi. Depth API dan Scene Mesh berfungsi penuh di perangkat tanpa koneksi jaringan.
Ya, ARCore dapat digunakan langsung dengan OpenGL ES 3.1, dengan Unity atau Unreal Engine. Sceneform adalah opsi yang direkomendasikan untuk proyek sederhana di Kotlin, tetapi tidak wajib. Untuk adegan 3D kompleks dengan fisika realistis, lebih baik menggunakan mesin game dengan dukungan ARCore SDK.
ARCore dioptimalkan untuk ruangan dalam dengan pencahayaan yang memadai (100–500 lux). Di luar ruangan di bawah sinar matahari terang, akurasi pelacakan dapat menurun karena kamera terlalu terang. Untuk pekerjaan di luar ruangan, Google merekomendasikan penggunaan Street View Geometry API yang menyediakan peta kedalaman untuk lokasi perkotaan.
Scene Viewer — adalah komponen UI siap pakai Google untuk melihat model 3D di AR tanpa menulis kode, bekerja melalui WebXR. ARCore adalah SDK lengkap untuk membuat pengalaman AR kustom dengan kontrol pemrograman atas semua aspek sesi, pelacakan dan rendering.
Ringkasan
Kami akan mengembangkan aplikasi seluler turnkey
IT Sectr membuat aplikasi iOS dan Android untuk startup dan bisnis sejak 2017. Kami akan memberi saran dan mengusulkan solusi terbaik.
Baca juga