ARKit ফ্রেমওয়ার্ক হল Apple-এর অগমেন্টেড রিয়েলিটি প্ল্যাটফর্ম যা ডেভেলপারদের কম্পিউটার ভিশনের গভীর জ্ঞান ছাড়াই iOS-এর জন্য AR অ্যাপ্লিকেশন তৈরি করতে সক্ষম করে। Apple ARKit Documentation, 2025 অনুসারে, ফ্রেমওয়ার্কটি বাহ্যিক মার্কার ছাড়াই স্থানে ডিভাইসের অবস্থানের সঠিক ট্র্যাকিংয়ের জন্য Visual-Inertial Odometry ব্যবহার করে। দৃশ্যের সিম্যান্টিক বোঝাপড়া অনুভূমিক এবং উল্লম্ব সমতল চিনতে, আলো নির্ধারণ করতে এবং বাস্তব পরিবেশে ভার্চুয়াল বস্তু স্থাপন করতে দেয়।
মূল পয়েন্ট
ARKit হল Apple-এর অগমেন্টেড রিয়েলিটি ফ্রেমওয়ার্ক, যা WWDC 2017-এ iOS 11-এর সাথে ঘোষণা করা হয়েছিল। এটি বিশেষায়িত হার্ডওয়্যার ছাড়াই একটি নিমগ্ন AR অভিজ্ঞতা প্রদানের জন্য ক্যামেরার ক্ষমতা, M-সিরিজ মোশন কোপ্রসেসর এবং A-চিপের নিউরাল ইঞ্জিনকে একত্রিত করে — শুধু একটি iPhone বা iPad।
ARKit Visual-Inertial Odometry (VIO) ব্যবহার করে, যা স্থানে ডিভাইসের গতিবিধি সঠিকভাবে ট্র্যাক করতে ক্যামেরা এবং Core Motion ইনর্শিয়াল সেন্সর থেকে ডেটা একত্রিত করে। VIO ফ্রেমওয়ার্কটিকে GPS বা বাহ্যিক মার্কার ব্যবহার না করে বুঝতে দেয় যে ডিভাইসটি তার পরিবেশের সাপেক্ষে কোথায় রয়েছে।
Apple WWDC 2024 অনুসারে, ARKit 6 A12 চিপ এবং নতুন ডিভাইসে সমর্থিত (iPhone XS, iPad Pro 2018+)। App Store-এ AR অ্যাপের সংখ্যা 15,000 ছাড়িয়েছে, এবং সমস্ত AR সেশনে শনাক্ত করা সমতলের মোট এলাকা 100 বিলিয়ন বর্গ মিটার ছাড়িয়েছে।
ছয়টি সংস্করণ জুড়ে, ARKit উল্লেখযোগ্য উন্নতি পেয়েছে: ARKit 1.0 (iOS 11) — মৌলিক ট্র্যাকিং এবং সমতল শনাক্তকরণ; ARKit 2.0 — ARWorldMap-এর মাধ্যমে ভাগ করা AR সেশন এবং 3D বস্তু সনাক্তকরণ; ARKit 3.0 — মানবদেহ ট্র্যাকিং, ব্যক্তি বিভাজন এবং একসঙ্গে সামনে ও পিছনের ক্যামেরা।
ARKit 4.0 তাত্ক্ষণিক গভীরতা এবং বস্তু গোপন নির্ধারণের জন্য LiDAR স্ক্যানার চালু করেছে, পাশাপাশি AR সামগ্রী GPS স্থানাঙ্কের সাথে সংযুক্ত করার জন্য Location Anchor। ARKit 6 HDR সহ 4K ভিডিও, LiDAR ব্যবহার করে Plane Estimation, এবং উন্নত অক্লুশন হ্যান্ডলিং যোগ করেছে।
import ARKit
let configuration = ARWorldTrackingConfiguration()
configuration.planeDetection = [.horizontal, .vertical]
configuration.environmentTexturing = .automatic
let arView = ARSCNView(frame: view.bounds)
arView.session.run(configuration)
arView.debugOptions = [.showFeaturePoints]
view.addSubview(arView)
ARKit একটি AR সেশন লুপের মাধ্যমে কাজ করে, যা একটি কনফিগারেশন দিয়ে শুরু হয় এবং ক্রমাগত ক্যামেরা থেকে ভিডিও স্ট্রিম বিশ্লেষণ করে। প্রতিটি ফ্রেমে, ফ্রেমওয়ার্ক ডিভাইসের অবস্থান (6 ডিগ্রি অফ ফ্রিডম) গণনা করে, শনাক্ত করা সমতলের মানচিত্র আপডেট করে এবং ভার্চুয়াল বস্তুর অবস্থান সামঞ্জস্য করে — সবকিছু 60 ফ্রেম প্রতি সেকেন্ডে।
VIO প্রক্রিয়ায় দুটি সমান্তরাল পাইপলাইন রয়েছে: ভিজুয়াল ওডোমেট্রি অ্যালগরিদম ফ্রেমের মধ্যে ফিচার পয়েন্টের গতিবিধি ট্র্যাক করে, যখন Core Motion ইনর্শিয়াল সেন্সর ক্যামেরা দ্রুত চললে বা ছবি অস্পষ্ট হলে ছোট বিরতিতে গতির পূর্বাভাস দেয়। উভয় পদ্ধতির সংমিশ্রণ 1 সেন্টিমিটার পর্যন্ত ট্র্যাকিং নির্ভুলতা দেয়।
Apple-এর মতে, ARKit প্রতি ফ্রেমে 500টি পর্যন্ত ফিচার পয়েন্ট প্রক্রিয়া করে, এবং পরিবেশ মানচিত্রের (ARWorldMap) ব্যাস 100 মিটার পর্যন্ত হতে পারে। সেশন শুরুর পরে পরিবেশ স্ক্যান এবং মানচিত্র তৈরি করতে প্রায় 2–3 সেকেন্ড সময় লাগে — এই সময়ে ARKit ক্যামেরা এবং সেন্সর থেকে ডেটা সংগ্রহ করে।
ARAnchor সামগ্রী স্থাপনের জন্য একটি মূল বস্তু। যখন ARKit একটি সমতল চিনতে পারে, তখন এটি পৃষ্ঠের অবস্থান, আকার এবং অভিযোজন নির্দিষ্ট করে একটি ARPlaneAnchor তৈরি করে। ডেভেলপার ডেলিগেট session(_:didAdd:) এ সাড়া দেয় এবং SceneKit বা RealityKit ব্যবহার করে শনাক্ত করা সমতল অবস্থানে 3D বস্তু স্থাপন করে।
বস্তু টেনে আনা বাস্তবায়নের জন্য, ARHitTestResult ব্যবহার করা হয়: যখন স্ক্রিন স্পর্শ করা হয়, তখন ARKit ফ্রেমের মাধ্যমে একটি হিট-টেস্ট করা হয়, যা শনাক্ত করা সমতলের সাথে রশ্মির ছেদ বিন্দু ফেরত দেয়। পাওয়া বিন্দুটি ARAnchor-এ রূপান্তরিত হয় এবং বস্তুটি সেই অবস্থানে স্থির হয়।
func renderer(
_ renderer: SCNSceneRenderer,
didAdd node: SCNNode,
for anchor: ARAnchor
) {
guard let planeAnchor = anchor
as? ARPlaneAnchor else { return }
let boxNode = SCNNode(
geometry: SCNBox(
width: planeAnchor.extent.x,
height: 0.01,
length: planeAnchor.extent.z,
chamferRadius: 0
)
)
node.addChildNode(boxNode)
}
ARKit প্রযুক্তির একটি সেট সরবরাহ করে যা অগমেন্টেড রিয়েলিটিকে বাস্তবসম্মত এবং কার্যকরী করে তোলে: 6 ডিগ্রি অফ ফ্রিডম সহ গতি ট্র্যাকিং, সমতল এবং সীমানা শনাক্তকরণের মাধ্যমে দৃশ্য বোঝাপড়া, সঠিক ছায়া রেন্ডারিংয়ের জন্য আলো অনুমান, ব্যক্তি অক্লুশন এবং পরিবেশ মানচিত্রের উপর ভিত্তি করে প্রতিফলিত পৃষ্ঠ।
মোশন ক্যাপচার (ARKit 3+) — ক্যামেরার মাধ্যমে রিয়েল-টাইমে মানবদেহ ট্র্যাক করার প্রযুক্তি। বাহ্যিক সেন্সর ছাড়াই ব্যবহারকারীর গতিবিধি দিয়ে চরিত্র অ্যানিমেট করতে দেয়: 60 Hz-এ 18টি জয়েন্ট শনাক্ত করা হয়। ফিটনেস অ্যাপ এবং অ্যানিমেশন প্রোটোটাইপিংয়ে ব্যবহৃত হয়।
ভাগ করা AR সেশন (ARKit 2+) একাধিক ডিভাইসকে একটি ভাগ করা স্থানে একই ভার্চুয়াল বস্তু দেখতে দেয়। ARWorldMap পরিবেশ মানচিত্র সংরক্ষণ করে, যা নেটওয়ার্কের মাধ্যমে অন্যান্য ডিভাইসে প্রেরণ করা হয়। Apple সিঙ্ক্রোনাইজেশন নির্ভুলতার একটি উদাহরণ দেয়: একই ঘরে দুটি iPhone 12 Pro বস্তুটি 2 সেন্টিমিটারের বেশি বিচ্যুতি ছাড়াই দেখে।
iPhone 12 Pro এবং নতুন ডিভাইসে নির্মিত LiDAR স্ক্যানার, ARKit-এর ক্ষমতা নাটকীয়ভাবে পরিবর্তন করে। চিত্র বিশ্লেষণের মাধ্যমে সফ্টওয়্যার-ভিত্তিক গভীরতা নির্ধারণের পরিবর্তে, LiDAR 5 মিটার পর্যন্ত পরিসরে 3 সেন্টিমিটার পর্যন্ত নির্ভুলতার সাথে তাত্ক্ষণিকভাবে গভীরতার মানচিত্র সরবরাহ করে। এটি ARKit-কে ক্যামেরার প্রাথমিক স্ক্যানিং ছাড়াই তাত্ক্ষণিকভাবে সমতল চিনতে দেয়।
LiDAR-এর সাথে, ARKit বস্তু অক্লুশন নির্ধারণ করতে পারে: একটি ভার্চুয়াল বস্তু বাস্তব চেয়ার বা টেবিলের পিছনে লুকিয়ে থাকতে পারে। উপরন্তু, Scene Reconstruction রিয়েল-টাইমে পরিবেশের 3D মেশ তৈরি করে — প্রতি ঘরে 10 মিলিয়ন পলিগন পর্যন্ত, যা সংঘর্ষ পদার্থবিদ্যা সিমুলেশন এবং বাস্তবসম্মত আলোর জন্য ব্যবহৃত হয়।
// LiDAR কনফিগারেশন
let lidarConfig = ARWorldTrackingConfiguration()
lidarConfig.planeDetection = [.horizontal]
lidarConfig.sceneReconstruction = .mesh
arView.session.run(lidarConfig)
// প্লেন ট্যাপ ডিটেকশন
override func touchesBegan(
_ touches: Set<UITouch>,
with event: UIEvent?
) {
let location = touches.first?.location(in: arView)
guard let hitPoint = location else { return }
let results = arView
.raycastQuery(
from: hitPoint,
allowing: .existingPlaneInfinite,
alignment: .horizontal
)
}
ARKit সংহতকরণ ন্যূনতম প্রয়োজনীয়তা দিয়ে শুরু হয়: Xcode 15+, iOS 17 SDK, A12 Bionic চিপ বা নতুন ডিভাইস। Info.plist-এ NSCameraUsageDescription কী যুক্ত করতে হবে — ARKit ট্র্যাকিং এবং AR দৃশ্য প্রদর্শনের জন্য ক্যামেরা ব্যবহার করে। এই কী ছাড়া, AR সেশন শুরু করার সময় অ্যাপ ক্র্যাশ হবে।
সামগ্রী রেন্ডার করার জন্য, iOS তিনটি ফ্রেমওয়ার্ক সরবরাহ করে: মাঝারি জটিলতার 3D গ্রাফিক্সের জন্য SceneKit, PBR উপকরণ সহ ফটোরিয়ালিস্টিক রেন্ডারিংয়ের জন্য RealityKit এবং সর্বোচ্চ পারফরম্যান্সের জন্য Metal। RealityKit নতুন প্রকল্পের জন্য প্রস্তাবিত পছন্দ কারণ এটি ARKit বৈশিষ্ট্য, অ্যানিমেশন এবং পদার্থবিদ্যার জন্য বিল্ট-ইন সমর্থন অন্তর্ভুক্ত করে।
Apple-এর মতে, একটি বিদ্যমান অ্যাপে মৌলিক AR স্ক্রিন সংহত করতে গড় সময় একজন অভিজ্ঞ iOS ডেভেলপারের জন্য প্রায় 2 ঘন্টা। AR দৃশ্যে UI এলিমেন্ট ওভারলে নিয়ে কাজ করার এবং AR সেশন ব্যাঘাত পরিচালনা করার সময় প্রধান অসুবিধা দেখা দেয় — কল, অ্যাপ স্যুইচিং বা কম আলোতে ট্র্যাকিং হারানো।
ARKit বিভিন্ন পরিস্থিতিতে ট্র্যাকিং হারাতে পারে: অপর্যাপ্ত আলো (100 লাক্সের কম), ফিচার পয়েন্টের অভাব (একরঙা দেয়াল), দ্রুত ক্যামেরা নড়াচড়া বা লেন্স বাধা। ARSessionDelegate এই অবস্থাগুলি পরিচালনার পদ্ধতি সরবরাহ করে — ব্যবহারকারীকে ইঙ্গিত দেখানোর পরামর্শ দেওয়া হয়: “ডিভাইসটি ধীরে সরান” বা “লাইট চালু করুন।”
ব্যর্থতার পরে পুনরুদ্ধারের জন্য, ARKit স্বয়ংক্রিয়ভাবে রিলোকালাইজেশন শুরু করে — এটি সংরক্ষিত পরিবেশ মানচিত্রের সাথে বর্তমান ভিডিও স্ট্রিম মেলানোর চেষ্টা করে। যদি রিলোকালাইজেশন সম্ভব না হয়, সেশনটি একটি নতুন কনফিগারেশনের সাথে পুনরায় শুরু হয়। ফিরে আসার সময় দ্রুত AR দৃশ্য পুনরুদ্ধারের জন্য অ্যাপ থেকে বের হওয়ার সময় ARWorldMap সংরক্ষণ করার পরামর্শ দেওয়া হয়।
class ARViewController: UIViewController {
let arView = ARSCNView()
override func viewDidLoad() {
super.viewDidLoad()
arView.session.delegate = self
let config = ARWorldTrackingConfiguration()
config.planeDetection = [.horizontal]
config.frameSemantics = .personSegmentation
arView.session.run(config)
}
func sessionWasInterrupted(
_ session: ARSession
) {
showAlert("সেশন ব্যাহত")
}
}
সচরাচর জিজ্ঞাসিত প্রশ্ন
ARKit A12 Bionic চিপ এবং নতুন Apple ডিভাইসে কাজ করে: iPhone XS, XR, 11, 12, 13, 14, 15, 16 এবং SE (দ্বিতীয় এবং তৃতীয় প্রজন্ম), iPad Pro 2018+, iPad Air 2020+, iPad mini 2021+। LiDAR বৈশিষ্ট্যগুলির জন্য iPhone 12 Pro/Pro Max, iPhone 13 Pro/Pro Max, iPhone 14 Pro/Pro Max, iPhone 15 Pro/Pro Max এবং iPad Pro 2020+ প্রয়োজন।
হ্যাঁ, ARKit সরাসরি Metal দিয়ে ব্যবহার করা যাবে, কিন্তু এর জন্য কাস্টম শেডার এবং রেন্ডারিং লেখার প্রয়োজন। SceneKit এবং RealityKit ফ্রেমওয়ার্ক স্তরে ARKit সংহতকরণ সহ রেডি-মেড সমাধান সরবরাহ করে। শিক্ষানবিশদের জন্য, RealityKit সর্বোত্তম পছন্দ কারণ এটি স্বয়ংক্রিয়ভাবে ARKit ফাংশনগুলি পরিচালনা করে।
ARKit স্বয়ংক্রিয়ভাবে ক্যামেরার মাধ্যমে দৃশ্যের আলো মূল্যায়ন করে এবং AREnvironmentProbeAnchor-এর মাধ্যমে আলোর উৎসের দিক, তীব্রতা এবং রঙের তাপমাত্রা সম্পর্কে ডেটা সরবরাহ করে। এটি ভার্চুয়াল বস্তুকে সঠিকভাবে ছায়া ফেলতে এবং পরিবেশ প্রতিফলিত করতে দেয়, বাস্তব জগতের সাথে একটি বাস্তবসম্মত সংমিশ্রণ তৈরি করে।
ARKit শুধুমাত্র iOS-এ কাজ করে এবং ট্র্যাকিংয়ের জন্য Visual-Inertial Odometry ব্যবহার করে, যখন Google-এর ARCore Android-এ কাজ করে এবং IMU এবং ক্যামেরার উপর ভিত্তি করে নিজস্ব Motion Tracking ব্যবহার করে। ARKit-এর Apple চিপের সাথে হার্ডওয়্যার সংহতকরণের মাধ্যমে সুবিধা রয়েছে, যখন ARCore Cloud Anchors-এর মাধ্যমে ক্রস-প্ল্যাটফর্ম ক্ষমতা প্রদান করে।
হ্যাঁ, ARKit AR গেম-এর জন্য আদর্শ। SceneKit এবং RealityKit পদার্থবিদ্যা (SCNPhysicsBody, PhysicsSimulation), অ্যানিমেশন, শব্দ এবং কণা সমর্থন করে। পরিচিত উদাহরণগুলির মধ্যে রয়েছে Pokémon GO (ARKit-এর সাথে নিজস্ব ইঞ্জিন ব্যবহার করে), Angry Birds AR এবং Lego AR Studio। ARKit ARWorldMap-এর মাধ্যমে মাল্টিপ্লেয়ার সেশনও সমর্থন করে।
সারাংশ
আমরা একটি মোবাইল অ্যাপ্লিকেশন টার্নকি তৈরি করব
IT Sectr 2017 সাল থেকে স্টার্টআপ এবং ব্যবসার জন্য iOS এবং Android অ্যাপ্লিকেশন তৈরি করে। আমরা আপনাকে পরামর্শ দেব এবং সেরা সমাধান প্রস্তাব করব।
আরও পড়ুন