Title: Hello from Switzerland! :D Post by: elphinstone on March 24, 2013, 03:07:23 PM Hi to everyone!
I live in the Swiss alps and I'm studying computer science in Zürich. I love cats and I play the piano. I've always been fascinated from computer graphics. My main interests are procedural world generation and fractals. This sbecause I'm lazy and I prefer to tell my computer how to draw beautiful images instead of model everything myself ;) I'm currently writing a generic raytracer and just started to focus on 3D fractals. As soon as I get some decent result I want to optimize everything for SIMD and GPU. I'm really impressed about this community. I hope to find the knowledges I need and, as soon as possible, to start helping other people who, like me, want to explore this wonderful mathematical world! Title: Re: Hello from Switwerland! :D Post by: Sockratease on March 24, 2013, 06:59:13 PM Hello and welcome to the forums!
Feel free to share any of your work you like. Maybe even save some of the best pieces for our Annual Contest - Coming up Soon O0 Title: Re: Hello from Switwerland! :D Post by: eiffie on March 26, 2013, 04:34:04 PM Nice to see another programmer on board. Ask any questions you like and maybe we know the answer - maybe not. Everyone is waiting for someone with the energy to write an app that does hybrid fractals from a GUI selection using all available resources (CPU, GPU, networked etc).
Title: Re: Hello from Switwerland! :D Post by: cKleinhuis on March 26, 2013, 04:37:11 PM lol, well spoken eiffie :D
hello and welcome to the forums! Title: Re: Hello from Switwerland! :D Post by: elphinstone on April 01, 2013, 04:19:47 PM Nice to see another programmer on board. Ask any questions you like and maybe we know the answer - maybe not. Everyone is waiting for someone with the energy to write an app that does hybrid fractals from a GUI selection using all available resources (CPU, GPU, networked etc). Wow, I thought I was just reinventing the wheel. Using all available resources looks to me as a basic requirement... Really? Isn't there something that already do this? :hmh: Well, if there is something that current software don't do just ask for it! :D So, first question: I'm motivated for writing something useful to other peolpe, but I need to know what people need. Where should I start posting / asking? Title: Re: Hello from Switwerland! :D Post by: Holgram on April 01, 2013, 11:20:04 PM wow, great to see a motivated programmer(unlike some of my friends).
can't wait to see some of the programming you produce. yes, the efficient and full utilization of all resources of the computers in the network would be great. Title: Re: Hello from Switwerland! :D Post by: elphinstone on April 04, 2013, 08:27:21 PM So, it looks like I'm getting somewhere... distributed computing over multiple computers doesn't look too hard. What I'm still trying to figure out is how to handle support for different system categories (basic, SSE capable, CUDA capable, ...). Lot of work but I think I'll manage to do it. It will take a couple of months since I'm busy with the school, but I want to release a demo as soon as possible because I want to understand if what I'm doing is really useful or if it's just a bad copy of already existing softwares. :tongue1:
Since my knowledges in the fractal world are very basic I'm probably going to need help.
Thank you! Title: Re: Hello from Switwerland! :D Post by: cKleinhuis on April 04, 2013, 10:20:04 PM hi there, i have a short explanation of the hybrids here: http://www.youtube.com/watch?feature=player_detailpage&v=rRkWpB8oUwE#t=419s
besides, the main thing such a networking program needs to have: an arbitrary precision number system, with that you could read ultrafractal 5 formula files, which pretty much describe how a iteration process works, for building a 3d renderer you need a 3vector as number Title: Re: Hello from Switwerland! :D Post by: Syntopia on April 04, 2013, 10:49:12 PM So, it looks like I'm getting somewhere... distributed computing over multiple computers doesn't look too hard. What I'm still trying to figure out is how to handle support for different system categories (basic, SSE capable, CUDA capable, ...). Lot of work but I think I'll manage to do it. It will take a couple of months since I'm busy with the school, but I want to release a demo as soon as possible because I want to understand if what I'm doing is really useful or if it's just a bad copy of already existing softwares. :tongue1: Since my knowledges in the fractal world are very basic I'm probably going to need help.
Thank you! It sound like an ambitious project you are starting! The most common fractals may be found in the Fragmentarium examples: https://github.com/Syntopia/Fragmentarium/tree/master/Fragmentarium-Source/Examples The ones I consider the "classics" are: Mandelbulb Mandelbox Quaternion Julia 4D Kaleidoscopic IFS (especially the platonic solids base forms: Tetra, Cube/Menger, Octa, Dodeca, Icosa) PseudoKleinian Title: Re: Hello from Switwerland! :D Post by: eiffie on April 04, 2013, 11:22:37 PM You might want to look at OpenCL rather than writing seperate code for CPU/GPU.
I will suggest another item - user defined formulas. If you want your software to really be benificial to those interested in fractal formulas. It will also save you some work - let the community fill in the formula database for you. You will find some helpers here - it is hard to know what you need to start but when you start digging into it you will have some specific questions for us I'm sure. Title: Re: Hello from Switwerland! :D Post by: cKleinhuis on April 05, 2013, 11:07:32 AM yes, arbitrary precision and formula parser a a must have for network renderin ;)
Title: Re: Hello from Switwerland! :D Post by: David Makin on April 05, 2013, 01:07:50 PM If you want to be really ambitious then the ultimate fractal program would allow escape-time rendering of an IFS-style tree of functions where the transform/function in each node could be different in every case ;)
Of course the user-interface and distance estimation for this would be a bit complicated but it's a bit like mixing CSG trees with escape-time fractal methods... Title: Re: Hello from Switwerland! :D Post by: elphinstone on April 05, 2013, 02:31:37 PM cKleinhuis: Your videos are awesome, I'm slowly trying to watch them all. I like how you are able to give clear explanations in a funny way! Vielen Dank! :)
eiffie: Thank you for the advices, OpenCL really seems to be a natural choice. Just discovered it also supports online compilation, this is perfect for compiling fast code from formula scripts at runtime! I don't know why I didn't think about it before! (Oh.. yes I know, it's because I'm a Nvidia fanboy :embarrass:). David: Ok, my next ambition is to undestand what you are talking about ;D Sorry but at the moment this is beyond my knowledges. I have some understanding about IFS and escape time, but I cannot see how you want to combine everything togheter. Any source where I can learn about that? For the rest: I also believe that arbitrary precision is needed, but it's a lot of work and would introduce a big slowdown. It's something I'll think about later. Ok, I think I have to cool down a bit with coding and get a better idea of what (and how) to do. Luckily this forum seems to have a lot of resources! Thank you all for the advices! PS. I take this opportunity to thank Syntopia too. Before jumping in this forum I spend whole weeks reading all your posts in your blog! Title: Re: Hello from Switwerland! :D Post by: eiffie on April 05, 2013, 06:04:16 PM Dave - once I started writing a GUI for my simple renderer but after realizing all the different ways there are to combine formulas the GUI was becoming more complicated then hand coding each. It IS a great idea and probably something to keep in mind but I suggest starting "simple" with an interface like MB3D.
Elf - if you get a chance to work on this how about starting a project on google code, sourceforge etc. I think there are a few coders who would like to help. Title: Re: Hello from Switzerland! :D Post by: Alef on April 07, 2013, 07:28:36 PM I think, Switzerland could be the moust beautifull country in Europa. Grundelwald, Bern, Geneva, Lausanne, every town is worth to visit. Maybe Monaco is more beautifull, but it's not a full state and they don't have MCdonnalds.
Well, it would be nice, if there would be some assambler programmer with hex editor. Its sounds as xacking, but it's how Mandelbulb3D fractal formulas are written, and there are some formulas, say mandelex, which aren't there. Making new 3D fractal raytracer with features of both Mandelbulb3D and Fragmentarium don't sounds as easy task, sounds more like for a team. Actualy most of 3D fractals are of same type, or could I say, use same engine. Main difference are brute force or DE. There are 3D strange attractors, you can alsou hybridise - combine them together, but none uses them;) Try to look Mandelbulb3D, Fragmentarium, Chaos Pro. Title: Re: Hello from Switzerland! :D Post by: elphinstone on April 08, 2013, 02:08:33 PM Everyone loves Switzerland except swiss people ;D Well, I like my country, but my dream is to live near some fiord in Norway!
I already considered using assembly (eypecially because of SSE, compilers are not very smart with those instructions), but this would imply writing specific code for both CPU and GPU. As far as I know Mandelbulb3D doesn't use the GPU, so it doesn't have to worry about this aspect. I'm currently working with a friend at the university. Currently we are still in the design phase. As soon as we get something working I'll post in the Fractal Software section. In the meantime every suggestion/requet is welcome! Title: Re: Hello from Switzerland! :D Post by: Alef on April 17, 2013, 02:50:13 PM There is too much rain and not anought sun;)
I think Idealy 3D fractal generator should have: Hybridisation, coz (in M3D) it's the most fun feature. The most popular alternation is pretty simple, execute one formula, then another, then third, then again first one. Formula parser or compiler as in Fragmentarium or Chaos Pro, for an advanced users to explore formulas. I just had one formula, but since assambler is beyond my skills, and writing formula for M3D is like hacking I can't explore them in good raytracer http://www.fractalforums.com/new-theories-and-research/swirlbox/ (http://www.fractalforums.com/new-theories-and-research/swirlbox/) . And then there is mandelX about whome everyone are exited. http://www.fractalforums.com/new-theories-and-research/an-interesting-fractal-the-mandelex-%28inspired-by-the-box%29/ (http://www.fractalforums.com/new-theories-and-research/an-interesting-fractal-the-mandelex-%28inspired-by-the-box%29/) And good enought colour algorithm unlike of fragmentarium, so that colour would be pallete based, preferably fractints .map files or of some another established fractal generated fractal generator with hudge database. M3D colours are pallete based, but it uses it's own format, so it had just a few colour palettes until I did additional 77;) Then alsou compiler for a colour methods, so colour formulas alsou could be explored like it is in Chaos Pro, which works with most of Ultra Fractal's colour formulas from it's hudge database. Or maybe colours could be abandoned altogether, and a texture could be used instead as in all normal 3D. Good enought tools to zoom or move to the fractal, something in between M3D and Chaos Pro could be good. That is 6 features, if fast GPU rendering is included, then 7. Or simpler: hybridisation, compiler, colours / textures and GPU. It looks as large list, but then everything must not appear simulatenuesly, and if it's posted, some other developers could notice;) Title: Re: Hello from Switzerland! :D Post by: Holgram on April 18, 2013, 01:17:15 AM I agree with Alef but also would like to see optimized use of all resources of all the computers in the network.
For now ultra fractal is the only one with some networking(no GPU at all). And I would suggest ditching ray tracing and using the faster and more pleasing to the eye radiosity algorithms. Specifically stochastic galerkin method radiosity illumination gives incredibly pleasing results. And stochastic ray method radiosity eats up no more render time than the standard algorithm There is also a two pass radiosity and ray tracer method that handles diffuse as well as specular reflections and transparency but is definitely not necessary in my opinion. If you decide to go with radiosity you could also increase calculation time drastically by ditching the coloring algorithms(as Alef suggested) as well and using texture mapping. Also it seems that meshes that are specified in advance give much less noise in the final image with the radiosity method. Some links on radiosity: http://en.wikipedia.org/wiki/Radiosity_(computer_graphics) (http://en.wikipedia.org/wiki/Radiosity_(computer_graphics)) http://www.cg.tuwien.ac.at/research/rendering/rays-radio/ (http://www.cg.tuwien.ac.at/research/rendering/rays-radio/) http://freespace.virgin.net/hugo.elias/radiosity/radiosity.htm (http://freespace.virgin.net/hugo.elias/radiosity/radiosity.htm) Texture mapping: http://en.wikipedia.org/wiki/Texture_mapping (http://en.wikipedia.org/wiki/Texture_mapping) It is just a suggestion and I will add more links if interested. Title: Re: Hello from Switzerland! :D Post by: elphinstone on April 18, 2013, 11:15:28 AM Thank you all for the advices!
So, what there WILL be:
What there will be in LATER releases:
What is still open:
Radiosity looks very interesting, but at the moment I don't think I can implement it. It works only on patches (meshes), and I think it will be too expensive to generate meshes from procedural formulas with enough resolution... But if you have more resources I'm happy to read them and do some investigation! (for personal interest too) :) I'm considering starting a thread or a blog about the development... I Will keep you updated! Title: Re: Hello from Switzerland! :D Post by: eiffie on April 18, 2013, 05:47:18 PM Great to hear it is taking some shape! The GUI hybrids will be important if you want the more artistic users to adopt it but I will be happy with the first release.
Think about how users will swap scripts etc. Make it a fun experience with browsing and top 10 (if you can find server space). If not we will do it here I am sure. Title: Re: Hello from Switzerland! :D Post by: cKleinhuis on April 18, 2013, 06:18:33 PM about the hybridisation and gui
in my eyes many many many possibilities must be considered there, some kind of node system might be handy for such ... consider the following: lets think of we have formula a and formula b all the following combinations must be covered with the gui: abababababa.... ( plain alternation, 1xa + 1xb ) bababababab.... ( plain alternation, 1xb + 1xa ) aabaabaabaab... ( alternation with amounts: 2xa + 1xb ) abbabbabbabb... ( alternation with amounts: 1xa+2xb) dont forget, ordering is crucial.... and any combination of such, meaning to repeat a combination forever, but such combinations should be as well doable with the hybrid editor: aaaaaaaaaaab.... ( begin with a for n steps, continue with b) bbbbbbbbbba.... (begin with b for n steps, continue with a ) or aaaaabaaaaa.... ( place formula b at a certain iteration, continue with formula a ) bbbbbabbbb.... ( continue with formula b ) or the complete arbitrary placement of formulas: aabaaaaaba.... (continue in any manner, basically allow each iteration to use a different formula) the organisation of such might be very time consuming and slowing down a final render, but hey, the result is what counts ;) AND NOW COMES THE MOST CRUCIAL PART: any hybrid has to be selectable/saveable as new base formula!!!! Title: Re: Hello from Switzerland! :D Post by: Alef on April 18, 2013, 06:46:48 PM Quote any hybrid has to be selectable/saveable as new base formula!!!! I think, if there would be a compiler, you can just ad it to a code. Title: Re: Hello from Switzerland! :D Post by: eiffie on April 18, 2013, 07:17:13 PM Right Alef and that is what the first version MAY allow but we are talking about how to make it usable for non-coders.
Title: Re: Hello from Switzerland! :D Post by: elphinstone on April 21, 2013, 01:18:02 PM Guys, you are making it difficult... I like it! ;D
I understand importance of hybrids. cKleinhuis, your post is very helpfu and gave me the idea for a very powerful approach. A challenging problem is that OpenCL doesn't has function pointers (WHY?? CUDA has them and AMD already has hardware support :angry: ), so it's hard to find a "clean" solution... I'm afraid the application will have to "copy&paste" formulas, resulting in huge scripts. As I said I started a blog https://synthverse.wordpress.com/ (https://synthverse.wordpress.com/) where I will talk about the development of SYN (yep! now it has a name!), fractals, procedural generation and computer graphics. But until now I talked a lot but programmed very little. Enough words for now! I'll be back when I have something working to show! ;) Title: Re: Hello from Switzerland! :D Post by: Holgram on April 23, 2013, 12:44:14 PM I am sorry for the late reply.
It seems to illuminate a fractal surface using the Radiocity method we have to approximate a mesh using polygons. Assign a coefficient to the polygon dualities depending on how much they see each other(depending on the distance and angle) and using the the Radiocity equations solve the arising system of linear equations. The biggest problem here is that to exactly solve the system of linear equations with the magnitude of n we would need to process n^3. Meaning if the scene we would like to render is expressed by a million polygons, the amount of processing that needs to be done is around 10^18. Of course we wouldn't want to compromise the amount of polygons (would reduce image quality). But we don't have to solve the system of linear equations exactly. We could use Gauss-Seidel type iterative methods. I hope that makes sense I am no programmer(but i might work on a Radiocity engine myself). ;D I also like the idea of arbitrary precision. Title: Re: Hello from Switzerland! :D Post by: Alef on April 25, 2013, 05:40:38 PM I am sorry for the late reply. There are no poligons. 3D fractal is made of voxels, a 3D pixels. They are converted to poligons when folks whan't to print them.It seems to illuminate a fractal surface using the Radiocity method we have to approximate a mesh using polygons. IMHO hybridisation is not so simple. There are diferent types of constituents. 1. fractal formula like mandelbox. 2. transformation of z vector, like trigonometry based rotation of z. 3. pre-transfomations applied to original pixel values (wraping of space). M3D mixes 2. and 3. together and Ultra Fractal have just 1. and 3. But I think, placeing fractals together in single scene and mowing around could be very powerfull artistic feature. M3D can place two fractals together by means of de-combination, but it kind of not working so great, becouse then you can't move them, and all fractals tend to be centered about (0,0,0). Alsou just one of combined fractal could be a hybrid. Something like as 3D CAD software works, so you can put a mandelulb as a head on a mandelbox, and then place a 4 long fractals as an arms and legs and render it as single scene with single light settings. But of corse this would be very hard to make, but could grant great artistic possibilities. Title: Re: Hello from Switzerland! :D Post by: elphinstone on May 24, 2013, 01:01:23 AM Wow, it has been one month since I last wrote here... I have some news ;D
The development continues slower as I expected, but today I got the first images! Here you can find some more details and a screenshot: https://synthverse.wordpress.com/2013/05/23/syn-first-images/ (https://synthverse.wordpress.com/2013/05/23/syn-first-images/) Title: Re: Hello from Switzerland! :D Post by: stereoman on May 24, 2013, 11:37:30 AM Wow, it has been one month since I last wrote here... I have some news ;D The development continues slower as I expected, but today I got the first images! Here you can find some more details and a screenshot: https://synthverse.wordpress.com/2013/05/23/syn-first-images/ (https://synthverse.wordpress.com/2013/05/23/syn-first-images/) Can´t wait to put my hands on it, this all sounds very exciting for a non programmer user. |