Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
How to handle 3D content on Android XR
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Akio Itaya
June 26, 2025
Programming
280
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
How to handle 3D content on Android XR
Android XR で3Dコンテンツを扱う方法
https://hey.connpass.com/event/358065/
Akio Itaya
June 26, 2025
More Decks by Akio Itaya
See All by Akio Itaya
Androidだけじゃない、DroidKaigiで広がった私の技術スタック
akkeylab
0
140
iOSDCのペンライトを自動制御したい!
akkeylab
0
500
Building a Meta Ray-Ban display app
akkeylab
0
230
What If Your App Could Debug Itself?
akkeylab
0
110
How to stabilize UI tests using XCTest
akkeylab
0
240
Bringing Spatial Web to E-Commerce
akkeylab
0
130
Learn CPU architecture with Assembly
akkeylab
1
2.3k
Porting a visionOS App to Android XR
akkeylab
0
1.3k
Create a website using Spatial Web
akkeylab
0
460
Other Decks in Programming
See All in Programming
Atomic Design, Enforced: Scaling Mobile Design Systems (next.app devCon / droidCon Berlin 2026)
steliosf
PRO
0
190
JIS keyboard support in Omarchy
lef237
0
160
AI時代のFlutter品質設計 — アプリ品質を守るQuality Layers
omatty198
0
110
個人開発者よ、Honoを使え(おじさんver)
tanahiro2010
2
280
dotNET_vulnclicker_intro.pdf
deka_morita
0
150
現場と育てるRailsモデリング 〜Spreadsheetから始めたモデル設計〜
siroemk
2
1.1k
When benchmarks go bad - what I learned from measuring performance wrong
hollycummins
0
240
Vapor Mode でアクセシビリティは 壊れないか検証した話
fuqda
1
180
FactoryBotをやめればRSpecは速くなるのか?
yuta_onishi_97
0
1.2k
當我們開始不讀 Code - AI Agent 時代,Code Review 與 Clean Code 還剩下什麼?
jame2408
1
330
AIで開発が速くなった先で、開発チームは何を目指すか
shihochan
1
1.8k
AI時代のIaC入門 〜なぜインフラをコードで管理したいのか?〜 / Introduction to IaC in the AI Era
akihisaikeda
5
950
Featured
See All Featured
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Prompt Engineering for Job Search
mfonobong
0
550
Marketing to machines
jonoalderson
1
5.9k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
570
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
230
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
120
120k
Art, The Web, and Tiny UX
lynnandtonic
304
22k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
510
Code Review Best Practice
trishagee
74
20k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
290
Bash Introduction
62gerente
615
220k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
580
Transcript
AKKEY / AKIO ITAYA Android XRͰ3DίϯςϯπΛѻ͏ํ๏ Ebisu.mobile #10 Google I/O
https://io.google/2025/explore/technical-session-22 Building di ff erentiated apps for Android XR
with 3D content Google I/O 2025
1. ࠷ॳͷσόΠε Samsung ͷ Project Moohan 2. Home SpaceɾFull Space
ͱ͍͏2ͭͷϞʔυ 3. SceneCore ʹΑΔ Skybox ͱೖܕϏσΦ 4. glTFϑΝΠϧΛ༻ͨ͠3DΦϒδΣΫτදࣔ 5. ARCore ʹΑΔӬଓΞϯΧʔͱϋϯυτϥοΩϯά Summary of the Session
1. ࠷ॳͷσόΠε Samsung ͷ Project Moohan 2. Home SpaceɾFull Space
ͱ͍͏2ͭͷϞʔυ 3. SceneCore ʹΑΔ Skybox ͱೖܕϏσΦ 4. glTFϑΝΠϧΛ༻ͨ͠3DΦϒδΣΫτදࣔ 5. ARCore ʹΑΔӬଓΞϯΧʔͱϋϯυτϥοΩϯά Summary of the Session https://news.samsung.com/global/unlock-the-in fi nite-possibilities-of-xr-with-galaxy-ai ޖೠ / ແݶ
1. ࠷ॳͷσόΠε Samsung ͷ Project Moohan 2. Home SpaceɾFull Space
ͱ͍͏2ͭͷϞʔυ 3. SceneCore ʹΑΔ Skybox ͱೖܕϏσΦ 4. glTFϑΝΠϧΛ༻ͨ͠3DΦϒδΣΫτදࣔ 5. ARCore ʹΑΔӬଓΞϯΧʔͱϋϯυτϥοΩϯά Summary of the Session https://developer.android.com/design/ui/xr/guides/foundations
1. ࠷ॳͷσόΠε Samsung ͷ Project Moohan 2. Home SpaceɾFull Space
ͱ͍͏2ͭͷϞʔυ 3. SceneCore ʹΑΔ Skybox ͱೖܕϏσΦ 4. glTFϑΝΠϧΛ༻ͨ͠3DΦϒδΣΫτදࣔ 5. ARCore ʹΑΔӬଓΞϯΧʔͱϋϯυτϥοΩϯά Summary of the Session https://developer.android.com/design/ui/xr/guides/environments
1. ࠷ॳͷσόΠε Samsung ͷ Project Moohan 2. Home SpaceɾFull Space
ͱ͍͏2ͭͷϞʔυ 3. SceneCore ʹΑΔ Skybox ͱೖܕϏσΦ 4. glTFϑΝΠϧΛ༻ͨ͠3DΦϒδΣΫτදࣔ 5. ARCore ʹΑΔӬଓΞϯΧʔͱϋϯυτϥοΩϯά Summary of the Session ࠓճͷ ຊ
1. ࠷ॳͷσόΠε Samsung ͷ Project Moohan 2. Home SpaceɾFull Space
ͱ͍͏2ͭͷϞʔυ 3. SceneCore ʹΑΔ Skybox ͱೖܕϏσΦ 4. glTFϑΝΠϧΛ༻ͨ͠3DΦϒδΣΫτදࣔ 5. ARCore ʹΑΔӬଓΞϯΧʔͱϋϯυτϥοΩϯά Summary of the Session https://io.google/2025/explore/technical-session-22
glTF
Passthrough in screen capture 3Dσʔλʹ·ͭΘΔ֦ுࢠΛ·ͱΊͯΈͨɹ ~ GLB/OBJ/STL/FBX/USDZ ~ https://note.com/andpad_zero/n/n74fb9a73b4a4
࣮
Zenith for Android Android XR Sample App AkkeyLab
@SuppressLint("RestrictedApi") @Composable fun MySpatialContent() { val session = checkNotNull(LocalSession.current) SpatialPanel()
{ LaunchedEffect(key1 = Unit) { val model = GltfModel.create(session, “models/girl.gltf") .await() var modelEntity = GltfModelEntity.create( session = session, model = model ) } } }
@SuppressLint("RestrictedApi") @Composable fun MySpatialContent() { val session = checkNotNull(LocalSession.current) var
modelEntity by remember { mutableStateOf<GltfModelEntity?>(null) } SpatialPanel() { LaunchedEffect(key1 = Unit) { val model = GltfModel.create(session, “models/girl.gltf") .await() modelEntity = GltfModelEntity.create( session = session, model = model ) } DisposableEffect(Unit) { onDispose { modelEntity?.dispose() } } } }
@SuppressLint("RestrictedApi") @Composable fun MySpatialContent(onRequestHomeSpaceMode: () -> Unit) { val session
= checkNotNull(LocalSession.current) var modelEntity by remember { mutableStateOf<GltfModelEntity?>(null) } SpatialPanel(SubspaceModifier.width(1280.dp).height(800.dp).resizable().movable()) { LaunchedEffect(key1 = Unit) { val model = GltfModel.create(session, "models/girl.gltf").await() val entity = GltfModelEntity.create( session = session, model = model, pose = Pose( translation = Vector3(0f, -0.5f, 0.2f), rotation = Quaternion.fromEulerAngles(Vector3(90f, 0f, 0f)) ) ) entity.setScale(0.5f) modelEntity = entity } DisposableEffect(Unit) { onDispose { modelEntity?.dispose() } } } }
LTͰొஃ https://gdg-tokyo.connpass.com/event/356777/
Zenith for Android github.com/AkkeyLab/zenith-android 3D Anime Character girl for Blender
C1 by CGCOOL https://skfb.ly/oyACQ
Thank you !!