Nanobrot Fractal Renderer

  • 8 Replies
  • 206 Views

0 Members and 1 Guest are viewing this topic.

Offline vasyan

  • *
  • Strange Attractor
  • ******
  • Posts: 90
    • stone voices
« on: January 20, 2020, 11:32:21 AM »
Nanobrot is a program for high-quality rendering of Mandelbrot fractals with a huge zoom value.
This is a fork of the original code by Karl Runmo and Kalles Fraktaler by Claude Heiland-Allen.
In the course of long work, it was decided to stop at nanoMB version 1, since version 2 proved to be not the best way.



Features
  • High quality fractal image rendering using supersampling (up to 16x).
  • Export fractal images in PNG, JPEG, TIFF, GIF, BMP and WDP formats.
  • Fractal Image Printout.
  • Import and export Kalles Fraktaler files.
  • Over 2300 color maps for coloring fractal images.
  • Various methods for coloring fractal images, including slope shading.
  • Ability to save level maps for later use (using ZLIB compression).
  • Fractal rendering in a untwisted coordinate system (used for export to the SoundArt program).
  • Examples.
  • Open source codes with a GNU Affero v3.0 license.

Details
In the course of long work, it was decided to stop at nanoMB version 1, since version 2 proved to be not the best way.

Initially, there was an attempt to implement the code completely on the Object Pascal, but the native C++ code turned out to be faster, so all the fractal calculation functions were transferred to the dynamic library - nmblib. The remaining software modules, including GUI, are implementated at the Object Pascal in the Delphi IDE, since Pascal is my favorite programming language.  ;)

Links
Project homepage
Download latest release
Image gallery







Linkback: https://fractalforums.org/other/55/nanobrot-fractal-renderer/3275/
« Last Edit: January 21, 2020, 07:28:33 AM by vasyan »

Offline claude

  • *
  • 3f
  • ******
  • Posts: 1347
    • mathr.co.uk
« Reply #1 on: January 20, 2020, 01:37:49 PM »
nice, I hope to try it out in WINE later today

important points:

- most of the credit should be with knighty, as I just integrated knighty's nanomb code into KF; Karl is the original author of KF
- inherited license should be AGPL, which is not quite the same as GPL (has more restrictions regarding software-as-a-service)
- current KF website is https://mathr.co.uk/kf/kf.html (the page hosted by chillheimer is before my fork)

suggestions:

- maybe you already ported this part too, but Newton-Raphson zooming is very nice to have for deep zooms
- support level maps in EXR format for interoperability with KF and other software
- have a plan for how to merge future changes in KF into your fork (in particular I want to add rescaled (long) double for nanomb which should increase efficiency over floatexp); it is a pity your git repository misses the history of KF development
- have a document that explains how to compile it (can be brief if it is easy)

Offline vasyan

  • *
  • Strange Attractor
  • ******
  • Posts: 90
    • stone voices
« Reply #2 on: January 20, 2020, 03:16:30 PM »
nice, I hope to try it out in WINE later today

important points:

- most of the credit should be with knighty, as I just integrated knighty's nanomb code into KF; Karl is the original author of KF
- inherited license should be AGPL, which is not quite the same as GPL (has more restrictions regarding software-as-a-service)
- current KF website is https://mathr.co.uk/kf/kf.html (the page hosted by chillheimer is before my fork)

suggestions:

- maybe you already ported this part too, but Newton-Raphson zooming is very nice to have for deep zooms
- support level maps in EXR format for interoperability with KF and other software
- have a plan for how to merge future changes in KF into your fork (in particular I want to add rescaled (long) double for nanomb which should increase efficiency over floatexp); it is a pity your git repository misses the history of KF development
- have a document that explains how to compile it (can be brief if it is easy)

Unfortunately, I am a programmer by education and do not understand legal issues such as licensing. Therefore, I took the information from the header of the kalles-fraktaler files as a basis:

Code: [Select]
/*
Kalles Fraktaler 2
Copyright (C) 2013-2017 Karl Runmo
Copyright (C) 2017-2019 Claude Heiland-Allen

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License
along with this program.  If not, see <https://www.gnu.org/licenses/>.
*/

However, it should be noted that your code is used only in the dynamic library nmblib, but the program itself is written under a different license, isn’t it possible?

And changed the link to the github you specified on the page.

I will be extremely grateful to someone who will provide a competently formatted text, as I wrote above that I am not an expert in the field of jurisprudence and is completely stupid in it.

Offline vasyan

  • *
  • Strange Attractor
  • ******
  • Posts: 90
    • stone voices
« Reply #3 on: January 20, 2020, 03:36:35 PM »
Update. In the Russian-language segment of the Internet, I unfortunately did not find information about whether the translation from one programming language to another is a violation of license.  :(

Offline claude

  • *
  • 3f
  • ******
  • Posts: 1347
    • mathr.co.uk
« Reply #4 on: January 20, 2020, 04:16:33 PM »
However, it should be noted that your code is used only in the dynamic library nmblib, but the program itself is written under a different license, isn’t it possible?
That is allowed by some licenses (eg LGPL allows close source programs to link to LGPL libraries, as long as it's possible to modify and swap the library used by the program) but not others (eg GPL requires the whole source code to be made available, afaik).  It's all very complicated so lawyers get rich, but as long as you distribute the complete source code whenever you distribute (or provide access to for AGPL) binaries I don't think it matters too much in practice because that's the intent behind the copyleft idea (the freedom to study and modify programs that you have, and distribute your changes so that others can also benefit), the legal side is just a hack/workaround to try to enforce it while copyright has not yet been abolished.

Offline claude

  • *
  • 3f
  • ******
  • Posts: 1347
    • mathr.co.uk
« Reply #5 on: January 20, 2020, 04:45:09 PM »
I tried it, I like the quick recolouring when selecting a gradient!

bug reports
- after cancelling a render, the next render(s) sometimes pop up error dialog(s), click ok and it seems to carry on.  see attached
- the "Distance X" rendering methods seem all to be the same as "Potential"?
- could be nice to have a "slim-line" version of the release zip without the 23MB of example iteration map files
- "detect period" on the default view gives 28 instead of 1 -> incorrect rendering near period 3 bulbs (and probably elsewhere)

feature requests
- navigation (I guess this means you need KF or some other program to explore, and do final rendering in Nanobrot?, or that it is implemented but doesn't work in WINE for some reason?)
« Last Edit: January 20, 2020, 05:06:04 PM by claude, Reason: moar bugs »

Offline gerson

  • *
  • Fractal Furball
  • ***
  • Posts: 277
« Reply #6 on: January 20, 2020, 05:32:34 PM »
I tried to do this image:
https://fractalforums.org/index.php?action=gallery;sa=view;id=3587
inserted the coordinates, zoom, iterations and period, when I ran it got an error.
Maybe you could give us some hints about how to use it.
Liked the variety of colors and the way it is changed.
If possible a 32bits version.
« Last Edit: January 20, 2020, 06:02:05 PM by gerson »

Offline vasyan

  • *
  • Strange Attractor
  • ******
  • Posts: 90
    • stone voices
« Reply #7 on: January 21, 2020, 02:57:27 AM »
- after cancelling a render, the next render(s) sometimes pop up error dialog(s), click ok and it seems to carry on.  see attached
A very sore subject when error messages appear indicating the coordinates of the pixel when calculating which an error occurs. In this case, I need your *.nbr file in which an error occurs, I will try to do a step-by-step debugging by setting the coordinates of the bad pixel and thereby find and fix the bug. The program, by the way, is a pre-release and bugs are possible in it.

- the "Distance X" rendering methods seem all to be the same as "Potential"?
It may well be, although various types of coloring have been used. You can try changing other recoloring options and see the difference between them.

- could be nice to have a "slim-line" version of the release zip without the 23MB of example iteration map files
This is just an example of how you can save the rendering result for subsequent recoloring. Indeed, you must admit, if there had not been this example, then the user would hardly have come to know about such a magnificent program feature.

"detect period" on the default view gives 28 instead of 1 -> incorrect rendering near period 3 bulbs (and probably elsewhere)
I used the method of determining the period, which was very well shown in nanoMB version 2. Unfortunately, I could not try other methods of determination that were used in KF, since the code is very confused in the threads. If you could provide me with a linear code such as the Knighty's Taylor ball method or Robert Munafo's polygon iteration method, without threads, then I would choose a method for calculating the period that would be correct for a particular fractal.

- navigation (I guess this means you need KF or some other program to explore, and do final rendering in Nanobrot?, or that it is implemented but doesn't work in WINE for some reason?)
I thought about navigation, as well as the fact that you can use the mouse to manipulate views, and also use guides (as in graphic editors) to be able to align symmetrical fractals in the center of the viewport. But unfortunately I am involved in this project in my free time from the main activity, therefore its development is very long in time. I would like to speed up this project, but this requires some financial budget.

Important information
If you notice an error message when calculating where the coordinates of the pixel are indicated, then let me know by additionally attaching the *.nbr file to the message and also the pixel coordinates - x =? y =?.

Offline vasyan

  • *
  • Strange Attractor
  • ******
  • Posts: 90
    • stone voices
« Reply #8 on: January 21, 2020, 03:09:07 AM »
I tried to do this image:
https://fractalforums.org/index.php?action=gallery;sa=view;id=3587
inserted the coordinates, zoom, iterations and period, when I ran it got an error.
Maybe you could give us some hints about how to use it.
Liked the variety of colors and the way it is changed.
If possible a 32bits version.

If you notice an error message when calculating where the coordinates of the pixel are indicated, then let me know by additionally attaching the *.nbr file to the message and also the pixel coordinates - x =? y =?.

The 32-bit version is much slower and there are memory limitations (2 gigabytes), even in the latest Windows 10. Therefore, you can compile the 32-bit version yourself from the source code that is available in the github repository.


xx
The Beginnings of a Renderer

Started by blue_knight on Programming

5 Replies
265 Views
Last post May 18, 2019, 03:19:37 PM
by mclarekin
xx
Problem with brute (non DE) renderer

Started by TGlad on Fragmentarium

4 Replies
190 Views
Last post November 19, 2018, 03:35:38 AM
by 3DickUlus
xx
I'm about to make a Mandelbrot set renderer

Started by galac on Programming

0 Replies
194 Views
Last post May 05, 2019, 03:16:22 PM
by galac
xx
Re: Problem with brute (non DE) renderer

Started by Robert Badaracco on Fragmentarium

2 Replies
92 Views
Last post October 23, 2019, 06:49:22 AM
by Robert Badaracco
clip
fractal in nature (fractal stone and fractal concrete)

Started by hgjf2 on Chemistry

3 Replies
509 Views
Last post January 13, 2019, 08:07:15 AM
by hgjf2