# How can I apply noise to the points of a Circle SOP only on 1 axis?

When I apply noise to a Circle SOP all the points displace on the x y and z axis.

How can I make it so the points only displace on 1 local axis?

Also, how can I turn the circle into a “ring” - I want to cut out a circle from the middle. Haven’t been able to get boolean to work for it yet

To displace the points of a circle SOP you first have to extract the positions of the points. By going into a sopto CHOP you have that. Then you need a noise with the same amount of points as the circle. Going into chop again and then replacing the desired axis (tx, ty or tz) of the circle with the points of the noise.
I have made you a little tox. You can rename the points from the noise to the ones you want to use in the rename2 CHOP. Hope this helps.
Markus
20230703_noise_only_in_one_axis.tox (1.0 KB)

Actually the Noise SOP is only displacing points in the axis along the normals of it’s input. with a default Circle SOP and a default noise SOP, it will LOOK like the points are displacing in all axes because the SOP viewer is showing you a perspective view of the SOP. Change the display to orthographic instead of perspective and you will see that they are only moving in Z axis. If you chain two Noise SOPs and set the first to affect “Point Normals” attribute, THEN it will truly be displacing in all directions.

If you modify the normals of each point beforehand, you can control which direction the points will move when the Noise SOP does it’s thing. You can do this with the Point SOP and can even get fancy with some math (like `math.sin(me.inputPoint.x` and `y` to get them pointing outwards, etc) - though using the point coordinates for this math rely on the circle being already positioned in a certain spot in space and the default of centered on 0,0 just happens to work to your advantage here. Turn on normals display in a SOP viewer to see what’s actually happening with that math.

1 Like

Also to get a ring, try this: