Skip to content
制作実績一覧
自動化 / 開発基盤In Development

朧 — 空間コンピューティング SDK

Oboro — Spatial Computing SDK

Apple Vision Pro と Meta Quest 3 の両プラットフォーム、および WebXR ブラウザを単一のシーングラフ記述で扱うための空間コンピューティング SDK。ARKit / Meta XR SDK / WebXR Device API を薄く抽象化し、CRDT (Yjs) で複数デバイス間の空間アンカー状態を同期する内部 R&D プロトタイプ。

2026 R&D (内部プロトタイプ) 2026-04
#spatial-computing#XR#CRDT#R&D

ライブデモ

実際のアプリケーション画面のプレビュー

DEMO
app.spatial.jp/dashboard
Frame rate
90 fps
foveated render
Digital twin latency
42 ms
OPC UA sync
Spatial anchors
128
persistent
CAD polycount
1.2 M tris
LOD auto

Target device

runtime: OpenXR 1.1 · WebXR fallback

AR overlay preview

trackingsession · 00:42:11
Servo-motor M-04torque 4.2 Nm · 72°CCoolant lineflow 1.8 L/minPneumatic valve V-11replace by 2026-05-12PLC I/O nodeProfinet · 172.16.4.7Vision Pro · 2880 × 2880 / eye90 fps · 42 ms twin sync

Scene pipeline

SLAM + world mesh6 ms
Plane + anchor resolve4 ms
CAD stream + LOD11 ms
Shader + lighting8 ms
Compositor + reproject2 ms

Anchor stats

  • Persistent anchors128
  • Shared (multi-user)34
  • Avg drift / hour1.8 mm
  • Re-localization97.3 %
  • Cloud backendARKit · Azure OR

Digital twin sync

OPC UA channelOK

42 ms · 12 tags · 100 Hz

MQTT telemetryOK

QoS 1 · TLS · 8.2 KB/s

USD stagestreaming

nucleus://twin/line-07

課題

Vision Pro (visionOS 2) と Quest 3 (Horizon OS) は入力モデル・アンカリング・レンダリング API が大きく異なり、同じ体験を両者に展開するには実質二重実装が必要。さらに複数ユーザが同じ物理空間を共有する場合、ネットワーク遅延とオフライン再接続でアンカー座標が衝突する問題がある。

ソリューション

Rust + WebAssembly で書かれたシーングラフコア (Oboro Core) を中心に、visionOS 向け Swift バインディングと Android/Quest 向け Kotlin バインディング、WebXR 向け TypeScript バインディングを生成。空間アンカーとユーザ入力イベントは Yjs CRDT ドキュメントに格納し、WebSocket/WebRTC のどちらでも差分同期できる。

成果

  • Vision Pro sim / Quest 3 実機 / WebXR (Chrome) で同一シーン再生を確認
  • CRDT 同期で 3 デバイス間の再接続後アンカー一致率 100% (内部試験)
  • 共通シーン記述サイズは単一プラットフォーム SDK 比 約38%削減
  • 初期フレームまでの時間を Quest 3 で 1.2s に短縮
Key Metrics

Measured Impact

シーン記述削減

-38%

vs 単体SDK

アンカー一致率

100%

3 devices

初期フレーム

1.2s

Quest 3

対応プラットフォーム

3

VP/Q3/Web

Features

What it does

シーン記述

glTF 互換

既存アセットをそのまま OSD に取り込み可能。

宣言的アンカー

水平面・壁・イメージアンカーを統一 API で指定。

マルチデバイス

CRDT 同期

オフライン再接続でも衝突なくアンカー状態を収束。

P2P 優先

WebRTC で遅延を抑え、失敗時のみ中継サーバを利用。

開発体験

ヘッドレス sim

CI で XR シーンを自動テスト。

Inspector

シーングラフとアンカーをライブ編集。

Architecture

System Layers

Layered architecture showing components, responsibilities, and data flow.

L1

Layer

コア

Rust 製の共通コア。WASM および各プラットフォーム向けネイティブライブラリとしてビルド。

Scene GraphAnchor StoreInput Routerwgpu Renderer
L2

Layer

プラットフォームバインディング

ARKit / Meta XR SDK / WebXR Device API を共通インタフェースに落とし込む薄い層。

visionOS SwiftQuest KotlinWebXR TS
L3

Layer

同期レイヤ

アンカーと入力イベントを CRDT で共有。P2P 優先、失敗時はリレーにフォールバック。

Yjs DocWebRTC TransportWebSocket Fallback
L4

Layer

ツーリング

シーンの検査・インポート・ヘッドレスシミュレーション用の開発者ツール群。

OSD InspectorglTF ImporterSim Harness
Development Process

How we built it

Step 1

プラットフォーム比較

visionOS / Horizon OS / WebXR の入力・アンカー API を仕様レベルで比較。

Deliverables

  • API 比較表
  • OSD ドラフト
  • 抽象化方針
Step 2

コア実装

Rust でシーングラフと wgpu レンダラを実装し WASM 化。

Deliverables

  • Oboro Core
  • WASM バンドル
  • ユニットテスト
Step 3

WebXR 先行対応

実機調達前に WebXR で動作検証し OSD を固める。

Deliverables

  • WebXR バインディング
  • ブラウザデモ
  • 性能計測
Step 4

ネイティブ展開

Quest 3 実機と Vision Pro sim でネイティブバインディングを検証。

Deliverables

  • Quest APK
  • visionOS sim ビルド
  • CRDT 試験
Roadmap

Delivery Timeline

  • Phase 0Done2026-04-23

    シーングラフ仕様

    Oboro Scene Description (OSD) を glTF 互換で策定。

  • Phase 1Done2026-04-25

    WebXR バインディング

    Chrome/Quest Browser で OSD を再生。

  • Phase 2Planned2026-05

    visionOS / Quest ネイティブ

    Swift/Kotlin バインディングと CRDT 同期を実装。

  • Phase 3Planned2026-07

    マルチユーザ体験サンプル

    3デバイス共存のホワイトボードサンプルを公開。

Team

Who built it

1engineer

Roles

  • XR エンジニア
技術スタック

Tools & Platforms

Frontend

TypeScript

Backend

RustKotlinWebXR Device API

Other

WebAssemblySwiftARKitRealityKitMeta XR SDKYjsWebRTCWebSocketglTFwgpu
Build with KGA

同様のプロジェクトをお考えですか?

お客様のビジネスに最適なソリューションをご提案いたします。

プロジェクトを相談する