Patterns
Name | 1D (line view, Y=value) | 2D (surface view, Z=value) | 3D (surface view, Z=time) |
---|---|---|---|
Constant | [ | ||
![]() | |||
](assets/algorithms/constant_1d_full.png) | N/A | N/A | |
Checkered | N/A | [ | |
![]() | |||
](assets/algorithms/checkered_2d_full.png) | N/A | ||
Cylinders | N/A | [ | |
![]() | |||
](assets/algorithms/cylinders_2d_full.png) | N/A | ||
Spheres | N/A | N/A | [ |
![]() | |||
](https://www.youtube.com/watch?v=SMp71xTHnDM) |
Noise
In the order of "recommended to try first":
Name | 1D (line view, Y=value) | 2D (surface view, Z=value) | 3D (surface view, Z=time) | 4D (not renderered) |
---|---|---|---|---|
OpenSimplex2 noise | N/A | [ | ||
![]() | ||||
](assets/algorithms/opensimplex2_2d_full.png) | [ | |||
![]() | ||||
](https://www.youtube.com/watch?v=dvs9FztpG4I) | ||||
OpenSimplex2 noise (smooth falloff) | N/A | N/A | [ | |
![]() | ||||
](https://www.youtube.com/watch?v=om2yQGZqbGU) | ||||
Simplex noise | [ | |||
![]() | ||||
](assets/algorithms/simplex_1d_full.png) | [ | |||
![]() | ||||
](assets/algorithms/simplex_2d_full.png) | [ | |||
![]() | ||||
](https://www.youtube.com/watch?v=-kcvv0QZKxM) | ||||
Simplex noise (smooth falloff) | N/A | N/A | [ | |
![]() | ||||
](https://www.youtube.com/watch?v=2fTezwHGY_g) | ||||
OpenSimplex2S noise | N/A | [ | ||
![]() | ||||
](assets/algorithms/opensimplex2s_2d_full.png) | [ | |||
![]() | ||||
](https://www.youtube.com/watch?v=7Ld2-UIoYCs) | ||||
OpenSimplex2S noise (smooth falloff) | N/A | N/A | [ | |
![]() | ||||
](https://www.youtube.com/watch?v=fs0zFzc55l4) | ||||
OpenSimplex noise | N/A | [ | ||
![]() | ||||
](assets/algorithms/opensimplex_2d_full.png) | [ | |||
![]() | ||||
](https://www.youtube.com/watch?v=uc7m8gDwsWQ) | ||||
OpenSimplex noise (smooth falloff) | N/A | N/A | [ | |
![]() | ||||
](https://www.youtube.com/watch?v=hrBqbxaegmU) | ||||
Perlin "Improved" noise | [ | |||
![]() | ||||
](assets/algorithms/perlin_1d_full.png) | [ | |||
![]() | ||||
](assets/algorithms/perlin_2d_full.png) | [ | |||
![]() | ||||
](https://www.youtube.com/watch?v=kn13KxWq9Y8) | ||||
Value cubic noise | [ | |||
![]() | ||||
](assets/algorithms/value_cubic_1d_full.png) | [ | |||
![]() | ||||
](assets/algorithms/value_cubic_2d_full.png) | [ | |||
![]() | ||||
](https://www.youtube.com/watch?v=ki38XRuHRDs) | ||||
Value noise | [ | |||
![]() | ||||
](assets/algorithms/value_1d_full.png) | [ | |||
![]() | ||||
](assets/algorithms/value_2d_full.png) | [ | |||
![]() | ||||
](https://www.youtube.com/watch?v=MJTHfLQqar0) | ||||
Worley noise (Manhattan distance, F1) | [ | |||
![]() | ||||
](assets/algorithms/worley_1d_f1_full.png) | [ | |||
![]() | ||||
](assets/algorithms/worley_2d_manhattan_f1_full.png) | [ | |||
![]() | ||||
](https://www.youtube.com/watch?v=cFqzVXms8m4) | ||||
Worley noise (Manhattan distance, F2) | [ | |||
![]() | ||||
](assets/algorithms/worley_1d_f2_full.png) | [ | |||
![]() | ||||
](assets/algorithms/worley_2d_manhattan_f2_full.png) | [ | |||
![]() | ||||
](https://www.youtube.com/watch?v=KRTVNzS81Vk) | ||||
Worley noise (Manhattan distance, F1 + F2) | [ | |||
![]() | ||||
](assets/algorithms/worley_1d_add_full.png) | [ | |||
![]() | ||||
](assets/algorithms/worley_2d_manhattan_add_full.png) | [ | |||
![]() | ||||
](https://www.youtube.com/watch?v=0hfeXmizaSY) | ||||
Worley noise (Manhattan distance, F2 - F1) | [ | |||
![]() | ||||
](assets/algorithms/worley_1d_sub_full.png) | [ | |||
![]() | ||||
](assets/algorithms/worley_2d_manhattan_sub_full.png) | [ | |||
![]() | ||||
](https://www.youtube.com/watch?v=6SBMZ8urrHU) | ||||
Worley noise (Manhattan distance, F1 * F2) | [ | |||
![]() | ||||
](assets/algorithms/worley_1d_mul_full.png) | [ | |||
![]() | ||||
](assets/algorithms/worley_2d_manhattan_mul_full.png) | [ | |||
![]() | ||||
](https://www.youtube.com/watch?v=e_ansrAbe6Y) | ||||
Worley noise (Manhattan distance, F1 / F2) | [ | |||
![]() | ||||
](assets/algorithms/worley_1d_div_full.png) | [ | |||
![]() | ||||
](assets/algorithms/worley_2d_manhattan_div_full.png) | [ | |||
![]() | ||||
](https://www.youtube.com/watch?v=HCGyPX1I-SQ) | ||||
Worley noise (Manhattan distance, cell value) | [ | |||
![]() | ||||
](assets/algorithms/worley_1d_value_full.png) | [ | |||
![]() | ||||
](assets/algorithms/worley_2d_manhattan_value_full.png) | [ | |||
![]() | ||||
](https://www.youtube.com/watch?v=5Yk9wamkP_w) | ||||
Worley noise (Euclidean distance, F1) | [ | |||
![]() | ||||
](assets/algorithms/worley_1d_f1_full.png) | [ | |||
![]() | ||||
](assets/algorithms/worley_2d_euclidean_f1_full.png) | [ | |||
![]() | ||||
](https://www.youtube.com/watch?v=5G0SvGcmt8s) | ||||
Worley noise (Euclidean distance, F2) | [ | |||
![]() | ||||
](assets/algorithms/worley_1d_f2_full.png) | [ | |||
![]() | ||||
](assets/algorithms/worley_2d_euclidean_f2_full.png) | [ | |||
![]() | ||||
](https://www.youtube.com/watch?v=F15V3dlX0Gc) | ||||
Worley noise (Euclidean distance, F1 + F2) | [ | |||
![]() | ||||
](assets/algorithms/worley_1d_add_full.png) | [ | |||
![]() | ||||
](assets/algorithms/worley_2d_euclidean_add_full.png) | [ | |||
![]() | ||||
](https://www.youtube.com/watch?v=4-BEzQCP7Vw) | ||||
Worley noise (Euclidean distance, F2 - F1) | [ | |||
![]() | ||||
](assets/algorithms/worley_1d_sub_full.png) | [ | |||
![]() | ||||
](assets/algorithms/worley_2d_euclidean_sub_full.png) | [ | |||
![]() | ||||
](https://www.youtube.com/watch?v=L3J3SyhejDQ) | ||||
Worley noise (Euclidean distance, F1 * F2) | [ | |||
![]() | ||||
](assets/algorithms/worley_1d_mul_full.png) | [ | |||
![]() | ||||
](assets/algorithms/worley_2d_euclidean_mul_full.png) | [ | |||
![]() | ||||
](https://www.youtube.com/watch?v=J4DbR7OPtfU) | ||||
Worley noise (Euclidean distance, F1 / F2) | [ | |||
![]() | ||||
](assets/algorithms/worley_1d_div_full.png) | [ | |||
![]() | ||||
](assets/algorithms/worley_2d_euclidean_div_full.png) | [ | |||
![]() | ||||
](https://www.youtube.com/watch?v=VvrrFqFMyfU) | ||||
Worley noise (Euclidean distance, cell value) | [ | |||
![]() | ||||
](assets/algorithms/worley_1d_value_full.png) | [ | |||
![]() | ||||
](assets/algorithms/worley_2d_euclidean_value_full.png) | [ | |||
![]() | ||||
](https://www.youtube.com/watch?v=QP9KIt1aXwo) | ||||
Worley noise (Euclidean² distance, F1) | [ | |||
![]() | ||||
](assets/algorithms/worley_1d_f1_full.png) | [ | |||
![]() | ||||
](assets/algorithms/worley_2d_euclidean_squared_f1_full.png) | [ | |||
![]() | ||||
](https://www.youtube.com/watch?v=qTZ9Sl7X4Io) | ||||
Worley noise (Euclidean² distance, F2) | [ | |||
![]() | ||||
](assets/algorithms/worley_1d_f2_full.png) | [ | |||
![]() | ||||
](assets/algorithms/worley_2d_euclidean_squared_f2_full.png) | [ | |||
![]() | ||||
](https://www.youtube.com/watch?v=-PSHRWJ-KdU) | ||||
Worley noise (Euclidean² distance, F1 + F2) | [ | |||
![]() | ||||
](assets/algorithms/worley_1d_add_full.png) | [ | |||
![]() | ||||
](assets/algorithms/worley_2d_euclidean_squared_add_full.png) | [ | |||
![]() | ||||
](https://www.youtube.com/watch?v=pyJ55cE1MAI) | ||||
Worley noise (Euclidean² distance, F2 - F1) | [ | |||
![]() | ||||
](assets/algorithms/worley_1d_sub_full.png) | [ | |||
![]() | ||||
](assets/algorithms/worley_2d_euclidean_squared_sub_full.png) | [ | |||
![]() | ||||
](https://www.youtube.com/watch?v=klqUEW-oKpg) | ||||
Worley noise (Euclidean² distance, F1 * F2) | [ | |||
![]() | ||||
](assets/algorithms/worley_1d_mul_full.png) | [ | |||
![]() | ||||
](assets/algorithms/worley_2d_euclidean_squared_mul_full.png) | [ | |||
![]() | ||||
](https://www.youtube.com/watch?v=mJXRGTAElV8) | ||||
Worley noise (Euclidean² distance, F1 / F2) | [ | |||
![]() | ||||
](assets/algorithms/worley_1d_div_full.png) | [ | |||
![]() | ||||
](assets/algorithms/worley_2d_euclidean_squared_div_full.png) | [ | |||
![]() | ||||
](https://www.youtube.com/watch?v=PXF9w2yvKCg) | ||||
Worley noise (Euclidean² distance, cell value) | [ | |||
![]() | ||||
](assets/algorithms/worley_1d_value_full.png) | [ | |||
![]() | ||||
](assets/algorithms/worley_2d_euclidean_squared_value_full.png) | [ | |||
![]() | ||||
](https://www.youtube.com/watch?v=NwqNQVWGM8s) | ||||
Worley noise (Chebyshev distance, F1) | [ | |||
![]() | ||||
](assets/algorithms/worley_1d_f1_full.png) | [ | |||
![]() | ||||
](assets/algorithms/worley_2d_chebyshev_f1_full.png) | [ | |||
![]() | ||||
](https://www.youtube.com/watch?v=7BZ_Fa0Jb4I) | ||||
Worley noise (Chebyshev distance, F2) | [ | |||
![]() | ||||
](assets/algorithms/worley_1d_f2_full.png) | [ | |||
![]() | ||||
](assets/algorithms/worley_2d_chebyshev_f2_full.png) | [ | |||
![]() | ||||
](https://www.youtube.com/watch?v=UYpVaczrO2Y) | ||||
Worley noise (Chebyshev distance, F1 + F2) | [ | |||
![]() | ||||
](assets/algorithms/worley_1d_add_full.png) | [ | |||
![]() | ||||
](assets/algorithms/worley_2d_chebyshev_add_full.png) | [ | |||
![]() | ||||
](https://www.youtube.com/watch?v=Nl5BEYyzfnE) | ||||
Worley noise (Chebyshev distance, F2 - F1) | [ | |||
![]() | ||||
](assets/algorithms/worley_1d_sub_full.png) | [ | |||
![]() | ||||
](assets/algorithms/worley_2d_chebyshev_sub_full.png) | [ | |||
![]() | ||||
](https://www.youtube.com/watch?v=wxHiuX_lwIc) | ||||
Worley noise (Chebyshev distance, F1 * F2) | [ | |||
![]() | ||||
](assets/algorithms/worley_1d_mul_full.png) | [ | |||
![]() | ||||
](assets/algorithms/worley_2d_chebyshev_mul_full.png) | [ | |||
![]() | ||||
](https://www.youtube.com/watch?v=_ANM-MOTJgo) | ||||
Worley noise (Chebyshev distance, F1 / F2) | [ | |||
![]() | ||||
](assets/algorithms/worley_1d_div_full.png) | [ | |||
![]() | ||||
](assets/algorithms/worley_2d_chebyshev_div_full.png) | [ | |||
![]() | ||||
](https://www.youtube.com/watch?v=P0tQRueoADM) | ||||
Worley noise (Chebyshev distance, cell value) | [ | |||
![]() | ||||
](assets/algorithms/worley_1d_value_full.png) | [ | |||
![]() | ||||
](assets/algorithms/worley_2d_chebyshev_value_full.png) | [ | |||
![]() | ||||
](https://www.youtube.com/watch?v=4RURXWmMJAA) | ||||
Worley noise (Minkowski4 distance, F1) | [ | |||
![]() | ||||
](assets/algorithms/worley_1d_f1_full.png) | [ | |||
![]() | ||||
](assets/algorithms/worley_2d_minkowski4_f1_full.png) | [ | |||
![]() | ||||
](https://www.youtube.com/watch?v=DkcXpES3Mvc) | ||||
Worley noise (Minkowski4 distance, F2) | [ | |||
![]() | ||||
](assets/algorithms/worley_1d_f2_full.png) | [ | |||
![]() | ||||
](assets/algorithms/worley_2d_minkowski4_f2_full.png) | [ | |||
![]() | ||||
](https://www.youtube.com/watch?v=sxMgWI4-5hM) | ||||
Worley noise (Minkowski4 distance, F1 + F2) | [ | |||
![]() | ||||
](assets/algorithms/worley_1d_add_full.png) | [ | |||
![]() | ||||
](assets/algorithms/worley_2d_minkowski4_add_full.png) | [ | |||
![]() | ||||
](https://www.youtube.com/watch?v=GhaeNfnqsk4) | ||||
Worley noise (Minkowski4 distance, F2 - F1) | [ | |||
![]() | ||||
](assets/algorithms/worley_1d_sub_full.png) | [ | |||
![]() | ||||
](assets/algorithms/worley_2d_minkowski4_sub_full.png) | [ | |||
![]() | ||||
](https://www.youtube.com/watch?v=8ESRjwnqnH4) | ||||
Worley noise (Minkowski4 distance, F1 * F2) | [ | |||
![]() | ||||
](assets/algorithms/worley_1d_mul_full.png) | [ | |||
![]() | ||||
](assets/algorithms/worley_2d_minkowski4_mul_full.png) | [ | |||
![]() | ||||
](https://www.youtube.com/watch?v=-2wj-pJO2Xk) | ||||
Worley noise (Minkowski4 distance, F1 / F2) | [ | |||
![]() | ||||
](assets/algorithms/worley_1d_div_full.png) | [ | |||
![]() | ||||
](assets/algorithms/worley_2d_minkowski4_div_full.png) | [ | |||
![]() | ||||
](https://www.youtube.com/watch?v=_0rc3c_f5LQ) | ||||
Worley noise (Minkowski4 distance, cell value) | [ | |||
![]() | ||||
](assets/algorithms/worley_1d_value_full.png) | [ | |||
![]() | ||||
](assets/algorithms/worley_2d_minkowski4_value_full.png) | [ | |||
![]() | ||||
](https://www.youtube.com/watch?v=Qj_Hv3SaZ0g) |
Fractals
Name | 1D | 2D (surface view, Z=value) | 3D (surface view, Z=time) | 4D (not renderered) |
---|---|---|---|---|
fBm (OpenSimplex2 noise) | N/A | [ | ||
![]() | ||||
](assets/algorithms/fbm_2d_opensimplex2_full.png) | TODO | N/A | ||
fBm (Simplex noise) | [ | |||
![]() | ||||
](assets/algorithms/fbm_1d_simplex_full.png) | [ | |||
![]() | ||||
](assets/algorithms/fbm_2d_simplex_full.png) | TODO | N/A | ||
fBm (OpenSimplex2S noise) | N/A | [ | ||
![]() | ||||
](assets/algorithms/fbm_2d_opensimplex2s_full.png) | TODO | N/A | ||
fBm (OpenSimplex noise) | N/A | [ | ||
![]() | ||||
](assets/algorithms/fbm_2d_opensimplex_full.png) | TODO | N/A | ||
fBm (Perlin noise) | [ | |||
![]() | ||||
](assets/algorithms/fbm_1d_perlin_full.png) | [ | |||
![]() | ||||
](assets/algorithms/fbm_2d_perlin_full.png) | TODO | N/A | ||
fBm (Value cubic noise) | [ | |||
![]() | ||||
](assets/algorithms/fbm_1d_value_cubic_full.png) | [ | |||
![]() | ||||
](assets/algorithms/fbm_2d_value_cubic_full.png) | TODO | N/A | ||
fBm (Value noise) | [ | |||
![]() | ||||
](assets/algorithms/fbm_1d_value_full.png) | [ | |||
![]() | ||||
](assets/algorithms/fbm_2d_value_full.png) | TODO | N/A | ||
fBm (Worley noise) | [ | |||
![]() | ||||
](assets/algorithms/fbm_1d_worley_full.png) | [ | |||
![]() | ||||
](assets/algorithms/fbm_2d_worley_full.png) | TODO | N/A | ||
Billow (OpenSimplex2 noise) | N/A | [ | ||
![]() | ||||
](assets/algorithms/billow_2d_opensimplex2_full.png) | TODO | N/A | ||
Billow (Simplex noise) | [ | |||
![]() | ||||
](assets/algorithms/billow_1d_simplex_full.png) | [ | |||
![]() | ||||
](assets/algorithms/billow_2d_simplex_full.png) | TODO | N/A | ||
Billow (OpenSimplex2S noise) | N/A | [ | ||
![]() | ||||
](assets/algorithms/billow_2d_opensimplex2s_full.png) | TODO | N/A | ||
Billow (OpenSimplex noise) | N/A | [ | ||
![]() | ||||
](assets/algorithms/billow_2d_opensimplex_full.png) | TODO | N/A | ||
Billow (Perlin noise) | [ | |||
![]() | ||||
](assets/algorithms/billow_1d_perlin_full.png) | [ | |||
![]() | ||||
](assets/algorithms/billow_2d_perlin_full.png) | TODO | N/A | ||
Billow (Value cubic noise) | [ | |||
![]() | ||||
](assets/algorithms/billow_1d_value_cubic_full.png) | [ | |||
![]() | ||||
](assets/algorithms/billow_2d_value_cubic_full.png) | TODO | N/A | ||
Billow (Value noise) | [ | |||
![]() | ||||
](assets/algorithms/billow_1d_value_full.png) | [ | |||
![]() | ||||
](assets/algorithms/billow_2d_value_full.png) | TODO | N/A | ||
Billow (Worley noise) | [ | |||
![]() | ||||
](assets/algorithms/billow_1d_worley_full.png) | [ | |||
![]() | ||||
](assets/algorithms/billow_2d_worley_full.png) | TODO | N/A | ||
Multi (OpenSimplex2 noise) | N/A | [ | ||
![]() | ||||
](assets/algorithms/multi_2d_opensimplex2_full.png) | TODO | N/A | ||
Multi (Simplex noise) | [ | |||
![]() | ||||
](assets/algorithms/multi_1d_simplex_full.png) | [ | |||
![]() | ||||
](assets/algorithms/multi_2d_simplex_full.png) | TODO | N/A | ||
Multi (OpenSimplex2S noise) | N/A | [ | ||
![]() | ||||
](assets/algorithms/multi_2d_opensimplex2s_full.png) | TODO | N/A | ||
Multi (OpenSimplex noise) | N/A | [ | ||
![]() | ||||
](assets/algorithms/multi_2d_opensimplex_full.png) | TODO | N/A | ||
Multi (Perlin noise) | [ | |||
![]() | ||||
](assets/algorithms/multi_1d_perlin_full.png) | [ | |||
![]() | ||||
](assets/algorithms/multi_2d_perlin_full.png) | TODO | N/A | ||
Multi (Value cubic noise) | [ | |||
![]() | ||||
](assets/algorithms/multi_1d_value_cubic_full.png) | [ | |||
![]() | ||||
](assets/algorithms/multi_2d_value_cubic_full.png) | TODO | N/A | ||
Multi (Value noise) | [ | |||
![]() | ||||
](assets/algorithms/multi_1d_value_full.png) | [ | |||
![]() | ||||
](assets/algorithms/multi_2d_value_full.png) | TODO | N/A | ||
Multi (Worley noise) | [ | |||
![]() | ||||
](assets/algorithms/multi_1d_worley_full.png) | [ | |||
![]() | ||||
](assets/algorithms/multi_2d_worley_full.png) | TODO | N/A | ||
Hybrid (OpenSimplex2 noise) | N/A | [ | ||
![]() | ||||
](assets/algorithms/hybrid_2d_opensimplex2_full.png) | TODO | N/A | ||
Hybrid (Simplex noise) | [ | |||
![]() | ||||
](assets/algorithms/hybrid_1d_simplex_full.png) | [ | |||
![]() | ||||
](assets/algorithms/hybrid_2d_simplex_full.png) | TODO | N/A | ||
Hybrid (OpenSimplex2S noise) | N/A | [ | ||
![]() | ||||
](assets/algorithms/hybrid_2d_opensimplex2s_full.png) | TODO | N/A | ||
Hybrid (OpenSimplex noise) | N/A | [ | ||
![]() | ||||
](assets/algorithms/hybrid_2d_opensimplex_full.png) | TODO | N/A | ||
Hybrid (Perlin noise) | [ | |||
![]() | ||||
](assets/algorithms/hybrid_1d_perlin_full.png) | [ | |||
![]() | ||||
](assets/algorithms/hybrid_2d_perlin_full.png) | TODO | N/A | ||
Hybrid (Value cubic noise) | [ | |||
![]() | ||||
](assets/algorithms/hybrid_1d_value_cubic_full.png) | [ | |||
![]() | ||||
](assets/algorithms/hybrid_2d_value_cubic_full.png) | TODO | N/A | ||
Hybrid (Value noise) | [ | |||
![]() | ||||
](assets/algorithms/hybrid_1d_value_full.png) | [ | |||
![]() | ||||
](assets/algorithms/hybrid_2d_value_full.png) | TODO | N/A | ||
Hybrid (Worley noise) | [ | |||
![]() | ||||
](assets/algorithms/hybrid_1d_worley_full.png) | [ | |||
![]() | ||||
](assets/algorithms/hybrid_2d_worley_full.png) | TODO | N/A | ||
Ridged (OpenSimplex2 noise) | N/A | [ | ||
![]() | ||||
](assets/algorithms/ridged_2d_opensimplex2_full.png) | TODO | N/A | ||
Ridged (Simplex noise) | [ | |||
![]() | ||||
](assets/algorithms/ridged_1d_simplex_full.png) | [ | |||
![]() | ||||
](assets/algorithms/ridged_2d_simplex_full.png) | TODO | N/A | ||
Ridged (OpenSimplex2S noise) | N/A | [ | ||
![]() | ||||
](assets/algorithms/ridged_2d_opensimplex2s_full.png) | TODO | N/A | ||
Ridged (OpenSimplex noise) | N/A | [ | ||
![]() | ||||
](assets/algorithms/ridged_2d_opensimplex_full.png) | TODO | N/A | ||
Ridged (Perlin noise) | [ | |||
![]() | ||||
](assets/algorithms/ridged_1d_perlin_full.png) | [ | |||
![]() | ||||
](assets/algorithms/ridged_2d_perlin_full.png) | TODO | N/A | ||
Ridged (Value cubic noise) | [ | |||
![]() | ||||
](assets/algorithms/ridged_1d_value_cubic_full.png) | [ | |||
![]() | ||||
](assets/algorithms/ridged_2d_value_cubic_full.png) | TODO | N/A | ||
Ridged (Value noise) | [ | |||
![]() | ||||
](assets/algorithms/ridged_1d_value_full.png) | [ | |||
![]() | ||||
](assets/algorithms/ridged_2d_value_full.png) | TODO | N/A | ||
Ridged (Worley noise) | [ | |||
![]() | ||||
](assets/algorithms/ridged_1d_worley_full.png) | [ | |||
![]() | ||||
](assets/algorithms/ridged_2d_worley_full.png) | TODO | N/A |