162:
214:
311:
238:
206:
262:
134:
20:
503:
3620:
573:
the random gradient direction shuffles bits of the integer coordinates of corners, which is much faster than shuffling using the interference at high frequency of rotations of the integer coordinates of corners, merged and rotated again at high frequency by a product: the rotations are not uniformly
157:
appearance, yet all of its visual details are the same size. This property allows it to be readily controllable; multiple scaled copies of Perlin noise can be inserted into mathematical expressions to create a great variety of procedural textures. Synthetic textures using Perlin noise are often used
283:
Note that a gradient vector's influence grows with distance, which can be avoided by normalizing the offset vector to a length of 1 first. This would introduce noticeable sharp changes, except the distance is taken into account in the following interpolation step. Normalizing the offset vector is
330:
grid nodes. Therefore, at points close to the grid nodes, the output will approximate the dot product of the gradient vector of the node and the offset vector to the node. This means that the noise function will pass through 0 at every node, giving Perlin noise its characteristic look.
592:(with the first three derivatives equal to zero on the clamping boundaries) and not the basic linear step. This avoids visible artefacts, notably along vertices or diagonals joining the sampling corners, where the result would visibly be anisotropic (tainting the desired
473:
125:. Simplex noise has the same purpose, but uses a simpler space-filling grid. Simplex noise alleviates some of the problems with Perlin's "classic noise", among them computational complexity and visually-significant directional artifacts.
196:
that looks natural. This success is in part due to the hierarchical structuring of Perlin noise that mimics naturally occurring hierarchical structures, and therefore also has found to be useful in environmental science applications.
112:
on computer generated surfaces for motion picture visual effects. The development of Perlin Noise has allowed computer graphics artists to better represent the complexity of natural phenomena in visual effects for the motion picture
287:
For a point in a two-dimensional grid, this will require the computation of four offset vectors and dot products, while in three dimensions it will require eight offset vectors and eight dot products. In general, the algorithm has
3350:
This specific permutation is not absolutely required, though it does require a randomized array of the integers 0 to 255. If creating a new permutation table, care should be taken to ensure uniform distribution of the values.
158:
in CGI to make computer-generated visual elements – such as object surfaces, fire, smoke, or clouds – appear more natural, by imitating the controlled random appearance of textures in nature.
3359:
For each evaluation of the noise function, the dot product of the position and gradient vectors must be evaluated at each node of the containing grid cell. Perlin noise therefore scales with complexity
273:
corners of that cell and their associated gradient vectors. Next, for each corner, calculate an offset vector. An offset vector is a displacement vector from that corner to the candidate point.
581:
cubes and then uses a random permutation of these cubes to shuffle them, and then each cube position corners is assigned one of twelve directions to the neighboring non-permuted cubes in a
600:; if the noise was used to generate a solid crystal, it would not be entirely black and opaque to the light, but partly transparent and colored in some discrete directions of observation).
365:
3564:
3739:
3689:
225:, but can be defined for any number of dimensions. An implementation typically involves three steps: defining a grid of random gradient vectors, computing the
280:
between its gradient vector and the offset vector to the candidate point. This dot product will be zero if the candidate point is exactly at the grid corner.
1795:
Many implementations of Perlin noise use the same permutation set that Ken Perlin used in his original implementation. That implementation is as follows:
3560:
161:
3786:
4426:
4075:
101:
4242:
3583:
265:
The dot product of each point with its nearest grid node gradient value. The dot product with the other three nodes in the cell is not shown.
4579:
3618:, Kenneth Perlin, "Standard for perlin noise", issued 2005-03-15, assigned to Kenneth Perlin and Wsou Investments LLC
3718:
4436:
253:-dimensional unit-length gradient vector, except in the one dimensional case where the gradients are random scalars between −1 and 1.
209:
Perlin noise rescaled and added into itself to create fractal noise. At each step, noise frequency is doubled and amplitude is halved.
4318:
4232:
546:
513:
3693:
570:
it is using a three-dimensional approach by interpolating between 8 corners of a cube instead of the 4 corners of a square below.
117:
Perlin did not apply for any patents on the algorithm, but in 2001 he was granted a patent for the use of 3D+ implementations of
4573:
4421:
4272:
3950:
97:
269:
For working out the value of any candidate point, first find the unique grid cell in which the point lies. Then, identify the
193:
4106:
4482:
4389:
3779:
3539:
4237:
3959:
186:
170:
528:
4630:
72:
4162:
524:
4615:
4532:
4055:
3724:
Rob Farber's tutorial demonstrating Perlin noise generation and visualization on CUDA-enabled graphics processors
3421:
4620:
560:
217:
2-D Perlin noise with a contour line at zero, showing that the noise is zero at the gradient mesh intersections
182:
3373:
dimensions. Alternatives to Perlin noise producing similar results with improved complexity scaling include
4446:
4035:
3772:
468:{\displaystyle f(x)=a_{0}+\operatorname {smoothstep} (x)\cdot (a_{1}-a_{0})\quad {\text{for }}0\leq x\leq 1}
4369:
4304:
4267:
222:
4558:
4403:
4247:
3902:
585:
paving space: this requires only integer operations but maintains a uniform distribution of directions.
3615:
4467:
3984:
3759:
4227:
4222:
4040:
3943:
3590:
4283:
4173:
142:
108:
To Ken Perlin for the development of Perlin Noise, a technique used to produce natural appearing
4625:
4497:
4492:
4288:
4112:
4009:
3994:
3974:
3917:
3907:
3823:
3554:
3504:
3378:
150:
122:
84:
71:
developed Perlin noise in 1983 as a result of his frustration with the "machine-like" look of
45:
169:
It is also frequently used to generate textures when memory is extremely limited, such as in
4590:
4563:
4117:
4050:
4014:
3838:
3647:
3496:
3452:
3395:
714:* // Use ] for an even smoother result with a second derivative equal to zero on boundaries:
205:
213:
4568:
4522:
4487:
4477:
4045:
4004:
109:
3928:
229:
between the gradient vectors and their offsets, and interpolation between these values.
3733:
1782:// Will return in range -1 to 1. To make it in range 0 to 1, multiply by 0.5 and add 0.5
559:
The following is a two-dimensional implementation of classical Perlin noise, written in
310:
237:
133:
4197:
4142:
4122:
3936:
3815:
3361:
295:
261:
146:
37:
4609:
4553:
4527:
4262:
4137:
4090:
4085:
4080:
4070:
4065:
3989:
3843:
3833:
3471:
3400:
3374:
249:-dimensional grid where each grid intersection has associated with it a fixed random
178:
174:
154:
118:
53:
49:
19:
4252:
4202:
4132:
3881:
3754:
485:
Noise functions for use in computer graphics typically produce values in the range
3729:
Jason Bevins's extensive C++ library for generating complex, coherent noise values
3527:
4584:
4278:
4257:
4192:
4184:
4127:
4060:
3999:
3861:
3853:
3723:
3635:
3390:
593:
277:
226:
221:
Perlin noise is most commonly implemented as a two-, three- or four-dimensional
4179:
4168:
4152:
4147:
3979:
3912:
795:// No precomputed gradients mean this works for any number of grid coordinates
597:
589:
479:
323:
322:
dot products. Interpolation is performed using a function that has zero first
79:
paper in 1985 called "An Image
Synthesizer". He developed it after working on
68:
41:
3508:
189:
and for non-real-time procedural textures in all kinds of computer graphics.
4472:
3764:
57:
3456:
3652:
76:
149:
used by visual effects artists to increase the appearance of realism in
4537:
566:
The original reference implementation by Perlin had major differences:
717:* return (a1 - a0) * ((w * (w * 6.0 - 15.0) + 10.0) * w * w * w) + a0;
705:/* // Use this cubic interpolation ] instead, for a smooth appearance:
4157:
3668:
3429:
87:
80:
531:. Statements consisting only of original research should be removed.
3744:
3728:
4379:
4355:
4340:
4333:
4030:
309:
260:
236:
212:
204:
160:
132:
18:
1107:// Computes the dot product of the distance and gradient vectors.
92:
3932:
3768:
3749:
496:
3745:
The Book of
Shaders by Patricio Gonzalez Vivo & Jen Lowe
341:, an example of a function that interpolates between value
75:(CGI) at the time. He formally described his findings in a
104:
for creating the algorithm, the citation for which read:
56:. It is most commonly implemented in two, three, or four
44:
in 1983. It has many uses, including but not limited to:
3636:"Perlin noise as a hierarchical neutral landscape model"
52:
changes to a variable, and assisting in the creation of
520:
3740:
Perlin Noise
Explained in Depth (with C++ source code)
1440:// Could also use higher order polynomial/s-curve here
612:/* Function to linearly interpolate between a0 and a1
368:
165:
A virtual organic surface generated with Perlin noise
588:
the interpolation function is the smoother 4-degree
4546:
4515:
4506:
4460:
4297:
4213:
4099:
4023:
3967:
3895:
3874:
3852:
3814:
3807:
3800:
3760:
Random terrain generation and perlin noise with SDL
60:, but can be defined for any number of dimensions.
708:* return (a1 - a0) * (3.0 - w * 2.0) * w * w + a0;
467:
3443:Perlin, Ken (July 1985). "An image synthesizer".
23:Two-dimensional slice through 3D Perlin noise at
137:A virtual landscape generated using Perlin noise
3563:) CS1 maint: bot: original URL status unknown (
106:
3944:
3780:
577:Perlin's method split the integer space into
326:(and possibly also second derivative) at the
192:It is frequently used in video games to make
8:
318:The final step is interpolation between the
3577:
3575:
3472:"In the beginning: The Pixel Stream Editor"
1503:// Interpolate between grid point gradients
1299:// Compute Perlin noise at coordinates x, y
16:Type of gradient noise in computer graphics
4512:
3951:
3937:
3929:
3811:
3804:
3787:
3773:
3765:
3542:. Archived from the original on 2018-05-01
241:A two-dimensional grid of gradient vectors
3651:
3569:of Ken Perlin's 'coherent noise function'
660:/* // You may want clamping by inserting:
547:Learn how and when to remove this message
445:
435:
422:
388:
367:
1158:// Get gradient from integer coordinates
4427:Signal-to-interference-plus-noise ratio
3412:
759:/* Create pseudorandom direction vector
102:Academy Award for Technical Achievement
100:(MAGI). In 1997, Perlin was awarded an
4243:Equivalent pulse code modulation noise
3559:: CS1 maint: archived copy as title (
3552:
3755:Python package to create Perlin noise
7:
4366:(energy per symbol to noise density)
3719:Matt Zucker's Perlin noise math FAQ
181:, have become nearly ubiquitous in
4437:Signal-to-quantization-noise ratio
1437:// Determine interpolation weights
1332:// Determine grid cell coordinates
615:* Weight w should be in the range
14:
4351:(energy per bit to noise density)
4319:Carrier-to-receiver noise density
4233:Effective input noise temperature
96:(1982) for the animation company
3962:(physics and telecommunications)
501:
4574:Block-matching and 3D filtering
4422:Signal-to-noise ratio (imaging)
4273:Noise, vibration, and harshness
3634:Etherington, Thomas R. (2022).
489:and can be scaled accordingly.
444:
284:however not a common practice.
98:Mathematical Applications Group
46:procedurally generating terrain
3445:ACM SIGGRAPH Computer Graphics
1188:// Compute the distance vector
441:
415:
409:
403:
378:
372:
194:procedurally generated terrain
1:
4107:Additive white Gaussian noise
3750:Perlin noise online generator
3497:"Oscar is FX Wizard's Reward"
314:The final interpolated result
276:For each corner, we take the
4483:Interference (communication)
4390:Signal-to-interference ratio
4380:Signal, noise and distortion
3428:. Ken Perlin. Archived from
666:* if (1.0 < w) return a1;
663:* if (0.0 > w) return a0;
4238:Equivalent noise resistance
3584:"Simplex noise demystified"
527:the claims made and adding
173:. Its successors, such as
4649:
1251:// Compute the dot-product
73:computer-generated imagery
4533:Total variation denoising
3795:Procedural coherent noise
350:at grid node 0 and value
183:graphics processing units
3884:(Voronoi/Cellular noise)
1797:
603:
4447:Contrast-to-noise ratio
4370:Modulation error ratio
4305:Carrier-to-noise ratio
4268:Noise spectral density
3690:"Perlin Noise: Part 2"
469:
315:
266:
242:
218:
210:
166:
138:
115:
30:
4585:Denoising autoencoder
4559:Anisotropic diffusion
4404:Signal-to-noise ratio
4248:Impulse noise (audio)
4163:Johnson–Nyquist noise
4051:Government regulation
3903:Procedural generation
3616:US patent 6867776
3457:10.1145/325165.325247
470:
313:
264:
240:
216:
208:
164:
153:. The function has a
145:primitive, a type of
136:
22:
4468:List of noise topics
3653:10.5194/we-22-1-2022
3528:Original source code
3451:(97–8930): 287–296.
366:
4228:Circuit noise level
4223:Channel noise level
3696:on 17 February 2023
3582:Gustavson, Stefan.
3432:on October 8, 2007.
487:[–1.0, 1.0]
482:function was used.
4284:Pseudorandom noise
4174:Quantization error
3985:Noise cancellation
3918:Fractal landscapes
3734:PHP Implementation
512:possibly contains
465:
359:at grid node 1 is
316:
267:
243:
219:
211:
187:real-time graphics
167:
143:procedural texture
141:Perlin noise is a
139:
31:
4631:Computer graphics
4603:
4602:
4599:
4598:
4538:Wavelet denoising
4498:Thermal radiation
4493:Spectrum analyzer
4289:Statistical noise
4113:Atmospheric noise
4010:Noise temperature
3995:Noise measurement
3975:Acoustic quieting
3926:
3925:
3908:Computer graphics
3891:
3890:
3870:
3869:
3824:OpenSimplex noise
3379:OpenSimplex noise
852:// rotation width
557:
556:
549:
514:original research
448:
151:computer graphics
123:texture synthesis
85:computer animated
4638:
4616:Noise (graphics)
4591:Deep Image Prior
4580:Shrinkage Fields
4564:Bilateral filter
4513:
4118:Background noise
4015:Phase distortion
3953:
3946:
3939:
3930:
3839:Simulation noise
3812:
3805:
3789:
3782:
3775:
3766:
3706:
3705:
3703:
3701:
3692:. Archived from
3686:
3680:
3679:
3677:
3675:
3664:
3658:
3657:
3655:
3631:
3625:
3624:
3623:
3619:
3612:
3606:
3605:
3603:
3601:
3596:on 21 March 2023
3595:
3589:. Archived from
3588:
3579:
3570:
3568:
3558:
3550:
3548:
3547:
3536:
3530:
3525:
3519:
3518:
3516:
3515:
3492:
3486:
3485:
3483:
3481:
3476:
3467:
3461:
3460:
3440:
3434:
3433:
3426:noisemachine.com
3417:
3396:Simulation noise
3372:
3367:
3346:
3343:
3340:
3337:
3334:
3331:
3328:
3325:
3322:
3319:
3316:
3313:
3310:
3307:
3304:
3301:
3298:
3295:
3292:
3289:
3286:
3283:
3280:
3277:
3274:
3271:
3268:
3265:
3262:
3259:
3256:
3253:
3250:
3247:
3244:
3241:
3238:
3235:
3232:
3229:
3226:
3223:
3220:
3217:
3214:
3211:
3208:
3205:
3202:
3199:
3196:
3193:
3190:
3187:
3184:
3181:
3178:
3175:
3172:
3169:
3166:
3163:
3160:
3157:
3154:
3151:
3148:
3145:
3142:
3139:
3136:
3133:
3130:
3127:
3124:
3121:
3118:
3115:
3112:
3109:
3106:
3103:
3100:
3097:
3094:
3091:
3088:
3085:
3082:
3079:
3076:
3073:
3070:
3067:
3064:
3061:
3058:
3055:
3052:
3049:
3046:
3043:
3040:
3037:
3034:
3031:
3028:
3025:
3022:
3019:
3016:
3013:
3010:
3007:
3004:
3001:
2998:
2995:
2992:
2989:
2986:
2983:
2980:
2977:
2974:
2971:
2968:
2965:
2962:
2959:
2956:
2953:
2950:
2947:
2944:
2941:
2938:
2935:
2932:
2929:
2926:
2923:
2920:
2917:
2914:
2911:
2908:
2905:
2902:
2899:
2896:
2893:
2890:
2887:
2884:
2881:
2878:
2875:
2872:
2869:
2866:
2863:
2860:
2857:
2854:
2851:
2848:
2845:
2842:
2839:
2836:
2833:
2830:
2827:
2824:
2821:
2818:
2815:
2812:
2809:
2806:
2803:
2800:
2797:
2794:
2791:
2788:
2785:
2782:
2779:
2776:
2773:
2770:
2767:
2764:
2761:
2758:
2755:
2752:
2749:
2746:
2743:
2740:
2737:
2734:
2731:
2728:
2725:
2722:
2719:
2716:
2713:
2710:
2707:
2704:
2701:
2698:
2695:
2692:
2689:
2686:
2683:
2680:
2677:
2674:
2671:
2668:
2665:
2662:
2659:
2656:
2653:
2650:
2647:
2644:
2641:
2638:
2635:
2632:
2629:
2626:
2623:
2620:
2617:
2614:
2611:
2608:
2605:
2602:
2599:
2596:
2593:
2590:
2587:
2584:
2581:
2578:
2575:
2572:
2569:
2566:
2563:
2560:
2557:
2554:
2551:
2548:
2545:
2542:
2539:
2536:
2533:
2530:
2527:
2524:
2521:
2518:
2515:
2512:
2509:
2506:
2503:
2500:
2497:
2494:
2491:
2488:
2485:
2482:
2479:
2476:
2473:
2470:
2467:
2464:
2461:
2458:
2455:
2452:
2449:
2446:
2443:
2440:
2437:
2434:
2431:
2428:
2425:
2422:
2419:
2416:
2413:
2410:
2407:
2404:
2401:
2398:
2395:
2392:
2389:
2386:
2383:
2380:
2377:
2374:
2371:
2368:
2365:
2362:
2359:
2356:
2353:
2350:
2347:
2344:
2341:
2338:
2335:
2332:
2329:
2326:
2323:
2320:
2317:
2314:
2311:
2308:
2305:
2302:
2299:
2296:
2293:
2290:
2287:
2284:
2281:
2278:
2275:
2272:
2269:
2266:
2263:
2260:
2257:
2254:
2251:
2248:
2245:
2242:
2239:
2236:
2233:
2230:
2227:
2224:
2221:
2218:
2215:
2212:
2209:
2206:
2203:
2200:
2197:
2194:
2191:
2188:
2185:
2182:
2179:
2176:
2173:
2170:
2167:
2164:
2161:
2158:
2155:
2152:
2149:
2146:
2143:
2140:
2137:
2134:
2131:
2128:
2125:
2122:
2119:
2116:
2113:
2110:
2107:
2104:
2101:
2098:
2095:
2092:
2089:
2086:
2083:
2080:
2077:
2074:
2071:
2068:
2065:
2062:
2059:
2056:
2053:
2050:
2047:
2044:
2041:
2038:
2035:
2032:
2029:
2026:
2023:
2020:
2017:
2014:
2011:
2008:
2005:
2002:
1999:
1996:
1993:
1990:
1987:
1984:
1981:
1978:
1975:
1972:
1969:
1966:
1963:
1960:
1957:
1954:
1951:
1948:
1945:
1942:
1939:
1936:
1933:
1930:
1927:
1924:
1921:
1918:
1915:
1912:
1909:
1906:
1903:
1900:
1897:
1894:
1891:
1888:
1885:
1882:
1879:
1876:
1873:
1870:
1867:
1864:
1861:
1858:
1855:
1852:
1849:
1846:
1843:
1840:
1837:
1834:
1831:
1828:
1825:
1822:
1819:
1816:
1813:
1810:
1807:
1804:
1801:
1786:
1783:
1780:
1777:
1774:
1771:
1768:
1765:
1762:
1759:
1756:
1753:
1750:
1747:
1744:
1741:
1738:
1735:
1732:
1729:
1726:
1723:
1720:
1717:
1714:
1711:
1708:
1705:
1702:
1699:
1696:
1693:
1690:
1687:
1684:
1681:
1678:
1675:
1672:
1669:
1666:
1663:
1660:
1657:
1654:
1651:
1648:
1645:
1642:
1639:
1636:
1633:
1630:
1627:
1624:
1621:
1618:
1615:
1612:
1609:
1606:
1603:
1600:
1597:
1594:
1591:
1588:
1585:
1582:
1579:
1576:
1573:
1570:
1567:
1564:
1561:
1558:
1555:
1552:
1549:
1546:
1543:
1540:
1537:
1534:
1531:
1528:
1525:
1522:
1519:
1516:
1513:
1510:
1507:
1504:
1501:
1498:
1495:
1492:
1489:
1486:
1483:
1480:
1477:
1474:
1471:
1468:
1465:
1462:
1459:
1456:
1453:
1450:
1447:
1444:
1441:
1438:
1435:
1432:
1429:
1426:
1423:
1420:
1417:
1414:
1411:
1408:
1405:
1402:
1399:
1396:
1393:
1390:
1387:
1384:
1381:
1378:
1375:
1372:
1369:
1366:
1363:
1360:
1357:
1354:
1351:
1348:
1345:
1342:
1339:
1336:
1333:
1330:
1327:
1324:
1321:
1318:
1315:
1312:
1309:
1306:
1303:
1300:
1297:
1294:
1291:
1288:
1285:
1282:
1279:
1276:
1273:
1270:
1267:
1264:
1261:
1258:
1255:
1252:
1249:
1246:
1243:
1240:
1237:
1234:
1231:
1228:
1225:
1222:
1219:
1216:
1213:
1210:
1207:
1204:
1201:
1198:
1195:
1192:
1189:
1186:
1183:
1180:
1177:
1174:
1171:
1168:
1165:
1162:
1159:
1156:
1153:
1150:
1147:
1144:
1141:
1138:
1135:
1132:
1129:
1126:
1123:
1120:
1117:
1114:
1111:
1108:
1105:
1102:
1099:
1096:
1093:
1090:
1087:
1084:
1081:
1078:
1075:
1072:
1069:
1066:
1063:
1060:
1057:
1054:
1051:
1048:
1045:
1042:
1039:
1036:
1033:
1030:
1027:
1024:
1021:
1018:
1015:
1012:
1009:
1006:
1003:
1000:
997:
994:
991:
988:
985:
982:
979:
976:
973:
970:
967:
964:
961:
958:
955:
952:
949:
946:
943:
940:
937:
934:
931:
928:
925:
922:
919:
916:
913:
910:
907:
904:
901:
898:
895:
892:
889:
886:
883:
880:
877:
874:
871:
868:
865:
862:
859:
856:
853:
850:
847:
844:
841:
838:
835:
832:
829:
826:
823:
820:
817:
814:
811:
808:
805:
802:
799:
796:
793:
790:
787:
784:
781:
778:
775:
772:
769:
766:
763:
760:
757:
754:
751:
748:
745:
742:
739:
736:
733:
730:
727:
724:
721:
718:
715:
712:
709:
706:
703:
700:
697:
694:
691:
688:
685:
682:
679:
676:
673:
670:
667:
664:
661:
658:
655:
652:
649:
646:
643:
640:
637:
634:
631:
628:
625:
622:
619:
616:
613:
610:
607:
584:
580:
552:
545:
541:
538:
532:
529:inline citations
505:
504:
497:
488:
474:
472:
471:
466:
449:
446:
440:
439:
427:
426:
393:
392:
358:
349:
340:
329:
321:
301:
294:
272:
252:
248:
201:Algorithm detail
29:
4648:
4647:
4641:
4640:
4639:
4637:
4636:
4635:
4621:Special effects
4606:
4605:
4604:
4595:
4569:Non-local means
4542:
4523:Low-pass filter
4508:
4502:
4488:Noise generator
4478:Colors of noise
4456:
4363:
4359:
4348:
4344:
4293:
4215:
4209:
4189:Coherent noise
4165:(thermal noise)
4095:
4019:
4005:Noise reduction
3963:
3957:
3927:
3922:
3887:
3866:
3848:
3796:
3793:
3715:
3710:
3709:
3699:
3697:
3688:
3687:
3683:
3673:
3671:
3666:
3665:
3661:
3633:
3632:
3628:
3621:
3614:
3613:
3609:
3599:
3597:
3593:
3586:
3581:
3580:
3573:
3551:
3545:
3543:
3540:"Archived copy"
3538:
3537:
3533:
3526:
3522:
3513:
3511:
3494:
3493:
3489:
3479:
3477:
3474:
3469:
3468:
3464:
3442:
3441:
3437:
3419:
3418:
3414:
3409:
3387:
3370:
3362:
3357:
3348:
3347:
3344:
3341:
3338:
3335:
3332:
3329:
3326:
3323:
3320:
3317:
3314:
3311:
3308:
3305:
3302:
3299:
3296:
3293:
3290:
3287:
3284:
3281:
3278:
3275:
3272:
3269:
3266:
3263:
3260:
3257:
3254:
3251:
3248:
3245:
3242:
3239:
3236:
3233:
3230:
3227:
3224:
3221:
3218:
3215:
3212:
3209:
3206:
3203:
3200:
3197:
3194:
3191:
3188:
3185:
3182:
3179:
3176:
3173:
3170:
3167:
3164:
3161:
3158:
3155:
3152:
3149:
3146:
3143:
3140:
3137:
3134:
3131:
3128:
3125:
3122:
3119:
3116:
3113:
3110:
3107:
3104:
3101:
3098:
3095:
3092:
3089:
3086:
3083:
3080:
3077:
3074:
3071:
3068:
3065:
3062:
3059:
3056:
3053:
3050:
3047:
3044:
3041:
3038:
3035:
3032:
3029:
3026:
3023:
3020:
3017:
3014:
3011:
3008:
3005:
3002:
2999:
2996:
2993:
2990:
2987:
2984:
2981:
2978:
2975:
2972:
2969:
2966:
2963:
2960:
2957:
2954:
2951:
2948:
2945:
2942:
2939:
2936:
2933:
2930:
2927:
2924:
2921:
2918:
2915:
2912:
2909:
2906:
2903:
2900:
2897:
2894:
2891:
2888:
2885:
2882:
2879:
2876:
2873:
2870:
2867:
2864:
2861:
2858:
2855:
2852:
2849:
2846:
2843:
2840:
2837:
2834:
2831:
2828:
2825:
2822:
2819:
2816:
2813:
2810:
2807:
2804:
2801:
2798:
2795:
2792:
2789:
2786:
2783:
2780:
2777:
2774:
2771:
2768:
2765:
2762:
2759:
2756:
2753:
2750:
2747:
2744:
2741:
2738:
2735:
2732:
2729:
2726:
2723:
2720:
2717:
2714:
2711:
2708:
2705:
2702:
2699:
2696:
2693:
2690:
2687:
2684:
2681:
2678:
2675:
2672:
2669:
2666:
2663:
2660:
2657:
2654:
2651:
2648:
2645:
2642:
2639:
2636:
2633:
2630:
2627:
2624:
2621:
2618:
2615:
2612:
2609:
2606:
2603:
2600:
2597:
2594:
2591:
2588:
2585:
2582:
2579:
2576:
2573:
2570:
2567:
2564:
2561:
2558:
2555:
2552:
2549:
2546:
2543:
2540:
2537:
2534:
2531:
2528:
2525:
2522:
2519:
2516:
2513:
2510:
2507:
2504:
2501:
2498:
2495:
2492:
2489:
2486:
2483:
2480:
2477:
2474:
2471:
2468:
2465:
2462:
2459:
2456:
2453:
2450:
2447:
2444:
2441:
2438:
2435:
2432:
2429:
2426:
2423:
2420:
2417:
2414:
2411:
2408:
2405:
2402:
2399:
2396:
2393:
2390:
2387:
2384:
2381:
2378:
2375:
2372:
2369:
2366:
2363:
2360:
2357:
2354:
2351:
2348:
2345:
2342:
2339:
2336:
2333:
2330:
2327:
2324:
2321:
2318:
2315:
2312:
2309:
2306:
2303:
2300:
2297:
2294:
2291:
2288:
2285:
2282:
2279:
2276:
2273:
2270:
2267:
2264:
2261:
2258:
2255:
2252:
2249:
2246:
2243:
2240:
2237:
2234:
2231:
2228:
2225:
2222:
2219:
2216:
2213:
2210:
2207:
2204:
2201:
2198:
2195:
2192:
2189:
2186:
2183:
2180:
2177:
2174:
2171:
2168:
2165:
2162:
2159:
2156:
2153:
2150:
2147:
2144:
2141:
2138:
2135:
2132:
2129:
2126:
2123:
2120:
2117:
2114:
2111:
2108:
2105:
2102:
2099:
2096:
2093:
2090:
2087:
2084:
2081:
2078:
2075:
2072:
2069:
2066:
2063:
2060:
2057:
2054:
2051:
2048:
2045:
2042:
2039:
2036:
2033:
2030:
2027:
2024:
2021:
2018:
2015:
2012:
2009:
2006:
2003:
2000:
1997:
1994:
1991:
1988:
1985:
1982:
1979:
1976:
1973:
1970:
1967:
1964:
1961:
1958:
1955:
1952:
1949:
1946:
1943:
1940:
1937:
1934:
1931:
1928:
1925:
1922:
1919:
1916:
1913:
1910:
1907:
1904:
1901:
1898:
1895:
1892:
1889:
1886:
1883:
1880:
1877:
1874:
1871:
1868:
1865:
1862:
1859:
1856:
1853:
1850:
1847:
1844:
1841:
1838:
1835:
1832:
1829:
1826:
1823:
1820:
1817:
1814:
1811:
1808:
1805:
1802:
1799:
1793:
1788:
1787:
1784:
1781:
1778:
1775:
1772:
1769:
1766:
1763:
1760:
1757:
1754:
1751:
1748:
1745:
1742:
1739:
1736:
1733:
1730:
1727:
1724:
1721:
1718:
1715:
1712:
1709:
1706:
1703:
1700:
1697:
1694:
1691:
1688:
1685:
1683:dotGridGradient
1682:
1679:
1676:
1673:
1670:
1667:
1664:
1661:
1658:
1655:
1652:
1649:
1647:dotGridGradient
1646:
1643:
1640:
1637:
1634:
1631:
1628:
1625:
1622:
1619:
1616:
1613:
1610:
1607:
1604:
1601:
1598:
1595:
1592:
1589:
1586:
1583:
1581:dotGridGradient
1580:
1577:
1574:
1571:
1568:
1565:
1562:
1559:
1556:
1553:
1550:
1547:
1545:dotGridGradient
1544:
1541:
1538:
1535:
1532:
1529:
1526:
1523:
1520:
1517:
1514:
1511:
1508:
1505:
1502:
1499:
1496:
1493:
1490:
1487:
1484:
1481:
1478:
1475:
1472:
1469:
1466:
1463:
1460:
1457:
1454:
1451:
1448:
1445:
1442:
1439:
1436:
1433:
1430:
1427:
1424:
1421:
1418:
1415:
1412:
1409:
1406:
1403:
1400:
1397:
1394:
1391:
1388:
1385:
1382:
1379:
1376:
1373:
1370:
1367:
1364:
1361:
1358:
1355:
1352:
1349:
1346:
1343:
1340:
1337:
1334:
1331:
1328:
1325:
1322:
1319:
1316:
1313:
1310:
1307:
1304:
1301:
1298:
1295:
1292:
1289:
1286:
1283:
1280:
1277:
1274:
1271:
1268:
1265:
1262:
1259:
1256:
1253:
1250:
1247:
1244:
1241:
1238:
1235:
1232:
1229:
1226:
1223:
1220:
1217:
1214:
1211:
1208:
1205:
1202:
1199:
1196:
1193:
1190:
1187:
1184:
1181:
1178:
1175:
1172:
1169:
1166:
1163:
1160:
1157:
1154:
1151:
1148:
1145:
1142:
1139:
1136:
1133:
1130:
1127:
1124:
1121:
1118:
1115:
1113:dotGridGradient
1112:
1109:
1106:
1103:
1100:
1097:
1094:
1091:
1088:
1085:
1082:
1079:
1076:
1073:
1070:
1067:
1064:
1061:
1058:
1055:
1052:
1049:
1046:
1043:
1040:
1037:
1034:
1031:
1028:
1025:
1022:
1019:
1016:
1013:
1010:
1007:
1004:
1001:
998:
995:
992:
989:
986:
983:
980:
977:
974:
971:
968:
965:
962:
959:
956:
953:
950:
947:
944:
941:
938:
935:
932:
929:
926:
923:
920:
917:
914:
911:
908:
905:
902:
899:
896:
893:
890:
887:
884:
881:
878:
875:
872:
869:
866:
863:
860:
857:
854:
851:
848:
845:
842:
839:
836:
833:
830:
827:
824:
821:
818:
815:
812:
809:
806:
803:
800:
797:
794:
791:
788:
785:
782:
779:
776:
773:
770:
767:
764:
761:
758:
755:
752:
749:
746:
743:
740:
737:
734:
731:
728:
725:
722:
719:
716:
713:
710:
707:
704:
701:
698:
695:
692:
689:
686:
683:
680:
677:
674:
671:
668:
665:
662:
659:
656:
653:
650:
647:
644:
641:
638:
635:
632:
629:
626:
623:
620:
617:
614:
611:
608:
605:
582:
579:256 × 256 × 256
578:
553:
542:
536:
533:
518:
506:
502:
495:
486:
431:
418:
384:
364:
363:
357:
351:
348:
342:
335:
327:
319:
308:
299:
289:
270:
259:
250:
246:
235:
233:Grid definition
203:
131:
90:motion picture
66:
24:
17:
12:
11:
5:
4646:
4645:
4642:
4634:
4633:
4628:
4623:
4618:
4608:
4607:
4601:
4600:
4597:
4596:
4594:
4593:
4588:
4582:
4577:
4571:
4566:
4561:
4556:
4550:
4548:
4544:
4543:
4541:
4540:
4535:
4530:
4525:
4519:
4517:
4510:
4504:
4503:
4501:
4500:
4495:
4490:
4485:
4480:
4475:
4470:
4464:
4462:
4461:Related topics
4458:
4457:
4455:
4454:
4444:
4434:
4424:
4419:
4401:
4387:
4377:
4367:
4361:
4357:
4352:
4346:
4342:
4337:
4330:
4316:
4301:
4299:
4295:
4294:
4292:
4291:
4286:
4281:
4276:
4270:
4265:
4260:
4255:
4250:
4245:
4240:
4235:
4230:
4225:
4219:
4217:
4211:
4210:
4208:
4207:
4206:
4205:
4200:
4198:Gradient noise
4195:
4187:
4182:
4177:
4171:
4166:
4160:
4155:
4150:
4145:
4143:Gaussian noise
4140:
4135:
4130:
4125:
4123:Brownian noise
4120:
4115:
4110:
4103:
4101:
4100:Class of noise
4097:
4096:
4094:
4093:
4088:
4086:Transportation
4083:
4078:
4073:
4068:
4063:
4058:
4053:
4048:
4043:
4038:
4033:
4027:
4025:
4021:
4020:
4018:
4017:
4012:
4007:
4002:
3997:
3992:
3987:
3982:
3977:
3971:
3969:
3965:
3964:
3958:
3956:
3955:
3948:
3941:
3933:
3924:
3923:
3921:
3920:
3915:
3910:
3905:
3899:
3897:
3893:
3892:
3889:
3888:
3886:
3885:
3878:
3876:
3872:
3871:
3868:
3867:
3865:
3864:
3858:
3856:
3850:
3849:
3847:
3846:
3841:
3836:
3831:
3826:
3820:
3818:
3816:Gradient noise
3809:
3802:
3798:
3797:
3794:
3792:
3791:
3784:
3777:
3769:
3763:
3762:
3757:
3752:
3747:
3742:
3737:
3731:
3726:
3721:
3714:
3713:External links
3711:
3708:
3707:
3681:
3669:"Perlin noise"
3659:
3626:
3607:
3571:
3531:
3520:
3495:Tanner, Mike.
3487:
3462:
3435:
3422:"Making Noise"
3411:
3410:
3408:
3405:
3404:
3403:
3398:
3393:
3386:
3383:
3356:
3353:
1798:
1792:
1789:
1170:randomGradient
768:randomGradient
609:<math.h>
604:
602:
601:
586:
575:
571:
555:
554:
509:
507:
500:
494:
493:Implementation
491:
476:
475:
464:
461:
458:
455:
452:
443:
438:
434:
430:
425:
421:
417:
414:
411:
408:
405:
402:
399:
396:
391:
387:
383:
380:
377:
374:
371:
355:
346:
307:
304:
258:
255:
234:
231:
202:
199:
147:gradient noise
130:
127:
65:
62:
54:image textures
38:gradient noise
15:
13:
10:
9:
6:
4:
3:
2:
4644:
4643:
4632:
4629:
4627:
4624:
4622:
4619:
4617:
4614:
4613:
4611:
4592:
4589:
4586:
4583:
4581:
4578:
4575:
4572:
4570:
4567:
4565:
4562:
4560:
4557:
4555:
4554:Gaussian blur
4552:
4551:
4549:
4545:
4539:
4536:
4534:
4531:
4529:
4528:Median filter
4526:
4524:
4521:
4520:
4518:
4514:
4511:
4505:
4499:
4496:
4494:
4491:
4489:
4486:
4484:
4481:
4479:
4476:
4474:
4471:
4469:
4466:
4465:
4463:
4459:
4452:
4448:
4445:
4442:
4438:
4435:
4432:
4428:
4425:
4423:
4420:
4417:
4413:
4409:
4405:
4402:
4399:
4395:
4391:
4388:
4385:
4381:
4378:
4375:
4371:
4368:
4365:
4364:
4353:
4350:
4349:
4338:
4336:
4335:
4331:
4328:
4324:
4320:
4317:
4314:
4310:
4306:
4303:
4302:
4300:
4296:
4290:
4287:
4285:
4282:
4280:
4277:
4274:
4271:
4269:
4266:
4264:
4263:Noise shaping
4261:
4259:
4256:
4254:
4251:
4249:
4246:
4244:
4241:
4239:
4236:
4234:
4231:
4229:
4226:
4224:
4221:
4220:
4218:
4212:
4204:
4201:
4199:
4196:
4194:
4191:
4190:
4188:
4186:
4183:
4181:
4178:
4176:(or q. noise)
4175:
4172:
4170:
4167:
4164:
4161:
4159:
4156:
4154:
4151:
4149:
4146:
4144:
4141:
4139:
4138:Flicker noise
4136:
4134:
4131:
4129:
4126:
4124:
4121:
4119:
4116:
4114:
4111:
4108:
4105:
4104:
4102:
4098:
4092:
4089:
4087:
4084:
4082:
4081:Sound masking
4079:
4077:
4074:
4072:
4069:
4067:
4064:
4062:
4059:
4057:
4054:
4052:
4049:
4047:
4044:
4042:
4039:
4037:
4034:
4032:
4029:
4028:
4026:
4022:
4016:
4013:
4011:
4008:
4006:
4003:
4001:
3998:
3996:
3993:
3991:
3990:Noise control
3988:
3986:
3983:
3981:
3978:
3976:
3973:
3972:
3970:
3966:
3961:
3954:
3949:
3947:
3942:
3940:
3935:
3934:
3931:
3919:
3916:
3914:
3911:
3909:
3906:
3904:
3901:
3900:
3898:
3894:
3883:
3880:
3879:
3877:
3873:
3863:
3860:
3859:
3857:
3855:
3851:
3845:
3844:Wavelet noise
3842:
3840:
3837:
3835:
3834:Simplex noise
3832:
3830:
3827:
3825:
3822:
3821:
3819:
3817:
3813:
3810:
3808:Lattice based
3806:
3803:
3799:
3790:
3785:
3783:
3778:
3776:
3771:
3770:
3767:
3761:
3758:
3756:
3753:
3751:
3748:
3746:
3743:
3741:
3738:
3735:
3732:
3730:
3727:
3725:
3722:
3720:
3717:
3716:
3712:
3695:
3691:
3685:
3682:
3670:
3667:Perlin, Ken.
3663:
3660:
3654:
3649:
3645:
3641:
3637:
3630:
3627:
3617:
3611:
3608:
3592:
3585:
3578:
3576:
3572:
3566:
3562:
3556:
3541:
3535:
3532:
3529:
3524:
3521:
3510:
3506:
3502:
3498:
3491:
3488:
3473:
3470:Perlin, Ken.
3466:
3463:
3458:
3454:
3450:
3446:
3439:
3436:
3431:
3427:
3423:
3420:Perlin, Ken.
3416:
3413:
3406:
3402:
3401:Simplex noise
3399:
3397:
3394:
3392:
3389:
3388:
3384:
3382:
3380:
3376:
3375:simplex noise
3368:
3365:
3354:
3352:
1796:
1790:
599:
595:
591:
587:
576:
572:
569:
568:
567:
564:
562:
551:
548:
540:
530:
526:
522:
516:
515:
510:This article
508:
499:
498:
492:
490:
483:
481:
462:
459:
456:
453:
450:
436:
432:
428:
423:
419:
412:
406:
400:
397:
394:
389:
385:
381:
375:
369:
362:
361:
360:
354:
345:
338:
332:
325:
312:
306:Interpolation
305:
303:
297:
292:
285:
281:
279:
274:
263:
256:
254:
239:
232:
230:
228:
224:
215:
207:
200:
198:
195:
190:
188:
184:
180:
179:simplex noise
176:
175:fractal noise
172:
163:
159:
156:
155:pseudo-random
152:
148:
144:
135:
128:
126:
124:
120:
119:simplex noise
114:
111:
105:
103:
99:
95:
94:
89:
86:
82:
78:
74:
70:
63:
61:
59:
55:
51:
50:pseudo-random
47:
43:
40:developed by
39:
36:is a type of
35:
27:
21:
4450:
4440:
4430:
4415:
4411:
4407:
4397:
4393:
4383:
4373:
4354:
4339:
4332:
4326:
4322:
4312:
4308:
4253:Noise figure
4214:Engineering
4203:Worley noise
4133:Cosmic noise
4056:Human health
3896:Applications
3882:Worley noise
3829:Perlin noise
3828:
3698:. Retrieved
3694:the original
3684:
3672:. Retrieved
3662:
3643:
3639:
3629:
3610:
3598:. Retrieved
3591:the original
3544:. Retrieved
3534:
3523:
3512:. Retrieved
3500:
3490:
3478:. Retrieved
3465:
3448:
3444:
3438:
3430:the original
3425:
3415:
3363:
3358:
3349:
1794:
590:smootherstep
574:distributed.
565:
558:
543:
534:
511:
484:
477:
352:
343:
336:
333:
317:
302:dimensions.
290:
286:
282:
275:
268:
244:
220:
191:
168:
140:
116:
107:
91:
67:
34:Perlin noise
33:
32:
25:
4279:Phase noise
4258:Noise floor
4193:Value noise
4185:White noise
4128:Burst noise
4046:Environment
4041:Electronics
4024:Noise in...
4000:Noise power
3913:Video games
3875:Point based
3862:Value noise
3854:Value noise
3640:Web Ecology
3391:Value noise
1803:permutation
1791:Permutation
1749:interpolate
1719:interpolate
1617:interpolate
624:interpolate
594:white noise
537:August 2022
278:dot product
257:Dot product
227:dot product
48:, applying
4610:Categories
4547:2D (Image)
4180:Shot noise
4169:Pink noise
4153:Infrasound
4148:Grey noise
3980:Distortion
3646:(1): 1–6.
3546:2011-05-29
3514:2022-05-31
3407:References
3355:Complexity
1008:3.14159265
984:2048419325
936:1911520717
888:3284157443
598:pink noise
521:improve it
480:smoothstep
478:where the
398:smoothstep
324:derivative
296:complexity
245:Define an
69:Ken Perlin
58:dimensions
42:Ken Perlin
4473:Acoustics
4036:Buildings
3700:26 August
3674:26 August
3509:1059-1028
583:4 × 4 × 4
525:verifying
460:≤
454:≤
447:for
429:−
413:⋅
401:
185:both for
113:industry.
4626:Fractals
4507:Denoise
3801:Approach
3736:(GitHub)
3600:24 April
3555:cite web
3385:See also
1284:gradient
1266:gradient
1164:gradient
1026:>>
963:>>
951:<<
915:>>
903:<<
855:unsigned
831:unsigned
822:unsigned
801:unsigned
606:#include
223:function
110:textures
77:SIGGRAPH
4516:General
4509:methods
4414:,
3968:General
3480:May 31,
1161:vector2
1038:vector2
765:vector2
753:vector2
726:typedef
519:Please
64:History
4576:(BM3D)
4298:Ratios
4158:Jitter
4109:(AWGN)
4061:Images
3622:
3507:
1773:return
1305:perlin
1254:return
1095:return
1089:random
1065:random
1035:// in
993:random
816:sizeof
729:struct
672:return
88:sci-fi
81:Disney
4587:(DAE)
4384:SINAD
4334:dBrnC
4275:(NVH)
4216:terms
4091:Video
4076:Ships
4071:Rooms
4066:Radio
4031:Audio
3960:Noise
3594:(PDF)
3587:(PDF)
3501:Wired
3475:(PDF)
1776:value
1743:value
1533:value
1506:float
1491:float
1473:float
1461:float
1443:float
1404:floor
1353:floor
1320:float
1311:float
1302:float
1239:float
1221:float
1209:float
1191:float
1146:float
1137:float
1110:float
990:float
828:const
798:const
735:float
648:float
639:float
630:float
621:float
596:into
171:demos
4441:SQNR
4431:SINR
3702:2020
3676:2020
3602:2019
3565:link
3561:link
3505:ISSN
3482:2022
3377:and
3369:for
177:and
129:Uses
121:for
93:Tron
4451:CNR
4416:SNR
4374:MER
3648:doi
3453:doi
3366:(2)
3342:180
3336:156
3324:215
3306:195
3300:128
3294:141
3288:243
3258:114
3252:222
3240:205
3234:236
3228:138
3222:254
3216:150
3204:127
3186:121
3180:115
3174:176
3168:204
3156:184
3150:157
3144:106
3138:199
3132:181
3120:214
3114:192
3102:107
3096:239
3084:249
3078:235
3072:145
3054:241
3048:162
3042:179
3036:191
3024:144
3018:210
3012:238
3006:193
3000:242
2988:251
2982:228
2970:246
2964:218
2958:104
2952:112
2946:185
2940:178
2934:232
2928:224
2922:113
2910:110
2904:108
2886:253
2868:129
2856:172
2844:167
2838:155
2832:101
2826:153
2820:221
2808:163
2802:154
2784:152
2778:248
2772:119
2766:213
2760:170
2754:183
2748:223
2730:189
2724:182
2694:227
2682:206
2676:207
2670:212
2652:255
2646:126
2640:118
2634:147
2622:202
2610:123
2604:124
2598:250
2592:226
2586:217
2562:186
2556:173
2550:198
2544:109
2538:100
2532:164
2520:159
2514:188
2508:116
2502:130
2496:135
2490:196
2484:200
2478:169
2460:208
2454:187
2448:132
2436:209
2418:216
2406:161
2376:143
2370:102
2364:244
2352:245
2322:105
2316:220
2310:230
2304:133
2298:211
2286:122
2280:229
2274:111
2262:231
2256:158
2250:146
2238:166
2220:139
2214:134
2202:165
2190:175
2178:168
2172:171
2166:136
2160:125
2148:174
2130:149
2124:237
2106:177
2076:117
2070:203
2064:219
2058:252
2040:197
2016:234
2010:120
2004:247
1998:148
1986:190
1962:240
1938:142
1920:103
1908:140
1902:225
1890:233
1884:194
1860:201
1848:131
1824:137
1818:160
1812:151
1800:int
1761:ix1
1755:ix0
1713:ix1
1611:ix0
1527:ix1
1521:ix0
1416:int
1398:int
1386:int
1365:int
1347:int
1335:int
1128:int
1119:int
1083:sin
1059:cos
1032:));
783:int
774:int
523:by
339:= 1
334:If
298:in
293:(2)
83:'s
28:= 0
4612::
4360:/N
4345:/N
4327:kT
3644:22
3642:.
3638:.
3574:^
3557:}}
3553:{{
3503:.
3499:.
3449:19
3447:.
3424:.
3381:.
3345:};
3330:61
3318:66
3312:78
3282:72
3276:24
3270:29
3264:67
3246:93
3198:45
3192:50
3162:84
3126:31
3108:49
3090:14
3066:51
3060:81
3030:12
2994:34
2976:97
2916:79
2898:98
2892:19
2880:39
2874:22
2850:43
2814:70
2796:44
2742:42
2736:28
2718:17
2712:58
2706:16
2700:47
2688:59
2664:85
2658:82
2628:38
2580:52
2574:64
2526:86
2472:18
2466:89
2442:76
2430:73
2424:80
2400:63
2394:25
2388:65
2382:54
2358:40
2346:46
2340:55
2334:41
2328:92
2292:60
2268:83
2244:77
2232:27
2226:48
2208:71
2196:74
2184:68
2154:20
2142:87
2136:56
2118:88
2112:33
2100:57
2094:32
2088:11
2082:35
2052:94
2046:62
2034:26
2022:75
1980:23
1974:10
1968:21
1956:37
1950:99
1932:69
1926:30
1914:36
1878:53
1872:96
1866:95
1854:13
1842:15
1836:90
1830:91
1770:);
1767:sy
1740:);
1737:sx
1731:n1
1725:n0
1710:);
1695:y1
1689:x1
1677:n1
1674:);
1659:y1
1653:x0
1641:n0
1638:);
1635:sx
1629:n1
1623:n0
1608:);
1593:y0
1587:x1
1575:n1
1572:);
1557:y0
1551:x0
1539:n0
1515:n1
1509:n0
1497:y0
1476:sy
1467:x0
1446:sx
1425:y0
1419:y1
1413:);
1389:y0
1374:x0
1368:x1
1362:);
1338:x0
1293:);
1278:dy
1260:dx
1245:iy
1224:dy
1215:ix
1194:dx
1185:);
1182:iy
1176:ix
1131:iy
1122:ix
1092:);
1068:);
1023:0u
981:*=
945:^=
933:*=
897:^=
885:*=
876:iy
864:ix
825:);
786:iy
777:ix
762:*/
720:*/
699:a0
684:a0
678:a1
669:*/
642:a1
633:a0
618:*/
563:.
4453:)
4449:(
4443:)
4439:(
4433:)
4429:(
4418:)
4412:N
4410:/
4408:S
4406:(
4400:)
4398:I
4396:/
4394:S
4392:(
4386:)
4382:(
4376:)
4372:(
4362:0
4358:s
4356:E
4347:0
4343:b
4341:E
4329:)
4325:/
4323:C
4321:(
4315:)
4313:N
4311:/
4309:C
4307:(
3952:e
3945:t
3938:v
3788:e
3781:t
3774:v
3704:.
3678:.
3656:.
3650::
3604:.
3567:)
3549:.
3517:.
3484:.
3459:.
3455::
3371:n
3364:O
3339:,
3333:,
3327:,
3321:,
3315:,
3309:,
3303:,
3297:,
3291:,
3285:,
3279:,
3273:,
3267:,
3261:,
3255:,
3249:,
3243:,
3237:,
3231:,
3225:,
3219:,
3213:,
3210:4
3207:,
3201:,
3195:,
3189:,
3183:,
3177:,
3171:,
3165:,
3159:,
3153:,
3147:,
3141:,
3135:,
3129:,
3123:,
3117:,
3111:,
3105:,
3099:,
3093:,
3087:,
3081:,
3075:,
3069:,
3063:,
3057:,
3051:,
3045:,
3039:,
3033:,
3027:,
3021:,
3015:,
3009:,
3003:,
2997:,
2991:,
2985:,
2979:,
2973:,
2967:,
2961:,
2955:,
2949:,
2943:,
2937:,
2931:,
2925:,
2919:,
2913:,
2907:,
2901:,
2895:,
2889:,
2883:,
2877:,
2871:,
2865:,
2862:9
2859:,
2853:,
2847:,
2841:,
2835:,
2829:,
2823:,
2817:,
2811:,
2805:,
2799:,
2793:,
2790:2
2787:,
2781:,
2775:,
2769:,
2763:,
2757:,
2751:,
2745:,
2739:,
2733:,
2727:,
2721:,
2715:,
2709:,
2703:,
2697:,
2691:,
2685:,
2679:,
2673:,
2667:,
2661:,
2655:,
2649:,
2643:,
2637:,
2631:,
2625:,
2619:,
2616:5
2613:,
2607:,
2601:,
2595:,
2589:,
2583:,
2577:,
2571:,
2568:3
2565:,
2559:,
2553:,
2547:,
2541:,
2535:,
2529:,
2523:,
2517:,
2511:,
2505:,
2499:,
2493:,
2487:,
2481:,
2475:,
2469:,
2463:,
2457:,
2451:,
2445:,
2439:,
2433:,
2427:,
2421:,
2415:,
2412:1
2409:,
2403:,
2397:,
2391:,
2385:,
2379:,
2373:,
2367:,
2361:,
2355:,
2349:,
2343:,
2337:,
2331:,
2325:,
2319:,
2313:,
2307:,
2301:,
2295:,
2289:,
2283:,
2277:,
2271:,
2265:,
2259:,
2253:,
2247:,
2241:,
2235:,
2229:,
2223:,
2217:,
2211:,
2205:,
2199:,
2193:,
2187:,
2181:,
2175:,
2169:,
2163:,
2157:,
2151:,
2145:,
2139:,
2133:,
2127:,
2121:,
2115:,
2109:,
2103:,
2097:,
2091:,
2085:,
2079:,
2073:,
2067:,
2061:,
2055:,
2049:,
2043:,
2037:,
2031:,
2028:0
2025:,
2019:,
2013:,
2007:,
2001:,
1995:,
1992:6
1989:,
1983:,
1977:,
1971:,
1965:,
1959:,
1953:,
1947:,
1944:8
1941:,
1935:,
1929:,
1923:,
1917:,
1911:,
1905:,
1899:,
1896:7
1893:,
1887:,
1881:,
1875:,
1869:,
1863:,
1857:,
1851:,
1845:,
1839:,
1833:,
1827:,
1821:,
1815:,
1809:{
1806:=
1785:}
1779:;
1764:,
1758:,
1752:(
1746:=
1734:,
1728:,
1722:(
1716:=
1707:y
1704:,
1701:x
1698:,
1692:,
1686:(
1680:=
1671:y
1668:,
1665:x
1662:,
1656:,
1650:(
1644:=
1632:,
1626:,
1620:(
1614:=
1605:y
1602:,
1599:x
1596:,
1590:,
1584:(
1578:=
1569:y
1566:,
1563:x
1560:,
1554:,
1548:(
1542:=
1536:;
1530:,
1524:,
1518:,
1512:,
1500:;
1494:)
1488:(
1485:-
1482:y
1479:=
1470:;
1464:)
1458:(
1455:-
1452:x
1449:=
1434:;
1431:1
1428:+
1422:=
1410:y
1407:(
1401:)
1395:(
1392:=
1383:;
1380:1
1377:+
1371:=
1359:x
1356:(
1350:)
1344:(
1341:=
1329:{
1326:)
1323:y
1317:,
1314:x
1308:(
1296:}
1290:y
1287:.
1281:*
1275:+
1272:x
1269:.
1263:*
1257:(
1248:;
1242:)
1236:(
1233:-
1230:y
1227:=
1218:;
1212:)
1206:(
1203:-
1200:x
1197:=
1179:,
1173:(
1167:=
1155:{
1152:)
1149:y
1143:,
1140:x
1134:,
1125:,
1116:(
1104:}
1101:;
1098:v
1086:(
1080:=
1077:y
1074:.
1071:v
1062:(
1056:=
1053:x
1050:.
1047:v
1044:;
1041:v
1029:1
1020:~
1017:(
1014:~
1011:/
1005:(
1002:*
999:a
996:=
987:;
978:a
975:;
972:s
969:-
966:w
960:b
957:|
954:s
948:b
942:a
939:;
930:b
927:;
924:s
921:-
918:w
912:a
909:|
906:s
900:a
894:b
891:;
882:a
879:;
873:=
870:b
867:,
861:=
858:a
849:;
846:2
843:/
840:w
837:=
834:s
819:(
813:*
810:8
807:=
804:w
792:{
789:)
780:,
771:(
756:;
750:}
747:;
744:y
741:,
738:x
732:{
723:}
711:*
702:;
696:+
693:w
690:*
687:)
681:-
675:(
657:{
654:)
651:w
645:,
636:,
627:(
561:C
550:)
544:(
539:)
535:(
517:.
463:1
457:x
451:0
442:)
437:0
433:a
424:1
420:a
416:(
410:)
407:x
404:(
395:+
390:0
386:a
382:=
379:)
376:x
373:(
370:f
356:1
353:a
347:0
344:a
337:n
328:2
320:2
300:n
291:O
271:2
251:n
247:n
26:z
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.