UPR Mash


What does it do?

It adds extra layers to an animated UltraFractal fractal to create motion blurred fractals, add animation to create loops, and other cool time-blending effects.

Why would you want to do this? UF already has motion blur, doesn't it?

UF does add a motion blurring effect based on the animation of the 'location' settings of a layer, but only zooms, panning and rotation will create this blur, not fractal parameter changes.

I have always wanted to see what it would look like to motion blur a fractal as you vary the parameters, some fractals change in very interesting ways as their parameters vary.

It's also a nice departure from the rather digital artifact of being perfectly in focus everywhere. I am also interested in setting up some fractals with parameter-focal blur (aka Depth-of-Field) but I'll leave that for a future project :D

UPR Mash howto:

Extremely short version:

  • Save Animated UPR in UltraFractal
  • Press "Open"
  • Press "Mash"
  • Press "CopyToClipboard"
  • Paste into UltraFractal

A bit more detail

  • Animate some float or complex parameters of a fractal (ie add at least 2 keyframes) in UltraFractal 5
  • Name any animated layers that you wish to ignore starting with the name "Background" (case insensitive)
  • Non-animated layers are passed through unchanged.
  • You may use groups if you wish for cool comp tricks.
  • Save this 'seed' fractal to a upr file (ctrl-a in the interface) compressed UPR will work fine.
  • Start uprMash.exe and press 'open' - browse to the upr file that you saved the 'seed' fractal into and select it (your upr file selection will be saved for future sessions).
  • The fractal that you just saved should be selected in the drop-down box near the top (the last saved fractal will always be selected here), if it is not, then select it.
  • Press the 'mash' button - the mashed UPR code will appear in the text field at the top.
  • Press 'CopyToClipboard' to copy this code, then switch to ultraFractal, create a new fractal (ctrl-n) and paste it in (ctrl-v).
  • It can take a long time to get a correct preview, particularly if you mash with a lot of layers, you may wish to increase the number of 'threads' in the UF options in order to get a rough look sooner.

Things That Don't work

It is not bulletproof!! There are quite a few things that will break it.. but thankfully it is still capable of lots of cool effects!.

Known issues

  • Gradient animation probably doesn't work very well.
  • String parameter animation is not supported (for obvious reasons, interpolating a string parameter is kinda meaningless), only complex and float.. haven't tried any integers really.
  • It doesn't respect 'smooth' or 'constant' key-interpolation mode, it just interprets everything as linear ATM, a fix is in the pipeline for this.

If you find a problem please let me know by email

More Detail

  • The "Layer Mode" field can be used to override the layer mode of interpolated layers, and if more than one mode is specified, they will be cycled through across the ramp.
  • UF's layer mode strings are:
    • normal
    • multiply
    • screen
    • softlight
    • hardlight
    • darken
    • lighten
    • difference
    • hue
    • saturation
    • color
    • luminance
    • addition
    • hsladd
    • red
    • green
    • blue
  • More info will be printed to the console window that starts with uprMash, this can be disabled if you want to, by unchecking 'verbosity'.
  • It may be helpful to check out the console output to get an idea of how the opacity is being ramped across the range.
  • Anim mode is somewhat experimental but it basically adds a sine wave to animated parameters, or a circle in the case of complex valued parameters (separate amps can be specified for real and imag)

Adding animation

UprMash can be used to make simple looping animations by using the 'add anim' settings.

To make a loop, add keyframes with the same values to the first and last frames of your animation. Load the 'seed' upr into uprMash, and set the "Add Anim Loop Length" to the length of your anim (to get one loop), then adjust the "Add Anim Amp" control to set how big the animation is. At the moment the animation moves along a simple sine wave (if animating a float parameter) or a circle (if animating a complex parameter).

You will probably also want to set the "Shutter Length" so that you get the range of values that you want.

Opacity Ramp

The layers that uprMash generates can have their opacity set with a fade-in-fade-out type of shape, to mimic motion blur in a real camera shutter, that opens and closes smoothly.

The width of this ramp is set by the "Shutter Opacity Ramp Width". A preview of the shape of the opacity ramp is drawn using stars '*' in the text output window of uprMash.
A ramp width value of 0.5 will fade in for half the layers and then out for half the layers.
A value of 0.1 will fade in sharply (over 10% of the layers), stay at max opacity until 90% and then fade out sharply.
A value of 0 will do no fading.

The overall opacity level is set by the "Opacity Scale" parameter. Set this to 100 in order to leave the layer opacities as they are in the 'seed' upr.

opacity ramp of width 0.25, in 13 layers:

opac: *
opac: ****
opac: **********
opac: **************
opac: **************
opac: **************
opac: **************
opac: **************
opac: **************
opac: **************
opac: **********
opac: ****
opac: *

opacity ramp of width 0.75, in 26 layers:

opac: *
opac: *
opac: *
opac: **
opac: ***
opac: *****
opac: *******
opac: ********
opac: **********
opac: ************
opac: *************
opac: **************
opac: **************
opac: **************
opac: **************
opac: *************
opac: ************
opac: **********
opac: ********
opac: *******
opac: *****
opac: ***
opac: **
opac: *
opac: *
opac: *

No Guarantees.

This software is provided as-is for fun and educational purposes ONLY It is not for commercial redistribution.

I don't guarantee that uprMash will do anything specific, and I cannot be held responsible if it breaks anything.

Mashed upr's can take a lot of compute and memory resources, BEWARE! Use uprMash at your own risk!

Settings file

uprMash saves (and subsequently loads) a file called 'uprMash.config' in the directory that it is running from, so that you don't have to re-enter everything all the time. You may need to turn off read-only (or 'add write permissions' to the directory) for this to work correctly.

I would be careful about editing uprMash.config directly, it is plain-text but the implementation of save/load is pretty flakey so it's probably best left alone unless you know what you're doing.


Please go to the Download page.

UPR Examples

Here is an area for sharing UPRs

Fractal Mash Gallery







Picasa albums

Picasa video gallery:



You may like to check out these InterMashes and MandMulti albums on picasa, which were done with an older version of uprMash.


  • Frederik Slijkerman - UF is so much fun!
  • Damien Jones - Massive respects, and thanks for the hints! ;)
  • Alan Tennant - Number one bug reporter and tester/advice giver :D
  • My lovely partner Lorikate and our new daughter Qualia, for teaching me so much more about real-world fractal beauties than I ever thought I could realize.

Fractal Recipe

Fractal Recipe: A fractal wiki by Dan Wills, with a distinctly less technical edge. If you're feeling fractally-peckish (or thirsty for that matter), then head on over!


UltraIterator Fractal blog by Dan Wills - the newest stuff is here.

Enkling's YouTube

Enklling on Youtube Some videos made with uprMash are uploaded here.

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License