The jparasol package implements a minimalist pure-functional shading language. The language provides an offline compiler that automatically produces GLSL source code for every version of OpenGL including ES1, ES3, and 2.1-4.4. The language emphasizes correctness, predictability, portability, and auditability. It provides a simple module system to prevent problems caused by the chaotic and endlessly polluted namespace of GLSL, and allows for shader code to be separated into reusable libraries.

Parasol example


  • Brutally minimal: Function application, conditionals, record expressions. No operators. No overloading.
  • Clean and simple module system, for safe namespacing. No more preprocessing!
  • Produces multiple GLSL sources as output; write your shaders once in Parasol and automatically support every available GLSL version!
  • Produces efficient and readable GLSL source as output.
  • Nominal typing, with complete static checking and partial inference.
  • Full language specification with operational semantics and type rules.
  • ISC license.