공간 컴퓨팅(Spatial Computing)은 디지털 정보를 3차원 물리 공간에 맞게 처리하고 상호작용하는 컴퓨팅 패러다임이다. Apple Vision Pro의 등장으로 주목받고 있다.
핵심 기술 구성요소
공간 컴퓨팅 = SLAM + 공간 이해 + 자연스러운 상호작용
1. SLAM (Simultaneous Localization and Mapping)
- 실시간 환경 지도 생성 + 자기 위치 추정
2. 공간 이해
- 평면/물체 감지
- 깊이 추정 (LiDAR, 스테레오 카메라)
- 장면 분류
3. 자연스러운 상호작용
- 손 추적 (Hand Tracking)
- 눈 추적 (Eye Tracking)
- 음성 인식
- 제스처 인식
python
# ORB-SLAM3 기반 개념 코드
import numpy as np
class EKF_SLAM:
def __init__(self, landmarks):
n = 3 + 2 * landmarks # 로봇 자세(3) + 랜드마크(2*N)
self.mu = np.zeros(n) # 상태 추정값
self.sigma = np.eye(n) * 1000 # 공분산
def predict(self, u, dt):
"""모션 모델: 제어 입력으로 상태 예측"""
theta = self.mu[2]
v, omega = u
self.mu[0] += v * np.cos(theta) * dt
self.mu[1] += v * np.sin(theta) * dt
self.mu[2] += omega * dt
# 공분산 업데이트 (야코비안 기반)
def update(self, z, landmark_id):
"""관측 모델: 랜드마크 관측으로 상태 보정"""
lx = self.mu[3 + 2*landmark_id]
ly = self.mu[4 + 2*landmark_id]
expected_range = np.sqrt((lx-self.mu[0])<strong>2 + (ly-self.mu[1])</strong>2)
innovation = z[0] - expected_range
# 칼만 게인으로 상태 업데이트
Apple visionOS 공간 레이아웃
swift
// visionOS WindowGroup + ImmersiveSpace
import SwiftUI
import RealityKit
@main
struct SpatialApp: App {
var body: some Scene {
WindowGroup {
ContentView()
}
// 완전 몰입 공간
ImmersiveSpace(id: "FullImmersion") {
RealityView { content in
// 3D 콘텐츠 배치
let sphere = ModelEntity(
mesh: .generateSphere(radius: 0.2),
materials: [SimpleMaterial(color: .cyan, isMetallic: true)])
sphere.position = [0, 1.5, -2]
content.add(sphere)
}
}
.immersionStyle(selection: .constant(.full), in: .full)
}
}
공간 컴퓨팅 활용
- •기업 협업: 3D 가상 회의실, 원격 작업 지원
- •의료: 수술 계획, AR 해부학 교육
- •설계/건축: BIM 공간 시각화
- •교육: 인터랙티브 3D 학습
관련 문서