This is an Elm library for importing simple Wavefront .obj files into your WebGL application.

It is currently Elm 0.19, though the previous incarnation works for 0.18.


See the demo source.


  • Export / convert your model from Blender or other 3D content creation tool as an .obj file.
  • The default export options from Blender work fine.
  • Make sure you keep Write Normals selected.


Completely supported face types are those with vertex position, normals and optionally vertex texture coordinates. (v, vn, vt) Only a small subset of the specification is supported though - specifically:

  • Your model needs vertex normals (vn).
  • Smooth groups are ignored (s n).
  • Only tris and quads are supported. (Tris might load slightly faster)
  • No free-form curves / surfaces.
  • No material library (mtllib) support.
  • No negative indexing.