2. Difúzia obmedzená agregáciou (DLA)

from pygame import *
from random import *

WIDTH = 400
HEIGHT = 400
R = 4

BLACK = Color(0, 0, 0)
WHITE = Color(255, 255, 255)
TREE_COLOR = Color(85, 230, 205)

seed = Vector2([WIDTH / 2, HEIGHT / 2])
tree = [seed]

screen = display.set_mode([WIDTH, HEIGHT])
while True:
    walker = Vector2([randrange(WIDTH), randrange(HEIGHT)])
    stuck = False

    while not stuck:
        for node in tree:
            if walker.distance_squared_to(node) < 4*R*R:
                stuck = True
                break

        velocity = Vector2()
        velocity.from_polar((1, randrange(360)))

        walker += velocity
        walker.x = min(WIDTH, max(0, walker.x))
        walker.y = min(HEIGHT, max(0, walker.y))

    tree.append(walker)

    for node in tree:
        draw.circle(screen, TREE_COLOR, (int(node.x), int(node.y)), R)
    display.update()
    time.delay(16)