Member 1242
66 entries
271849 views

 RSS
(32)
US
Immortal since Dec 25, 2007
Uplinks: 0, Generation 3

( related blog / mirror )
All original media ( images, animations, videos, writing ) on this account is licensed creative commons non-commercial attribution share alike 3.0. Please contact the author (mrule7404 at gmail dot com) for permission for commercial use.
  • Affiliated
  •  /  
  • Invited
  •  /  
  • Descended
  • michaelerule’s favorites
    From abhominal
    Biostructure
    From feanne
    grow, grow
    From Andy Gilmore
    =========
    From feanne
    Venus, peacock moss, earth...
    From sarahs
    FINAL PRESENTATION
    Recently commented on
    From michaelerule
    ∞ zoom
    From gamma
    Ducks fractals
    From michaelerule
    Sun
    From Queston
    Physicists describe method...
    From eyeclipse
    WikiLeaks, you must know
    Now playing SpaceCollective
    Where forward thinking terrestrials share ideas and information about the state of the species, their planet and the universe, living the lives of science fiction. Introduction
    Featuring Powers of Ten by Charles and Ray Eames, based on an idea by Kees Boeke.
    The fractals shown in previous posts were all rendered in real time using an interactive program “Perceptron”, which is still very much under development. I will attempt to explain the Perceptron rendering algorithm here, so that other people may implement similar programs and expand upon this idea.

    At some basic level, the Perceptron algorithm is similar to pointing a video camera back at a screen displaying the camera feed. Examples of fractals rendered using analog video feedback can be found here. Examples of iterated conformal maps can be found here. Perceptron renders fractals by taking an image, applying to that image some simple 2D visual effects and a mathematical transformation, and then feeding the result back into the program as the original image. When this process is repeated with the right mathematical transformations, fractal patterns emerge. The mathematical transformations used are similar to, and perhaps simpler than, those used to render iterated function system “flame” fractals like Electric Sheep.

    ( To clarify notation, the mathematical transformations applied to the image warp and distort the image in some fashion will be referred to as maps )

    Perceptron renders fractals as a continuous animation, so the image on screen is constantly being updated. The algorithm uses the previous frame of the animation to render subsequent frames. The algorithm is not intrinsically faster than traditional iterated function system rendering methods ( as you might use to render the Mandelbrot set or a frame of an Electric Sheep animation ). Perceptron will take just as many iterations to converge upon a rendering of a Julia set as any other algorithm, but the image on screen is updated on each iteration rather than after all iterations have complete, and the animation is continuous.

    For rendering, it is convenient to represent an image as a scalar function over the complex plain. Pixel locations (x,y) are represented as a single complex number x + iy = z, and the color or image value at a certain pixel z is denoted as I(z). Image coordinates are transformed so that the center of the image corresponds to the origin in the complex plane, and scaled so that the image spans some units in the complex plane ( usually four to six units ). This transformation of coordinates makes it easier to represent maps on the image as functions of complex numbers. For instance, Julia sets may be rendered by applying maps of the form f(z) = z^2 + c.


    An Escher print under under a single application of a conformal map. Fractal patterns can emerge when repeatedly applying maps to an image.

    To render the next frame I[n+] based on frame I[n] :
    —Iterate over the pixels of the I[n+]
    ——for each z in I[n] retrieve pixel data from previous frame under some map f
    ———color = I[n](f(z))
    ——do various effects on color, such as invert, rotate hue, fade out, etc...
    —draw over top of rendered frame if desired ( drawing will be projected into the fractal )
    repeat indefinitely

    When I[n](f(z)) is outside the boundaries of the previous frame, color values may be determined by substituting a default color, reflecting the image, extending the edges of the image, or some other procedure of your choice. It is also possible to overlay video feed, images, and other rendered graphics into the feedback loop. The "various effects" step is essential, and is where most of the fine tuning occurs ( that and designing maps ). A map projection of a dark image is still just an empty image.


    This particular image was rendered by inverting the colors on each iteration, then drawing a black border around the image before feeding the rendered frame back into the loop. The border is the only source of structure in the image, and has been mapped after many iterations into the tree and spiral structures. I can not remember what mapping was used, possibly something of the form a*(e^z+e^(iz))+c where a and c are complex constants.

    Thats all for now. I can try to write up a more technical explanation with more extensive pseudocode if there is interest.
    Mon, Feb 4, 2008  Permanent link

      RSS for this post
      Promote
      
      Add to favorites
    Synapses (1)
     
    Images of a rectangular grid under iterated conformal maps rendered using a (digital) video buffer feedback loop.

    Sun, Feb 3, 2008  Permanent link

      RSS for this post
      Promote (3)
      
      Add to favorites (2)
    Synapses (1)
     
    Sat, Feb 2, 2008  Permanent link

      RSS for this post
      Promote
      
      Add to favorites
    Create synapse
     
    Sat, Feb 2, 2008  Permanent link

      RSS for this post
      Promote
      
      Add to favorites
    Create synapse
     
    Sat, Feb 2, 2008  Permanent link

      RSS for this post
      Promote
      
      Add to favorites
    Create synapse
     
    This program is still full of bugs. Though it is written in Java it appears to work only on certain windows machines. The major improvement of this release is that it opens with a list of commands printed on the screen ( which can be turned on and off by pressing '/' or '?' ). Audio, Video, modes have been disabled in this version because they caused things to break. You will probably need the latest version of Java.

    download

    source

    Flickr Screenshot Gallery

    ( Java download homepage )
    Wed, Jan 9, 2008  Permanent link

      RSS for this post
      Promote (3)
      
      Add to favorites
    Create synapse
     
          Cancel