3d graphics for Standard ML


The SML3d Project is a collection of libraries to support 3D graphics programming using Standard ML and the OpenGL graphics API. It currently requires the MLton implementation of SML and is supported on Linux, Mac OS X, and Microsoft Windows. There is also support for OpenCL.


  • [2014-09-04] ACM SIGPLAN ML Family Workshop (ML '14).

    We presented a short paper on SML3d at the ML Workshop in Gothenburg, Sweden.

  • [2011-08-11] OpenGL 4.5 announced.

    Khronos has released the OpenGL 4.5 specification.

  • [2014-05-20] SML3d progress report

    We are nearing the relaunch of the SML3d library. After an extensive overhaul of the code, SML3d is now based on the OpenGL 3.2 Core Profile (Version 4.1 support in the works). There is still work to be done in terms of getting build support and porting the example programs, but we are getting close to a relaunch. Other major changes include:

    • The GLFW library has replaced GLUT as the prefered way to interface to the underlying window system.

    • The underlying libraries for vectors, etc. have also been substantially improved and made more compatible with the buffer-centric programming model of the OpenGL Core Profile.

    • The old fixed-pipeline API (i.e., OpenGL 2.1) is no longer supported.

    • Extensive documentation is now available for many of the components of the SML3d Library. Borrowing from MLton, we are using asciidoc to generated the documentation (including these web pages). Check out the documentation page for details.

  • [2013-11-25] SML3d reboot coming soon

    After a two-year hiatus at the NSF, I am back to working on the SML3d library. I am working on a major overhaul of the library, including the following changes:

    • Switching to GLFW (from GLUT) as the default library for window management.

    • Following MLton’s lead, we are writing documentation using asciidoc (see the repository for some examples).