Live Stream #56: Poisson Disc Sampling and Diffusion-Limited Aggregation

In this Live Stream, I examine algorithms that distribute circles in p5.js a p5.js sketch randomly. In the first part, I try out a technique called “Poisson Disc Sampling”. Afterwards, I tackle Diffusion-Limited Aggregation.

32:15 – Poisson Disc Sampling
1:43:34 – Diffusion-limited aggregation
2:45:29 – Addendum
2:46:34 – Conclusion

Support this channel on Patreon:

Send me your questions and coding challenges!:


Links discussed in this video:
Atom Live Server Package:
Poisson Disc Sampling Reference:
Poisson Disc Sampling Paper:
Diffusion-Limited Aggregation Wikipedia:
Paul Bourke’s DLA reference:

Source Code for the Video Lessons:


For More Live Streams:

For More Coding Challenges:

Help us caption & translate this video!






20 responses to “Live Stream #56: Poisson Disc Sampling and Diffusion-Limited Aggregation”

  1. Jordan Shackelford Avatar

    Does liking videos increase their visibility? I download videos en masse and it slows me down when I have to like each one. Don't want to be wasting my time

  2. 小安 Avatar

    thank you for your tutorials. This is my dla

  3. Bri S Avatar

    Hi Dan! I worked through your intro to p5 videos and I see you're on atom now! I'm just figuring things out still, how do you run script in atom? Is there a plug in I am missing that you'd recommend?

  4. 小安 Avatar

    I also read the GDC03 and then made a simple fluid solver in houdini

  5. alvaro obyrne Avatar

    Hi. I believe there's no need to move the walkers multiple times (iterations) within the draw function, just make them move quicker, in other words, make their random changes bigger. I believe this would increase performance. Also, you might want to color the tree denpending on distance to the center of canvas. Thanks.

  6. TheGamingRail Avatar

    do you have any videos for beginners

  7. Joshua Spaul Avatar

    Great video as always but have a couple errata in Poisson Disc Sampling:
    Choosing a random point in a spherical annulus uniformly requires more care as you choose angle then radius meaning the points near the inner surface are more likely to be chosen as than equivalent points near the outside surface (consider what is possible angles are required to get a inner square compared to the outer square along the horizontal).
    Also when checking nearby cells, you only checked the adjacent cells but need to check the 5×5 square (except corners) around the point as the width of the cell w = r/sqrt(2) ~ r/1.41, so depending on the points position in the square extra cell needs to be checked i.e. if a point is near the right of the cell it needs to be have at-least the cell two to the right checked and the ones above and below it.

  8. Theo M Avatar

    I can't find the source code of thisin any of the github folders. Please help!

  9. Francisco Hanna Avatar

    Hi Daniel. Kind of a off-topic question, but do you know if there's a MidiBus library equivalent in p5js? Is it possible to control some parameters of a p5js sketch trough a Midi controller? Thanks in advance

  10. Jakob Scharf Avatar

    He is like "Ups cols is not defined" xD '"Ups we should make them a global variable"

  11. yonatan linik Avatar

    i love that his head is cut in half

  12. algc19 Avatar

    I knew html and very basic java when I started to watch your videos just for fun. One day I said to myself 'why don't you give it a try?' and everything seemed easy, like if I had been doing it for a year. I learnt without noticing it and I love it. Now I can follow the examples you make and make my own projects

  13. Darth Torus Avatar

    Oh god. 2:12:30 Please use a switch statement. It's so much easier.


    Where do you stream?

  15. Noel Earl Watson Avatar

    Is const and let valid in p5.js yet?

  16. laith ele Avatar

    Hello daniel… could you explain how we can bouncing ball using ES2015 … I have to create pong game using ES2015 … and I have some point not clear …

  17. DNJRDN Avatar

    Hey Daniel, just wanted to say that you have quickly become my favourite youtuber, love your long videos, love your genuine and personal attitude to your videos and have learn so much from your interesting and free formed videos. Personally I'm very surprised that your YouTube channel doesn't have more exposure, I'll be spreading the word myself DW !! 🙂 keep up the amazing work !

  18. Darth Torus Avatar

    "Take a look, it's in Dan's book! Coding Rainbow.."

  19. t00bed Avatar

    I don't mind when things go wrong with the code. Watching the debugging process is just as useful a thing to learn as we all have to go through it.

  20. Nicolas Forstner Avatar

    There are more airplanes in the sea than submarines in the sky.

Leave a Reply

Your email address will not be published. Required fields are marked *