Fractal viewer can zoom and enhance like on CSI

This fractal viewer is a great way to get your feet wet with Field-Programmable Gate Arrays. The project will give you some experience working with video output, user input, and a whole bunch of math and memory management. [Hamster] built it using the Papilio Plus board which hosts a Spartan 6 FPGA. This continues his odyssey into the realm of hardware design; part of which we looked at back in December.

The arcade Megawing for the dev board gives him easy access to the controls needed to scroll and zoom on the fractal design. Calculations to generate the shape are being run at 240 MHz, with the VGA output running at 80 MHz. The device has enough horse power and SRAM to show an 800×600 pixel output with a 60 Hz refresh rate.

We really liked the logic diagram that [Hamster] drew up when planning how the calculations would be handled. It’s not overly complex, but it took us a while to conceptualize how everything fits together. It’s certainly an improvement from his last attempt as we couldn’t make heads or tails out of that flow chart.

If you’re just interested in the pretty shapes and colors there’s a demo embedded after the break.


  1. bty says:

    we we’re doing this on our 486 machines in the early nineties in borland turbo pascal and x86 assembler. It ran just a little slower than this.
    In indexed color mode adding a palette cycle was also trivial.

    I remade it a few years ago in C#, when Benoit passed away.

  2. MrX says:

    Now implement a smooth transition between zooms and call it a perfect!

  3. nes says:

    Very nice. For bonus points can he do it without the frame buffer next.

  4. LPM says:

    Is it just me or is there no link to the actual project?

  5. NatureTM says:

    I didn’t see a link to the project in the article, so:

  6. Andrew Yeomans says:

    Brings it all back – one of my earliest postings was a fractal program written in AWK. Still works, though you might need to replace the graph/plot commands.

  7. behzat_c says:

    Papillio has Spartan3 i guess, not Spartan6

    • Alvie says:

      “Papilio One” has Spartan3E devices (S3E250 or S3E500). “Papilio Plus”, the core of Papilio Arcade, includes a Spartan6 (S6LX4 or S6LX9).

      New boards for Papilio Arcade/Papilio Plus should be available soon.


  8. Robot says:

    I’m following the FPGA tutorials on Hamsterworks (is Mike the author?) and finding them really helpful. Hopefully I’ll be about to do this project soon.

    Thanks Mike!

    – Robot

  9. Illogique says:

    If any of you are interested in playing around with fractals at home, I highly recommend Fractint, which has been around for 25+ years!

    All source code is also available, for experimentation and modification!

  10. biozz says:

    “enhancing enhancing using quantum string theroy to add pixels … using hizenburg’s uncertenty princable to focus … using electrical theroy to add color, running retnal match up on every citizen in the usa, colecting video DNA … his name is john Q public he lived at 123 fake drive and he is in the rest room”

    XXD i love CSI

  11. LPM says:

    For crying out loud! Fix the article so it links to the guys page. I understand that mistakes get made but this guy made the effort to produce the type of content that keeps your site alive, the least you can do is put a direct link in the article!

  12. Michael says:


    I was playing round with mandelbrot set in 2010 and ended up in making a viewer in flash.



    p.s.: Thanks for this page. I am here every day.

  13. blodgar says:

    Wrote a Mandelbrot/Julia set generator in Turbo Pascal in’93
    for my Senior Seminar project (as well as a lot of other fractal forms). One could save and restart plots, screen print, zoom,select, change color,etc. Got an A+ for the course. Found the floppy last year, looked at code, and was impressed by my code, even 18 years later!
    Miss Turbo Pascal, and Pascal in general…:-(

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s


Get every new post delivered to your Inbox.

Join 96,725 other followers