Logo by Madman - Contribute your own Logo!

END OF AN ERA, FRACTALFORUMS.COM IS CONTINUED ON FRACTALFORUMS.ORG

it was a great time but no longer maintainable by c.Kleinhuis contact him for any data retrieval,
thanks and see you perhaps in 10 years again

this forum will stay online for reference
News: Check out the originating "3d Mandelbulb" thread here
 
*
Welcome, Guest. Please login or register. July 07, 2022, 11:52:06 AM


Login with username, password and session length


The All New FractalForums is now in Public Beta Testing! Visit FractalForums.org and check it out!


Pages: [1] 2 3 ... 22   Go Down
  Print  
Share this topic on DiggShare this topic on FacebookShare this topic on GoogleShare this topic on RedditShare this topic on StumbleUponShare this topic on Twitter
Author Topic: Mandel Machine  (Read 35742 times)
Description: A highly efficient Mandelbrot set explorer
0 Members and 1 Guest are viewing this topic.
Botond Kósa
Fractal Lover
**
Posts: 233



WWW
« on: February 11, 2014, 03:28:28 AM »

Mandel Machine is a highly efficient Mandelbrot set explorer application.
http://web.t-online.hu/kbotond/mandelmachine



Main features:
  • Up to 536 MP (~23000x23000) image size
  • Up to 32x32 supersampling
  • Magnification up to 8000 zooms (image size ~4E-2408)
  • Max iterations up to 400 millions
  • Iteration counts histogram
  • Detailed statistics
  • Full history of changes
  • Save/load location and rendering attributes
  • Save images as PNG files
  • Copy image to clipboard

Intuitive mouse navigation:
  • Zoom in and out with the mouse wheel
  • Zoom in faster by double-clicking
  • Click-and-drag to select area to zoom into
  • Selection rectangle can be moved, resized and rotated
  • Right click and drag to pan (experimental)

Coloring options:
  • 3 palette presets
  • Palette can be extracted from any jpg/png/bmp image
  • 8 different iteration transfer functions
  • Color density & offset adjustable
  • Smooth/solid/inverted dwell bands

Optimizations to speed up calculations:
  • Extensive use of SIMD instruction sets (SSE2, SSE3, AVX) with single and double precision floating point data types
  • Inner loops implemented in assembly language
  • Arbitrary precision fixed point arithmetic using 64-bit integer data types, fully unrolled loops
  • Perturbation algorithm with series approximation, automatic correction of blobs
  • Tweaked Mariani/Silver algorithm to guess areas with monotonic iteration counts
  • Multi-core support (up to 32 threads)
  • Pixel grouping to fully saturate the execution units of modern CPUs (up to 16 pixels with SSE2, up to 32 with AVX-capable CPUs)

Upcoming features:
  • Calculate distance estimates
  • Palette editor
  • Movie maker
  • ...and more...

Special thanks to Michael Condron, Bruce Dawson, Kevin Martin and Karl Runmo for sharing their ideas.

Any comments are welcome.
« Last Edit: September 09, 2014, 10:30:44 AM by Botond Kósa » Logged

Check out my Mandelbrot set explorer:
http://web.t-online.hu/kbotond/mandelmachine/
lycium
Fractal Supremo
*****
Posts: 1158



WWW
« Reply #1 on: February 11, 2014, 04:05:12 AM »

Looks very impressive for a first release, nice work! Did you write the optimised iteration kernels yourself using intrinsics, or is this via some JIT compiler?
Logged

cKleinhuis
Administrator
Fractal Senior
*******
Posts: 7044


formerly known as 'Trifox'


WWW
« Reply #2 on: February 11, 2014, 08:20:22 AM »

nice first shot, most interesting is that you feature the pertubation methods, will take a look later on!
Logged

---

divide and conquer - iterate and rule - chaos is No random!
panzerboy
Fractal Lover
**
Posts: 242


« Reply #3 on: February 11, 2014, 08:55:38 AM »

Just started playing, LOVE  joy the load image to build a palette function.
You can use this to grab the colours from any JPG or PNG to build your palette.
I've used it below to grab a palette from a multi layered Kalles Fraktaler image (14 layers!)


* MMpalgrab.jpg (200.88 KB, 1425x593 - viewed 1086 times.)
Logged
Botond Kósa
Fractal Lover
**
Posts: 233



WWW
« Reply #4 on: February 11, 2014, 10:04:08 AM »

Looks very impressive for a first release, nice work! Did you write the optimised iteration kernels yourself using intrinsics, or is this via some JIT compiler?

The iteration kernels were written in assembly language directly, and there is some code in C that prepares the data for the ASM procedures. All this is compiled with MSVC 2010 into a dll file. The application is Java-based, and the native routines are called via JNI.
Logged

Check out my Mandelbrot set explorer:
http://web.t-online.hu/kbotond/mandelmachine/
Botond Kósa
Fractal Lover
**
Posts: 233



WWW
« Reply #5 on: February 11, 2014, 10:12:42 AM »

Just started playing, LOVE  joy the load image to build a palette function.
You can use this to grab the colours from any JPG or PNG to build your palette.
I've used it below to grab a palette from a multi layered Kalles Fraktaler image (14 layers!)

You can also open Kalles Fraktaler files (*.kfr) directly from the Load fractal definition dialog. The palette stored in KFR files is also loaded, albeit some manual adjustments on Color offset might be required (and also on Color density if Divide iteration in KFR was set larger than 1).
Logged

Check out my Mandelbrot set explorer:
http://web.t-online.hu/kbotond/mandelmachine/
blob
Strange Attractor
***
Posts: 272



« Reply #6 on: February 11, 2014, 10:27:14 AM »

Any chance for a 32bit version?
Logged
Botond Kósa
Fractal Lover
**
Posts: 233



WWW
« Reply #7 on: February 11, 2014, 10:43:06 AM »

Any chance for a 32bit version?

I plan to release one. It would be about 2 times slower than the 64-bit version, but still significantly faster than any software without perturbation algorithm.
Logged

Check out my Mandelbrot set explorer:
http://web.t-online.hu/kbotond/mandelmachine/
blob
Strange Attractor
***
Posts: 272



« Reply #8 on: February 11, 2014, 10:47:06 AM »

Great! Looking forward to it.  A Beer Cup
Logged
youhn
Fractal Molossus
**
Posts: 696


Shapes only exists in our heads.


« Reply #9 on: February 11, 2014, 02:39:49 PM »

Just installed on Windows 7 64 bit. User interface feels nice.

Can I compile this on Linux ... ?
Logged
Botond Kósa
Fractal Lover
**
Posts: 233



WWW
« Reply #10 on: February 11, 2014, 03:51:19 PM »

Can I compile this on Linux ... ?

Compilation would require rewriting some parts of the C and ASM code since they were written according to the needs of the MSVC compiler. Under Linux I had to use gcc or some other compiler with potentially different calling conventions.

I tried to run the installer using Wine but with no success so far. Maybe I should distribute the software as a standalone application with no installer. That could be run using Wine. I will give it a try.
Logged

Check out my Mandelbrot set explorer:
http://web.t-online.hu/kbotond/mandelmachine/
ellarien
Conqueror
*******
Posts: 123


I like flowers


WWW
« Reply #11 on: February 11, 2014, 04:44:49 PM »

Very nice! But I have a comment and a question, as my former supervisor used to say.

The comment: the image often scrambles on panning (but a recompute fixes it.)

The question: Is there anything I can do to get the details filled in on deeper zooms? I've tried increasing the iterations and the precision and the scale, but beyond about magnification 100 the denser areas are often missing and previously filled-in areas will go flat on zooming in or out -- though zooming in further will sometimes fill them in. Do I just have to wait for the glitch-solving functionality?

I'm running Windows 8.1 on a Core i5 laptop with 8Gb of RAM, if it helps.
Logged
youhn
Fractal Molossus
**
Posts: 696


Shapes only exists in our heads.


« Reply #12 on: February 11, 2014, 05:06:52 PM »

Care to share the exact location, no. of iterations, etc ... ? Then we can have a look at it.
Logged
Botond Kósa
Fractal Lover
**
Posts: 233



WWW
« Reply #13 on: February 11, 2014, 05:31:40 PM »

The comment: the image often scrambles on panning (but a recompute fixes it.)

That's why the panning function is marked as experimental, it still needs some corrections.

The question: Is there anything I can do to get the details filled in on deeper zooms? I've tried increasing the iterations and the precision and the scale, but beyond about magnification 100 the denser areas are often missing and previously filled-in areas will go flat on zooming in or out -- though zooming in further will sometimes fill them in. Do I just have to wait for the glitch-solving functionality?

This is caused by the lack of any type of glitch solving (manual or automatic). Until I add these functions try to zoom in on parts with high contrast. The reference point is found by a hillclimbing method looking for the highest iteration value, starting from the center of the image. High contrast parts usually contain a local maximum that is suitable for most parts of the image.
Logged

Check out my Mandelbrot set explorer:
http://web.t-online.hu/kbotond/mandelmachine/
youhn
Fractal Molossus
**
Posts: 696


Shapes only exists in our heads.


« Reply #14 on: February 11, 2014, 06:33:59 PM »

Turn off the pertubation theory to decrease these glitches (but increase duration of computation) ... ?
Logged
Pages: [1] 2 3 ... 22   Go Down
  Print  
 
Jump to:  

Related Topics
Subject Started by Replies Views Last post
Mandel FractalForums.com Banner Logos fractalwizz 0 1187 Last post October 13, 2009, 08:08:07 PM
by fractalwizz
Mandel Machine - some questions Others simon.snake 4 1371 Last post April 21, 2014, 08:14:13 PM
by simon.snake
Mandel Machine Zoom Test 2^278. Movies Showcase (Rate My Movie) SeryZone 6 1461 Last post December 01, 2014, 06:41:16 PM
by SeryZone
Mandel Machine storing thousands of items in history folder. Mandel Machine stardust4ever 0 732 Last post March 20, 2016, 12:37:17 PM
by stardust4ever
Whither Mandel Machine Mandel Machine Pauldelbrot 2 934 Last post January 04, 2017, 02:52:02 PM
by Kalles Fraktaler

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2015, Simple Machines

Valid XHTML 1.0! Valid CSS! Dilber MC Theme by HarzeM
Page created in 0.226 seconds with 29 queries. (Pretty URLs adds 0.013s, 2q)