Fragmentarium 0.9.1 (“Chiaroscuro”) Released

I’ve released a new build of Fragmentarium, version 0.9.1 (“Chiaroscuro”).
It can be downloaded at Github (as of now only Windows builds are available).

The usual caveats apply: Fragmentarium is very much work in progress, and is best suited for people who like to experiment with code.

Dual buffers

The main new feature is support for dual buffers and dual shaders. The front buffer is swapped after each frame to the backbuffer, which can be accessed as: ‘uniform sampler2D backbuffer;’.

Buffers can be created as either 8-bit or 16-bit integer, or 32-bit float. The new buffers makes it possible to create accumulated ray tracing, high quality AA for 2D systems, and many types of feedback systems. The easiest way to start exploring these features is by looking at the new tutorials (see below).


Minor improvements:

  • Changed UI a bit to make it easier to change from automatic to continuous rendering.
  • Added context menu option to insert preset based on current settings.
  • The syntax for using ‘2D.frag’ is simpler now. Just implement: “vec3 color(vec2 c);”
  • Bugfix: Fixed error in 2D.frag, where changing aspect ratio would mess up viewport translation.
  • Bugfix: Fixed some errors in the included fragments: Noise, Tetrahedron, and several of Knighty’s examples were missing a ‘providesInit’.
  • Bugfix: Fixed specular bug in standard-raytracer.
  • Bugfix: Copying from web was sometimes weird (should now strip rich text).
  • Bugfix: Autosave files now creates a directory with output files (necessary since the #BufferShader directive broke the old ‘include all in one file’ system).


New fragments:

  • Added a new ‘tutorial’ category, with examples of many features in Fragmentarium.
  • Soft-Raytracer.frag – An example progressive (accumulated) ray-tracer. DOF using finite aperture, HDR and tonemapping, soft shadows, and multiple ray ambient occlusion, and sub-pixel jittered high-quality anti-alias. All very experimental.
  • Progressive2D.frag, Progressive2DJulia.frag – Can be used for high-quality (progressive) anti-alias of 2D systems. Uniform disk sampling, Gaussian and Box filtering, “gamma correct” averaging of samples.
  • A Quilez inspired ‘Domain Distortion’ example.
  • A dual-buffered Game of Life example.
  • Mandelbrot Averaged Stripe Coloring example.
  • Lifted Domain Coloring example (in 2D/3D), see here.
  • New ‘Theory’ category with examples of the dual number and automatic differentiation method.
  • Some great new scripts from Knighty, for polyhedrons, knots, polychora, and hyperbolic tesselations. See here and here.

ATI users

Some fragments fail on ATI cards. This seems to be due to faulty GLSL driver optimizations. A workaround is to lock the ‘iterations’ variable (click the padlock next to it). Adding a bailout check inside the main DE loop (e.g. ‘if (length(z)>1000.0) break;’) also seems to do the job. I don’t own an ATI card, so I cannot debug this without people helping.

Mac users

Some Mac users has reported problems with the last version of Fragmentarium. Again, I don’t own a Mac, so I cannot solve these issues without help.

Finally, please read the FAQ, before asking questions.

For more examples of images generated with the new version, take a look at the Flickr Fragmentarium stream.

4 thoughts on “Fragmentarium 0.9.1 (“Chiaroscuro”) Released

  1. It’s a really good software you made there. I’ve been playing with it for hours and will continue. I’ve also developped something in order to explore different kind of fractal in 3D and make animation and tile rendering also but not user friendly as yours. Continue your efforts like this 😉

  2. Wow, is that a non-Euclidean ray-tracing that I see before me? I’ve been wishing for years that I had the skills to rewrite Povray for curved space, precisely to generate pix of a couple of hundred hyperbolic (or spherical) uniform tilings. (One could make a model in flat space, but it’s conceptually so much easier to use mirrors.)

Leave a Reply

Your email address will not be published. Required fields are marked *

*