Welcome to Fractal Forums

Fractal Software => 3D Fractal Generation => Topic started by: subblue on March 06, 2011, 12:14:33 AM




Title: Fractal Lab - WebGL fractal renderer
Post by: subblue on March 06, 2011, 12:14:33 AM
I've finally launched the beta version of my Fractal Lab over at fractal.io (http://fractal.io)

You need a WebGL enabled browser (Google Chrome is best, or Firefox 4 beta).
See the video below for a little intro :)

http://vimeo.com/moogaloop.swf?clip_id=20687741&server=vimeo.com&show_title=0&show_byline=0&show_portrait=0&color=00adef&fullscreen=1&autoplay=0&loop=0

Note: unfortunately for Windows users the browsers have to convert the OpenGL calls into the D3D API, which means it might take 30-60 secs for the fractal shader to compile. However, once it has compiled you can explore and tweak the parameters at interactive rates.



Title: Re: Fractal Lab - WebGL fractal renderer
Post by: cbuchner1 on March 06, 2011, 12:49:01 AM

Worked fine on my nVidia 9600M GT chip on Windows 7 Vista, in Firefox Beta 12.

The Mandelbulb did not really show a lot of detail in the default view and I'd have preferred to see it from the side and not from the top. But hey, it's an interactive Mandelbulb!



Title: Re: Fractal Lab - WebGL fractal renderer
Post by: marius on March 06, 2011, 02:17:57 AM
I've finally launched the beta version of my Fractal Lab over at fractal.io (http://fractal.io)
...
Note: unfortunately for Windows users the browsers have to convert the OpenGL calls into the D3D API, which means it might take 30-60 secs for the fractal shader to compile. However, once it has compiled you can explore and tweak the parameters at interactive rates.

Excellent! You should submit your site to http://www.chromeexperiments.com/submit/

Yeah, that D3D conversion step is painfully slow. Lots of 'unresponsive' dialog boxes on win7-64 on i7 with amd5850, not cool for such a decent machine.

I notice we're having a lot of glsl shader viewers out there (boxplorer, fragmentarium, mandelflyer, this, ...). Most of the shaders are very similar in interface & code, we should come up a standard so we can share the fragments more easily.. You know, set of uniforms, coloring params, value range annotation, etc.


Title: Re: Fractal Lab - WebGL fractal renderer
Post by: bib on March 06, 2011, 09:46:25 AM
Will give it a more indepth try, but first experiments are fun! Thanks for this great job :)
(Recompile time is long for a "real-time" app...)


Title: Re: Fractal Lab - WebGL fractal renderer
Post by: subblue on March 06, 2011, 10:20:23 AM
Excellent! You should submit your site to http://www.chromeexperiments.com/submit/

Yeah, that D3D conversion step is painfully slow. Lots of 'unresponsive' dialog boxes on win7-64 on i7 with amd5850, not cool for such a decent machine.

I notice we're having a lot of glsl shader viewers out there (boxplorer, fragmentarium, mandelflyer, this, ...). Most of the shaders are very similar in interface & code, we should come up a standard so we can share the fragments more easily.. You know, set of uniforms, coloring params, value range annotation, etc.

Yeah, I've submitted it to the Chrome Experiments site :)

The D3D conversion is annoying, but until the browsers enable native OpenGL support then there's nothing we can do. At least once it has compiled the interaction is fast.

As for common GLSL shaders, it would be difficult to have a standard as all the wrapper apps are so different.



Title: Re: Fractal Lab - WebGL fractal renderer
Post by: David Makin on March 06, 2011, 11:08:45 AM
Excellent! You should submit your site to http://www.chromeexperiments.com/submit/

Yeah, that D3D conversion step is painfully slow. Lots of 'unresponsive' dialog boxes on win7-64 on i7 with amd5850, not cool for such a decent machine.

I notice we're having a lot of glsl shader viewers out there (boxplorer, fragmentarium, mandelflyer, this, ...). Most of the shaders are very similar in interface & code, we should come up a standard so we can share the fragments more easily.. You know, set of uniforms, coloring params, value range annotation, etc.

Yeah, I've submitted it to the Chrome Experiments site :)

The D3D conversion is annoying, but until the browsers enable native OpenGL support then there's nothing we can do. At least once it has compiled the interaction is fast.

As for common GLSL shaders, it would be difficult to have a standard as all the wrapper apps are so different.

The best way would to be agree on our own fractal language for source, this to be parsed/compiled from "fractal code" into either pure shader code or full GLSL, or even just plain CPU/FPU code.
As to uniforms, IMHO the only items that should be uniforms are location information and particular items such as light strengths, all actual fractal values should be "#define"s *unless* the program concerned is specifically designed for realtime morphing/adjustment of the fractals rather than just the view/lights etc.
Using "#define"s and recompiling means all such user parameters can be used in conditional compilation without runtime speed taking a big hit as it would if they were uniforms and the conditionals were runtime conditionals.
The solution to that is actually quite simple - give the user control over what items/parameters are #defines (so requiring a re-compile if changed) and which are uniforms (so faster, potemtially "live" adjusrtments are possible).
That combined with using a fixed defined fractal source code language would I think give the most flexibility combined with the most compatibility.
Personally I favour a fractal language that is essentially macro based, with the possibility for the macros to be used as full functions, I don't really think a fully class-based approach (as in UF5) is necessary and forces too many overheads in any case and the macro approach gives more flexibility than the original UF (4-) language.


Title: Re: Fractal Lab - WebGL fractal renderer
Post by: David Makin on March 06, 2011, 11:13:10 AM
I'd just like to add that those suffering the re-compile time issues under Windows should know that (for example) shader 2 code compiles even on the iPad and iPhone in under 2 seconds.


Title: Re: Fractal Lab - WebGL fractal renderer
Post by: Syntopia on March 06, 2011, 03:37:18 PM
Congratulations with Fractal Lab, Tom! This is a very spectacular demonstration of how web apps keep pushing the limit.

As for the WebGL recompile time on Windows: In Firefox 4, it should be possible to switch to native GLSL compilation by going to 'about:config' and changing 'webgl.prefer-native-gl' to 'true'. It did not work on my computer, though, but other people have claimed that this works. You can check the current WebGL compiler under 'about:support' (look for WebGL Rendering).


Title: Re: Fractal Lab - WebGL fractal renderer
Post by: tomot on March 06, 2011, 04:06:53 PM
Congratulations with Fractal Lab, Tom! This is a very spectacular demonstration of how web apps keep pushing the limit.

I agree totally with that statement. It works well with FireFox 4 beta. I would like to see better resolution in the future, options for saving to .jpg at highter bit
content, but I'm sure your thinking about that. I'm impressed by a clean, uncluttered, simple, easy to use layout. (ran out of adjectives)  :) WOW!


Title: Re: Fractal Lab - WebGL fractal renderer
Post by: David Makin on March 06, 2011, 10:42:21 PM

The D3D conversion is annoying, but until the browsers enable native OpenGL support then there's nothing we can do. At least once it has compiled the interaction is fast.


:D Maybe if you have a decent video card, but the render time on a 64MB GMA950 is as slow as the compile time !

BTW the library 2D Julia doesn't seem to work - I just get concentric rings ?

I assume you can't have separate threads in WebGL ? (This would explain why the WebGL interface is unresponsive when compiling)


Title: Re: Fractal Lab - WebGL fractal renderer
Post by: tomot on March 06, 2011, 11:05:43 PM
Oops! The 3d MengerSponge looks like its mirrored, about a center, without the same center location for both mirrors.


Title: Re: Fractal Lab - WebGL fractal renderer
Post by: SaMMy on March 07, 2011, 04:52:25 AM
@ tomot:

I LOVE these Effect, looks great. If i only know what to do in M3D to get the same Mengersponge's ? (If you know an answer, please can you post it here? - http://www.fractalforums.com/mandelbulb-3d/special-'offset'-and-'rotate'-options-from-fractallab-possible-in-m3d-formula/

Many thanks,

SaMMy
--------
HEITER WEITER


Title: Re: Fractal Lab - WebGL fractal renderer
Post by: Syntopia on March 07, 2011, 07:47:37 PM
I managed to get native WebGL acceleration in Firefox 4 Beta 12 on Windows, by going to 'about:config' and setting:
Code:
webgl.prefer-native-gl=true
webgl.force-enabled=true

The second step is necessary if your GPU drivers are older than June 2010 (because Firefox blacklists older drivers).
Now Fractal Lab shaders compile in less than 1 second on my laptop :-)



Title: Re: Fractal Lab - WebGL fractal renderer
Post by: subblue on March 07, 2011, 07:52:58 PM
I managed to get native WebGL acceleration in Firefox 4 Beta 12 on Windows, by going to 'about:config' and setting:
Code:
webgl.prefer-native-gl=true
webgl.force-enabled=true
The second step is necessary if your GPU drivers are older than June 2010 (because Firefox blacklists older drivers).
Now Fractal Lab shaders compile in less than 1 second on my laptop :-)

Good tip!


Title: Re: Fractal Lab - WebGL fractal renderer
Post by: cbuchner1 on March 07, 2011, 08:44:20 PM
Congratulations, Fractal Lab has been boingboinged. Now let's wait for being slashdotted.


Title: Re: Fractal Lab - WebGL fractal renderer
Post by: visual.bermarte on March 08, 2011, 11:16:11 AM
 O0 thank you Subblue 4 sharing this project with us!
I just found this video  ;D

http://www.youtube.com/watch?v=1Iv-2O0MFLs


Title: Re: Fractal Lab - WebGL fractal renderer
Post by: paolo on March 09, 2011, 11:46:38 PM
 ;D Wow! this is a wonderfully fast program. Wouldn't it be lovely if there is a way to save higher resolution images than the resolution of the screen? And perhaps will there be a version of this program which can be run offline someday?