I ended up working on parallel rep_dla and coded it according to the idea that if an area detect a point, then points will start moving. However, it only works for few iterations. 
new_rep_dla
new_rep_dla:
skip ${1=2},${2=10},${3=1},${4=0},${5=0},${6=1},${7=0}
m "dla_target_2s : n 0,1 s. c *"
m "dla_target_3s : n 0,1 s c add / 3"
m "dla_target_4s_plus : n 0,1 ts={s-1} s c add[^-1] /.. $ts *"
m "dla_target : if s==1 n 0,1 elif s==2 dla_target_2s elif s==3 dla_target_3s elif s>3 dla_target_4s_plus fi"
m "dla_check_variance : tv=0 repeat s sh. $> tv+={iv#-1} rm. if $tv u $tv return fi done u $tv"
if $4
m "dla_expand : if $5 dilate_circ $5 else rm. fi"
else
m "dla_expand : if $5 erode_circ $5 else rm. fi"
fi
include_dla_map=0
if $!==1
dla_check_variance
if ${}
dla_target
if iv#-1 include_dla_map=1 fi
else
channels 0 f 0
fi
else
include_dla_map=${"is_image_arg $7"}
world_width=${-max_w}
world_height=${-max_h}
if $include_dla_map
pass$7 0
dla_target.
if !iv#-1 include_dla_map=0 f. 0 fi
r. $world_width,$world_height,100%,100%
else
$world_width,$world_height,1,1
fi
fi
l. . f.. 0
if $1>=2 noise_poissondisk.. $1,5
else f.. x%2*y%2
fi
if $include_dla_map
f. i>.5?1
+dla_expand.
if $!==3
f[0] i#-2!=i#-1?i
rm.
else
if $4
f[0] i*(1-i#-1)
else
f[0] i*i#-1
fi
fi
if !$6
if $4
*. .001
else
replace. 0,.999
fi
fi
else
f.. "begin(
const ww=w-1;
const hh=h-1;
const cx=(w-1)/2;
const cy=(h-1)/2;
);
xx=(x/ww-.5)*2;
yy=(y/hh-.5)*2;
sqrt(xx^2+yy^2)<1?i
"
if !$4 f. 1 fi
eval "
const ww=w-1;
const hh=h-1;
const cx=round((w-1)/2);
const cy=round((h-1)/2);
i(#-2,cx,cy)=0;
i(#-1,cx,cy)=!i(#-1,cx,cy);
"
fi
extract[0] "i==1",1 channels[0] 0,1
if $4
pt_eval=max(crop(#-1,xp-4,yp-4,0,0,9,9,1,1))
if $3==0 mode=(i(#-1,xp-1,yp-1,0,0,0,2)||i(#-1,xp-1,yp+1,0,0,0,2))||(i(#-1,xp+1,yp-1,0,0,0,2)||i(#-1,xp+1,yp+1,0,0,0,2))
elif $3==1 mode=(i(#-1,xp-1,yp,0,0,0,2)||i(#-1,xp+1,yp,0,0,0,2))||(i(#-1,xp,yp-1,0,0,0,2)||i(#-1,xp,yp+1,0,0,0,2))
elif $3==2 mode=((i(#-1,xp-1,yp-1,0,0,0,2)||i(#-1,xp-1,yp+1,0,0,0,2))||(i(#-1,xp+1,yp-1,0,0,0,2)||i(#-1,xp+1,yp+1,0,0,0,2)))||((i(#-1,xp-1,yp,0,0,0,2)||i(#-1,xp+1,yp,0,0,0,2))||(i(#-1,xp,yp-1,0,0,0,2)||i(#-1,xp,yp+1,0,0,0,2)))
elif $3==3 mode=altern?(i(#-1,xp-1,yp-1,0,0,0,2)||i(#-1,xp-1,yp+1,0,0,0,2))||(i(#-1,xp+1,yp-1,0,0,0,2)||i(#-1,xp+1,yp+1,0,0,0,2)):(i(#-1,xp-1,yp,0,0,0,2)||i(#-1,xp+1,yp,0,0,0,2))||(i(#-1,xp,yp-1,0,0,0,2)||i(#-1,xp,yp+1,0,0,0,2))
fi
else
pt_eval=min(crop(#-1,xp-4,yp-4,0,0,9,9,1,1))<1
if $3==0 mode=(i(#-1,xp-1,yp-1,0,0,0,2)<1||i(#-1,xp-1,yp+1,0,0,0,2)<1)||(i(#-1,xp+1,yp-1,0,0,0,2)<1||i(#-1,xp+1,yp+1,0,0,0,2)<1)
elif $3==1 mode=(i(#-1,xp-1,yp,0,0,0,2)<1||i(#-1,xp+1,yp,0,0,0,2)<1)||(i(#-1,xp,yp-1,0,0,0,2)<1||i(#-1,xp,yp+1,0,0,0,2)<1)
elif $3==2 mode=((i(#-1,xp-1,yp-1,0,0,0,2)<1||i(#-1,xp-1,yp+1,0,0,0,2)<1)||(i(#-1,xp+1,yp-1,0,0,0,2)<1||i(#-1,xp+1,yp+1,0,0,0,2)<1))||((i(#-2,xp-1,yp,0,0,0,2)<1||i(#-1,xp+1,yp,0,0,0,2)<1)||(i(#-1,xp,yp-1,0,0,0,2)<1||i(#-1,xp,yp+1,0,0,0,2)<1))
elif $3==3 mode=altern?(i(#-1,xp-1,yp-1,0,0,0,2)<1||i(#-1,xp-1,yp+1,0,0,0,2)<1)||(i(#-1,xp+1,yp-1,0,0,0,2)<1||i(#-1,xp+1,yp+1,0,0,0,2)<1):(i(#-1,xp-1,yp,0,0,0,2)<1||i(#-1,xp+1,yp,0,0,0,2)<1)||(i(#-1,xp,yp-1,0,0,0,2)<1||i(#-2,xp,yp+1,0,0,0,2)<1)
fi
fi
f.. ":begin(
const ww=w#-1;
const hh=h#-1;
const lim_atmp=$2;
const use_altern=$3==3;
const dlmode=$4>0?1:0;
newpos_x=[-1,-1,-1,0,0,1,1,1];
newpos_y=[-1,0,1,-1,1,-1,0,1];
altern=round(u(0,1));
);
attempts=0;
cond=1;
coords=I;
xp=coords[0];
yp=coords[1];
"$pt_eval";
do(
if(!cond,break(););
if("$pt_eval",
do(
if("$mode",
i(#-1,xp%ww,yp%hh)=dlmode;
cond=0;
break();
);
pos_off=round(u(0,7));
nox=newpos_x[pos_off];
noy=newpos_y[pos_off];
xp+=nox;
yp+=noy;
);
);
,cond);
"
endl
xp,yp are x and y pixel coordinate of points.