I reaaly love the way you taught the code. Although some lessons are complicated and difficult to understand, I still want to learn from you. Thank you so much delivering such a good souce of knowledge for me. I am a small, develoing country and have an opportunity to study with from learnin resources on TH-cam. It is worth. Wish you!!!
When I watch you, I get happy, just because you have such a wunderfull and sunny way of presentation. Just watch The coding Train when beeing depressed and all problems are gone :)
OMG! Noise-animated flies look SO real ... I'm taking their X and Y changes from their X,Y position into a 2D slice of gradient noise, with a tiny (unique) X,Y offset per fly. They fly around, but when they get close they chase each other for a brief moment. To spice up their movement I multiply their changes by a 'speed' looked up as their position in the noise, and they dart about playfully. The sudden speed changes look pretty good and keeps them interesting to watch. But here's the cool thing... When flies in a close pair are chasing each other - each looks up it's position in the 2D slice, the result they get is usually quite similar - but soon their offsets land them on different sides of a gradient peak, and they fly apart again. It's absolutely mesmerising to watch : )))))) Conversely, when each fly in a close pair are in a gradient valley, one will fly off ... but the other tries to head away but get redirected in a loop by the gradient. This causes one fly in the pair to suddenly fly off along a path... while the other hops about and then suddenly chases its partner! It's absolute genius!!! I'm changing the 2D slice with time, using a counter variable, so that their flight paths are not static. Of course, two flies at the same place, will end up synchronised forever, so ... I add a tiny little slowly oscillating offset (unique to each fly) into the Eval lookup, it stops them getting into lockstep... they'll then synchronise and desynchronise, performing some quite beautiful aerobatic chases, like real flies : )))) But they're never quite looking up in the same place, so they chase each other approximately, till the offset desynchronises them and they peel off from the chase. (I think incrementing anim by a tiny amount per fly would probably do the same thing but with less code) Anyway, it looks EXACTLY like real flies, occasionally playing 'chase'. I can't believe I've been playing with these new pets for an hour ! Useless... sure, but stunningly organic. *EDIT: Writing this got me thinking...* Next I think I'll code them so that if they get slower than some low threshold, they'll set set a boolean 'isWalking' and stop multiplying by speed (and start ignoring any deltas less than abs 0.6). This should make them look like they've landed and are just casually walking about intermittently like flies do. Then... I'm going to use mouse proximity to get them to 'fly' again. Wait for them to settle one by one, and then 'annoy' them again ... ; ) Also, I suppose a fast fly within proximity of a walking one, should also cause the walking one to switch back into flying mode too... causing the group to 'self aggitate'. So, I'll probably add that too. ... and finally, to keep it interesting, I might add a small random chance that a 'walking' fly will just switch into flying mode for no apparent reason, and upset it's neighbours. Oh... endless fun XD
I watch your videos on Perlin noise and in general i must say you rock. You have this awesome energy and just wanted to say your making a great contribution to the world. Great enthusiasm and way to inspire! You are making a difference in the world.
Hey Dan, could you post a video of your lecture someday? Im really interested to see you in 'action' and hopefully someday I might even take a class from you!
I think it's also important to note that processing's built in noise function is really using fractal brownian motion to make the noise look more realistic. It layers together multiple layers of noise which is why it may look a bit grainier/bit more realistic than the smooth open simplex noise.
A soma proporcional de vários valores aleatórios torna menos aleatório e mais 'natural' a medida que captura o universo da soma. E passamos a observar consequências de um mundo maior. Isso é bacana. Mas o desafio das diversas versões de algoritmos de noises é tentar capturar o máximo possível das dimensões fractais em tempo real, sem termos que gerar grandes massas de dados para representar cada pequena porção de uma coisa que tem seu significado num fenômeno maior. Isso gera discussões tão legais né? Eu li o livro do Mandelbrot em que ele começa falando do movimento browniano e confesso que desde que ele foi escrito já reli várias e várias vezes até essas ideias entrarem na cabeça. A coisa vai ter entrado de fato quando eu conseguir elaborar boas respostas pra justificar pras pessoas que os noises precisam ter uma lógica pra serem interpretadas pelo nosso cerebro como coisas 'naturais'. Até lá, ficarei usando 'natural' com aspas.
I wish this guy was my neighbor along with all the other smart people I want as my neighbors. It'd be like a super community of problem solvers and inventors. Every day would be exciting!
I think it would make sense to maybe try the idea out in a separate library first? We could make this a community project. Too many things to do, but I'd love to work on this!
@@TheCodingTrain There already is "noiseDetail" - adding another "noiseType" would be simple, as argument it gets an enum specifying what type of noise to produces. That way you could easily use different types of noise and use them in existing codebase.
So how come they can’t add a simplexnoise class or function in processing, it wouldn’t interfere with old stuff and would allow the option for new stuff (and they can warn people of the normal noise being deprecated, but still usable).
só pra constar: perlin noise é o que está por trás de melhorias de coisas como particles, que talvez vcs se interessem. (vcs que buscam por design de jogos ou performance em games com grandes quantidades de efeitos "realísticos") Dado que com particles a gente calcula a posição de um determinado conjunto de coisas muito pequenas, como poeira, partículas de fumaça ou mesmo o comportamento de cada indivíduo de uma multidão vista de longe, definindo características em comum a objetos em contextos variáveis Com algoritmos COMO perlin noise fazemos isso em blocos. calculando grandes massas de valores a partir do que eles tem em comum. O que chamamos de 'naturalidade' é justamente aquele comportamento que a massa de dados tem que ter para parecer terem sido geradas pelo mesmo fenômeno como ser movida pelo mesmo vento, ter batido na mesma pedra, ser iluminado pelo mesmo sol etc
did anyone else notice or feel and odd connection to Dan saying 1983 a lot? it caught my attention because it reminded of the 1984 Apple Macintosh commercial. it just interest me that year after Perlin noise came out, Apple releases a commercial in reference to the book 1984. there is probably no correlation between these two events, yet it's still pretty interesting
I loved that happy accident at 15:12! I went "woah!" as well :P Reminded me of Rorschach :P What other similar effects could you made from that? Could you make banded contours by clipping the values to say black white and two shades of grey? Maybe an RGB spectrum of six colours?
This doesn't have the same appearance as the native Processing noise because there is no octave summing taking place. See cmaher.github.io/posts/working-with-simplex-noise/ The example is written for Mr Perlin's version but is easily modified for OpenSimplex noise and produces a result that is to all intents and purposes indistinguishable from the Processing version apart from the lack of repeating artefacts.
Hi Dan im an 14 y/o boy from germany and im programming since im 11. I can only thank you a lot allready because you taught me almost all I know about programming with your videos. And right now im trying to programm rock paper scissors in processing an so far it looks good. The basic idea behind it works but im stuck with the score element wich I want to increase every time the player has won a game. In theory it looks something like this :
if (playerWon){ score++; } and after that i display the score on the screen. But the score doesnt only increase by one because its in a loop... Do you have any advice for me?? I would be soo thankfull if you could answer my question. Keep up the great work man I love your vids.
We would need to see a bit more of the code - like what the loop does and when is "playerWon" set to true. have you maybe forgotten to reset that variable to false afterwards?
I can't possibly get this to work. My Java knowledge is far too short to understand how to call the newer OpenSimplex2S library and how to get the noise values.. Please.. HELP!!
would you consider to have a series of episodes devoted to the ways of integration of processing with photoshop? i love them both but sadly they feel like two seperate worlds for me right now. if i were to see you do a project in them both though, this would be a true game changer for me.
Why dont you implement atleast a new function called simplex? that way those that have projects made with noise can choose to upgrade to using simplex or not
No idea what you refer to, but generally fractal noise or fractional brownian motion is a loop in which noises are stacked at different frequencies and amplitudes.
Hi! i'm making a litlle game in processing...But i got a problem that is i dont know how to set the coordinates to be the same on every monitor type using fullscreen...like in a 1920x1080 the coordinates are different from a 1600 x 900. Can anyone help?
if i'm not mistaken, it's impossible to patent an algorithm, rather only the implementation. so surely using the algorithm to create an alternative yet identical implementation is perfectly legal?
5 ปีที่แล้ว +1
Please make tutorial how you implement p5 project into react
I love coding, I LOVE using processing, but for some reason noise just doesn't resonate with my brain waves. Dan is my lord and saviour for all things Processing.
I recently saw a video on how water erodes the surface of a mountain/terrain. It was a real incredible video, and would love for YOU to make a video on it. I think it's really doable in p5. Here's the original video th-cam.com/video/eaXk97ujbPQ/w-d-xo.html
Who in the world even dislikes such a interesting video
The patented noise method? ;-p
I like mysteries, but not these mysteries
Watching you makes me realize how many of aspects of computer science exists apart from frontend and backend
I reaaly love the way you taught the code. Although some lessons are complicated and difficult to understand, I still want to learn from you. Thank you so much delivering such a good souce of knowledge for me. I am a small, develoing country and have an opportunity to study with from learnin resources on TH-cam. It is worth. Wish you!!!
Thanks now I can have moving gray with Java.
this absolute legend allowed me to fix my broken noise function, thanks for the video!
When I watch you, I get happy, just because you have such a wunderfull and sunny way of presentation.
Just watch The coding Train when beeing depressed and all problems are gone :)
I get happy from seeing him teach, and then depressed trying to understand the content of his teachings
@@itaysror6591 Just start coding and it will come over time.
OMG! Noise-animated flies look SO real ...
I'm taking their X and Y changes from their X,Y position into a 2D slice of gradient noise, with a tiny (unique) X,Y offset per fly. They fly around, but when they get close they chase each other for a brief moment. To spice up their movement I multiply their changes by a 'speed' looked up as their position in the noise, and they dart about playfully. The sudden speed changes look pretty good and keeps them interesting to watch.
But here's the cool thing...
When flies in a close pair are chasing each other - each looks up it's position in the 2D slice, the result they get is usually quite similar - but soon their offsets land them on different sides of a gradient peak, and they fly apart again.
It's absolutely mesmerising to watch : ))))))
Conversely, when each fly in a close pair are in a gradient valley, one will fly off ... but the other tries to head away but get redirected in a loop by the gradient. This causes one fly in the pair to suddenly fly off along a path... while the other hops about and then suddenly chases its partner! It's absolute genius!!!
I'm changing the 2D slice with time, using a counter variable, so that their flight paths are not static.
Of course, two flies at the same place, will end up synchronised forever, so ...
I add a tiny little slowly oscillating offset (unique to each fly) into the Eval lookup, it stops them getting into lockstep... they'll then synchronise and desynchronise, performing some quite beautiful aerobatic chases, like real flies : )))) But they're never quite looking up in the same place, so they chase each other approximately, till the offset desynchronises them and they peel off from the chase.
(I think incrementing anim by a tiny amount per fly would probably do the same thing but with less code)
Anyway, it looks EXACTLY like real flies, occasionally playing 'chase'. I can't believe I've been playing with these new pets for an hour !
Useless... sure, but stunningly organic.
*EDIT: Writing this got me thinking...*
Next I think I'll code them so that if they get slower than some low threshold, they'll set set a boolean 'isWalking' and stop multiplying by speed (and start ignoring any deltas less than abs 0.6). This should make them look like they've landed and are just casually walking about intermittently like flies do. Then... I'm going to use mouse proximity to get them to 'fly' again. Wait for them to settle one by one, and then 'annoy' them again ... ; )
Also, I suppose a fast fly within proximity of a walking one, should also cause the walking one to switch back into flying mode too... causing the group to 'self aggitate'. So, I'll probably add that too.
... and finally, to keep it interesting, I might add a small random chance that a 'walking' fly will just switch into flying mode for no apparent reason, and upset it's neighbours.
Oh... endless fun XD
I watch your videos on Perlin noise and in general i must say you rock. You have this awesome energy and just wanted to say your making a great contribution to the world. Great enthusiasm and way to inspire! You are making a difference in the world.
I love your videos, you'r my inspiration and overall quality is better with every film. 👌🏼👌🏼
seventeen minutes of a juicy piece explaining a coding technique in P3 with some pearls of small informational bits is so nice to absorb
Wow, Worley noise looks cool! I will look into it!
Thank sir, I've waited it for a long time
Could you Please do the 3d terrain in this method
Coming soon!
@@TheCodingTrain can you use 3d perlin (or simplex) noise to create a 3d terrain with caves and stuff
@@kushagra64 2d noise with perlin worms would be better, cause 3d perlin noise would give you very weird terrain
Hey Dan, could you post a video of your lecture someday? Im really interested to see you in 'action' and hopefully someday I might even take a class from you!
That's basically what these videos are!
Appreciate all these lessons and explanations 😊
I aspire to be as happy as you look doing this.
Cool! Thanks for the update!🙂😃
You are a very good teacher!
Thank you so much for this video!
I was wondering why it's pulsating and I thought I'm doing something wrong
Now I know how to fix it :)
I think it's also important to note that processing's built in noise function is really using fractal brownian motion to make the noise look more realistic. It layers together multiple layers of noise which is why it may look a bit grainier/bit more realistic than the smooth open simplex noise.
A soma proporcional de vários valores aleatórios torna menos aleatório e mais 'natural' a medida que captura o universo da soma. E passamos a observar consequências de um mundo maior. Isso é bacana. Mas o desafio das diversas versões de algoritmos de noises é tentar capturar o máximo possível das dimensões fractais em tempo real, sem termos que gerar grandes massas de dados para representar cada pequena porção de uma coisa que tem seu significado num fenômeno maior.
Isso gera discussões tão legais né? Eu li o livro do Mandelbrot em que ele começa falando do movimento browniano e confesso que desde que ele foi escrito já reli várias e várias vezes até essas ideias entrarem na cabeça. A coisa vai ter entrado de fato quando eu conseguir elaborar boas respostas pra justificar pras pessoas que os noises precisam ter uma lógica pra serem interpretadas pelo nosso cerebro como coisas 'naturais'. Até lá, ficarei usando 'natural' com aspas.
I wish this guy was my neighbor along with all the other smart people I want as my neighbors. It'd be like a super community of problem solvers and inventors. Every day would be exciting!
The noise video are great! Really been enjoying them alot
Btw Ken Perlin’s Patent for simplex noise has expired now !
🤯
You're the man, Dan
Using the year to select the noise mode is a great idea. It's like an automatic history lesson while hackin some noise 😁
Can you show us how to implement the marching squares or marching cubes algorithm?
Yes I want to do this one! Vote/suggest here: github.com/CodingTrain/Rainbow-Topics/issues
The video on marching squares is now live.
I hope the developers of Processing listen to Dan's thoughts and they add various types of noises to noiseType function
Would be great.
And also they should update the description in the reference - cause it is not using perlin noise.
I think it would make sense to maybe try the idea out in a separate library first? We could make this a community project. Too many things to do, but I'd love to work on this!
@@TheCodingTrain There already is "noiseDetail" - adding another "noiseType" would be simple, as argument it gets an enum specifying what type of noise to produces.
That way you could easily use different types of noise and use them in existing codebase.
Oh good, I was actually looking into this recently when i noticed the weird behavior of 3d Perlin noise.
Great video once more
Love from Italy!!!! ❤️❤️❤️❤️ 🇮🇹 #LoveFromItaly10
So how come they can’t add a simplexnoise class or function in processing, it wouldn’t interfere with old stuff and would allow the option for new stuff (and they can warn people of the normal noise being deprecated, but still usable).
só pra constar: perlin noise é o que está por trás de melhorias de coisas como particles, que talvez vcs se interessem. (vcs que buscam por design de jogos ou performance em games com grandes quantidades de efeitos "realísticos")
Dado que com particles a gente calcula a posição de um determinado conjunto de coisas muito pequenas, como poeira, partículas de fumaça ou mesmo o comportamento de cada indivíduo de uma multidão vista de longe, definindo características em comum a objetos em contextos variáveis
Com algoritmos COMO perlin noise fazemos isso em blocos. calculando grandes massas de valores a partir do que eles tem em comum. O que chamamos de 'naturalidade' é justamente aquele comportamento que a massa de dados tem que ter para parecer terem sido geradas pelo mesmo fenômeno como ser movida pelo mesmo vento, ter batido na mesma pedra, ser iluminado pelo mesmo sol etc
did anyone else notice or feel and odd connection to Dan saying 1983 a lot? it caught my attention because it reminded of the 1984 Apple Macintosh commercial. it just interest me that year after Perlin noise came out, Apple releases a commercial in reference to the book 1984. there is probably no correlation between these two events, yet it's still pretty interesting
I loved that happy accident at 15:12! I went "woah!" as well :P Reminded me of Rorschach :P
What other similar effects could you made from that? Could you make banded contours by clipping the values to say black white and two shades of grey? Maybe an RGB spectrum of six colours?
You can literally do anything
The method explained in the archive link actually is "value noise", not perlin noise.
Thank you for making these videos! My downloads page is full of your videos cuz they are really good xD
thanks for the video. Patenting algorithms is such a scummy thing, its like patenting logic and telling people they cant think in this way.
2:24 damn i thought you were gonna craft something
"wtf is the recipe for a piston"
“ComputTORR!” 5:31
In one day this man gets 500 likes
This doesn't have the same appearance as the native Processing noise because there is no octave summing taking place.
See cmaher.github.io/posts/working-with-simplex-noise/
The example is written for Mr Perlin's version but is easily modified for OpenSimplex noise and produces a result that is to all intents and purposes indistinguishable from the Processing version apart from the lack of repeating artefacts.
Please do a video on worley noise It looks so cool
Can u make the library of Babel? Shown by VSAUCE
You should make a Minecraft-like terrain using the Perlin Noise function
"Stefan *Gustaffson* "
*Linkoping University, Sweden.*
This reminds me of something....
It’s 2022 now. I’m wondering if the Simplex noise patent still holds or can it be used freely now.
The mistake at the 15:12 mark reminds me of Rorschach's mask
Hi Dan im an 14 y/o boy from germany and im programming since im 11. I can only thank you a lot allready because you taught me almost all I know about programming with your videos.
And right now im trying to programm rock paper scissors in processing an so far it looks good. The basic idea behind it works but im stuck with the score element wich I want to increase every time the player has won a game. In theory it looks something like this :
if (playerWon){
score++;
}
and after that i display the score on the screen. But the score doesnt only increase by one because its in a loop... Do you have any advice for me??
I would be soo thankfull if you could answer my question. Keep up the great work man I love your vids.
We would need to see a bit more of the code - like what the loop does and when is "playerWon" set to true.
have you maybe forgotten to reset that variable to false afterwards?
@@ABaumstumpf Yes I did thank you very much ;)
I can't possibly get this to work. My Java knowledge is far too short to understand how to call the newer OpenSimplex2S library and how to get the noise values.. Please.. HELP!!
Wonderful! 😍
Can you create tutorials about fluid simulation and how to display liquid on the screen please?
You can check out this video thecodingtrain.com/CodingChallenges/132-fluid-simulation.html
Grab a coffee, start to watch Dan's Playlist, get very excited, knock your coffee over your laptop, voila - liquid on the screen! 😜
Can you explain Q-learning in processing please?
Did you ever do that 2D Noise loop using 4 Dimensions? I couldn't find it if you did.
Just add a simplex() function in Processing for simplex noise.
Challenge where you make the whispy sphere thing?
would you consider to have a series of episodes devoted to the ways of integration of processing with photoshop?
i love them both but sadly they feel like two seperate worlds for me right now.
if i were to see you do a project in them both though, this would be a true game changer for me.
I am having trouble with block to block detection in processing I watched the video and it didn’t help me😢
Your videos are also kinda 1983 xD (just a joke not saying that the vids are bad, they are great !)
I could not agree more!
Yup, that's one of the best things about the channel! :P
you are awesome
So I implemented perlin noise in assembly now I should implement OpenSimplex noise in assembly
Ouch, assembly. That must be painful to code in
Any idea why pixelDensity(2); makes this not work on a high-res display? It scales it as half height, and doubles the entire sketch next to itself.
What are some real-world use-cases for simplex noise and Perlin noise?
omg worley noise is phenominal
Why dont you implement atleast a new function called simplex? that way those that have projects made with noise can choose to upgrade to using simplex or not
Did you ever do anything with Worley noise?
Looks like the surface of the Sun, bubbley mess. Nice.
Does anyone know which algorithm the 'fractal noise' effect in after effects uses?
No idea what you refer to, but generally fractal noise or fractional brownian motion is a loop in which noises are stacked at different frequencies and amplitudes.
Couldn't they keep the original noise method and additionally implement a simplex noise method in processing/p5js?
In other words: why not both?
Hi!
i'm making a litlle game in processing...But i got a problem that is i dont know how to set the coordinates to be the same on every monitor type using fullscreen...like in a 1920x1080 the coordinates are different from a 1600 x 900.
Can anyone help?
Maybe you could make it work using translate(width / 2, height / 2) so that (0, 0) is always the center of the screen
You could translate to a variable point, like width/2, height/2 and base your coordinates from that point
You might get some great help at stackoverflow.
@@Derbucher I'm going to check that
if i'm not mistaken, it's impossible to patent an algorithm, rather only the implementation. so surely using the algorithm to create an alternative yet identical implementation is perfectly legal?
Please make tutorial how you implement p5 project into react
Well, this may ultimately disappoint you but... th-cam.com/video/OvpbTeAYQEU/w-d-xo.html
Can you do interpolations using the sinkhorn distance?
You could use this to make a cow skin graphic! Just round everything less than 0 to 0 and everything else to 1
Were i found a simple noise generetor? Like your
anyone came here for the flow field but didn't find it?
it looks like a tv program on old TV which didnt work because of your location
Is it possible to make it a screensaver? I mean, save the program to use as screen saver on Linux.
How long does patents usually last? 🤔 it's been past 10 years, I feel like simplex should be public.
I love coding, I LOVE using processing, but for some reason noise just doesn't resonate with my brain waves. Dan is my lord and saviour for all things Processing.
Is anyone else having an issue where the seed is always the same?
we stared of with 1D perlin noise. Then went to 2D. I wonder can we generate n dimensional Perlin noise.
4:21 i guess its possible
Is there a Daniel Shiffman for openFrameworks?
There's only one Daniel Shiffman! 🤩
Beard game is strong af
Today is screwed
. Have a nice day
my noise is not moving...help?
did you ever sort this out?
Can you look into Cuda or OpenCL?
I recently saw a video on how water erodes the surface of a mountain/terrain. It was a real incredible video, and would love for YOU to make a video on it. I think it's really doable in p5. Here's the original video th-cam.com/video/eaXk97ujbPQ/w-d-xo.html
I just realized I am not a very happy person.
Worley noise looks creepy
Was the classic Perlin noise not patented?
Hi Jack! I don't believe it was.
13:50 PRECISION
Has anyone ever seen Daniel and Babish at the same time?
Daniel looks like Babish put on a wig and glasses. Coding with Babish.
Hahaa hello 💙💛💜💚❤💙💛💜💚❤😜 🌈
muaah
dude just took a dump on ken when releasing opensimplex
Reminds me of the skyrim cut scene
The website of a computer graphics researcher is a plain HTML.
Irony? 😂😂
PHP is lava
Third
First?
Edit: OMG! I am....
Gimme a heart....
27,972th?
OMG! I am...
Gimme a heart...
noiseMode(1983) lmaoo
what was that all about ? I don't get it..
Talks about a free version of an algorithm that is used to create special effects in movies.
wow you look like you are in you're mid 20's