WaveFront: Parsers and utilities for the OBJ WaveFront 3D model format

[ graphics, library, mit ] [ Propose Tags ]




Automatic Flags

Enable warnings


Enable optimisations


Enable profiling options


Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info


Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees


  • No Candidates
Versions [RSS],,,,
Dependencies attoparsec, base (>=4 && <5), Cartesian, containers, either, filepath, lens (<=4.14), linear, QuickCheck, text, transformers, vector [details]
License MIT
Author Jonatan H Sundqvist
Maintainer jonatanhsundqvist@gmail.com
Category Graphics
Source repo head: git clone https://github.com/swiftsnamesake/3DWaves
Uploaded by SwiftsNamesake at 2016-10-18T07:48:01Z
Reverse Dependencies 1 direct, 1 indirect [details]
Downloads 3260 total (11 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs uploaded by user [build log]
Last success reported on 2016-10-18 [all 1 reports]

Readme for WaveFront-

[back to package description]


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
  • GHCi support (added .ghci file, works quite well)
  • 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