Here are the current members of the Dogwaffle3D object (as of this writting) InitZbuffer FreeZbuffer FillZbuffer ClearZbuffer ZbufferIsGood DrawZTriangles ZSort Refresh SimpleRefresh Invisible_RestoreUndo DrawCircles Circle_Feathered DrawTriangles Triangle CalculateDotProduct CalculateCrossProduct NormalizeVector ValueOfPi ValueOfR2D 'returns 180/pi ValueOfD2R 'returns pi/180 RadiansToDegrees DegreesToRadians here they are with in more detail Sub DimImage(ByVal value As Single) 'dim the image by a value between 0-1. .9 for example will dim it by 10% 'can be used to fade out or something. Sub InitZbuffer() Sub FreeZbuffer() Sub ClearZbuffer() Sub FillZbuffer(value) 'sets the zbuffer to a value. This is usefull for clipping anything beyond that value 'if you do not set a value in the zbuffer, you will not see any ztriangles. Function GetZbuffer() As Variant Sub ClearBuffer() 'different from the dogwaffle function in that it does not refresh the display. Sub ZSort(ByVal X As Single, ByVal Y As Single, ByVal z As Single, ByRef points As Variant, ByVal count As Long) 'z sorts an array of points in relation to a point in space (probably a camera) Sub Refresh() Sub SimpleRefresh() 'refreshes the main window, bypassing some options such as updating the layers panel and thumbnail icon and titlebar information 'for a somewhat faster screen refresh. Good if you need to update the screen many times in a loop, 'but you should call a regular refresh when you are finished. Sub Invisible_RestoreUndo() 'different than regular restore undo in that it does not change the undo pointer. It just copies the undo buffer into the main buffer 'and doesn't copy the alpha 'this is intended to be used with the 3d class to restore to original buffer so it can be painted on again and again. Sub DrawCircles(ByRef Circles As Variant, ByVal count As Long) 'use an 2d array of single -- TriangleArray(7,count-1) as long 'cx,cy,rad,feather,r,g,b,a 'repeat. Function CombineMatrix(Matrix1 As Variant, matrix2 As Variant) As Variant Function CalculateDotProduct(x0 As Single, y0 As Single, z0 As Single, x1 As Single, y1 As Single, z1 As Single) As Single Sub NormalizeVector(X As Single, Y As Single, z As Single) Function ValueOfPi() As Single Function RadiansToDegrees(ByVal R As Single) As Single Function DegreesToRadians(d) As Single