# model_y() Returns the three-dimensional X, Y, Z position in model space. ## Examples
```python def setup(): py5.size(500, 500, py5.P3D) py5.no_fill() def draw(): py5.background(0) py5.push_matrix() # start at the middle of the screen py5.translate(py5.width//2, py5.height//2, -200) # some random rotation to make things interesting py5.rotate_y(1.0) # yrot) py5.rotate_z(2.0) # zrot) # rotate in X a little more each frame py5.rotate_x(py5.frame_count/100.0) # offset from_ center py5.translate(0, 150, 0) # draw a white box outline at (0, 0, 0) py5.stroke(255) py5.box(50) # the box was drawn at (0, 0, 0), store that location x = py5.model_x(0, 0, 0) y = py5.model_y(0, 0, 0) z = py5.model_z(0, 0, 0) # clear out all the transformations py5.pop_matrix() # draw another box at the same (x, y, z) coordinate as the other py5.push_matrix() py5.translate(x, y, z) py5.stroke(255, 0, 0) py5.box(50) py5.pop_matrix() ```
## Description Returns the three-dimensional X, Y, Z position in model space. This returns the Y value for a given coordinate based on the current set of transformations (scale, rotate, translate, etc.) The Y value can be used to place an object in space relative to the location of the original point once the transformations are no longer in use. In the example, the [](sketch_model_x), `model_y()`, and [](sketch_model_z) functions record the location of a box in space after being placed using a series of translate and rotate commands. After [](sketch_pop_matrix) is called, those transformations no longer apply, but the (x, y, z) coordinate returned by the model functions is used to place another box in the same location. Underlying Processing method: [modelY](https://processing.org/reference/modelY_.html) ## Signatures ```python model_y( x: float, # 3D x-coordinate to be mapped y: float, # 3D y-coordinate to be mapped z: float, # 3D z-coordinate to be mapped /, ) -> float ``` Updated on March 06, 2023 02:49:26am UTC