3D graphics on Haskell in 2023

This page summarizes the projects mentioned and recommended in the original post on /r/haskell

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
  • The bindings are currently source-only here. I am going to release to Hackage soon (tm), but I just haven't had the time to button it up. However, they do work great. Every game I've done for Ludum Dare except 47 (which was gloss) has used these bindings.

  • In addition, I am building a Nix library on top of haskell.nix called macaroni.nix that is gamedev-oriented and enables seamless cross-compiling from Linux to Windows. I would say it's the best option for Windows Haskell game x-compilation available today.

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • libspng

    Haskell bindings for libspng (by BurningWitness)

  • For example I to this day do not know if there's a library for reading specifically PNG files in a specific format. Yes, there's JuicyPixels which decodes a ByteString into some DynamicImage which may not even be the format I expect. This I guess is fine for most, but I don't want that, so I had to port libspng.

  • libvorbis

    Haskell binding for libvorbis, for decoding Ogg Vorbis audio files

  • And that's PNG, for reading something more hard to come by, like OggVorbis, there's just one tiny mid-level library called libvorbis. (btw does anyone know a working email of the maintainer of that package, I have an update for that too)

  • gl

    Complete raw OpenGL bindings for Haskell (by ekmett)

  • As other comments have pointed out, OpenGL isn't your issue: 4.6 came out in 2017 and both the low-level gl/OpenGLRaw as well as the mid-level OpenGL libraries are up to date if you check the timestamps. And yes, GLFW-b is the go-to library for creating windows across platforms.

  • LearnOpenGL.hs

    LearnOpenGL.com examples ported to Haskell

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts