Explore the code over at .

One 3D API to rule them all

foo3d is a simple abstraction layer for realtime 3D Games/Applications written in Haxe.

It's supposed to be a crossplatform groundlayer for more higher level 3D engines. By supplying a common set of primitives across all platforms it enables you to write less platform-specific code and actually helps you get stuff done faster.

It works on all major platforms.

foo3d doesnt make any assumptions about your project-setup. All it needs is a 3D-context in order to work. You are free to allocate a context on your own and hand it over to foo3d's renderdevice via DI. Alternatively you can use the supplied utility-classes to receive a window/canvas/stage + context to render to.


  • html5 - webgl
  • flash - stage3d
  • windows, linux & osx - opengl
  • android - gles2
  • ios - gles2


foo3d is licensed under the MIT-license.


You may install using:

haxelib git foo3d https://github.com/dazKind/foo3d


git clone https://github.com/dazKind/foo3d
haxelib dev foo3d foo3d





This sample shows how to work with basic vertex-buffers and shaders in foo3d.


This sample shows how to deal with textures.


This sample is all about cubetextures.


This sample shows a more advanced example of how to work with vertexbuffers, textures and shaders. The quake2 model format is used and split into several vertexbuffers. These are uploaded to the GPU and interpolated in the shader.


This example expands the previous samples and introduces Framebufferobjects for offscreen renderbuffers. These are used to render a fullscreen-glow.

michael bickel // foo3d // © 2014