It is very awesome it is do fast and I love the IDE,the only thing that is missing is the dot,box,line commands.
+ Code Snippetrem This is all Lower Logics Code,i only converted it
SetVirtualResolution(960,640)
global li
global dim ls[1000]
global onls
li=loadimage("dot.png")
for x=1 to 1000
ls[x]=createsprite(li)
next x
type vec3
x as float
y as float
z as float
endtype
type vecvec3
x as vec3
y as vec3
z as vec3
endtype
type camera_type
angle as vec3
axis as vecvec3
position as vec3
fov as float
aspect_ratio as float
endtype
global camera as camera_type
camera.fov=80
camera.aspect_ratio=(1.0*getvirtualwidth())/getvirtualheight()
addvirtualjoystick (1,890,590,100)
addvirtualjoystick (2,50,590,100)
do
onls=1
for x=1 to 1000
setspritevisible(ls[onls],0)
next x
print("FPS:"+str(screenfps()))
cy#=cy#+getvirtualjoystickx(1)
cx#=cx#+getvirtualjoysticky(1)
camera.angle.y=cy#
camera.angle.x=cx#
update_camera()
zmove#=-getvirtualjoysticky(2)*0.1
xmove#=getvirtualjoystickx(2)*0.1
camera.position.x=camera.position.x+camera.axis.z.x*zmove#
camera.position.y=camera.position.y+camera.axis.z.y*zmove#
camera.position.z=camera.position.z+camera.axis.z.z*zmove#
camera.position.x=camera.position.x+camera.axis.x.x*xmove#
camera.position.y=camera.position.y+camera.axis.x.y*xmove#
camera.position.z=camera.position.z+camera.axis.x.z*xmove#
if camera.position.x<-30 then camera.position.x=-30
if camera.position.y<-30 then camera.position.y=-30
if camera.position.z<-30 then camera.position.z=-30
if camera.position.x>30 then camera.position.x=30
if camera.position.y>30 then camera.position.y=30
if camera.position.z>30 then camera.position.z=30
for x=-6 to 6 step 6
for y=-6 to 6 step 6
for z=-6 to 6 step 6
draw_line(-1+x,0+y,1+z,1+x,0+y,1+z,2,)
draw_line(-1+x,0+y,3+z,1+x,0+y,3+z,2)
draw_line(-1+x,2+y,1+z,1+x,2+y,1+z,2)
draw_line(-1+x,2+y,3+z,1+x,2+y,3+z,2)
draw_line(-1+x,0+y,1+z,-1+x,2+y,1+z,2)
draw_line(-1+x,0+y,3+z,-1+x,2+y,3+z,2)
draw_line(-1+x,0+y,1+z,-1+x,2+y,1+z,2)
draw_line(-1+x,0+y,3+z,-1+x,2+y,3+z,2)
draw_line(1+x,0+y,1+z,1+x,2+y,1+z,2)
draw_line(1+x,0+y,3+z,1+x,2+y,3+z,2)
draw_line(1+x,0+y,1+z,1+x,2+y,1+z,2)
draw_line(1+x,0+y,3+z,1+x,2+y,3+z,2)
draw_line(-1+x,0+y,1+z,-1+x,0+y,3+z,2)
draw_line(1+x,0+y,1+z,1+x,0+y,3+z,2)
draw_line(-1+x,2+y,1+z,-1+x,2+y,3+z,2)
draw_line(1+x,2+y,1+z,1+x,2+y,3+z,2)
next z
next y
next x
Sync()
loop
function update_camera()
xx0#=1 : xy0#=0 : xz1#=0 : yx0#=0 : yy0#=1 : yz1#=0 : zx2#=0 : zy1#=0 : zz1#=1
xx2#=xx0#*cos(camera.angle.z):xy1#=xx0#*sin(camera.angle.z)
yx2#=-yy0#*sin(camera.angle.z):yy1#=yy0#*cos(camera.angle.z)
xy2#=xy1#*cos(camera.angle.x)-xz1#*sin(camera.angle.x)
xz2#=xz1#*cos(camera.angle.x)+xy1#*sin(camera.angle.x)
yy2#=yy1#*cos(camera.angle.x)-yz1#*sin(camera.angle.x)
yz2#=yz1#*cos(camera.angle.x)+yy1#*sin(camera.angle.x)
zy2#=zy1#*cos(camera.angle.x)-zz1#*sin(camera.angle.x)
zz2#=zz1#*cos(camera.angle.x)+zy1#*sin(camera.angle.x)
camera.axis.x.x=xx2#*cos(camera.angle.y)+xz2#*sin(camera.angle.y)
camera.axis.x.y=xy2#
camera.axis.x.z=xz2#*cos(camera.angle.y)-xx2#*sin(camera.angle.y)
camera.axis.y.x=yx2#*cos(camera.angle.y)+yz2#*sin(camera.angle.y)
camera.axis.y.y=yy2#
camera.axis.y.z=yz2#*cos(camera.angle.y)-yx2#*sin(camera.angle.y)
camera.axis.z.x=zx2#*cos(camera.angle.y)+zz2#*sin(camera.angle.y)
camera.axis.z.y=zy2#
camera.axis.z.z=zz2#*cos(camera.angle.y)-zx2#*sin(camera.angle.y)
endfunction
function draw_line(x0#,y0#,z0#,x1#,y1#,z1#,width)
x0#=x0#-camera.position.x:y0#=y0#-camera.position.y:z0#=z0#-camera.position.z
x1#=x1#-camera.position.x:y1#=y1#-camera.position.y:z1#=z1#-camera.position.z
x00#=x0#*camera.axis.x.x+y0#*camera.axis.x.y+z0#*camera.axis.x.z
y00#=x0#*camera.axis.y.x+y0#*camera.axis.y.y+z0#*camera.axis.y.z
z00#=x0#*camera.axis.z.x+y0#*camera.axis.z.y+z0#*camera.axis.z.z
if z00#<=0 then exitfunction
x0=(x00#/z00#)/tan(camera.fov*0.5)*getvirtualwidth()*0.5+getvirtualwidth()*0.5
y0=(0-y00#/z00#)/tan(camera.fov*0.5)*camera.aspect_ratio*getvirtualheight()*0.5+getvirtualheight()*0.5
x10#=x1#*camera.axis.x.x+y1#*camera.axis.x.y+z1#*camera.axis.x.z
y10#=x1#*camera.axis.y.x+y1#*camera.axis.y.y+z1#*camera.axis.y.z
z10#=x1#*camera.axis.z.x+y1#*camera.axis.z.y+z1#*camera.axis.z.z
if z10#<=0 then exitfunction
x1=(x10#/z10#)/tan(camera.fov*0.5)*getvirtualwidth()*0.5+getvirtualwidth()*0.5
y1=(0-y10#/z10#)/tan(camera.fov*0.5)*camera.aspect_ratio*getvirtualheight()*0.5+getvirtualheight()*0.5
line(x0,y0,x1,y1,width)
endfunction
Rem added my on line function
function line(x,y,x2,y2,width)
dx#=(x +x2 )/2.0
dy#=(y + y2)/2.0
dist#=sqrt((x2-x)*(x2-x)+(y2-y)*(y2-y) )
ang#= acos( (y2-y)/dist# )
if (x2-x )>0 then ang#=-ang#
setspritesize(ls[onls],dist#,width)
setspriteoffset(ls[onls],dist#/2,width/2)
setspritepositionbyoffset(ls[onls],dx#,dy#)
setspriteangle(ls[onls],ang#+90)
setspritevisible(ls[onls],1)
onls=onls+1
endfunction