Infinity Fractal v1.0.17

  • 98 Replies
  • 5691 Views

0 Members and 1 Guest are viewing this topic.

Offline mrrudewords

  • *
  • Fractal Flamingo
  • ****
  • Posts: 342
  • Dat Mandel!
« on: January 15, 2019, 05:58:52 PM »
Updated: Version 1.0.17

https://fractalforums.org/index.php?action=downloads;sa=view;down=5

information and brief instructions are included at the above link

Linkback: https://fractalforums.org/downloads/10/infinity-fractal-v1-0-17/2550/
« Last Edit: August 20, 2019, 09:56:40 PM by mrrudewords »
Z = Z2 + C (obvs)

Offline gerson

  • *
  • Fractal Furball
  • ***
  • Posts: 239
« Reply #1 on: January 15, 2019, 06:28:55 PM »
Thanks for releasing the software.
I liked very much colouring methods and the layer's options.
I notice you register the version in parameter file. I think this is important especially when you change new version. So when the program load the parameter file it could see the compatibilities.
Suggestions to improve it:
Make it portable. Just unzip and use it from that unziped folder.
Add a About tab with version, your contact ...
Implement an icon with "save as" option that save image and parameter file at the same time with the same name.
Implement icon to cicle colors. It let easier to start and stop color cicling.
A way to insert coordinates.
I will test it a little more and suggestions will comming.

Offline mrrudewords

  • *
  • Fractal Flamingo
  • ****
  • Posts: 342
  • Dat Mandel!
« Reply #2 on: January 16, 2019, 11:24:30 AM »
Hi everyone. I have got my fractal software into a somewhere-near-releasable state. There are bugs I am sure but I hope you will enjoy playing about with it. The main thing I wanted to add before releasing was to be able to save and load parameters which is now in.

I have found the best way to render at full size is to first save the params, then start over, set iterations to 0, set resolution to max and enable super-sample and finally load the params.

You will need at least 16GB and a 64bit machine. Sorry if you don't but the way it draws requires alot.


Thanks for the feedback. Will look into these.
« Last Edit: January 25, 2019, 03:59:13 PM by mrrudewords »

Offline claude

  • *
  • 3f
  • ******
  • Posts: 1273
    • mathr.co.uk
« Reply #3 on: January 16, 2019, 04:44:17 PM »
I tried with mono-complete on Debian Buster, it almost works (flashes up a black-on-blueMandelbrot for a fraction of a second then crashes):
Code: [Select]
claude@eiskaffee:~/tmp/InfinityFractalV1/Application Files/Infinity_1_0_0_2$ find | sort
.
./Fractal.dll
./Infinity.application
./Infinity.exe
./Infinity.exe.config
./Infinity.exe.manifest
./Newtonsoft.Json.dll
./Resources
./Resources/icon.ico
claude@eiskaffee:~/tmp/InfinityFractalV1/Application Files/Infinity_1_0_0_2$ TERM=xterm cli Infinity.exe
System.NullReferenceException: Object reference not set to an instance of an object
  at System.Windows.Forms.DataGridViewCell.GetFormattedValue (System.Object value, System.Int32 rowIndex, System.Windows.Forms.DataGridViewCellStyle& cellStyle, System.ComponentModel.TypeConverter valueTypeConverter, System.ComponentModel.TypeConverter formattedValueTypeConverter, System.Windows.Forms.DataGridViewDataErrorContexts context) [0x0011b] in <d5b72d15d4f7424c8a1538e3f19ec2e3>:0
  at System.Windows.Forms.DataGridViewCell.PaintWork (System.Drawing.Graphics graphics, System.Drawing.Rectangle clipBounds, System.Drawing.Rectangle cellBounds, System.Int32 rowIndex, System.Windows.Forms.DataGridViewElementStates cellState, System.Windows.Forms.DataGridViewCellStyle cellStyle, System.Windows.Forms.DataGridViewAdvancedBorderStyle advancedBorderStyle, System.Windows.Forms.DataGridViewPaintParts paintParts) [0x0004d] in <d5b72d15d4f7424c8a1538e3f19ec2e3>:0
  at System.Windows.Forms.DataGridViewRow.PaintCells (System.Drawing.Graphics graphics, System.Drawing.Rectangle clipBounds, System.Drawing.Rectangle rowBounds, System.Int32 rowIndex, System.Windows.Forms.DataGridViewElementStates rowState, System.Boolean isFirstDisplayedRow, System.Boolean isLastVisibleRow, System.Windows.Forms.DataGridViewPaintParts paintParts) [0x00183] in <d5b72d15d4f7424c8a1538e3f19ec2e3>:0
  at System.Windows.Forms.DataGridViewRow.Paint (System.Drawing.Graphics graphics, System.Drawing.Rectangle clipBounds, System.Drawing.Rectangle rowBounds, System.Int32 rowIndex, System.Windows.Forms.DataGridViewElementStates rowState, System.Boolean isFirstDisplayedRow, System.Boolean isLastVisibleRow) [0x000a4] in <d5b72d15d4f7424c8a1538e3f19ec2e3>:0
  at System.Windows.Forms.DataGridView.OnPaint (System.Windows.Forms.PaintEventArgs e) [0x00333] in <d5b72d15d4f7424c8a1538e3f19ec2e3>:0
  at System.Windows.Forms.Control.WmPaint (System.Windows.Forms.Message& m) [0x0008a] in <d5b72d15d4f7424c8a1538e3f19ec2e3>:0
  at System.Windows.Forms.Control.WndProc (System.Windows.Forms.Message& m) [0x0015f] in <d5b72d15d4f7424c8a1538e3f19ec2e3>:0
  at System.Windows.Forms.DataGridView.WndProc (System.Windows.Forms.Message& m) [0x00000] in <d5b72d15d4f7424c8a1538e3f19ec2e3>:0
  at System.Windows.Forms.Control+ControlWindowTarget.OnMessage (System.Windows.Forms.Message& m) [0x00000] in <d5b72d15d4f7424c8a1538e3f19ec2e3>:0
  at System.Windows.Forms.Control+ControlNativeWindow.WndProc (System.Windows.Forms.Message& m) [0x0000b] in <d5b72d15d4f7424c8a1538e3f19ec2e3>:0
  at System.Windows.Forms.NativeWindow.WndProc (System.IntPtr hWnd, System.Windows.Forms.Msg msg, System.IntPtr wParam, System.IntPtr lParam) [0x0008e] in <d5b72d15d4f7424c8a1538e3f19ec2e3>:0

I couldn't get the installer to work in WINE.  .NET install fails.  Mono is a cross-platform .NET runtime.

Offline mrrudewords

  • *
  • Fractal Flamingo
  • ****
  • Posts: 342
  • Dat Mandel!
« Reply #4 on: January 16, 2019, 04:50:46 PM »
ok, this is a portable version. No changes other than that. Hopefully it will work under WINE but I expect that will also use Mono and crash at the same point. Let me know.
« Last Edit: January 25, 2019, 03:55:31 PM by mrrudewords »

Offline claude

  • *
  • 3f
  • ******
  • Posts: 1273
    • mathr.co.uk
« Reply #5 on: January 16, 2019, 06:29:02 PM »
Installed wine-mono as per https://askubuntu.com/a/992215 and you are right, it crashes in a similar place

Code: [Select]
claude@eiskaffee:~/tmp/InfinityFractalV1/portable$ wine Infinity.exe
System.NullReferenceException: Object reference not set to an instance of an object
  at System.Windows.Forms.DataGridViewCell.GetFormattedValue (System.Object value, System.Int32 rowIndex, System.Windows.Forms.DataGridViewCellStyle& cellStyle, System.ComponentModel.TypeConverter valueTypeConverter, System.ComponentModel.TypeConverter formattedValueTypeConverter, System.Windows.Forms.DataGridViewDataErrorContexts context) [0x000f4] in <dfcf5e19b3744f6abc3507fe9dffa1dd>:0
  at System.Windows.Forms.DataGridViewCell.PaintWork (System.Drawing.Graphics graphics, System.Drawing.Rectangle clipBounds, System.Drawing.Rectangle cellBounds, System.Int32 rowIndex, System.Windows.Forms.DataGridViewElementStates cellState, System.Windows.Forms.DataGridViewCellStyle cellStyle, System.Windows.Forms.DataGridViewAdvancedBorderStyle advancedBorderStyle, System.Windows.Forms.DataGridViewPaintParts paintParts) [0x0003e] in <dfcf5e19b3744f6abc3507fe9dffa1dd>:0
  at System.Windows.Forms.DataGridViewRow.PaintCells (System.Drawing.Graphics graphics, System.Drawing.Rectangle clipBounds, System.Drawing.Rectangle rowBounds, System.Int32 rowIndex, System.Windows.Forms.DataGridViewElementStates rowState, System.Boolean isFirstDisplayedRow, System.Boolean isLastVisibleRow, System.Windows.Forms.DataGridViewPaintParts paintParts) [0x00167] in <dfcf5e19b3744f6abc3507fe9dffa1dd>:0
  at System.Windows.Forms.DataGridViewRow.Paint (System.Drawing.Graphics graphics, System.Drawing.Rectangle clipBounds, System.Drawing.Rectangle rowBounds, System.Int32 rowIndex, System.Windows.Forms.DataGridViewElementStates rowState, System.Boolean isFirstDisplayedRow, System.Boolean isLastVisibleRow) [0x00098] in <dfcf5e19b3744f6abc3507fe9dffa1dd>:0
  at System.Windows.Forms.DataGridView.OnPaint (System.Windows.Forms.PaintEventArgs e) [0x002f2] in <dfcf5e19b3744f6abc3507fe9dffa1dd>:0
  at System.Windows.Forms.Control.WmPaint (System.Windows.Forms.Message& m) [0x0007b] in <dfcf5e19b3744f6abc3507fe9dffa1dd>:0
  at System.Windows.Forms.Control.WndProc (System.Windows.Forms.Message& m) [0x001a4] in <dfcf5e19b3744f6abc3507fe9dffa1dd>:0
  at System.Windows.Forms.DataGridView.WndProc (System.Windows.Forms.Message& m) [0x00000] in <dfcf5e19b3744f6abc3507fe9dffa1dd>:0
  at System.Windows.Forms.Control+ControlWindowTarget.OnMessage (System.Windows.Forms.Message& m) [0x00000] in <dfcf5e19b3744f6abc3507fe9dffa1dd>:0
  at System.Windows.Forms.Control+ControlNativeWindow.WndProc (System.Windows.Forms.Message& m) [0x0000b] in <dfcf5e19b3744f6abc3507fe9dffa1dd>:0
  at System.Windows.Forms.NativeWindow.WndProc (System.IntPtr hWnd, System.Windows.Forms.Msg msg, System.IntPtr wParam, System.IntPtr lParam) [0x00085] in <dfcf5e19b3744f6abc3507fe9dffa1dd>:0

Offline Sabine62

  • *
  • Fractal Freak
  • **
  • Posts: 661
  • It's just a jump to the left...
    • sabine62.deviantart.com
« Reply #6 on: January 16, 2019, 09:53:29 PM »
Really cool, lots of fun to be had with, thank you for sharing!  :thumbs:

What I notice on Windows7 is that though I have a rather decent cpu (I7-6700K) with decent cooling, it gets really hot and the cooling will only ease down again once your program has stopped. Shouldn't things slow down as soon as iterating is stopped?

And a little bug: when saving I can only choose bitmap, but when I try to open the saved .bmp I get a message that it's really a . png ;)

To thine own self be true

Offline mrrudewords

  • *
  • Fractal Flamingo
  • ****
  • Posts: 342
  • Dat Mandel!
« Reply #7 on: January 16, 2019, 11:46:54 PM »
Oh dear, I don't want to cook any CPUs. There is a single setting in the .config file so you could reduce the maxThreads from 4 to 2. Hopefully that will stop it sweating! Strange that it shows as a png. It's using the standard .net bitmap class to save.

I will try to look into getting it working under Debian. I can put Mint on a VM. If it weren't for the fact that most things need something that is not an emulator I would probably have that as my OS anyway.

I am also in the process of rewriting this in C++ as C# has many performance blockers. But I don't get as much time as I want. I am using SDL2, MPIR, MPFR and MPC in the hopes that it will be reasonably fast and go a bit deeper. If anyone knows of any reason I shouldn't please let me know, but it's fun to code in a language I don't use professionally.

Offline Sabine62

  • *
  • Fractal Freak
  • **
  • Posts: 661
  • It's just a jump to the left...
    • sabine62.deviantart.com
« Reply #8 on: January 17, 2019, 08:07:51 AM »
Thank you for that tip, mrrudewords! :thumbs:

Maybe it would be possible to 'let go' of the CPU as soon as the render has finished? Most programs I know act like that, they are kinder to the machine that way ;)
As of now it 'feels' like the program keeps 'rendering' after imax is reached or at least looks like it's stil Very busy calculating in the background though nothing is updated to the render-widget. I have only the Corsair Link to check on the cpu-cores but even set to use two threads, two cores are rather busy all the time until I end the program.

Maybe something to look at for v2? ;)



 

Offline mrrudewords

  • *
  • Fractal Flamingo
  • ****
  • Posts: 342
  • Dat Mandel!
« Reply #9 on: January 17, 2019, 11:54:30 AM »
I've made a change to the data grid cells so it does not call the built in .Net code to GetFormattedValue which was causing the exception in Mono. I've not tested it as I still need a linux VM setting up but I'm hoping that will get it working, or at least get the next error!

Also I have changed the thread usage so that new threads are created on beginning to draw or recolour and then stopped once complete. This fixes the issue with keeping the CPU busy.

Edit: worse bug. Will post back soon
« Last Edit: January 17, 2019, 12:30:54 PM by mrrudewords »

Offline mrrudewords

  • *
  • Fractal Flamingo
  • ****
  • Posts: 342
  • Dat Mandel!
« Reply #10 on: January 17, 2019, 12:22:48 PM »
And the killthreads method also killed the tiles so increasing iterations did nothing. Fixed in this one.
« Last Edit: January 25, 2019, 03:55:54 PM by mrrudewords »

Offline Sabine62

  • *
  • Fractal Freak
  • **
  • Posts: 661
  • It's just a jump to the left...
    • sabine62.deviantart.com
« Reply #11 on: January 17, 2019, 11:57:39 PM »
Much, much better behaved!  ;) :thumbs: :thumbs: :thumbs:
Thank you!

Though it still tells me it can only save .bmp's and then the saved file is recognized by my image editor as .png in disguise  ;D But this is really just me moaning over peanuts, nothing important ;)

Offline claude

  • *
  • 3f
  • ******
  • Posts: 1273
    • mathr.co.uk
« Reply #12 on: January 18, 2019, 01:39:44 AM »
some bug reports using mono-complete on Debian Buster (good news: it runs!):

crash when using scroll wheel:
Code: [Select]
$ TERM=xterm cli Infinity.exe
Unhandled Exception:
System.EntryPointNotFoundException: WindowFromPoint
  at (wrapper managed-to-native) Infinity.MainForm:WindowFromPoint (System.Drawing.Point)
  at Infinity.MainForm.PreFilterMessage (System.Windows.Forms.Message& m) [0x00037] in <29a84c6f1f7440a6a41f440eb8249978>:0
  at System.Windows.Forms.Application.FilterMessage (System.Windows.Forms.Message& message) [0x00028] in <d5b72d15d4f7424c8a1538e3f19ec2e3>:0
  at System.Windows.Forms.Application.RunLoop (System.Boolean Modal, System.Windows.Forms.ApplicationContext context) [0x000ff] in <d5b72d15d4f7424c8a1538e3f19ec2e3>:0
  at System.Windows.Forms.Application.Run (System.Windows.Forms.ApplicationContext context) [0x00014] in <d5b72d15d4f7424c8a1538e3f19ec2e3>:0
  at System.Windows.Forms.Application.Run (System.Windows.Forms.Form mainForm) [0x00006] in <d5b72d15d4f7424c8a1538e3f19ec2e3>:0
  at Infinity.Program.Main () [0x00010] in <29a84c6f1f7440a6a41f440eb8249978>:0
[ERROR] FATAL UNHANDLED EXCEPTION: System.EntryPointNotFoundException: WindowFromPoint
  at (wrapper managed-to-native) Infinity.MainForm:WindowFromPoint (System.Drawing.Point)
  at Infinity.MainForm.PreFilterMessage (System.Windows.Forms.Message& m) [0x00037] in <29a84c6f1f7440a6a41f440eb8249978>:0
  at System.Windows.Forms.Application.FilterMessage (System.Windows.Forms.Message& message) [0x00028] in <d5b72d15d4f7424c8a1538e3f19ec2e3>:0
  at System.Windows.Forms.Application.RunLoop (System.Boolean Modal, System.Windows.Forms.ApplicationContext context) [0x000ff] in <d5b72d15d4f7424c8a1538e3f19ec2e3>:0
  at System.Windows.Forms.Application.Run (System.Windows.Forms.ApplicationContext context) [0x00014] in <d5b72d15d4f7424c8a1538e3f19ec2e3>:0
  at System.Windows.Forms.Application.Run (System.Windows.Forms.Form mainForm) [0x00006] in <d5b72d15d4f7424c8a1538e3f19ec2e3>:0
  at Infinity.Program.Main () [0x00010] in <29a84c6f1f7440a6a41f440eb8249978>:0

crash when right clicking repeatedly very fast (trying to zoom out):
Code: [Select]
$ TERM=xterm cli Infinity.exe
Unhandled Exception:
System.InvalidOperationException: Invalid attempt made to decrement the event's count below zero.
  at System.Threading.CountdownEvent.Signal () [0x00054] in <8f2c484307284b51944a1a13a14c0266>:0
  at Fractal.WorkerThread.ThreadRunner () [0x0005d] in <def7cde001254556afb39e0a01c40873>:0
  at System.Threading.ThreadHelper.ThreadStart_Context (System.Object state) [0x00017] in <8f2c484307284b51944a1a13a14c0266>:0
  at System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) [0x0008d] in <8f2c484307284b51944a1a13a14c0266>:0
  at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) [0x00000] in <8f2c484307284b51944a1a13a14c0266>:0
  at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state) [0x00031] in <8f2c484307284b51944a1a13a14c0266>:0
  at System.Threading.ThreadHelper.ThreadStart () [0x0000b] in <8f2c484307284b51944a1a13a14c0266>:0
[ERROR] FATAL UNHANDLED EXCEPTION: System.InvalidOperationException: Invalid attempt made to decrement the event's count below zero.
  at System.Threading.CountdownEvent.Signal () [0x00054] in <8f2c484307284b51944a1a13a14c0266>:0
  at Fractal.WorkerThread.ThreadRunner () [0x0005d] in <def7cde001254556afb39e0a01c40873>:0
  at System.Threading.ThreadHelper.ThreadStart_Context (System.Object state) [0x00017] in <8f2c484307284b51944a1a13a14c0266>:0
  at System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) [0x0008d] in <8f2c484307284b51944a1a13a14c0266>:0
  at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) [0x00000] in <8f2c484307284b51944a1a13a14c0266>:0
  at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state) [0x00031] in <8f2c484307284b51944a1a13a14c0266>:0
  at System.Threading.ThreadHelper.ThreadStart () [0x0000b] in <8f2c484307284b51944a1a13a14c0266>:0

after double-clicking in the image of the M-set to zoom in, sometimes it seems to grab the mouse so I can't access the sliders on the right

no way to zoom out - double right click also zooms in

aspect ratio is not quite square (the biggest bulb should be a perfect circle) (EDIT: this is just because of the initial size of the window, image stretches when I resize)

coordinates are not measured from the center of the image (but some corner?)

coordinates are negative at the top (like KF, unlike maths - this one is not a bug report, just an observation)

selecting different colouring types doesn't seem to work (eg Trap Orbit looks exactly the same as Iterations, even after zooming in) (palette options like Invert Colors do work).

feels slow (eg my GPU can render shallow locations with low iterations at realtime frame rates, CPU is not far behind) - seeing the counter makes me think it works like this?
Code: [Select]
for iteration = 0 to limit
  for j = 0 to height - 1
    for i = 0 to width - 1
      step pixel at (j, i) by 1 iteration
because that is guaranteed to blow caches and be super slow (limited by memory bandwidth instead of number processing speed).  For speed you really want the iterations loop to be as far inside as possible, doing as many iterations at once per pixel as you can.

Progressive update is better handled by incremental resolution refinement (like KF - btw I fixed some display bugs in that area in the next forthcoming release, no more "bad appearance until the final pass" problem with slopes or nde).  You can still keep the iteration data around if you want to increase the iteration count later without recalculating everything (KF doesn't do this yet).

EDIT

menu bar is rendered in white text on very pale yellow (I have a dark system theme so text is usually white on a dark background).
opacity text etc is rendered in white on pale yellow too

can't exit Julia mode once entered

Mandelbrot seems to be the only fractal formula (no dropdown working)
« Last Edit: January 18, 2019, 03:04:48 AM by claude, Reason: more issues »

Offline mrrudewords

  • *
  • Fractal Flamingo
  • ****
  • Posts: 342
  • Dat Mandel!
« Reply #13 on: January 18, 2019, 10:35:48 AM »
Damn. All sorts of issues on linux then Claude. Got Windows? ;P

Thanks for the info.

Yes the fractal dropdown should have lots of choices.

Indeed the main iteration loop processes each pixel once per iteration. I did this because I like the way it looks when being rendered one iteration at a time. I understand this is slow, it takes hours to render one image at full resolution with super-sampling. But at the moment the 'Edges Only' coluring mode is also relying on the fact that when getting the colour for a pixel, all surrounding pixels that have escaped already will be known.

I haven't coded a zoom out function. I will add this in to return to the previous location.

I will also look at the Julia mode lock-in.

The coordinates are indeed for the top-left corner of the image. Does it make more sense to be the center? Might be a drastic change but I suppose it does.

I am guessing with all the combo-box issues and crashes that mono doesn't really do everything in the same way as .Net so it's going to be a pain to fix those. But I will try.

Offline mrrudewords

  • *
  • Fractal Flamingo
  • ****
  • Posts: 342
  • Dat Mandel!
« Reply #14 on: January 18, 2019, 11:58:58 AM »
Looking at the error from the scrollwheel. This is one of the only places that uses a dllimport. It is importing methods from user32.dll which is a windows dll. Maybe running under WINE will resolve that one, or maybe you need to provide the dll somehow (I don't really linux)


xx
Infinity Fractal 1.0.7

Started by mrrudewords on Downloads

0 Replies
231 Views
Last post January 29, 2019, 11:33:07 AM
by mrrudewords
xx
The Edge of Infinity - Mandelbrot Fractal Zoom (e2011, 4k 60fps, 2hrs 30min)

Started by saka on Fractal movie gallery

0 Replies
178 Views
Last post March 14, 2018, 01:27:20 PM
by saka
xx
How big is infinity?

Started by Nintendokater on Fractal movie gallery

1 Replies
116 Views
Last post March 19, 2019, 12:35:13 AM
by Paigan0
xx
Infinity

Started by kohlenstoff on Fractal Image Gallery

0 Replies
98 Views
Last post June 25, 2018, 10:52:40 PM
by kohlenstoff
xx
Red Dwarf Infinity

Started by Tater on Fractal Image Gallery

0 Replies
99 Views
Last post March 07, 2018, 07:26:22 PM
by Tater