# Viewing 3D tiles on Apple Vision Pro

**URL:** <https://community.cesium.com/t/viewing-3d-tiles-on-apple-vision-pro/37284>\
**Category:** CesiumJS\
**Created:** [December 11, 2024, 10:56pm UTC](https://community.cesium.com/t/viewing-3d-tiles-on-apple-vision-pro/37284 "2024-12-11T22:56:43Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![Glen\_Speckert](https://sea2.discourse-cdn.com/cesium/user_avatar/community.cesium.com/glen_speckert/32/27177_2.png) [@Glen\_Speckert](https://community.cesium.com/u/Glen_Speckert)\
**Post date:** [December 11, 2024, 10:56pm UTC](https://community.cesium.com/t/viewing-3d-tiles-on-apple-vision-pro/37284/1 "2024-12-11T22:56:44Z")

</div>

Is there an easy way to view a Cesium 3D tile set on the Apple Vision Pro?

---

<div class="post-metadata">

**Author:** ![Luke\_McKinstry](https://sea2.discourse-cdn.com/cesium/user_avatar/community.cesium.com/luke_mckinstry/32/25557_2.png) [@Luke\_McKinstry](https://community.cesium.com/u/Luke_McKinstry)\
**Post date:** [December 16, 2024, 5:57pm UTC](https://community.cesium.com/t/viewing-3d-tiles-on-apple-vision-pro/37284/2 "2024-12-16T17:57:06Z")

</div>

Hi @Glen_Speckert ,  
Thanks for your post and welcome to the Cesium community.

Cesium has multiple runtimes built for different game engines which enable development for Apple Vision Pro including Cesium for Unity [https://cesium.com/platform/cesium-for-unity/](https://cesium.com/platform/cesium-for-unity/) and Cesium for Unreal [Cesium for Unreal – Cesium](https://cesium.com/platform/cesium-for-unreal/). If you were building with one of those engines targeting Apple Vision Pro you could use the Cesium plugins to get 3D Tiles.

Please let us know if those options are possible approaches for you and if you have further questions.  
Best,  
Luke

---

<div class="post-metadata">

**Author:** ![Glen\_Speckert](https://sea2.discourse-cdn.com/cesium/user_avatar/community.cesium.com/glen_speckert/32/27177_2.png) [@Glen\_Speckert](https://community.cesium.com/u/Glen_Speckert)\
**Post date:** [December 17, 2024, 7:07pm UTC](https://community.cesium.com/t/viewing-3d-tiles-on-apple-vision-pro/37284/3 "2024-12-17T19:07:33Z")

</div>

Luke,

Safari in VisionOS 2.2 will display spatial photo and spatial video. Does Cesium JS display 3D in Safari in VisionOS 2.2?

– Glen

---

<div class="post-metadata">

**Author:** ![Glen\_Speckert](https://sea2.discourse-cdn.com/cesium/user_avatar/community.cesium.com/glen_speckert/32/27177_2.png) [@Glen\_Speckert](https://community.cesium.com/u/Glen_Speckert)\
**Post date:** [December 17, 2024, 7:38pm UTC](https://community.cesium.com/t/viewing-3d-tiles-on-apple-vision-pro/37284/4 "2024-12-17T19:38:04Z")

</div>

Luke,

I have several point clouds, which originated its .LAS files, and were produced in Cesium Ion. I want to do simple visualizations based on the height of points. For example a simple threshold slider, with points above threshold appearing orange, and point below appearing green. I use:  
conditions = [  
[`\${POSITION[2]} > ${threshold}`, ‘color(“orange”)’],  
[‘true’, ‘color(“green”)’]  
];  
Some points remain Gray. That is, apparently they do not appear to have POSITION, yet the points have a clear x,y,z location in gray. How do I access the height values?

Some data sets, when zooming in closer to cause a different LOD point tiles to load, causes the apparent color of a point cloud object to change colors. Is the ${POSITION[2]} which is used to color the points would seem to be relative to the tile offset? How best to reference the height of points in a point cloud from Cesium JS?

– Glen

 ![Screenshot 2024-12-16 at 8.19.25 PM.png](https://global.discourse-cdn.com/cesium/original/3X/2/0/208d329578d08e4eb7bd65b4dbabbea188ddd247.png)

---

<div class="post-metadata">

**Author:** ![Luke\_McKinstry](https://sea2.discourse-cdn.com/cesium/user_avatar/community.cesium.com/luke_mckinstry/32/25557_2.png) [@Luke\_McKinstry](https://community.cesium.com/u/Luke_McKinstry)\
**Post date:** [December 17, 2024, 10:31pm UTC](https://community.cesium.com/t/viewing-3d-tiles-on-apple-vision-pro/37284/5 "2024-12-17T22:31:41Z")

</div>

Hi @Glen_Speckert ,

> point clouds

Thank you for providing the screenshot of the issue you are seeing with your pointcloud data and the potential problems styling by height information.

Could you try to reproduce this issue in our sandcastle tool? [https://sandcastle.cesium.com/](https://sandcastle.cesium.com/) This will make it easier for us to assist you in debugging and find the root cause of the issue. A quick way to do this is to go to Cesium ion, select the “Assets” tab, select the asset you created from your .LAS data, then click the link to “Open complete code example”. This will let you view the asset in a sandcastle, and you can add the style code snippet you shared above.

Please let us know how that goes. If you see the same result with gray/unstyled points, then I would ask to take a look at the data. To do so you could share the link to the sandcastle you create in this thread, or send me the ion Asset ID via DM if you rather not share the sandcastle link publicly.

> Safari in VisionOS 2.2

It is my understanding that CesiumJS would need to support webXR to be used in AVP. We have a thread here discussing webXR which includes a link to an in progress PR adding support [Webxr in cesiumjs](https://community.cesium.com/t/webxr-in-cesiumjs/22948). I realize mentioning CesiumJS for web apps in my previous response could be misleading so I’ll remove that to avoid any confusion.

Please let us know how things go and if you have further questions.  
Best,  
Luke

---

<div class="post-metadata">

**Author:** ![Glen\_Speckert](https://sea2.discourse-cdn.com/cesium/user_avatar/community.cesium.com/glen_speckert/32/27177_2.png) [@Glen\_Speckert](https://community.cesium.com/u/Glen_Speckert)\
**Post date:** [December 22, 2024, 10:40pm UTC](https://community.cesium.com/t/viewing-3d-tiles-on-apple-vision-pro/37284/6 "2024-12-22T22:40:57Z")

</div>

Ah, I realized that the elevation is not POSITION[2] not POSITION\_ABSOLUTE[2] rather  
SQRT(  
POSITION\_ABSOLUTE[0]\*POSITION\_ABSOLUTE[0] +  
POSITION\_ABSOLUTE[1]\*POSITION\_ABSOLUTE[1] +  
POSITION\_ABSOLUTE[2]\*POSITION\_ABSOLUTE[2] ). Once this is understood, all works out well.
