# Transformation around arbitrary point

**URL:** <https://community.cesium.com/t/transformation-around-arbitrary-point/22938>\
**Category:** CesiumJS\
**Created:** [March 18, 2023, 1:24pm UTC](https://community.cesium.com/t/transformation-around-arbitrary-point/22938 "2023-03-18T13:24:53Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Adrian\_Onsen](https://sea2.discourse-cdn.com/cesium/user_avatar/community.cesium.com/adrian_onsen/32/1987_2.png) [@Adrian\_Onsen](https://community.cesium.com/u/Adrian_Onsen)\
**Post date:** [March 18, 2023, 1:24pm UTC](https://community.cesium.com/t/transformation-around-arbitrary-point/22938/1 "2023-03-18T13:24:53Z")

</div>

All transformations (translate/rotate/scale) in CesiumJS are applied to the 3d tile origin.  
(an example of this is the widget used on Cesium Ion which allows the user to translate/rotate/scale assets by visually adjusting the transformation of an asset. It applies the all transformations at the 3d tile origin)

I have the coordinates of the point in space which I want to use as the new reference point (instead of the asset origin)  
How would I go about using that new reference point for all the transformations (translate/rotate/scale)?  
How do I transform the position/rotation/scale values at an arbitrary point in space to the asset origin (for CesiumJS to display the asset at the correct location)?

Any help would be appreciated.
