Parsers and utilities for the OBJ WaveFront 3D model format

Stackage Nightly 2015-12-14:
Latest on Hackage:

See all snapshots WaveFront appears in

MIT licensed by Jonatan H Sundqvist


This is a personal project, still in its infancy, and I don’t expect anybody else to use it. Should somehow happen upon this site, I would however welcome their support and feedback.


Wavefront OBJ parsers and related amenities. Includes purely functional parsers and IO utilities for loading models from files.

Supports the basic MTL and OBJ attributes. My ambition is to add full support for the entire specification.

Please note that this package is completely unaware of rendering and graphics. The data structures generated by the parsers are oblivious to technologies such as Direct3D and OpenGL; creating eg. GPU buffers is up to the client.

I may at some point implement the FFI and add direct OpenGL support, in separate modules.



Jonatan H Sundqvist


See source files (.hs) for additional items.

  • [ ] Performance (currently, it’s atrocious) (…) - Parallelism (…)
  • [ ] Add sample models and demos (…)
  • [ ] Add profiling and checks (cf. QuickCheck) - Travis-CI integration
  • [x] GHCi support (added .ghci file, works quite well)
  • [x] Proper ticket system (here)
  • [ ] Polymorphism (…)
  • [ ] Querying - Asking questions about a particular model (bounds, storage, number of faces, material types, etc.) - Asking questions about the OBJ and MTL formats (eg. ‘what does the various illum values mean’) - Screenshots (maybe in the wavefront-render package)
  • [ ] Serialising (eg. writing to OBJ and MTL)
  • [ ] Rendering - Create a separate package (wavefront-render) with an OpenGL backend
  • [ ] Executables - OBJ viewer (…) - Command line tool (?)
  • [ ] Foreign function interface
comments powered byDisqus