Hi,

I’m having difficulties correctly applying Perlin noise to a circular grid.

When I first computed the noise value, the end of the grid was not matching its beginning anymore… which is normal.

The problem is, when I try to link the beginning to the end of the grid then the noise becomes “symetrical”. And I can’t seem to figure out how to break that symmetry. Is there something wrong or missing with the way I’m computing the 2D noise value ? (`terrain[x][y]`

here below)

**Circular grid without noise**

**Circular grid with noise**

**Matching edges circular grid with noise**

**Example sketch**

```
add_library('peasycam')
n_points, radius, step = 200, 350, 2
maximum = 450
minimum = 170
factor = .006
def setup():
global lines
size(1800, 800, P3D)
background(0)
smooth(8)
cam = PeasyCam(this, 1400)
n_cols, n_rows = 1000, 80
angle = radians(360) / n_cols
terrain = [[0 for e in range(n_rows)] for f in range(n_cols+1)]
# Computing noise
for y in range(n_rows):
for x in range(n_cols+1):
#terrain[x][y] = map(noise((x *factor)+t, (y*factor)+t), 0, 1, 0, maximum) ### Edges not matching
terrain[x][y] = map(noise(cos(x * angle) * 3, sin(y * angle) * 3 ), 0, 1, 0, maximum) ### Edges matching but symetrical noise
lines = createShape()
for y in range(n_rows):
lines.beginShape(LINES)
lines.strokeWeight(1)
lines.noFill()
lines.stroke(255)
for x in range(n_cols+1):
lx1 = cos(angle * (x-1) ) * (radius + (y*step))
ly1 = sin(angle * (x-1) ) * (radius + (y*step))
lx2 = cos(angle * x ) * (radius + (y*step))
ly2 = sin(angle * x ) * (radius + (y*step))
lines.vertex(lx1, ly1, terrain[x-1][y])
lines.vertex(lx2, ly2, terrain[x][y])
lines.endShape(CLOSE)
def draw():
background(0)
shape(lines)
```