ARCore پلیٹ فارم — Android پر Augmented Reality کے لیے Google کا حل، جو خلا میں پوزیشن کو ٹریک کرنے کے لیے اسمارٹ فون کے کیمرے اور inertial sensors استعمال کرتا ہے۔ Google AR Developers, 2025 کے مطابق، یہ پلیٹ فارم Motion Tracking، Environmental Understanding اور Light Estimation — حقیقی ماحول میں مجازی اشیاء رکھنے کے لیے تین بنیادی ٹیکنالوجیز کو سپورٹ کرتا ہے۔ کراس پلیٹ فارم آرکیٹیکچر ڈویلپرز کو ایک متحد کوڈ بیس کے ساتھ Android، iOS، Unity اور Unreal Engine کے لیے AR ایپس بنانے کی اجازت دیتا ہے۔
اہم نکات
ARCore Google کا Augmented Reality پلیٹ فارم ہے، جس کا اعلان 2018 میں Project Tango کے جانشین کے طور پر ہلکی اور زیادہ قابل رسائی شکل میں کیا گیا۔ Tango کے برعکس، جس کے لیے خصوصی ڈیپتھ سینسرز کی ضرورت تھی، ARCore صرف کیمرہ اور inertial sensors (IMU) استعمال کرکے معیاری Android اسمارٹ فونز پر کام کرتا ہے۔
ARCore تین کلیدی ٹیکنالوجیز استعمال کرتا ہے: Motion Tracking ڈیوائس کی پوزیشن ٹریک کرنے کے لیے، Environmental Understanding افقی اور عمودی سطحوں کا پتہ لگانے کے لیے، اور Light Estimation مجازی اشیاء کی روشنی کو حقیقی ماحول سے ملانے کے لیے۔ یہ تینوں ٹیکنالوجیز AR اشیاء کو کسی بھی سطح پر قدرتی نظر آنے کے قابل بناتی ہیں۔
Google I/O 2024 کے مطابق، ARCore Samsung، Xiaomi، Huawei، OnePlus، Google Pixel اور دیگر سمیت 1 بلین سے زیادہ Android آلات پر معاونت یافتہ ہے۔ یہ پلیٹ فارم Google Play Services for AR کے ساتھ مربوط ہے، جو Android ورژن سے آزادانہ طور پر Google Play Store کے ذریعے ARCore کو اپ ڈیٹ کرنے کی اجازت دیتا ہے۔
چھ ورژنز کے دوران، ARCore نے نمایاں ارتقاء دیکھا ہے: ARCore 1.0 — بنیادی ٹریکنگ اور سطح کا پتہ لگانا؛ ARCore 1.2 — عمودی سطحیں اور Augmented Images؛ ARCore 1.7 — ملٹی پلیئر سیشنز کے لیے Cloud Anchors؛ ARCore 1.10 — چہرے کے تاثرات ٹریک کرنے کے لیے Augmented Faces۔
ARCore 1.20+ میں Scene Semantic Understanding شامل ہے — ڈیوائس پر TensorFlow Lite ML ماڈل کے ذریعے آبجیکٹ کیٹیگریز (فرش، چھت، دیوار، فرنیچر، پودا، دروازہ) کی پہچان۔ Street View Geometry API باہر AR نیویگیشن کے لیے Google Street View کی ڈیپتھ میپس استعمال کرنے کی اجازت دیتا ہے۔
// 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)
// فریم پروسیسنگ
val frame = session.update()
val pointCloud = frame.acquirePointCloud()
val planes = session.getAllTrackables(
Plane::class.java
)
ARCore ایک ہائبرڈ طریقہ استعمال کرتا ہے: IMU (inertial measurement unit) زیادہ فریکوئنسی (1000 Hz تک) پر ڈیوائس کی پوزیشن کی پیش گوئی کرتا ہے، جبکہ بصری اوڈومیٹری 30–60 Hz پر کیمرے سے فیچر پوائنٹس کے تجزیہ کی بنیاد پر غلطیوں کو درست کرتی ہے۔ یہ طریقہ ساکن حالات میں تقریباً 1–2 سینٹی میٹر کی ٹریکنگ درستگی فراہم کرتا ہے۔
Environmental Understanding کا عمل تین مراحل میں کام کرتا ہے: پہلے ARCore کیمرے کی تصویر میں فیچر پوائنٹس ڈھونڈتا ہے، پھر ایک ہی سطح پر موجود پوائنٹس کے کلسٹرز کی پہچان کرتا ہے اور انہیں کثیرالاضلاع میں تبدیل کرتا ہے۔ سطح کی پہچان کے بعد، ARCore ایک Trackable آبجیکٹ بناتا ہے جو نئے فریم موصول ہونے پر اپ ڈیٹ ہوتا ہے۔
Google کے مطابق، ARCore کیمرے سے 1 میٹر تک کے فاصلے پر 10x10 سینٹی میٹر کی سطح کا پتہ لگاتا ہے۔ درمیانے کمروں (20 m²) کے لیے، مکمل سطح اسکیننگ میں تقریباً 2–4 سیکنڈ لگتے ہیں۔ ToF سینسر سپورٹ کے ساتھ Depth API استعمال کرنے پر، پہچان کی درستگی 40% بہتر ہوتی ہے۔
Depth API ایک ARCore ٹیکنالوجی ہے جو کیمرے کی تصویر کے سٹیریو تجزیہ کی بنیاد پر منظر کی ڈیپتھ میپ بناتی ہے۔ ToF سینسر (Time-of-Flight) والے آلات پر، ڈیپتھ میپ 2 سینٹی میٹر تک کی درستگی کے ساتھ فوری طور پر حاصل ہوتی ہے۔ ڈیپتھ سینسر کے بغیر آلات پر، Depth API ایک فریم سے گہرائی کا اندازہ لگانے کے لیے مشین لرننگ استعمال کرتی ہے، جو تقریباً 10 سینٹی میٹر کی درستگی فراہم کرتی ہے۔
Scene Mesh ماحول کا تین جہتی جال ہے جسے ARCore ریئل ٹائم میں بناتا ہے۔ یہ جال تصادم طبیعیات، مجازی اشیاء کے اکلوزن اور شیڈو رینڈرنگ کے لیے استعمال ہوتا ہے۔ Scene Mesh OpenGL ES 3.1 اور Depth API سپورٹ والے آلات پر دستیاب ہے، جو فی فریم 500 ہزار تک کثیرالاضلاع بناتا ہے۔
// ڈیپتھ میپ حاصل کرنا
val depthImage = frame.acquireDepthImage16Bits()
// پہچانی گئی سطح پر آبجیکٹ رکھنا
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()
}
}
اگرچہ ARCore اور ARKit ایک ہی کام حل کرتے ہیں — پوزیشن ٹریکنگ، سطح کا پتہ لگانا اور روشنی کا اندازہ — ان کے طریقہ کار اور ماحولیاتی نظام مختلف ہیں۔ ARCore کراس پلیٹ فارم مطابقت کو ترجیح دیتا ہے، جبکہ ARKit Apple ہارڈویئر کے ساتھ گہرے انضمام کا استعمال کرتا ہے۔
اہم فرق: ARCore ARCore SDK کے ذریعے Android اور iOS پر کام کرتا ہے، جبکہ ARKit صرف iOS پر کام کرتا ہے۔ ARCore Firebase کے ذریعے ہم آہنگی کے لیے Cloud Anchors استعمال کرتا ہے، جبکہ ARKit آلات کے درمیان براہ راست تبادلے کے لیے ARWorldMap استعمال کرتا ہے۔ Depth API کے ساتھ ARCore ToF سینسرز کو سپورٹ کرتا ہے، جبکہ LiDAR کے ساتھ ARKit 3 سینٹی میٹر تک کی درستگی کے ساتھ لیزر اسکیننگ فراہم کرتا ہے۔
Google 2024 بینچ مارک ٹیسٹوں کے مطابق، gyroscope اور ToF سینسر والے آلات پر ARCore کی ٹریکنگ درستگی LiDAR والے iPhone پر ARKit کے برابر ہے — 2 میٹر کے فاصلے پر خرابی 2 سینٹی میٹر سے تجاوز نہیں کرتی۔ ToF کے بغیر آلات پر، ARCore ابتدائی رفتار میں ARKit سے پیچھے ہے: 3 سیکنڈ بمقابلہ 0.5 سیکنڈ۔
ARCore اور ARKit کے درمیان انتخاب ہدف سامعین پر منحصر ہے: اگر ایپ صرف iOS کے لیے ہے، تو ARKit بہتر کارکردگی اور خصوصی LiDAR خصوصیات تک رسائی فراہم کرتا ہے۔ اگر کراس پلیٹ فارم سپورٹ کی ضرورت ہے، تو ArcoreiOS SDK کے ساتھ ARCore ہر پلیٹ فارم کی کچھ ہارڈویئر مخصوص صلاحیتوں کے نقصان کے ساتھ، کم سے کم پلیٹ فارم فرق کے ساتھ ایک متحد کوڈ بیس استعمال کرنے کی اجازت دیتا ہے۔
| خصوصیت | ARCore | ARKit |
|---|---|---|
| پلیٹ فارم | Android + iOS + Unity/Unreal | صرف iOS |
| ڈیپتھ سینسر | ToF (اختیاری) | LiDAR (Pro ماڈلز) |
| ہم آہنگی | Cloud Anchors (Firebase) | ARWorldMap (Multipeer) |
| چہرہ ٹریکنگ | Augmented Faces | Face Tracking (TrueDepth) |
| VIO درستگی | 1–3 سینٹی میٹر | 0.5–1 سینٹی میٹر |
ARCore انضمام build.gradle میں Google Play Services for AR کی نحصار شامل کرنے سے شروع ہوتا ہے: com.google.ar:core۔ ایپ کو ArCoreApk.checkAvailability() کے ذریعے ڈیوائس پر ARCore کی دستیابی کی جانچ کرنی چاہیے — اگر ARCore انسٹال نہیں ہے، تو صارف سے Google Play Store سے اسے انسٹال کرنے کی درخواست کریں۔
ایک بنیادی ARCore پروجیکٹ میں شامل ہے: Session اور Config بنانا، کیمرہ ڈسپلے کے لیے SurfaceView سیٹ اپ کرنا، session.resume() کے ذریعے سیشن شروع کرنا اور session.update() کے ذریعے فریم پروسیس کرنا۔ 3D اشیاء کی رینڈرنگ کے لیے Sceneform SDK (Filament پر مبنی Google لائبریری) یا پیچیدہ مناظر کے لیے Unity/Unreal استعمال کیا جاتا ہے۔
Google Kotlin ایپس کے لیے Sceneform تجویز کرتا ہے — یہ تیار اجزاء فراہم کرتا ہے: 3D ماڈلز (OBJ، glTF، FBX) لوڈ کرنے کے لیے ModelRenderable، AR منظر میں Android View ایمبیڈ کرنے کے لیے ViewRenderable اور ٹچ ہینڈلنگ کے لیے MotionEvent۔ Sceneform خود بخود AR سیشن لائف سائیکل اور ریسورس کلیئرنگ کا انتظام کرتا ہے۔
ARCore کم روشنی، یکساں سطحوں یا تیز ڈیوائس حرکت پر ٹریکنگ کھو سکتا ہے۔ ٹریکنگ سٹیٹس frame.getTrackingState() کے ذریعے دستیاب ہے — اقدار TRACKING، PAUSED اور STOPPED ہیں۔ PAUSED میں منتقل ہوتے وقت، رینڈرنگ کو روکنے اور صارف کو ہدایات دکھانے کی سفارش کی جاتی ہے: “ڈیوائس کو آہستہ حرکت دیں” یا “زیادہ روشن جگہ پر جائیں۔”
ناکامی کے بعد خودکار بحالی کے لیے، ARCore محفوظ کردہ فیچر پوائنٹ میپ کی بنیاد پر ری لوکیشن کو سپورٹ کرتا ہے۔ ڈیویلپر session.serialize() کے ذریعے میپ محفوظ کر سکتا ہے اور session.deserialize() کے ذریعے بحال کر سکتا ہے — طویل عرصے تک چلنے والے AR تجربات کے لیے مفید ہے جہاں صارف اسی جسمانی جگہ پر واپس آتا ہے۔ میپ کی بحالی میں 1–2 سیکنڈ لگتے ہیں بشرطیکہ ماحول نمایاں طور پر تبدیل نہ ہوا ہو۔
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()
}
}
}
}
اکثر پوچھے جانے والے سوالات
ARCore Google Pixel 2+، Samsung Galaxy S7+، Xiaomi Mi 8+، Huawei P20+، OnePlus 6+، Sony Xperia XZ2+ اور بہت سے دیگر سمیت 1 بلین سے زیادہ Android آلات پر معاونت یافتہ ہے۔ تصدیق شدہ آلات کی مکمل فہرست developers.google.com/ar/devices پر شائع کی گئی ہے۔
ARCore کے بنیادی افعال — Motion Tracking اور Environmental Understanding — انٹرنیٹ کی ضرورت نہیں رکھتے۔ Cloud Anchors اور کلاؤڈ ریفرنس والی Augmented Images کنکشن کی ضرورت رکھتی ہیں۔ Depth API اور Scene Mesh نیٹ ورک کنکشن کے بغیر مکمل طور پر ڈیوائس پر کام کرتے ہیں۔
ہاں، ARCore براہ راست OpenGL ES 3.1، Unity یا Unreal Engine کے ساتھ استعمال کیا جا سکتا ہے۔ Sceneform سادہ Kotlin پروجیکٹس کے لیے تجویز کردہ آپشن ہے، لیکن یہ لازمی نہیں ہے۔ حقیقت پسندانہ طبیعیات کے ساتھ پیچیدہ 3D مناظر کے لیے، ARCore SDK سپورٹ والے گیم انجن استعمال کرنا بہتر ہے۔
ARCore کافی روشنی (100–500 lux) والے اندرونی مقامات کے لیے بہتر بنایا گیا ہے۔ باہر تیز دھوپ میں، کیمرے کے اوور ایکسپوژر کی وجہ سے ٹریکنگ کی درستگی کم ہو سکتی ہے۔ بیرونی استعمال کے لیے، Google Street View Geometry API تجویز کرتا ہے، جو شہری مقامات کے لیے ڈیپتھ میپس فراہم کرتا ہے۔
Scene Viewer کوڈ لکھے بغیر AR میں 3D ماڈل دیکھنے کے لیے Google کا تیار UI کمپوننٹ ہے، جو WebXR کے ذریعے کام کرتا ہے۔ ARCore ایک مکمل خصوصیات والا SDK ہے جو سیشن، ٹریکنگ اور رینڈرنگ کے تمام پہلوؤں پر پروگرامیٹک کنٹرول کے ساتھ کسٹم AR تجربات بنانے کے لیے ہے۔
خلاصہ
ہم ایک موبائل ایپلیکیشن ٹرنکی تیار کریں گے
IT Sectr 2017 سے اسٹارٹ اپس اور کاروبار کے لیے iOS اور Android ایپلیکیشنز بناتا ہے۔ ہم آپ کو مشورہ دیں گے اور بہترین حل تجویز کریں گے۔
مزید پڑھیں