Logo by mauxuam - 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: Follow us on Twitter
 
*
Welcome, Guest. Please login or register. March 29, 2024, 01:40:57 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   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: Active MB3D Develoment stopped from my side  (Read 31112 times)
0 Members and 1 Guest are viewing this topic.
Aura-Indigo
Forums Freshman
**
Posts: 12



WWW
« Reply #15 on: July 04, 2016, 05:43:56 AM »

Sorry to hear that Andreas  sad
Not that I am a big M3D user (fan of your JWildfire), but it always sad when ones good intentions and creative energy stop because of lack of positive feedback and attention. What you did with M3D, especially in the MutaGen direction is amazing! I am following JWF development since early versions and always are amazed by your strive for extending limitations and exploring new possibilities... Sorry to know it didn't happen same way with M3D.
I respect your decision anyway.
Logged

Caleidoscope
Fractal Fertilizer
*****
Posts: 365



WWW
« Reply #16 on: July 06, 2016, 01:48:20 PM »

Well, I do love JWildfire.  Not a day goes by or I use it and have great pleasure doing so.  I'm not the one that knows all about mathematics and stuff but I consider it a journey to find out (the hard way) to use everything, every option possible.  Maybe I don't always know what I'm doing but when I like the result I'm happy wink
I'm really sorry that someone like Andreas doesn't get the support and attention he so absolutely deserves. Who has put such an immense amount of time and energy and knowledge in programs that even people like me without the scientific background are able to make beautiful things and are able to do so.  I want to thank you from the bottom of my heart for all you've done and I wish you all the very best with whatever the future has to offer for you.  Good luck to you and your family!   A Beer Cup A Beer Cup A Beer Cup
Logged

"Today you create the memory for tomorrow, be sure to make it a good one"
micshac
Forums Freshman
**
Posts: 13



« Reply #17 on: July 08, 2016, 06:44:02 PM »

A million blessings for your work.

Mutagen is fab!

 flowers
Logged
Lelle
Explorer
****
Posts: 40


« Reply #18 on: July 18, 2016, 12:37:32 AM »

Thanks for a job well done Andreas! Just strip the app of anything valuable and incorporate it with JWildfire.
Logged
schizo
Iterator
*
Posts: 156



WWW
« Reply #19 on: July 19, 2016, 12:29:30 PM »

Hi Andreas,

sad news but an understandable decission. The things you have already done are great. Thank you!  flowers

Any idea about the DoF speed problem? Maybe it is just a minor bug but it prevents me from doing animations with the latest version because calculation time raises too much.

Maybe it would be the best to collect all the fantastic ideas and start a completly new project with a clean and expandable code. But I doubt that these features are well documented and I doubt there is an enthusiastic developer to kick off such a project.
Lets see what the future brings.
Logged

thargor6
Fractal Molossus
**
Posts: 789



WWW
« Reply #20 on: July 19, 2016, 01:37:30 PM »

Any idea about the DoF speed problem?
The only thing I can imagine so far: I made some part of the calculation thread-safe, which was necessary for the JIT-stuff. Maybe I will find the time to investigate it.
[/quote]

Maybe it would be the best to collect all the fantastic ideas and start a completly new project with a clean and expandable code.
Yes, but this goes far beyond my ressources, and without the support of the community (I'm referring here to the post of of buddhi, who gets hardly any feedback for new versions of Mandelbulber), it will hardly work ( except the developer has enough interest / motivation by him/herself, in my case I can not develop this for a code-base, which was not created by myself, of course  ).

Cheers!
Logged
Sabine
Fractal Fertilizer
*****
Posts: 373



WWW
« Reply #21 on: July 20, 2016, 09:04:16 PM »

I am sorry you had to take this decision, Andreas, but I fully understand!
Thank you so very much for all the time and energy you put into my 'most favourite program of all'! You've done wonders for its advancement where I thought no one could enhance this program after Jesse left it.
Logged

sabine62.deviantart.com
Sitting Duck
Navigator
*****
Posts: 64


« Reply #22 on: July 27, 2016, 12:43:27 AM »

I have been out of the loop here in fractal forums for a long while and was unaware of the attempts to develop MB3D.
I Downloaded the new and improved version just recently and was glad to see some interesting changes. I also experienced some minor GUI bugs but that could be because I switched to win10. The best thing is the Mutator - great tool for exploring new combos.
Every change that made renderings go faster would have been on my wish list but I understand the difficulties - you cant make a steam locomotive fly like a plane. wink
Speaking of speed does anyone know if the M.C renderer has support for multi-core processors? It looks like only one of my is operating during rendering, or is it perhaps something wrong with the cpu... undecided

Anyways, what i really wanted to say, thanks Andreas for your time and effort!
Logged
valera_rozuvan
Safarist
******
Posts: 80


a test in time


valera.rozuvan valerarozuvan
WWW
« Reply #23 on: July 27, 2016, 05:27:03 AM »

Andreas - I also offer you my thank you!  smiley

But I have a favor to ask of you. I know you already outlined some of the problems why you decided to stop development of MB3D. The technical problems. At this point you are pretty much the only person who has deep knowledge of the code base, it's shortcomings, areas that need to be refactored, hacks, etc. Before this knowledge seeps away through the memory sands, can you please write down your thoughts on the following:

- how would you go about restructuring the project if you would rewrite it from scratch
- what would you do differently than what was done initially by Jesse
- list of things that you really wanted to implement (to finish), but never got the chance
- UI decisions
- roadmap - where did you want to take this project (think back to the time when you just started on it, and was very enthusiastic about it's future)

You input will be greatly appreciated.
Logged

thargor6
Fractal Molossus
**
Posts: 789



WWW
« Reply #24 on: July 27, 2016, 01:02:20 PM »

- how would you go about restructuring the project if you would rewrite it from scratch
The main problem is not the structure (there is not much structure at all), but the unnessarily cryptic code with lots of hardcoded and undocumented numbers inside of it.

I think, using of constants and more comments would help a lot, making the code at least human-readable (try to replace all occurences of "6" in the whole code by an constant, but only the 6 which depicts the number of lights, the other 6 is the number of formulas ;-)) After that it could be refactored, and OO techniques could be applied.


Another major (maybe the worst) problem is that most formulas are not documented and are only available in ASM-code. This makes it nearly impossible to port MB3D to another language, or would make it at least to a very time-consuming task. I. e., throwing all the main code away and starting from scratch, creating a new UI should be a fun thing, but after that, the program would be "naked", not having all the formulas!
In my experience, users already notice it, when only one formula is missing ;-)

- what would you do differently than what was done initially by Jesse
The thing what really hurts me is the file-format, which is just a kind of a dump of the internal structures. And there are even multiple file-formats as you know. Any internal change will potentially affect the file formats. And you must always support all versions of them, at least this is currently the case.

- list of things that you really wanted to implement (to finish), but never got the chance
User-defined (JIT) dIFS-formulas. Did not work because MB3D used some non-standard-way to call dIFS functions.

- UI decisions
I never got used to the UI by myself, I think I would have created a very different one, which does not mean that it would have been better. Especially only one editor window with easier access to all the properties.

- roadmap - where did you want to take this project (think back to the time when you just started on it, and was very enthusiastic about it's future)
I primarily wanted to enable the users to use more formulas and more lights, and to define their own formulas. It was initially clear to me that MB3D is a dead project because of the dead plattform (Delphi, Windows 32 Bit). The BulbTracer and MutaGen-stuff were just additions for fun which could be done easily because they are new code.

I hope this answered your questions well and not any part is taken as Jesse-bashing in any way, which was and is never intended by me! Doing a software-project like this always deserves respect, and hindsight is always smarter! cheesy


Cheers!

Logged
Buddhi
Fractal Iambus
***
Posts: 895



WWW
« Reply #25 on: July 27, 2016, 08:27:42 PM »

From my experience, many big projects, especially when evolve a lot, reach some point where further improvement is anymore possible. One good example was my Mandelbulber v1. At the beginning it was very small application without any GUI. Then when I got some interesting 3D fractals I started to develop GUI and many effects and options. It worked quite well at that time, because GTK was very flexible, but.... Unfortunately I had no good UI editor, so all the interface stuff was hardcoded. It was very difficult to redesign the UI. Another problem was handling of growing number of parameters, especially when they were needed to be morphed in animation, saved/loaded from settings files or animated by sound. Every part of this stuff needed to take cake about each parameter separately. Only what I achieved was automatic morphing of all floating point variables. But I had to be very careful about order of variables in data structures. There was additionally many hardcoded numbers, which caused troubles when I decided to change something. All of this kind of stuff stopped me in dead end.
That's why I decided to leave Mandelbulber v1 project and start developing Mandelbulber v2 from scratch. I decided to use another framework (now is Qt instead of GTK) and to create internal dictionary of fractal parameters. That two main changes allowed me to reach new flexibility level and full multiplatform support (Linux, Windows, OSX; qmake, cmake, VSC++).
Dictionary of parameters allowed me to simplify loading and saving of parameters in different formats, to morph them in animation using different functions, to automate synchronizing of variables with interface and made flexible animation interface. Now I'm happy of that decision even if it took me 2 year to get similar functionality like old program.  After that it was easy to jump to advanced level (like material management or more advanced animation)
Another benefit is more readable code, which is now developed not only be me, but also by zebastan and mclarekin.

Another example which I can give you from my experience is from automation industry. When you develop any prototype of machine, you never should use the same construction for regular production. The reason is the same. Prototype is never good and level of changes needed to industrialize the process is too high or even sometimes impossible. That why in most cases there is designed new machine based on knowledge gained during development of prototype.

I think there is the same with MB3D. Actually all operating systems are 64-bit, so there is no bright future for 32-bit applications. With actual choice of programming tools and usage of assembly code there is no possibility to convert this application to 64-bit or to another processor like ARM.
The program structure is closed and many things are hardcoded, so scalability of the program is limited.
Even if it is GREAT program and THE BEST, it would be better to start new project or use knowledge and solution in some of actually developed applications like JWildfire, Fragmentarium (or Mandelbulber). I can imagine how difficult is this decision.
Logged

valera_rozuvan
Safarist
******
Posts: 80


a test in time


valera.rozuvan valerarozuvan
WWW
« Reply #26 on: July 28, 2016, 12:23:21 AM »

Looking at the source code in https://github.com/thargor6/mb3d repository, several things jump at me:

  • The project is huge! Using https://github.com/AlDanial/cloc utility we can see that it has 88 548 lines of code. Almost ninety thousand lines! Amazing  smiley
  • Lack of comments. No way to tell what each functions does, except by guessing from it's name.
  • There is so much commented out code.
  • 8 227 lines (about 10%) of the code is in assembly language. See all of the asm lines here https://gist.github.com/valera-rozuvan/28a0ec1dd706a66cf1f08138939d0db1. I compiled this out of curiosity (using Emacs macros). The cloc utility doesn't report number of inline assembly code.

I do understand why the original author wrote so much in assembly. Delphi (pascal) is not exactly a fast language. So, as much as possible, you want to do the heavy lifting in asm, when creating a Delphi program. I used to do just that, back when I did Delphi 10 years ago.

I think this project can be rewritten in pure C (with QT for the UI) in about 3 years. That's a best guess scenario for a one-man effort, doing 20 hours of programming a week on average.

thargor6, Buddhi - what do you think of my estimate?  smiley
Logged

thargor6
Fractal Molossus
**
Posts: 789



WWW
« Reply #27 on: July 28, 2016, 01:31:56 AM »

You are wrong about the amount of ASM-code. Much of the ASM-code sits inside the formula-files which are not even ASM-code, but compiled binaries, e.g. CylinderHeightMap:
Code:
5183C4E0DD4698D867E4DD4690D867E8DD4688D867ECD9C0D84FBCD9C2D84FB8
DEC1D9C3D84FB4DEC1D9C1D84FD4D9C3D84FD0DEC1D9C4D84FCCDEC1D9CAD84F
C8D9CBD84FC4DEC3D9CBD84FC0DEC2D9C1D8C8D9C1D8C8DEC1D9FAD954241CD8
67DCD9C3D9E1D867E0D8D1DFE0D0EC7202D9C9DDD8D9C0D9E1D947D8D9E1DED9
DFE0D0EC730CDD5EE0DED9DDD883C42059C3D95C2418D9C1D9F3DC0FDD1C24DD
D8DC0FD877DCDD5C240889E08B57F489E1FF960C0100008B4FF083E103DD04CC
DC67F8D84FD8D84C241CD86C2418DD5EE08B4FB083E103DD04CCD847ACD84FA8
DD9E8000000083C42059C3
I. e., you have to disassemble this in order to get the ASM code.


I would never rewrite the application in C/QT, because in Mandelbulber there is already a project which uses this plattform.
So, it would make much more sense to contribute to Mandelbulber (which I think about, but currently I have no spare time because of my own project).

I can not really judge your estimation, but measuring the effort in years is the right way ;-)

Cheers!

Logged
valera_rozuvan
Safarist
******
Posts: 80


a test in time


valera.rozuvan valerarozuvan
WWW
« Reply #28 on: July 28, 2016, 01:46:23 AM »

You are wrong about the amount of ASM-code. Much of the ASM-code sits inside the formula-files which are not even ASM-code, but compiled binaries, e.g. CylinderHeightMap

Where is CylinderHeightMap located? Looking through https://github.com/thargor6/mb3d, I can't find a file named "CylinderHeightMap". Also a recursive search for the string "CylinderHeightMap" doesn't return anything...
Logged

valera_rozuvan
Safarist
******
Posts: 80


a test in time


valera.rozuvan valerarozuvan
WWW
« Reply #29 on: July 28, 2016, 02:53:39 AM »

OK. Silly me. I should have thought of looking in the release directory [1] also. Found that file inside the folder M3Formulas. So, is the repository https://github.com/thargor6/mb3d only responsible for generating the executable Mandelbulb3D.exe in the release directory?

Also, another question. What software was used to compile the code found in the formula-files? Was it a straight Delphi ASM to binary compilation?


[1] By release directory, I am talking about everything that's inside the ZIP file found at http://mandelbulb.com/2014/mandelbulb-3d-mb3d-fractal-rendering-software/.
Logged

Pages: 1 [2] 3   Go Down
  Print  
 
Jump to:  

Related Topics
Subject Started by Replies Views Last post
The blue side of the other side Mandelbulb3D Gallery lyron 0 1989 Last post February 19, 2011, 09:07:56 PM
by lyron
MB3D Stopped when computing VL Mandelbulb 3d mario837 5 4028 Last post June 27, 2013, 09:56:06 PM
by Jesse
Active Season Images Showcase (Rate My Fractal) Pauldelbrot 2 1687 Last post May 31, 2014, 06:49:05 PM
by Pauldelbrot
looking for develoment of a formula - Paid work Programming tryptophan 0 1769 Last post May 19, 2015, 10:28:31 PM
by tryptophan

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.185 seconds with 25 queries. (Pretty URLs adds 0.01s, 2q)