diff --git a/content/tracks/side-tracks/noise/index.json b/content/tracks/side-tracks/noise/index.json new file mode 100644 index 000000000..56c3717ad --- /dev/null +++ b/content/tracks/side-tracks/noise/index.json @@ -0,0 +1,13 @@ +{ + "title": "Noise Track", + "description": "The track contains my tutorials on perlin and simplex noise.", + "videos": [ + "noc/perlin/graphing-1d-perlin-noise", + "noc/perlin/intro-to-perlin-noise", + "noc/perlin/noise-vs-random", + "open-simplex-noise", + "challenges/136-polar-noise-loops", + "challenges/137-4d-opensimplex-noise-loop", + "challenges/c4-worley-noise" + ] +} \ No newline at end of file diff --git a/content/videos/noc/perlin/graphing-1d-perlin-noise/index.json b/content/videos/noc/perlin/graphing-1d-perlin-noise/index.json index 0aa12fe0d..57541eb53 100644 --- a/content/videos/noc/perlin/graphing-1d-perlin-noise/index.json +++ b/content/videos/noc/perlin/graphing-1d-perlin-noise/index.json @@ -4,6 +4,7 @@ "languages": ["JavaScript", "p5.js"], "topics": ["For beginners"], "videoId": "y7sgcFhk6ZM", + "canonicalTrack": "the-nature-of-code-2", "timestamps": [ { "time": "0:00", "title": "What are we doing?" }, { "time": "1:20", "title": "Why are the x and y values equal?" }, diff --git a/content/videos/noc/perlin/intro-to-perlin-noise/index.json b/content/videos/noc/perlin/intro-to-perlin-noise/index.json index 03865b79a..114f00dbb 100644 --- a/content/videos/noc/perlin/intro-to-perlin-noise/index.json +++ b/content/videos/noc/perlin/intro-to-perlin-noise/index.json @@ -5,6 +5,7 @@ "topics": ["For beginners"], "videoId": "Qf4dIN99e2w", "canContribute": false, + "canonicalTrack": "the-nature-of-code-2", "timestamps": [ { "time": "0:00", "title": "Welcome!" }, { "time": "0:45", "title": "Random() and noise()" }, diff --git a/content/videos/noc/perlin/noise-vs-random/index.json b/content/videos/noc/perlin/noise-vs-random/index.json index 67eb7d742..664f1f868 100644 --- a/content/videos/noc/perlin/noise-vs-random/index.json +++ b/content/videos/noc/perlin/noise-vs-random/index.json @@ -4,6 +4,7 @@ "languages": ["JavaScript", "p5.js"], "topics": ["For beginners"], "videoId": "YcdldZ1E9gU", + "canonicalTrack": "the-nature-of-code-2", "timestamps": [ { "time": "0:00", "title": "Introduction" }, { "time": "0:50", "title": "Random function" }, diff --git a/content/videos/open-simplex-noise/index.json b/content/videos/open-simplex-noise/index.json new file mode 100644 index 000000000..0083a358e --- /dev/null +++ b/content/videos/open-simplex-noise/index.json @@ -0,0 +1,84 @@ +{ + "title": "What is OpenSimplex Noise?", + "description": "Simplex Noise (2001) is an improvement on \"classic\" Perlin noise (1983). I discuss a bit of the history of noise algorithms and show how to use the Java source code for Open Simplex Noise in Processing.", + "languages": ["Processng"], + "topics": ["For beginners"], + "videoId": "Lv9gyZZJPE0", + "canContribute": true, + "relatedChallenges": ["136-polar-noise-loops", "137-4d-opensimplex-noise-loop", "c4-worley-noise"], + "timestamps": [ + { "time": "0:00", "title": "Welcome!" }, + { "time": "1:19", "title": "Perlin noise" }, + { "time": "3:11", "title": "Directional artifacts" }, + { "time": "3:54", "title": "Simplectic geometry" }, + { "time": "6:17", "title": "Open simplex noise" }, + { "time": "7:40", "title": "Update the processing sketch" }, + { "time": "12:00", "title": "Create an open simplex noise object" }, + { "time": "13:09", "title": "Eval function" }, + { "time": "14:00", "title": "Cast result to a float" }, + { "time": "15:09", "title": "Map the noise to the range of color values" }, + { "time": "15:52", "title": "Change the parameters to get different visual effects" }, + { "time": "17:16", "title": "Outro" } + ], + "codeExamples": [], + "groupLinks": [ + { + "title": "References", + "links": [ + { + "icon": "🔗", + "title": "Perlin Noise", + "url": "https://web.archive.org/web/20160530124230/http://freespace.virgin.net/hugo.elias/models/m_perlin.htm", + "description": "Archived article about perlin noise." + }, + { + "icon": "🔗", + "title": "OpenSimplex2", + "url": "https://github.com/KdotJPG/OpenSimplex2/blob/master/_old/java/legacy/OpenSimplex.java", + "description": "Github repo with legacy OpenSimplex code used in tutorial." + }, + { + "icon": "🔗", + "title": "OpenSimplex2", + "url": "https://github.com/KdotJPG/OpenSimplex2", + "description": "Github repo with open source OpenSimplex noise code." + }, + { + "icon": "🔗", + "title": "Perlin Noise", + "url": "https://en.wikipedia.org/wiki/Perlin_noise", + "description": "Wikipedia page describing perlin noise" + }, + { + "icon": "🔗", + "title": "Gradient Noise", + "url": "https://en.wikipedia.org/wiki/Gradient_noise", + "description": "Wikipedia page describing gradient noise" + }, + { + "icon": "🔗", + "title": "Simplex Noise", + "url": "https://en.wikipedia.org/wiki/Simplex_noise", + "description": "Wikipedia page describing simplex noise" + }, + { + "icon": "🔗", + "title": "Simplex Noise Demystified", + "url": "https://www.researchgate.net/publication/216813608_Simplex_noise_demystified", + "description": "Paper by Stefan Gustavson discussing simplex noise" + }, + { + "icon": "🔗", + "title": "Etienne Jacob", + "url": "https://bleuje.github.io/", + "description": "Etienne Jacob website" + } + ] + } + ], + "credits": [ + { "title": "Editing", "name": "Mathieu Blanchette" }, + { "title": "Animations", "name": "Jason Heglund" } + ], + "date": "2019-03-04" +}