title
I.7 : 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.
🎥Next Video: Random Walker Coding Challenge: https://youtu.be/l__fEY1xanY
Links discussed in this video:
🔗 Perlin Noise: https://en.wikipedia.org/wiki/Perlin_noise
🔗 http://web.archive.org/web/20160530124230/http://freespace.virgin.net/hugo.elias/models/m_perlin.htm
🔗 Gradient Noise: https://en.wikipedia.org/wiki/Gradient_noise
🔗 Simplex Noise: https://en.wikipedia.org/wiki/Simplex_noise
🔗 Stefan Gustavson: http://staffwww.itn.liu.se/~stegu/
🔗 Simplex noise demystified: http://staffwww.itn.liu.se/~stegu/simplexnoise/simplexnoise.pdf
🔗 OpenSimplexNoise.java by KdotJPG: https://gist.github.com/KdotJPG/b1270127455a94ac5d19
🔗 Etienne Jacob: https://necessary-disorder.tumblr.com/
🚂Website: https://thecodingtrain.com/
💡Github: https://github.com/CodingTrain
💬Discord: https://discord.gg/hPuGy2g
💖Membership: https://youtube.com/thecodingtrain/join
🛒Store: https://standard.tv/collections/the-coding-train
📚Books: https://www.amazon.com/shop/thecodingtrain
🖋️Twitter: https://twitter.com/thecodingtrain
🎥 More Perlin Noise: https://www.youtube.com/playlist?list=PLRqwX-V7Uu6bgPNQAdxQZpJuJCjeOr7VD
🎥Coding Challenges: https://www.youtube.com/playlist?list=PLRqwX-V7Uu6ZiZxtDDRCi6uhfTH4FilpH
🎥Intro to Programming using p5.js: https://www.youtube.com/playlist?list=PLRqwX-V7Uu6Zy51Q-x9tMWIv9cueOFTFA
📄 Code of Conduct: https://github.com/CodingTrain/Code-of-Conduct
🌐Help us caption and translate: http://www.youtube.com/timedtext_cs_panel?c=UCvjgXvBlbQiydffZU7m1_aw&tab=2
🚩Suggest Topics: https://github.com/CodingTrain/Rainbow-Topics
👾Share your contribution: https://thecodingtrain.com/Guides/community-contribution-guide.html
🔗 p5.js: https://p5js.org
🔗 Processing: https://processing.org
detail
{'title': 'I.7 : What is OpenSimplex Noise?', 'heatmap': [{'end': 1013.269, 'start': 999.037, 'weight': 1}], 'summary': "Explores the evolution of perlin noise, including its transition to opensimplex noise, emphasizing innovations, reducing directional artifacts, and proposing its integration into processing's core for further exploration.", 'chapters': [{'end': 435.319, 'segs': [{'end': 99.23, 'src': 'embed', 'start': 76.727, 'weight': 0, 'content': [{'end': 85.234, 'text': "1983, the original Perlin noise, a type of what's known as gradient noise, was developed by Ken Perlin in 1983.", 'start': 76.727, 'duration': 8.507}, {'end': 88.537, 'text': 'Ken Perlin won an Academy Award for this work.', 'start': 85.234, 'duration': 3.303}, {'end': 97.568, 'text': "It is the algorithm that Ken Perlin invented in 1983 forms the basis for the source code, the implementation, that's in processing itself.", 'start': 88.978, 'duration': 8.59}, {'end': 99.23, 'text': "in all these videos I've made about Perlin noise,", 'start': 97.568, 'duration': 1.662}], 'summary': 'Ken perlin developed original perlin noise algorithm in 1983, winning an academy award.', 'duration': 22.503, 'max_score': 76.727, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Lv9gyZZJPE0/pics/Lv9gyZZJPE076727.jpg'}, {'end': 175.713, 'src': 'embed', 'start': 145.253, 'weight': 2, 'content': [{'end': 147.795, 'text': "well, let's say we're considering a two-dimensional space.", 'start': 145.253, 'duration': 2.542}, {'end': 152.097, 'text': 'to smooth gradients within a two-dimensional space squares on a grid.', 'start': 147.795, 'duration': 4.302}, {'end': 153.799, 'text': 'This is how we usually think of a 2D space.', 'start': 152.217, 'duration': 1.582}, {'end': 161.283, 'text': "The reason why I'm highlighting this is because this idea of how this space is oriented, the geometry of this space,", 'start': 154.159, 'duration': 7.124}, {'end': 167.067, 'text': 'is the key distinction between classic I would call classic Perlin noise and simplex noise.', 'start': 161.283, 'duration': 5.784}, {'end': 168.808, 'text': "All right, so we'll come back to that.", 'start': 167.748, 'duration': 1.06}, {'end': 175.713, 'text': 'Next stop on my Wikipedia tour is the page for simplex noise.', 'start': 169.389, 'duration': 6.324}], 'summary': 'Comparison of classic perlin noise and simplex noise in a 2d space.', 'duration': 30.46, 'max_score': 145.253, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Lv9gyZZJPE0/pics/Lv9gyZZJPE0145253.jpg'}, {'end': 249.237, 'src': 'embed', 'start': 213.348, 'weight': 1, 'content': [{'end': 215.369, 'text': 'Classic Perlin noise is kind of herky-jerky.', 'start': 213.348, 'duration': 2.021}, {'end': 217.47, 'text': 'it kind of gets to a point where it stops it bounces.', 'start': 215.369, 'duration': 2.101}, {'end': 221.092, 'text': "That's the sort of visual quality of a directional artifact.", 'start': 217.87, 'duration': 3.222}, {'end': 224.895, 'text': "It doesn't feel smoothly continuous over long periods of time.", 'start': 221.112, 'duration': 3.783}, {'end': 229.679, 'text': 'And so this is really the innovation of simplex noise.', 'start': 226.256, 'duration': 3.423}, {'end': 234.664, 'text': 'now the the innovation has to do with Symplectic geometry,', 'start': 229.679, 'duration': 4.985}, {'end': 240.649, 'text': "which is really and this is actually in an article that I'll refer to but a simplex grid looks like this.", 'start': 234.664, 'duration': 5.985}, {'end': 249.237, 'text': 'so the core innovation is the idea that, instead of smoothing the noise, calculating these gradients over a square rectangular grid,', 'start': 240.649, 'duration': 8.588}], 'summary': 'Simplex noise improves visual quality over classic perlin noise using symplectic geometry.', 'duration': 35.889, 'max_score': 213.348, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Lv9gyZZJPE0/pics/Lv9gyZZJPE0213348.jpg'}, {'end': 340.291, 'src': 'embed', 'start': 269.932, 'weight': 3, 'content': [{'end': 278.495, 'text': "In particular, the page of documents on simplex noise and this PDF, which I'll scroll all the way back to the top, called Simplex Noise Demystified.", 'start': 269.932, 'duration': 8.563}, {'end': 284.397, 'text': 'So, I read this on the subway home last night and on the subway to work this morning.', 'start': 278.895, 'duration': 5.502}, {'end': 288.558, 'text': 'And so I have some picture in my mind of how this works.', 'start': 286.337, 'duration': 2.221}, {'end': 291.638, 'text': 'I probably need to read it about 73 times and more.', 'start': 288.598, 'duration': 3.04}, {'end': 299.019, 'text': "But this will give you much more background into the difference between classic noise which there's a nice,", 'start': 292.198, 'duration': 6.821}, {'end': 305.981, 'text': 'and you can see here this idea of these gradients and simplex noise and how the tiling system works in multiple dimensions.', 'start': 299.019, 'duration': 6.962}, {'end': 307.041, 'text': 'So I encourage you to check that out.', 'start': 306.001, 'duration': 1.04}, {'end': 312.302, 'text': "Now, one of the oddities about simplex noise is that there's a patent for it.", 'start': 307.321, 'duration': 4.981}, {'end': 315.423, 'text': "This, if I'm correct, is the patent.", 'start': 312.922, 'duration': 2.501}, {'end': 318.604, 'text': 'Patent US 6867776B2.', 'start': 315.563, 'duration': 3.041}, {'end': 320.484, 'text': 'Inventor Kenneth Perlin.', 'start': 319.284, 'duration': 1.2}, {'end': 321.625, 'text': 'You can download the PDF.', 'start': 320.504, 'duration': 1.121}, {'end': 326.426, 'text': 'This was filed in 2001 at the time of the invention of simplex noise.', 'start': 322.265, 'duration': 4.161}, {'end': 329.907, 'text': 'And this is an apparatus for generating image.', 'start': 327.086, 'duration': 2.821}, {'end': 332.788, 'text': 'The apparatus includes a computer.', 'start': 329.947, 'duration': 2.841}, {'end': 337.75, 'text': 'The apparatus includes a display connected to the computer upon which images from the computer appear.', 'start': 333.249, 'duration': 4.501}, {'end': 340.291, 'text': 'I will stop now doing my dramatic reading of this patent.', 'start': 337.83, 'duration': 2.461}], 'summary': 'Simplex noise demystified, patent us 6867776b2 by kenneth perlin filed in 2001.', 'duration': 70.359, 'max_score': 269.932, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Lv9gyZZJPE0/pics/Lv9gyZZJPE0269932.jpg'}, {'end': 385.192, 'src': 'embed', 'start': 360.086, 'weight': 5, 'content': [{'end': 367.936, 'text': 'So there is, fortunately, a post that was on Reddit that I found from four years ago, from k.jpg,', 'start': 360.086, 'duration': 7.85}, {'end': 375.785, 'text': "which is a post about this new version of what's called open simplex noise.", 'start': 367.936, 'duration': 7.849}, {'end': 385.192, 'text': "So this algorithm is very similar It's highly correlated and relates to the Ken Perlin simplex noise, but there are some key differences.", 'start': 376.066, 'duration': 9.126}], 'summary': 'A reddit post from four years ago introduces a new version of open simplex noise, closely related to ken perlin simplex noise.', 'duration': 25.106, 'max_score': 360.086, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Lv9gyZZJPE0/pics/Lv9gyZZJPE0360086.jpg'}], 'start': 0.509, 'title': 'Perlin noise evolution', 'summary': 'Explores the evolution of perlin noise from its 1983 implementation to the present, including simplex noise and open source implementations, focusing on innovations and reducing directional artifacts. it also covers the concept of simplex noise, its patent, differences from classic noise, and the availability of open simplex noise code for use in processing.', 'chapters': [{'end': 269.532, 'start': 0.509, 'title': 'Perlin noise evolution: 1983 to present', 'summary': 'Explores the evolution of perlin noise from its 1983 implementation to the present, including an updated version called simplex noise and open source implementations, highlighting the key distinctions and innovations, with a focus on smoothing gradients and reducing directional artifacts.', 'duration': 269.023, 'highlights': ['The original Perlin noise, a type of gradient noise, was developed by Ken Perlin in 1983, forming the basis for the source code in processing and leading to an Academy Award for his work. Ken Perlin developed the original Perlin noise in 1983, which forms the basis for the source code in processing and earned him an Academy Award.', 'Simplex noise, an updated version of Perlin noise, addresses directional artifacts by using symplectic geometry with a tiled system of equilateral triangles, reducing the herky-jerky visual quality of classic Perlin noise. Simplex noise, created by Ken Perlin, addresses directional artifacts by using symplectic geometry with a tiled system of equilateral triangles, reducing the herky-jerky visual quality of classic Perlin noise.', 'The chapter discusses the key distinction between classic Perlin noise and simplex noise, focusing on the smoothing of gradients within a two-dimensional space and the reduction of directional artifacts. The chapter discusses the key distinction between classic Perlin noise and simplex noise, focusing on the smoothing of gradients within a two-dimensional space and the reduction of directional artifacts.']}, {'end': 435.319, 'start': 269.932, 'title': 'Understanding simplex noise and open simplex noise', 'summary': 'Discusses the concept of simplex noise, including its patent, differences from classic noise, and the availability of open simplex noise code for use in processing.', 'duration': 165.387, 'highlights': ['The Ken Perlin simplex noise algorithm is patented under US 6867776B2, filed in 2001, and relates to the generation of images using a computer and display.', 'The differences between classic noise and simplex noise, particularly in terms of gradients and tiling systems in multiple dimensions, are highlighted, providing a deeper understanding of simplex noise.', "The availability and use of open simplex noise, similar to Ken Perlin simplex noise but with key differences, is emphasized, with the code published on k.jpeg's GitHub gist, opensimplexnoise.java, enabling its use in processing due to its Java compatibility.", 'The post on Reddit from k.jpg regarding open simplex noise and its similarity to Ken Perlin simplex noise, along with the release of the code into the public domain, further supports its accessibility and usability for the context of the video.', "The discussion of the PDF 'Simplex Noise Demystified' and its role in enhancing understanding, despite the need for multiple readings, contributes to the background knowledge on simplex noise.", 'The uncertainty surrounding the use of the literal version of the simplex noise algorithm described in the patent in open source environments, such as processing libraries or sketches, is noted, raising potential legal and usage concerns.', 'The dramatic reading of the patent and the uncertainty about the implications of using the literal version of the simplex noise algorithm in open source environments add a personal touch and highlight the complexities and uncertainties surrounding its use.', "The mention of the variable 'SquishConstant3D' in the open simplex noise code and its quirky naming adds a lighthearted and humorous element to the discussion of the code's details."]}], 'duration': 434.81, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Lv9gyZZJPE0/pics/Lv9gyZZJPE0509.jpg', 'highlights': ['Ken Perlin developed the original Perlin noise in 1983, which forms the basis for the source code in processing and earned him an Academy Award.', 'Simplex noise, created by Ken Perlin, addresses directional artifacts by using symplectic geometry with a tiled system of equilateral triangles, reducing the herky-jerky visual quality of classic Perlin noise.', 'The chapter discusses the key distinction between classic Perlin noise and simplex noise, focusing on the smoothing of gradients within a two-dimensional space and the reduction of directional artifacts.', 'The Ken Perlin simplex noise algorithm is patented under US 6867776B2, filed in 2001, and relates to the generation of images using a computer and display.', 'The differences between classic noise and simplex noise, particularly in terms of gradients and tiling systems in multiple dimensions, are highlighted, providing a deeper understanding of simplex noise.', "The availability and use of open simplex noise, similar to Ken Perlin simplex noise but with key differences, is emphasized, with the code published on k.jpeg's GitHub gist, opensimplexnoise.java, enabling its use in processing due to its Java compatibility.", 'The post on Reddit from k.jpg regarding open simplex noise and its similarity to Ken Perlin simplex noise, along with the release of the code into the public domain, further supports its accessibility and usability for the context of the video.', "The discussion of the PDF 'Simplex Noise Demystified' and its role in enhancing understanding, despite the need for multiple readings, contributes to the background knowledge on simplex noise."]}, {'end': 805.514, 'segs': [{'end': 516.304, 'src': 'embed', 'start': 435.82, 'weight': 1, 'content': [{'end': 437.041, 'text': 'So what does this mean?', 'start': 435.82, 'duration': 1.221}, {'end': 439.142, 'text': 'So I want to do another video after this one,', 'start': 437.081, 'duration': 2.061}, {'end': 446.368, 'text': 'which is I just find every single piece of code I ever wrote using the Processing Perlin Noise function and try to do it again with OpenSimplex Noise.', 'start': 439.142, 'duration': 7.226}, {'end': 449.211, 'text': "But I'm just going to do that just for one thing right now.", 'start': 446.388, 'duration': 2.823}, {'end': 450.532, 'text': 'All right, let me go here, raw.', 'start': 449.231, 'duration': 1.301}, {'end': 452.774, 'text': 'Let me do a nice big copy paste.', 'start': 450.952, 'duration': 1.822}, {'end': 454.779, 'text': "I'm going to go to processing.", 'start': 453.916, 'duration': 0.863}, {'end': 457.787, 'text': 'Because processing, this is the sketch, I want to change.', 'start': 454.799, 'duration': 2.988}, {'end': 469.848, 'text': 'This particular sketch from Perlin, classic Perlin 1983 noise, the noise function in the processing library, aka gradient noise.', 'start': 460.379, 'duration': 9.469}, {'end': 472.15, 'text': 'There is also something called value noise.', 'start': 470.088, 'duration': 2.062}, {'end': 474.152, 'text': "There's all these fine distinctions between them.", 'start': 472.29, 'duration': 1.862}, {'end': 478.136, 'text': "But anyway, it's easy to get confused.", 'start': 475.674, 'duration': 2.462}, {'end': 483.801, 'text': "And somebody will write a nice, succinct comment that I will pin to this page that has this all explained perfectly, I'm sure.", 'start': 478.476, 'duration': 5.325}, {'end': 490.566, 'text': 'I want to change this to use OpenSimplex Noise and I want to examine and look at the difference in quality.', 'start': 486.243, 'duration': 4.323}, {'end': 493.428, 'text': 'And, by the way, what does it mean?', 'start': 490.987, 'duration': 2.441}, {'end': 495.75, 'text': 'What do I mean when I say quality?', 'start': 494.349, 'duration': 1.401}, {'end': 502.834, 'text': "So, first of all, I'm not going to read you this whole description, but I'm going to go down here and I'm going to say I'm going to read this part.", 'start': 495.79, 'duration': 7.044}, {'end': 507.097, 'text': 'There have been debates over the accuracy of the implementation of noise in processing.', 'start': 503.295, 'duration': 3.802}, {'end': 516.304, 'text': "For clarification, it's an implementation of a classic Perlin Noise from 1983 and not the newer Simplex Noise method from 2001.", 'start': 507.157, 'duration': 9.147}], 'summary': 'Changing code from perlin to opensimplex noise for quality comparison.', 'duration': 80.484, 'max_score': 435.82, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Lv9gyZZJPE0/pics/Lv9gyZZJPE0435820.jpg'}, {'end': 558.696, 'src': 'embed', 'start': 535.879, 'weight': 0, 'content': [{'end': 543.785, 'text': 'historically, years and years of people making artworks, visual artworks and projects based on the quality of the Perlin Noise,', 'start': 535.879, 'duration': 7.906}, {'end': 545.326, 'text': 'the noise function in processing.', 'start': 543.785, 'duration': 1.541}, {'end': 546.367, 'text': 'Just say noise.', 'start': 545.706, 'duration': 0.661}, {'end': 547.547, 'text': "I'm just going to say noise from now on.", 'start': 546.427, 'duration': 1.12}, {'end': 558.696, 'text': 'And if it were to be updated, those projects would suddenly maybe not look the way they were intended, not look as beautiful, not look as compelling,', 'start': 549.469, 'duration': 9.227}], 'summary': "Years of artworks and projects based on perlin noise may be affected if it's updated.", 'duration': 22.817, 'max_score': 535.879, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Lv9gyZZJPE0/pics/Lv9gyZZJPE0535879.jpg'}, {'end': 607.891, 'src': 'embed', 'start': 579.453, 'weight': 2, 'content': [{'end': 585.218, 'text': 'but it would make much more sense to have a separate library that you could use with processing to get open simplex noise.', 'start': 579.453, 'duration': 5.765}, {'end': 594.327, 'text': 'I mean you could make the case and there is a GitHub issue discussion about this you could make the case that it might make sense to add to processing something called noise mode,', 'start': 585.238, 'duration': 9.089}, {'end': 599.148, 'text': "In which case you could put in here I don't know what the terminology would be.", 'start': 594.987, 'duration': 4.161}, {'end': 600.609, 'text': 'I would put in 1983.', 'start': 599.168, 'duration': 1.441}, {'end': 602.63, 'text': "I'd put the year, no.", 'start': 600.609, 'duration': 2.021}, {'end': 607.891, 'text': 'But you could put in maybe gradient, Perlin, simplex, value.', 'start': 603.47, 'duration': 4.421}], 'summary': 'A separate library for open simplex noise could be used with processing, with options such as gradient, perlin, simplex, and value.', 'duration': 28.438, 'max_score': 579.453, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Lv9gyZZJPE0/pics/Lv9gyZZJPE0579453.jpg'}], 'start': 435.82, 'title': 'Opensimplex noise transition and implementation', 'summary': "Explores transitioning from processing perlin noise to opensimplex noise, examining code rewriting, quality differences, and distinctions between noise functions. it also discusses the historical significance and visual impact of perlin noise, proposing the addition of opensimplex noise as a separate library for further exploration and potential integration into processing's core.", 'chapters': [{'end': 495.75, 'start': 435.82, 'title': 'Transition to opensimplex noise', 'summary': 'Explores transitioning from using processing perlin noise to opensimplex noise by rewriting code, to examine the difference in quality and clarify the distinctions between the noise functions.', 'duration': 59.93, 'highlights': ['The chapter focuses on transitioning from Processing Perlin Noise to OpenSimplex Noise by rewriting existing code.', 'The objective is to examine and compare the quality difference between the two noise functions.', 'The speaker intends to clarify the distinctions between classic Perlin 1983 noise, gradient noise, and value noise within the processing library.']}, {'end': 805.514, 'start': 495.79, 'title': 'Implementing opensimplex noise in processing', 'summary': "Discusses the debate over the implementation of noise in processing, highlighting the historical significance and visual impact of perlin noise, and proposes the addition of opensimplex noise as a separate library for further exploration and potential integration into processing's core.", 'duration': 309.724, 'highlights': ['The historical significance and visual impact of Perlin Noise in processing Years of people making artworks and projects based on the quality of the Perlin Noise function in processing, which might be affected if updated, impacting visual distinctiveness and quality.', 'Proposal for the addition of OpenSimplex Noise as a separate library for usage with processing Suggests creating a separate library for OpenSimplex Noise to be used with Processing, with the potential for integration into the core if widely adopted.', 'Debate over the accuracy and update of noise implementation in processing Discussion about the accuracy of noise implementation, considering the potential of updating the Perlin Noise version in the processing library and the argument for maintaining its distinct visual impact.']}], 'duration': 369.694, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Lv9gyZZJPE0/pics/Lv9gyZZJPE0435820.jpg', 'highlights': ['The historical significance and visual impact of Perlin Noise in processing Years of people making artworks and projects based on the quality of the Perlin Noise function in processing, which might be affected if updated, impacting visual distinctiveness and quality.', 'Debate over the accuracy and update of noise implementation in processing Discussion about the accuracy of noise implementation, considering the potential of updating the Perlin Noise version in the processing library and the argument for maintaining its distinct visual impact.', 'Proposal for the addition of OpenSimplex Noise as a separate library for usage with processing Suggests creating a separate library for OpenSimplex Noise to be used with Processing, with the potential for integration into the core if widely adopted.', 'The chapter focuses on transitioning from Processing Perlin Noise to OpenSimplex Noise by rewriting existing code.', 'The objective is to examine and compare the quality difference between the two noise functions.', 'The speaker intends to clarify the distinctions between classic Perlin 1983 noise, gradient noise, and value noise within the processing library.']}, {'end': 1054.269, 'segs': [{'end': 841.933, 'src': 'embed', 'start': 805.534, 'weight': 0, 'content': [{'end': 806.174, 'text': "I'm going to get errors.", 'start': 805.534, 'duration': 0.64}, {'end': 808.415, 'text': 'Cannot convert from a double to a float.', 'start': 806.614, 'duration': 1.801}, {'end': 811.716, 'text': "So this is a little bit of funny business that we're stuck with here.", 'start': 808.435, 'duration': 3.281}, {'end': 814.957, 'text': 'And this is what I, if turning this into a processing library, I would clean this up.', 'start': 811.756, 'duration': 3.201}, {'end': 825.48, 'text': 'Processing in its simplification of Java has basically ignored the existence of the data type double.', 'start': 815.437, 'duration': 10.043}, {'end': 827.02, 'text': 'Double is a floating point.', 'start': 825.78, 'duration': 1.24}, {'end': 827.741, 'text': "It's not a floating point.", 'start': 827.04, 'duration': 0.701}, {'end': 831.882, 'text': "It's a decimal number that is more memory, more accuracy, more digits.", 'start': 827.881, 'duration': 4.001}, {'end': 833.323, 'text': 'than just floating point.', 'start': 832.302, 'duration': 1.021}, {'end': 841.933, 'text': 'And so here what I need to do is do something like, well I need to convert, which is called casting, what comes out of the eval function as a float.', 'start': 833.844, 'duration': 8.089}], 'summary': 'Code error in converting double to float needs fixing.', 'duration': 36.399, 'max_score': 805.534, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Lv9gyZZJPE0/pics/Lv9gyZZJPE0805534.jpg'}, {'end': 910.57, 'src': 'embed', 'start': 876.643, 'weight': 3, 'content': [{'end': 878.304, 'text': 'the mean being 0..', 'start': 876.643, 'duration': 1.661}, {'end': 882.207, 'text': "Processing's implementation gives you a value between 0 and 1 as a sort of convenience.", 'start': 878.304, 'duration': 3.903}, {'end': 888.992, 'text': 'But so this multiplying by 255, this is why we see these vast areas of the color black,', 'start': 882.627, 'duration': 6.365}, {'end': 894.616, 'text': "because any noise value that's less than 0 gets reduced to black, which is kind of interesting to note.", 'start': 888.992, 'duration': 5.624}, {'end': 900.117, 'text': 'Now what I can do here, and I should really take out the third dimension to demonstrate this.', 'start': 895.672, 'duration': 4.445}, {'end': 910.57, 'text': 'but so if I change this to float n and then I say float bright equals map n, which goes between negative one, one to zero and 255..', 'start': 900.117, 'duration': 10.453}], 'summary': 'Processing implementation produces values between 0 and 1, but multiplying by 255 results in black for noise values less than 0.', 'duration': 33.927, 'max_score': 876.643, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Lv9gyZZJPE0/pics/Lv9gyZZJPE0876643.jpg'}, {'end': 975.587, 'src': 'embed', 'start': 948.819, 'weight': 2, 'content': [{'end': 957.127, 'text': 'I mean one thing would be this increment value is really playing a big role in, and the Z increment value is playing a big role in,', 'start': 948.819, 'duration': 8.308}, {'end': 958.268, 'text': "the quality of what we're seeing.", 'start': 957.127, 'duration': 1.141}, {'end': 961.721, 'text': 'Like, for example, let me make increment 0.1.', 'start': 958.308, 'duration': 3.413}, {'end': 963.682, 'text': "Like suddenly look, that's what the noise looks like.", 'start': 961.721, 'duration': 1.961}, {'end': 964.282, 'text': 'Look at that.', 'start': 963.702, 'duration': 0.58}, {'end': 966.243, 'text': 'Ooh, this is really nice.', 'start': 964.442, 'duration': 1.801}, {'end': 967.424, 'text': 'Oh, I love this.', 'start': 966.783, 'duration': 0.641}, {'end': 975.587, 'text': "And then, you know, I could, the Z increment, you know, if I made that really fast, then you're just seeing it sort of like changing really fast.", 'start': 968.084, 'duration': 7.503}], 'summary': 'Increment value greatly impacts quality, e.g. 0.1 increment yields improved noise quality.', 'duration': 26.768, 'max_score': 948.819, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Lv9gyZZJPE0/pics/Lv9gyZZJPE0948819.jpg'}, {'end': 1014.41, 'src': 'heatmap', 'start': 999.037, 'weight': 5, 'content': [{'end': 1013.269, 'text': 'let me just refer you to the work of Etienne Jacob, who makes all these amazing GIF loops using OpenSimplex, noise and a variety of techniques,', 'start': 999.037, 'duration': 14.232}, {'end': 1014.41, 'text': 'all described in his blog post.', 'start': 1013.269, 'duration': 1.141}], 'summary': 'Etienne jacob creates amazing gif loops using opensimplex noise and various techniques, as described in his blog post.', 'duration': 27.958, 'max_score': 999.037, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Lv9gyZZJPE0/pics/Lv9gyZZJPE0999037.jpg'}], 'start': 805.534, 'title': 'Data type conversion and noise algorithms', 'summary': "Discusses challenges in handling data type conversion in processing, including converting double to float, need for casting, and limitations of processing library. it also covers the implementation and visualization of noise algorithms, emphasizing the impact of parameters on visual quality and referencing etienne jacob's work for further exploration.", 'chapters': [{'end': 852.381, 'start': 805.534, 'title': 'Handling data type conversion in processing', 'summary': 'Discusses the challenges of handling data type conversion in processing, highlighting the issue of converting double to float and the need for casting, while also addressing the limitations of the processing library in simplifying java and ignoring the data type double.', 'duration': 46.847, 'highlights': ['The data type double in Processing, a decimal number with more memory and accuracy, poses challenges for conversion to float, leading to errors and the need for casting.', "The processing library's simplification of Java has overlooked the existence and significance of the data type double, resulting in challenges when dealing with data type conversion."]}, {'end': 1054.269, 'start': 852.722, 'title': 'Understanding noise algorithms', 'summary': 'Discusses the implementation and visualization of noise algorithms, highlighting the impact of different parameters on the visual quality, and references the work of etienne jacob for further exploration of possibilities.', 'duration': 201.547, 'highlights': ["The noise functions are designed to give a number between -1 and 1, with Processing's implementation providing a value between 0 and 1.", 'Multiplying by 255 leads to vast areas of black color due to noise values less than 0 being reduced to black.', 'Adjusting the increment value significantly impacts the visual quality and chaotic randomness of the noise.', "Etienne Jacob's work with OpenSimplex noise and various techniques is referenced for exploration of possibilities beyond plain visual representation."]}], 'duration': 248.735, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Lv9gyZZJPE0/pics/Lv9gyZZJPE0805534.jpg', 'highlights': ['The data type double in Processing poses challenges for conversion to float, leading to errors and the need for casting.', "The processing library's simplification of Java has overlooked the existence and significance of the data type double, resulting in challenges when dealing with data type conversion.", 'Adjusting the increment value significantly impacts the visual quality and chaotic randomness of the noise.', "The noise functions are designed to give a number between -1 and 1, with Processing's implementation providing a value between 0 and 1.", 'Multiplying by 255 leads to vast areas of black color due to noise values less than 0 being reduced to black.', "Etienne Jacob's work with OpenSimplex noise and various techniques is referenced for exploration of possibilities beyond plain visual representation."]}], 'highlights': ['Ken Perlin developed the original Perlin noise in 1983, which forms the basis for the source code in processing and earned him an Academy Award.', 'Simplex noise, created by Ken Perlin, addresses directional artifacts by using symplectic geometry with a tiled system of equilateral triangles, reducing the herky-jerky visual quality of classic Perlin noise.', 'The chapter discusses the key distinction between classic Perlin noise and simplex noise, focusing on the smoothing of gradients within a two-dimensional space and the reduction of directional artifacts.', 'The Ken Perlin simplex noise algorithm is patented under US 6867776B2, filed in 2001, and relates to the generation of images using a computer and display.', 'The differences between classic noise and simplex noise, particularly in terms of gradients and tiling systems in multiple dimensions, are highlighted, providing a deeper understanding of simplex noise.', "The availability and use of open simplex noise, similar to Ken Perlin simplex noise but with key differences, is emphasized, with the code published on k.jpeg's GitHub gist, opensimplexnoise.java, enabling its use in processing due to its Java compatibility.", 'The post on Reddit from k.jpg regarding open simplex noise and its similarity to Ken Perlin simplex noise, along with the release of the code into the public domain, further supports its accessibility and usability for the context of the video.', "The discussion of the PDF 'Simplex Noise Demystified' and its role in enhancing understanding, despite the need for multiple readings, contributes to the background knowledge on simplex noise.", 'The historical significance and visual impact of Perlin Noise in processing Years of people making artworks and projects based on the quality of the Perlin Noise function in processing, which might be affected if updated, impacting visual distinctiveness and quality.', 'Debate over the accuracy and update of noise implementation in processing Discussion about the accuracy of noise implementation, considering the potential of updating the Perlin Noise version in the processing library and the argument for maintaining its distinct visual impact.', 'Proposal for the addition of OpenSimplex Noise as a separate library for usage with processing Suggests creating a separate library for OpenSimplex Noise to be used with Processing, with the potential for integration into the core if widely adopted.', 'The chapter focuses on transitioning from Processing Perlin Noise to OpenSimplex Noise by rewriting existing code.', 'The objective is to examine and compare the quality difference between the two noise functions.', 'The speaker intends to clarify the distinctions between classic Perlin 1983 noise, gradient noise, and value noise within the processing library.', 'The data type double in Processing poses challenges for conversion to float, leading to errors and the need for casting.', "The processing library's simplification of Java has overlooked the existence and significance of the data type double, resulting in challenges when dealing with data type conversion.", 'Adjusting the increment value significantly impacts the visual quality and chaotic randomness of the noise.', "The noise functions are designed to give a number between -1 and 1, with Processing's implementation providing a value between 0 and 1.", 'Multiplying by 255 leads to vast areas of black color due to noise values less than 0 being reduced to black.', "Etienne Jacob's work with OpenSimplex noise and various techniques is referenced for exploration of possibilities beyond plain visual representation."]}