Wow, this is dead..

I guess i'll have to take things into my own hands and start a
NEW CHALLENGE!
this challenge is about
TREES
It doesnt matter how you tackle the theme. I guess it has been there before but i don't care because the possibilities are endless

Show me something realistic, weird, funny, static, moving, 2d, 3d, doesnt matter!
Try fractals for example, since trees are fractal-like objects. This is an old code from me(2007).
`` ,---------------------.
``| o7 by Valle aka Knieb |
`` `---------------------´
set display mode 1024,768,32
sync on : sync
set image colorkey 255,0,255
Center text 512,379,"Generating..." : sync
dim hm(1023) as integer ``Bodenheightmap
dim gm(1023) as integer ``Gebirgeheightmap
restart:
``Boden erzeugen
p as float
x = rnd(359) : h = 40+rnd(100) : s = 500+rnd(200) : p = -.4+rnd(80)/100.0
m as float : m = .3+(rnd(100)/100.0)
hm(0) = s+sin(x*m)*h :``500+rnd(200)
for t = 1 to 1023
rand = rnd(3)
``hm(t) = sin(t+x)*h+hm(t-1)-rand+rnd(rand*2)
hm(t) = s+p*t+sin(x*m+t)*h-rand+rnd(rand*2)
next t
``Gebirge erzeugen
x = rnd(359) : h = 60+rnd(150) : s = 400+rnd(300) : p = -.75+rnd(150)/100.0
m = .3+(rnd(100)/100.0)
gm(0) = s+sin(x*m)*h :``500+rnd(200)
for t = 1 to 1023
rand = rnd(1)
``hm(t) = sin(t+x)*h+hm(t-1)-rand+rnd(rand*2)
gm(t) = s+p*t+sin(x*m+t)*h-rand+rnd(rand*2)
next t
global snowflakes = 200+rnd(300)
global dim sn(snowflakes,5) as float
global sn_index as integer : sn_index = -1
global allpasses as integer
cls 0xffffff
get image 1,0,0,1,1,1 : sprite 1,0,0,1 : set sprite 1,0,1 : hide sprite 1
cls rgb(255,0,255)
For x = 0 to 9
For y = 0 to 9
if sqrt((x-5)^2+(y-5)^2)<= 5 then dot x,y,rgb(255,255,255)
next y
next x
get image 2,0,0,9,9,1 : sprite 2,0,0,1 : set sprite 2,0,1 : hide sprite 2
``Himmel zeichnen
sx = rnd(1024) : sy = rnd(500) ``Sonnenposition
sr as float : sr= 1+(rnd(300)/100.0)``sonnenradius
lock pixels
For x = 0 to 1023
For y = 0 to 767
dist = sqrt((x-sx)^2+(y-sy)^2)/sr
r = 255-dist
g = 255-dist
b = 255-y/4
if r > 255 then r = 255
if r < 0 then r = 0
if g > 255 then g = 255
if g < 0 then g = 0
if b > 255 then b = 255
if b < 0 then b = 0
dot x,y,rgb(r,g,b)
next y
if x mod 5=0 then sync
next x
unlock pixels
color as dword
``Gebirge zeichnen
for t = 0 to 1023
lock pixels
For y = gm(t) to 768
c = 255-(y-gm(t))-10+rnd(20)
if c < 0 then g = 0
if c > 255 then g = 255
color = point(t,y)
r = rgbr(color) : g = rgbg(color) : b = rgbb(color)
r = (r+c/1.8)/2 : b = (b+c/2.7)/2 : g = (g+c/7.7)/2
if r<0:r=0:endif:if r>255:r=255:endif
if g<0:g=0:endif:if g>255:g=255:endif
if b<0:b=0:endif:if b>255:b=255:endif
dot t,y,rgb(r,g,b)
next y
unlock pixels
if t mod 5=0 then sync
next t
``Boden zeichnen
for t = 0 to 1023
lock pixels
For y = hm(t) to 768
g = 255-(y-hm(t))-10+rnd(20)
if g < 0 then g = 0
if g > 255 then g = 255
dot t,y,rgb(g/1.3,g/2.7, g/7.7)
next y
x = rnd(1023)
ink rgb(0,180+rnd(75),0),0
line x,hm(x),x-2+rnd(4),hm(x)-2-rnd(10)
unlock pixels
if t mod 5=0 then sync
next t
``Farn
ferns = 5+rnd(10)
For t = 1 to ferns
x = 20+rnd(824)
fern(x,hm(x)+10,250+rnd(40),2,50+rnd(150),4+rnd(8),-5+rnd(10),200+rnd(55))
next t
``Bäume
trees = 2+rnd(5)
For t = 1 to trees
x = 20+rnd(824)
allpasses = 9+rnd(6) : angle = 260+rnd(20)
tree(x,hm(x)+10,allpasses,angle-10+rnd(20) ,40+rnd(160),5+rnd(20))
next t
get image 3,0,0,1024,768,1
sn_vx = -2+(rnd(400)/100.0)
For t = 0 to snowflakes
snowflake(-300+rnd(1624), -10-rnd(150), sn_vx-.2+rnd(4)/10.0, 0.5+rnd(20)/10.0, 1+rnd(2))
next t
`Kontraste verbessern
get image 2, 0, 0, screen width(), screen height(), 1
increase_contrast(2)
paste image 2, 0, 0
sync
do
//paste image 3,0,0,0
``Schnee
remstart
For t = 0 to snowflakes
if sn(t,5)
inc sn(t,0), sn(t,2)-.3+rnd(6)/10.0
inc sn(t,1), sn(t,3)
if sn(t,0)=>0 and sn(t,0)<=1023
if sn(t,1)>hm(int(sn(t,0))) then sn(t,5)=0 : snowflake(-300+rnd(1624), -10-rnd(150), sn_vx-.2+rnd(4)/10.0, 0.5+rnd(20)/10.0, 1+rnd(2))
else
if sn(t,1) > 700 then sn(t,5)=0 : snowflake(-300+rnd(1624), -10-rnd(150), sn_vx-.2+rnd(4)/10.0, 0.5+rnd(20)/10.0, 1+rnd(2))
endif
if sn(t,1)>775 then sn(t,5)=0 : snowflake(-300+rnd(1624), -10-rnd(150), sn_vx-.2+rnd(4)/10.0, 0.5+rnd(20)/10.0, 1+rnd(2))
size sprite 2, sn(t,4), sn(t,4)
offset sprite 2, sn(t,4)/2, sn(t,4)/2
paste sprite 2, sn(t,0), sn(t,1)
endif
next t
remend
if scancode()<>0
if escapekey() then end else center text 512,379,"Generating..." : sync : gosub restart
endif
sync : loop
return
function tree(x as float, y as float, passes as integer, startAngle as float, height as float, thickness as integer)
local dif1 as float : dif1 = 200.0/allpasses
local dif2 as float : dif2 = 155.0/allpasses
local size as float : size = passes*1.0/allpasses
x2 = x+cos(startAngle)*height
y2 = y+sin(startAngle)*height
if size*thickness < 1.5
ink rgb(passes*dif1,255-passes*dif2,0),0
line x,y,x2,y2
else
size sprite 1,height+1,size*thickness
offset sprite 1,0,size*5
rotate sprite 1, startAngle
set sprite diffuse 1,passes*dif1,255-passes*dif2,0
paste sprite 1,x,y
if passes mod 2 = 0 then sync
endif
if passes > 0
tree(x2,y2,passes-1,wrapvalue(startAngle-13-rnd(30)),height*((50+rnd(30))/100.0),thickness)
tree(x2,y2,passes-1,wrapvalue(startAngle+13+rnd(30)),height*((50+rnd(30))/100.0),thickness)
endif
endfunction
function fern(x as float,y as float,angle as float,passes,length as float,newferns, angleinc, color)
if passes = 0
ink rgb(0,color,0),0
x2 = x+cos(angle)*length : y2 = y+sin(angle)*length
line x,y,x2,y2
if rnd(20) = 1
ink rgb(255,0,0),0
circle x2,y2,1
endif
endif
if passes > 0
oldx = x : oldy = y
newangle = angle
partlength = length/newferns :``((y2-y)/(newferns)*1.0)
ferncolor = color
For t = 1 to newferns-1
ferncolor = ferncolor*.99
if ferncolor < 20 then ferncolor = 20
ink rgb(0,ferncolor,0),0
inc newangle, angleinc
newx = oldx+cos(newangle)*partlength
newy = oldy+sin(newangle)*partlength
line oldx,oldy,newx,newy
oldx = newx : oldy = newy
``newx = x+t*((x2-x)/(newferns)*1.0)
``newy = y+t*((y2-y)/(newferns)*1.0)
fern(newx,newy,wrapvalue(newangle-94+rnd(8)),passes-1,length*.5-length*(t*.5/newferns),newferns,angleinc-2+rnd(4),color-5)
fern(newx,newy,wrapvalue(newangle+86+rnd(8)),passes-1,length*.5-length*(t*.5/newferns),newferns,angleinc-2+rnd(4),color-5)
next t
endif
endfunction
function snowflake(x,y,vx,vy,size)
inc sn_index : if sn_index > snowflakes then sn_index = 0
sn(sn_index,0) = x
sn(sn_index,1) = y
sn(sn_index,2) = vx
sn(sn_index,3) = vy
sn(sn_index,4) = size
sn(sn_index,5) = 1
endfunction
function increase_contrast(img)
local r as float
local g as float
local b as float
local bp as float
local gp as float
local rp as float
`--
mem1 = get_free_memblock()
make memblock from image mem1, img
width = memblock dword(mem1, 0)
height = memblock dword(mem1, 4)
mem2 = get_free_memblock()
make memblock mem2, get memblock size(mem1)
copy memblock mem1, mem2, 0, 0, 12
if rnd(2)=1 then bp = 0.1
if rnd(2)=1 then gp = 0.1
if rnd(2)=1 then rp = 0.1
for x = 0 to width-1
for y = 0 to height-1
pos = 12+(y*width+x)*4
b = memblock byte(mem1, pos)
b = b*1.0/255 : b = b*b*1.6+bp
if b > 1 then b = 1
b = b*255
write memblock byte mem2, pos, int(b)
g = memblock byte(mem1, pos+1)
g = g*1.0/255 : g = g*g*1.6+gp
if g > 1 then g = 1
g = g*255
write memblock byte mem2, pos+1, int(g)
r = memblock byte(mem1, pos+2)
r = r*1.0/255 : r = r*r*1.6+rp
if r > 1 then r = 1
r = r*255
write memblock byte mem2, pos+2, int(r)
copy memblock mem1, mem2, pos+3, pos+3, 1
next y
next x
delete memblock mem1
delete image img
make image from memblock img, mem2
delete memblock mem2
endfunction
function get_free_memblock()
repeat
inc index
until memblock exist(index)=0
endfunction index
I think i'll also do something new for this compo
Some more Inspiration:

