Light Streaks — generative photography
-
Light Streaks — generative photography
A small selection of long-exposures of randomly generated IFS (aka Iterated Function Systems), a family of very oldskool primitive/trivial fractal functions, but which can produce a fairly wide variety of outcomes. Each image is the result of billions of iterations of a single particle being iteratively transformed (meaning the particle's current position is used as the input for computing its next position etc.) For each iteration & position a tiny amount of light is being captured, slowly revealing an image, just like a negative does in analog film photography.
Some of these images have been "exposed" (aka computed) for up to 30 mins. The smaller the amount of light captured per iteration, the smoother (less grainy) the outcome...
(For the more technical: This is one of these projects where a floating point pixel buffer _really_ makes all the difference! My exposure rate is only 0.001 per pixel per frame, some of the images use even weaker settings... That means for a pixel to become fully white is has to be visited at least 1000 times [or more])
Made with https://thi.ng/matrices (matrix transformations) and https://thi.ng/pixel ("film" capture)...
#MonochromeMonday #Photography #Light #Simulation #LongExposure #Fractal #IFS #GenerativeArt #AlgorithmicArt #ThingUmbrella #TypeScript
@toxi Very nice! I love this technique, and made some similar images in the past myself: https://jpalmer.art/projects/recursion-i/
-
@toxi Very nice! I love this technique, and made some similar images in the past myself: https://jpalmer.art/projects/recursion-i/
@jeffpalmer These are really beautiful too!!
I love the curvatures and 3D-ness of the shading... Is this from your Julia days?One of the first (commissioned) projects I used that technique for was the generative identity for Leeds College of Music. There I used the De Jong strange attractor instead of IFS and OpenCL for the computation, but the overall exposure/accumulation approach is identical. Before that I was always just using integer pixel buffers and was shocked by the level of detail suddenly revealed when switching to floats... was mindblowing!

-
@jeffpalmer These are really beautiful too!!
I love the curvatures and 3D-ness of the shading... Is this from your Julia days?One of the first (commissioned) projects I used that technique for was the generative identity for Leeds College of Music. There I used the De Jong strange attractor instead of IFS and OpenCL for the computation, but the overall exposure/accumulation approach is identical. Before that I was always just using integer pixel buffers and was shocked by the level of detail suddenly revealed when switching to floats... was mindblowing!

@toxi Yes, this was in Julia. I’ve required float texture buffers for all of my work for a while now, across implementations. Was first influenced by the work of @inconvergent and their excellent sand painting methods, and then found the benefits of float buffers so compelling that I wrote a custom rendering library that I’ve been hacking on for like five years.


-
@toxi Very nice! I love this technique, and made some similar images in the past myself: https://jpalmer.art/projects/recursion-i/
@jeffpalmer @toxi istr from when I played with this some years back, thar histogram equalization was a real game changer for shading. So still use integers, but make sure to use as equal amount of the coloring gradient
-
@jeffpalmer @toxi istr from when I played with this some years back, thar histogram equalization was a real game changer for shading. So still use integers, but make sure to use as equal amount of the coloring gradient
@pedersen @jeffpalmer I used histo equalization too in the past, but found the results are not quite comparable to floats, though of course still better than without that post-processing step... Disclaimer: I only used this with 8 bit buffers. 16 bit would likely have worked much better, but with 8 bit, pixels get saturated far too quickly in processes like this and then there isn't much left to equalize...

-
Light Streaks — generative photography
A small selection of long-exposures of randomly generated IFS (aka Iterated Function Systems), a family of very oldskool primitive/trivial fractal functions, but which can produce a fairly wide variety of outcomes. Each image is the result of billions of iterations of a single particle being iteratively transformed (meaning the particle's current position is used as the input for computing its next position etc.) For each iteration & position a tiny amount of light is being captured, slowly revealing an image, just like a negative does in analog film photography.
Some of these images have been "exposed" (aka computed) for up to 30 mins. The smaller the amount of light captured per iteration, the smoother (less grainy) the outcome...
(For the more technical: This is one of these projects where a floating point pixel buffer _really_ makes all the difference! My exposure rate is only 0.001 per pixel per frame, some of the images use even weaker settings... That means for a pixel to become fully white is has to be visited at least 1000 times [or more])
Made with https://thi.ng/matrices (matrix transformations) and https://thi.ng/pixel ("film" capture)...
#MonochromeMonday #Photography #Light #Simulation #LongExposure #Fractal #IFS #GenerativeArt #AlgorithmicArt #ThingUmbrella #TypeScript
More variations of "Light Streaks" — generative photography... A small selection of long-exposures of randomly generated IFS (aka Iterated Function Systems). See start of thread for context and an explanation of the technique...
All of the variations in this post and the following ones are from the exact same system and choice of functions. The only variable here is the random seed number. There seem to be several families of outcomes produced, in this post a selection of "auroras"...
Each image is the result of around 2-4 billion iterations of light capture. Original resolution is 5120x5120 pixels. I will post a fullsize image later...
#Monochrome #Light #Simulation #LongExposure #Fractal #IFS #GenerativePhotography #GenerativeArt #AlgorithmicArt #ThingUmbrella #TypeScript
-
More variations of "Light Streaks" — generative photography... A small selection of long-exposures of randomly generated IFS (aka Iterated Function Systems). See start of thread for context and an explanation of the technique...
All of the variations in this post and the following ones are from the exact same system and choice of functions. The only variable here is the random seed number. There seem to be several families of outcomes produced, in this post a selection of "auroras"...
Each image is the result of around 2-4 billion iterations of light capture. Original resolution is 5120x5120 pixels. I will post a fullsize image later...
#Monochrome #Light #Simulation #LongExposure #Fractal #IFS #GenerativePhotography #GenerativeArt #AlgorithmicArt #ThingUmbrella #TypeScript
More variations of "Light Streaks" — generative photography... A small selection of long-exposures of randomly generated IFS (aka Iterated Function Systems). See start of thread for context and an explanation of the technique...
All of the variations in this post and the following ones are from the exact same system and choice of functions. The only variable here is the random seed number. There seem to be several families of outcomes produced, in this post a selection of textures & sparklers...
The sub-atomic fabric of space time?
#Monochrome #Light #Simulation #LongExposure #Fractal #IFS #GenerativePhotography #GenerativeArt #AlgorithmicArt #ThingUmbrella #TypeScript
-
More variations of "Light Streaks" — generative photography... A small selection of long-exposures of randomly generated IFS (aka Iterated Function Systems). See start of thread for context and an explanation of the technique...
All of the variations in this post and the following ones are from the exact same system and choice of functions. The only variable here is the random seed number. There seem to be several families of outcomes produced, in this post a selection of textures & sparklers...
The sub-atomic fabric of space time?
#Monochrome #Light #Simulation #LongExposure #Fractal #IFS #GenerativePhotography #GenerativeArt #AlgorithmicArt #ThingUmbrella #TypeScript
More variations of "Light Streaks" — generative photography... A small selection of long-exposures of randomly generated IFS (aka Iterated Function Systems). See start of thread for context and an explanation of the technique...
All of the variations in this post and the following ones are from the exact same system and choice of functions. The only variable here is the random seed number.
#Monochrome #Light #Simulation #LongExposure #Fractal #IFS #GenerativePhotography #GenerativeArt #AlgorithmicArt #ThingUmbrella #TypeScript
-
More variations of "Light Streaks" — generative photography... A small selection of long-exposures of randomly generated IFS (aka Iterated Function Systems). See start of thread for context and an explanation of the technique...
All of the variations in this post and the following ones are from the exact same system and choice of functions. The only variable here is the random seed number.
#Monochrome #Light #Simulation #LongExposure #Fractal #IFS #GenerativePhotography #GenerativeArt #AlgorithmicArt #ThingUmbrella #TypeScript
@toxi these are beautiful
-
Light Streaks — generative photography
A small selection of long-exposures of randomly generated IFS (aka Iterated Function Systems), a family of very oldskool primitive/trivial fractal functions, but which can produce a fairly wide variety of outcomes. Each image is the result of billions of iterations of a single particle being iteratively transformed (meaning the particle's current position is used as the input for computing its next position etc.) For each iteration & position a tiny amount of light is being captured, slowly revealing an image, just like a negative does in analog film photography.
Some of these images have been "exposed" (aka computed) for up to 30 mins. The smaller the amount of light captured per iteration, the smoother (less grainy) the outcome...
(For the more technical: This is one of these projects where a floating point pixel buffer _really_ makes all the difference! My exposure rate is only 0.001 per pixel per frame, some of the images use even weaker settings... That means for a pixel to become fully white is has to be visited at least 1000 times [or more])
Made with https://thi.ng/matrices (matrix transformations) and https://thi.ng/pixel ("film" capture)...
#MonochromeMonday #Photography #Light #Simulation #LongExposure #Fractal #IFS #GenerativeArt #AlgorithmicArt #ThingUmbrella #TypeScript
@toxi cool shi

-
R ActivityRelay shared this topic