13

This is an IFS viewer for pico-8

Hit Z to stop iteration if the view hasn't converged,
or to start iterating with new parameters if it has.

Jump into the src and edit the function for different visuals!
Feel free to remix, this is a commented extension of this #tweetjam snippet with nicer visuals.

Cart #24695 | 2016-07-06 | Code ▽ | License: CC4-BY-NC-SA
13

P#24696 2016-07-06 03:24 ( Edited 2016-07-08 02:51)

Very otherworldly. I love the "dirty" colors.

P#24699 2016-07-06 03:48 ( Edited 2016-07-06 07:48)

Some of these are gorgeous. It would be nice to have the option to pause the fill before it gets too dense.

P#24705 2016-07-06 05:34 ( Edited 2016-07-06 09:34)

wow! beautiful! I agree, a pause would be handy, and maybe control iteration speed, it's nice to watch them build up

P#24707 2016-07-06 06:50 ( Edited 2016-07-06 10:50)

Glad folks seem to like it!

At the moment I dont have plans to continue extending it as it's taken enough of my time away from work recently, but the src is short and sweet if you want to tweak it for your own purposes!

P#24789 2016-07-07 01:49 ( Edited 2016-07-07 05:49)

This is beautiful! I'm really interested in learning more about the technique, do you have a reference for the algorithm you used?

P#24829 2016-07-07 12:53 ( Edited 2016-07-07 16:53)

wikipedia is a good start but the algorithm in particular is "sort of" like the "fractal flame" algorithm.

 given some interesting function f(x,y)->x1,y1 pseudocode: for as many random points (x,y) as possible for several iterations x,y = f(x,y) increment pixel at x,y

There's more you can do to make things look better when you're rendering in RGB (log-space density, multiple colours, etc) but for pico8 all I did was clamp the pixel increments so they dont loop around.

Here the function used is a combination of rotation and scaling around the origin, sinusoidal offsetting, and mirroring over x=y (with about 6 input parameters that affect the scaling of effects, inputs, and outputs).

You can pick whatever function you like, and your results are basically contingent on that function and its control parameters!

Just dive into the code and start reading; it's only 60 lines or so and its got comments :)

Have fun!

P#24866 2016-07-07 22:30 ( Edited 2016-07-08 02:30)

Very nice!
I generated a lot of lovely mosquitoes

P#24868 2016-07-07 22:51 ( Edited 2016-07-08 02:51)