Logo by Trifox - 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: Support us via Flattr FLATTR Link
 
*
Welcome, Guest. Please login or register. March 29, 2024, 02:57:25 PM


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   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: Fractal Limit set of 4D hyperbolic reflection groups  (Read 15028 times)
0 Members and 1 Guest are viewing this topic.
vb2012
Forums Freshman
**
Posts: 13


« on: December 17, 2012, 12:50:21 AM »

Here is Fragmentarium code to generate limit set of 4D hyperbolic reflection groups.

4D hyperbolic reflection group is generated by reflection in a set of hyperplanes in
4D hyperbolic space (H4). In order to form a group, dihedral angles of hyperplanes intersections
have to be integer fraction of pi (pi/n). 

H4 space can be modeled in 4D euclidean space as half space bounded by
3D euclidean hyperplane ("the plane at infinity").
Hyperbolic planes in that model are represented as euclidean 4D hyperspheres
and hyperplanes which orthogonal to the plane at infinity.
This plane at infinity is our usual flat euclidean 3D space. Intersections of 4D hyperplanes
with this plane at infinity are usual 3D euclidean planes and spheres.
We can model the 4D reflection group staying all the time in convenient
3D euclidean space.

"The Limit Set" of reflection group are points of accumulation of action
of the elements of the group at some arbitrary initial point. If we take an initial point
and apply a to it all possible sequence of reflection (infinite set) we
will get a infinite set of points in 3D. Some of the images of the initial
points will be isolated points. But there will be points, which have other points in
arbitrary small neighborhood. Such points can be reached only after applying
an infinite number of reflection.

We are hunting for the set of such points - "The Limit Set".
The code is actually very simple.

The Limits Sets exhibit wide range of varieties.
Just place few lanes and spheres in space and you have new fractal shape.
A example rendering is attached.

Vladimir Bulatov
http://bulatov.org



* limit_set.frag (10.77 KB - downloaded 1770 times.)

* Limit Set 21.jpg (201.75 KB, 1024x818 - viewed 1242 times.)
Logged
Syntopia
Fractal Molossus
**
Posts: 681



syntopiadk
WWW
« Reply #1 on: December 17, 2012, 09:55:19 PM »

Thanks for sharing Vladimir!

Looks great, but you need some powerful hardware to run it. On my laptop rendering a single frame takes ~16 seconds. So I'd recommend turning down the preview factor to x4 or something before running it.

I had to downgrade the script from the GLSL version #430, in order to run it - I've attached the modified script, if anyone else with older hardware would like to give it a try.

Btw, Vladimir, is it okay if I distribute your script together with Fragmentarium? I'll of course keep the attribution header at top of the script.

Regards, Mikael.

* Bulatov.frag (10.73 KB - downloaded 474 times.)
Logged
M Benesi
Fractal Schemer
****
Posts: 1075



WWW
« Reply #2 on: December 17, 2012, 10:28:38 PM »

  That's pretty awesome (math/images).

  Also had this gem in the code:

Code:
normal *= 1/d; // normalize normal

  cheesy
Logged

vb2012
Forums Freshman
**
Posts: 13


« Reply #3 on: December 17, 2012, 10:52:38 PM »

Thank you Mikael for optimizing the code. Thank you for your excellent Fragmentariun :-)
I've got NVIDIA GTX670 as a birthday preset from my son, and I was
suffering from 1 fps rendering speed. Now it renders at descent 17 fps.
How can you render for 16 seconds? My Win7 just crashes the Fragmentarium
after 2 seconds.
Yes, it is OK to distribute the script.

Vladimir
http://bulatov.org


* limit_set_27.jpg (243.25 KB, 1024x1024 - viewed 1249 times.)
Logged
vb2012
Forums Freshman
**
Posts: 13


« Reply #4 on: December 17, 2012, 10:59:14 PM »

The code used to render the handles attached to the previous post.

* Bulatov.frag (12.06 KB - downloaded 417 times.)
Logged
Syntopia
Fractal Molossus
**
Posts: 681



syntopiadk
WWW
« Reply #5 on: December 17, 2012, 11:06:49 PM »

Thank you Mikael for optimizing the code. Thank you for your excellent Fragmentariun :-)
I've got NVIDIA GTX670 as a birthday preset from my son, and I was
suffering from 1 fps rendering speed. Now it renders at descent 17 fps.
How can you render for 16 seconds? My Win7 just crashes the Fragmentarium
after 2 seconds.
Yes, it is OK to distribute the script.

Vladimir
http://bulatov.org


Thanks. I have a GTX570 at work, will try that!

The two second limit is a GPU watchdog limit imposed by Windows. It is possible to change the time-out using the registry: http://blog.hvidtfeldts.net/index.php/2011/12/fragmentarium-faq/

Best regards, Mikael.
Logged
Tglad
Fractal Molossus
**
Posts: 703


WWW
« Reply #6 on: December 18, 2012, 12:40:05 PM »

Hi vb2012,
  your description at the start sounds interesting, I would like to understand it some more, maybe you could do some diagrams to show how the 'dihedral angles of hyperplanes intersections have to be integer fraction of pi' and other parts work to help us visualise. It might be easier to remove a dimension for explanation.
 afro
Logged
knighty
Fractal Iambus
***
Posts: 819


« Reply #7 on: December 18, 2012, 03:25:56 PM »

 Wow thank you post swing
Logged
DarkBeam
Global Moderator
Fractal Senior
******
Posts: 2512


Fragments of the fractal -like the tip of it


« Reply #8 on: December 18, 2012, 05:37:45 PM »

MY GOD!!! Thanks so much for this beautiful present we love you love love love
Logged

No sweat, guardian of wisdom!
knighty
Fractal Iambus
***
Posts: 819


« Reply #9 on: December 18, 2012, 07:27:09 PM »

BTW! I'm obtaining a huge speed up while locking the variables (especially the checkboxes)
Logged
Syntopia
Fractal Molossus
**
Posts: 681



syntopiadk
WWW
« Reply #10 on: December 18, 2012, 09:18:14 PM »

BTW! I'm obtaining a huge speed up while locking the variables (especially the checkboxes)

You are right! By locking the checkboxes in the 'limitset' tab, I suddenly get 5fps per second with the standard raytracer.

Removing variables in GLSL has always been a mystery to me. Sometimes you see radical changes, but most often not much happens.

Here is a render using the path-tracer I'm working on:

Logged
Tglad
Fractal Molossus
**
Posts: 703


WWW
« Reply #11 on: December 19, 2012, 12:06:58 AM »

Fantastic render!
Logged
cbuchner1
Fractal Phenom
******
Posts: 443


« Reply #12 on: December 19, 2012, 04:51:32 PM »


Been playing with this on an nVidia GT 680M (some 1300 CUDA cores). Wow.
Logged
knighty
Fractal Iambus
***
Posts: 819


« Reply #13 on: December 21, 2012, 04:19:45 PM »

@Syntopia: I want that path tracer!  cheesy
Removing variables in GLSL has always been a mystery to me. Sometimes you see radical changes, but most often not much happens.
I think that the driver gives up optimizing the uniform branches when the code reaches a certain "complexity" level.
The lesson here is that one can not simply transpose a code, intended to be run on CPU, directly to GPU. Shader languages make it possible but sometimes with a big performance penalty.
I also think that this script can be made even faster if the array of inversion spheres is sent as uniforms. This would be because not only we will save some computation (that are repeated for each pixel) but also because we will save registers. Minimizing register usage in a shader will (may) allow more threads to be launched which usually means a better GPU's computation capacity usage. With, a little scripting language (in order to setup the uniforms) fragmentarium would become a terribly powerful tool (it's already awesome wink).
Logged
eiffie
Guest
« Reply #14 on: December 21, 2012, 05:37:13 PM »

I asked about a scripting engine (a long time ago) too since that is the piece that would make Fragmentarium AWESOME but if Syntopia doesn't want to go down that path how about allowing a dynamic DLL or some other method to be called between frames and it can ONLY update parameters. Then we could write that piece. Maybe its just as easy to add a prebuilt scripting engine tho:)
Logged
Pages: [1] 2   Go Down
  Print  
 
Jump to:  

Related Topics
Subject Started by Replies Views Last post
Ultra Fractal - Hyperbolic tilings ... Images Showcase (Rate My Fractal) GFWorld 2 2154 Last post November 17, 2006, 06:23:02 PM
by GFWorld
E8 and other Lie groups General Discussion matsoljare 5 9584 Last post July 21, 2010, 09:23:44 PM
by Calcyman
extension of member groups ? Discuss Fractal Forums cKleinhuis 11 2985 Last post September 08, 2010, 12:26:58 AM
by quaternion
Hyperbolic limit sets Fractal News across the World Tglad 3 1712 Last post November 13, 2012, 10:54:54 PM
by tit_toinou
Koch Fractal, the concept of Limit and Real-Analysis (new) Theories & Research Finer 0 411 Last post November 08, 2014, 11:52:39 PM
by Finer

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.277 seconds with 24 queries. (Pretty URLs adds 0.013s, 2q)