Title: Polyhedrons, many many polyhedrons... Post by: DarkBeam on January 22, 2012, 10:08:52 AM Uh, I am having a trip on Wiki, if you want to get lost into 3D space you can have a look here;
Polyhedron theory (http://en.wikipedia.org/wiki/Polyhedron) List of uniform polyhedra (http://en.wikipedia.org/wiki/List_of_uniform_polyhedra) Johnson solids (not uniform) (http://en.wikipedia.org/wiki/Johnson_solid) List of Wenninger polyhedron models (http://en.wikipedia.org/wiki/List_of_Wenninger_polyhedron_models) Catalan solids (http://en.wikipedia.org/wiki/Catalan_solid) Probably there are many more but I can't tell :embarrass: The sad notice; very few solids have the coordinates shown, so you cannot replicate them in your fave 3D/fractal application. :-\ Like a ... 4D8 Puzzle (http://en.wikipedia.org/wiki/4D8_Puzzle) :dink: Get inspired :D Title: Re: Polyhedrons, many many polyhedrons... Post by: knighty on January 22, 2012, 12:30:51 PM Many of these polyhedrons can be rendered with DE using the fold and cut method (http://www.fractalforums.com/3d-fractal-generation/kifs-and-the-%27fold-and-cut-problem%27/msg32511/#msg32511). :)
Title: Re: Polyhedrons, many many polyhedrons... Post by: DarkBeam on January 22, 2012, 12:40:13 PM Many of these polyhedrons can be rendered with DE using the fold and cut method (http://www.fractalforums.com/3d-fractal-generation/kifs-and-the-%27fold-and-cut-problem%27/msg32511/#msg32511). :) Your technique is tricky ... Never understood it after all :) And at high iterations it tends to disappear :) Title: Re: Polyhedrons, many many polyhedrons... Post by: knighty on January 22, 2012, 12:57:58 PM No, it's quite simple... Humm... that means that I'll have to give a better explanation! :embarrass:
Forget about the iterations. The process is simple: given the point p: - Fold: apply some folding operations: p1:=Folds(p); (planar as I did or if you like, spherical ones). - Cut: return the distance to some object: DE=distanceFunction(p1); (I simply used a plane but any shape will do the job) Title: Re: Polyhedrons, many many polyhedrons... Post by: DarkBeam on January 22, 2012, 01:00:40 PM Thanks, I have the full frag formula too! :dink:
Title: Re: Polyhedrons, many many polyhedrons... Post by: blob on January 22, 2012, 01:02:35 PM Cool free polyhedra software for more inspiration:
http://sourceforge.net/projects/antiprism/ http://bulatov.org/polyhedra/stellation_applet/stellation_010914.zip http://sourceforge.net/projects/gsolaar/ O0 Title: Re: Polyhedrons, many many polyhedrons... Post by: DarkBeam on January 22, 2012, 01:22:20 PM Cool free polyhedra software for more inspiration: http://sourceforge.net/projects/antiprism/ http://bulatov.org/polyhedra/stellation_applet/stellation_010914.zip http://sourceforge.net/projects/gsolaar/ O0 Wow ty, AntiPrism does not work, which app should I run? They just crash! :'( Title: Re: Polyhedrons, many many polyhedrons... Post by: blob on January 22, 2012, 01:50:14 PM Wow ty, AntiPrism does not work, which app should I run? They just crash! :'( They all run fine here, perhaps you must put them in lower OS compatibilty mode if you use Vista/7. I am far from knowing antprism well but I know how to generate most of the included polyhedron models, I've attached a few batch files for model generation and for viewing them drag the generated off files onto antiview.exe. The off generated by Antiprism 0.19.2 appear to be viewable by 3D apps who support the OFF format whereas those generated by Antiprism 0.20.pre18 seem to be openable only with antiview. There is an antiprism website outside of sourceforge with plenty of examples of use but many pages appear to be down since a while unfortunately. Perhaps the wayback machine has them. http://www.antiprism.com/ Title: Re: Polyhedrons, many many polyhedrons... Post by: Adrian on January 23, 2012, 04:02:16 PM Hi
I am the author of the Antiprism project and happened to notice this thread in the site logs. The Antiprism site was unfortunately offline for three weeks because of problems with the hosting/domainregistering comany. I was able to bring it back online again yesterday http://www.antiprism.com (http://www.antiprism.com) I am not sure what the problem is with the OFF files produced by the Windows binaries in 0.20pre18. The OFF output should be text files in all cases. A problem that sometimes arises is that unix and msdos use different line terminators for text files, and not all programs that read OFF will necesarily handle both formats. However, I have just checked the 0.19.2 and 0.20pre18 Windows binaries on XP and they both produced OFF files with msdos-style line termination. If, for some reason, the problem is due to line termination there are various utilities that will switch between formats, say, http://www.sg-chem.net/u2win/ (http://www.sg-chem.net/u2win/) I made a 0.20pre19 snapshot a couple of days ago using a new method of creating the Windows package. It may have had some effect on the OFF file incompatibility and/or the difficulties of running the Windows programs http://tech.groups.yahoo.com/group/antiprism/message/6275 (http://tech.groups.yahoo.com/group/antiprism/message/6275) In general, I recommend using a 0.20 prerelease (if possible) rather than the old 0.19.2. The prerelease is easier to use and has a lot more features. There are some example commands for the prerelease here http://www.antiprism.com/ex_album/ (http://www.antiprism.com/ex_album/) Adrian. Title: Re: Polyhedrons, many many polyhedrons... Post by: blob on January 23, 2012, 05:19:43 PM Hello, I think the OFF issue has nothing to do with the text file format as both appear to be valid windows text files.
What is certain though is that the content of files appears to be different from version 0.19 to version 0.20 for the same object and Meshman, Meshlab, Wings3D and Remesh all fail to open 0.20 files when they open 0.19 ones just fine. However I have now found out that both OpenFlipper and OpenCTM can open 0.20 files so that issue isn't an issue anymore as far as I am concerned since I can convert them to other formats with those now. Nice to see you popping around here. Cheers. Title: Re: Polyhedrons, many many polyhedrons... Post by: Adrian on January 23, 2012, 05:52:59 PM Thanks for the further information. I have a copy of meshlab and from a quick test it appears to have trouble reading an OFF file that contains colour data.
Most of the named polyhedra in Antiprism 0.20pre include colour data, but there are also uncoloured versions (starting with 'std_') of some of the common ones http://www.antiprism.com/ex_album/590_std_polyhedra/ (http://www.antiprism.com/ex_album/590_std_polyhedra/) It is also possible to strip an OFF file down to just the geometry (remove colours and faces with fewer than 3 vertices) with the 0.20pre command 'off_util -g'. Adrian. P.S. In case it is useful, I wrote a very basic command line program that will convert the geometry in an OFF file to 3ds format, which some modelling programs can read http://groups.google.com/group/geodesichelp/browse_thread/thread/30dc7ee504b4e238/18b8b9f4f2920a8d (http://groups.google.com/group/geodesichelp/browse_thread/thread/30dc7ee504b4e238/18b8b9f4f2920a8d) Title: Re: Polyhedrons, many many polyhedrons... Post by: blob on January 23, 2012, 06:28:22 PM Using the -g argument the 0.20 generated files are now compatible with all the apps I mentioned, thanks for the heads up, I can definitively put version 0.19 to rest now.
I have grabbed the converter also, might come in handy, thanks. Title: Re: Polyhedrons, many many polyhedrons... Post by: DarkBeam on January 26, 2012, 09:17:25 AM Hey hello ;D
Is there a chance of getting the 3D cartesian coordinates of vertex of some simple polys? :dink: Luca Title: Re: Polyhedrons, many many polyhedrons... Post by: Adrian on January 26, 2012, 03:25:08 PM Hi Luca
If you just want coordinates (rather than expressions for coordinates) you can copy the coordinates from an OFF model into a file using the Antiprism off2crds program like this off2crds std_cube > std_cube.txt The file std_cube_coords.txt contains 1 1 1 1 1 -1 1 -1 1 1 -1 -1 -1 1 1 -1 1 -1 -1 -1 1 -1 -1 -1 The "standard" polyhedron collection includes common polyhedra using well-known "nice" coordinates http://www.antiprism.com/ex_album/590_std_polyhedra/ (http://www.antiprism.com/ex_album/590_std_polyhedra/) Pyramids, prisms, etc. models made of regular polygons are here http://www.antiprism.com/ex_album/560_polygons/ (http://www.antiprism.com/ex_album/560_polygons/) Adrian. Title: Re: Polyhedrons, many many polyhedrons... Post by: Adrian on January 26, 2012, 08:27:30 PM I noticed a mismatch of file names in my message. If the command is
off2crds std_cube > std_cube.txt Then the coordinates are in std_cube.txt ! Adrian. Title: Re: Polyhedrons, many many polyhedrons... Post by: knighty on January 26, 2012, 09:47:35 PM Hi,
Great and wonderful website Adrian. Indeed it's a great source of inspiration (thanks blob). here is a fragmentarium script for regular and convex polyhedra family. Hope you will like it: Code: #info fold and cut regular polyhedra Distance Estimator (knighty 2012) Title: Re: Polyhedrons, many many polyhedrons... Post by: Adrian on January 27, 2012, 09:44:35 AM Hi Knighty
Fragmentarium built very easily and quickly here, on an older machine running Ubuntu. I like your script. Quite good fun to play with the polyhedra like that, and I notice that functional part of the script is very short. Adrian. Title: Re: Polyhedrons, many many polyhedrons... Post by: DarkBeam on January 27, 2012, 10:47:12 AM Hi, Great and wonderful website Adrian. Indeed it's a great source of inspiration (thanks blob). here is a fragmentarium script for regular and convex polyhedra family. Hope you will like it: Code: #info fold and cut regular polyhedra Distance Estimator (knighty 2012) :surprised: :scared: That is quite stunning! :beer: Knighty Title: Re: Polyhedrons, many many polyhedrons... Post by: blob on January 27, 2012, 04:31:10 PM Cool shader knighty! :beer:
Title: Re: Polyhedrons, many many polyhedrons... Post by: subblue on January 27, 2012, 05:13:26 PM Brilliant stuff Knighty!
Title: Re: Polyhedrons, many many polyhedrons... Post by: knighty on January 27, 2012, 08:16:48 PM Thank you! :embarrass:
There is more to come but it requires some work. Adrian: The fold and cut 'technique' allows for such short algorithm. It consist on applying a folding operation about the planes that define the fundamental domain. Then compute the distance to some basic shape. This way we get all mirror images of the basic shape just like a kaleidoscope. :) Title: Re: Polyhedrons, many many polyhedrons... Post by: DarkBeam on January 27, 2012, 11:40:40 PM How about a rotating hypercube? :D It is a wonderful anim I saw in many places!
Hypercube coords should be (1,1,1,1) with all possible signs. (I think :D) I cannot believe you managed to show wireframe so easily! You live inside a graphics card? ;D Title: Re: Polyhedrons, many many polyhedrons... Post by: knighty on January 28, 2012, 07:20:51 PM Well... the simplest method I can think of involves computing the minimal distance between a line and each of the 32 segments in 4D space.
This is a projection form 4D space to 3D space. In general, having a 4D distance field, the distance from a point in 3D to the projection of the 4D object to 3D space (in reality the silhouette of the 4D object as it is projected) is the minimal distance along the 4D ray going through our 3D point. Another method is to render its stereoraphic projection onto 3D space. Just what syntopia asked for in the thread about knots. I am trying to work it out. :) Title: Re: Polyhedrons, many many polyhedrons... Post by: knighty on January 29, 2012, 08:32:55 PM Ok! here it is. syntopia is served! O0
Title: Re: Polyhedrons, many many polyhedrons... Post by: Syntopia on January 29, 2012, 10:16:05 PM Knighty, that is truly amazing! I cannot believe you did this. Is this true 4D->3D perspective projection?
I can't wait to explore this script some more and see if I can figure out how you did it. Here is a few quick test renders: Title: Re: Polyhedrons, many many polyhedrons... Post by: DarkBeam on January 30, 2012, 09:42:44 AM This is the most brilliant script of all times - not only for Fragmentarium :w00t: :surprised: :crazy:
Title: Re: Polyhedrons, many many polyhedrons... Post by: cKleinhuis on January 30, 2012, 10:20:28 AM i couldnt get those shapes out of the script ? what parameters do you use ?!
Title: Re: Polyhedrons, many many polyhedrons... Post by: knighty on January 30, 2012, 03:04:15 PM ;D
i couldnt get those shapes out of the script ? what parameters do you use ?! I can't tell exactly which parameters syntopia used but the script comes with 3 presets to begin with. (the last one is interresting because it's almost just like what you would see if you live inside the hypersphere ;) ).Is this true 4D->3D perspective projection? No, it is a stereographic projection. the polychoron is projected first onto the hypersphere then onto the 3D space with a stereographic projection. this is the same as Jehn-3D. This evening, I hope, I'll post another version that will hopefully looke much like Jehn-3D but without the faces (that requires transparency): the vertices and segments should look thicker as we go further from the origin. And also a better and more intuitive (sic.) rotation.That said, I'm planning to write a detailed explanation on how it is done but before (or after. It depends on the complexity of these things) I want to do stellated polyhedrons and a dive into 3D tesselated hyperbolic plane. Not eazy but doable. :D Title: Re: Polyhedrons, many many polyhedrons... Post by: blob on January 30, 2012, 04:30:27 PM I want to do stellated polyhedrons and a dive into 3D tesselated hyperbolic plane. Not eazy but doable. :D Cool, looking forward to playing with those. In the meantime this polychora shader is awesome. :beer: Title: Re: Polyhedrons, many many polyhedrons... Post by: DarkBeam on January 30, 2012, 05:16:02 PM That said, I'm planning to write a detailed explanation on how it is done but before (or after. It depends on the complexity of these things) I want to do stellated polyhedrons and a dive into 3D tesselated hyperbolic plane. Not eazy but doable. :D Look at this code, this is the source of Poincare3D by Zueuk. I did not dare to try this but you may like ;D ; Code: // You must call the argument "vp". (Note; in a "normal" formula, replace FT stuff with current coordinates - x,y,z while FP are the resulting coords, but instead of do += you should do a normal assignment. I know also that it is not so easy. Aexion told me that there are methods to convert ifs to escape time; should be something like "if length(newcoord)<length(oldcoord) apply transform") There are other three variations but some use a random() thingy so it's not a normal transform. :sad1: This looks promising... In apo does a stunning work! Title: Re: Polyhedrons, many many polyhedrons... Post by: DarkBeam on January 30, 2012, 05:46:18 PM Uh the Hypertile3D code;
Code: int PluginVarPrepare(Variation* vp) That of course is by Zueuk and released under GPL. :dink: Title: Re: Polyhedrons, many many polyhedrons... Post by: knighty on January 30, 2012, 08:59:59 PM Thank blob.
Thank you DarkBeam for the code. Unfortunately I'm not used with Apophysis 7x and don't know how to use Zueuk's plugin. Do you have an example script? I'll try to understand his code but at a first sight it seems to me it is a Möbius transformation or something close. The method I'm intending to use is almost exactly the same as the 2D one I presented in this thread about using foldings to generate triangular groups tesselations (http://www.fractalforums.com/new-theories-and-research/the-power-of-fold/msg35853/#msg35853). But the key to do it successfully in 3D is in the painful details, mainly DE and solving for the folding planes (and or spheres). A solution is to go in 4D (using -inverse- stereographic projection) then back in 3D. That's just what I did with the polychora script. For the hyperbolic tesselation that will be a Minkowski spacetime. It's not a joke :dink: : The hyper-sphere will be replaced with Minkowski hyper-sphere (hyper-hyperbola) and sine and cosine will be replaced with their hyperbolic cousins. It's really wonderful how it is related to special relativity. :nerd: :headbatting: :canadian: :educated: :tool: Here is the updated script. If you want to dive inside the hypersphere just use 'travel' preset. You can chage direction of sight just as usual. in order to go forward change the 'RotAngle' parameter. Title: Re: Polyhedrons, many many polyhedrons... Post by: DarkBeam on January 30, 2012, 10:23:51 PM I can not really understand a single letter of what you said :D
Title: Re: Polyhedrons, many many polyhedrons... Post by: knighty on January 31, 2012, 12:17:56 PM Lol! ;D
I was a little over excited. maybe the cofee. I was referring to the hyperboloid model (http://en.wikipedia.org/wiki/Hyperboloid_model). Title: Re: Polyhedrons, many many polyhedrons... Post by: eiffie on January 31, 2012, 08:06:58 PM I always enjoy Knighty's scripts. I was wondering what it would look like "fractalized" with each vertice as another polyhedron. This is the result.
http://www.youtube.com/watch?v=-eo6ImWMcWg Title: Re: Polyhedrons, many many polyhedrons... Post by: knighty on January 31, 2012, 09:08:32 PM Wohooow!
:thumbsup1: :worm: :worm: :worm: I especially like how it grows up. Nicely done. With a good music it should be an instant win demo. :) Here is attached the 24-cell symmetry group polychoron script. (both "fat" and "thin" versions) Now I'll go to watch eiffie's video one more time ;D. Title: Re: Polyhedrons, many many polyhedrons... Post by: kram1032 on January 31, 2012, 09:50:21 PM whoa, really nice fractal polyhedron growth thing!
I wonder... How would that look like with a 16-cell... http://en.wikipedia.org/wiki/16-cell That polytope has the remarkable property of being self-dual despite being neither a polygon nor a simplex. It's the sole exception. Besides that, it's also the base of the lattice of the closest possible packing of 3-Spheres It's one of the reasons, why 4D space is very special... Or perhaps it exists for the 4D-space being special. Also interesting on the topic of close sphere packing but slight overkill (yes, this is a slight understatement) http://en.wikipedia.org/wiki/4_21_polytope and probably the most famous (and most likely most overkill to be found any time soon) would be http://en.wikipedia.org/wiki/Leech_lattice Thanks for bringing me here, knighty :) Title: Re: Polyhedrons, many many polyhedrons... Post by: marius on February 01, 2012, 12:18:39 AM I always enjoy Knighty's scripts. I was wondering what it would look like "fractalized" with each vertice as another polyhedron. This is the result. fantastic. Love the serene b&w and music :music: Title: Re: Polyhedrons, many many polyhedrons... Post by: DarkBeam on February 01, 2012, 11:27:17 AM Eiffie, my head hurts but you did a stunning work! Great. :beer:
kram1032 - 16 cell is already possible with Knighty's script (I think) - only he uses a (much!) more appealing projection style than Wiki (some edges go straight to infinity). :dink: The only things that makes me a bit sad is that the complex 4D poly are slightly slow. This limits a bit the usability. Anyway a "forest of tubes" can not be used as a base for fractals so not a big problem probably? :dink: I love this stuff :-* Title: Re: Polyhedrons, many many polyhedrons... Post by: kram1032 on February 01, 2012, 11:39:48 AM I know that the 4D variants already are possible.
Which is exactly why I wondered how the per-vertex-repeat-Sierpinski-style-fractal of it would look like.... Also considering 3D-cross-sections next to shadows or stereo-graphic projections... Title: Re: Polyhedrons, many many polyhedrons... Post by: DarkBeam on February 01, 2012, 12:38:29 PM Once I will implement more 3D foldings on MB3D it will be straightforward. :dink:
Title: Re: Polyhedrons, many many polyhedrons... Post by: knighty on February 01, 2012, 08:03:28 PM I know that the 4D variants already are possible. 3D cross sections would be quite easy to do but I'm afraid that rendering shadow and stereographic projection of such thing is not so obvious.Which is exactly why I wondered how the per-vertex-repeat-Sierpinski-style-fractal of it would look like.... Also considering 3D-cross-sections next to shadows or stereo-graphic projections... Title: Re: Polyhedrons, many many polyhedrons... Post by: kram1032 on February 01, 2012, 08:08:49 PM Shadow, to my understanding, would be plain projection as already done by the script?
At least it uses SOME projection... Title: Re: Polyhedrons, many many polyhedrons... Post by: Syntopia on February 05, 2012, 12:48:57 PM I finally had some time to play around with Knighty's new polychora scripts, and I am even beginning to understand a little of it.
These videos were a god help to understand stereographic projection of polychora: http://www.dimensions-math.org/ (I think one of the authors, Jos Leys, is a Fractal Forums member) Now, for the original 3D polyhedron script, it is quite easy to find the settings for the five convex, regular polyhedrons (the platonic solids): Type,U,V,W (<- Knighty's variable) 3,0,1,0 Tetrahedron 4,0,0,1 Cube 3,1,0,0 Octahedron 5,0,0,1 Dodecahedron 5,0,1,0 Icosahedron But for the 4D polychora it is more difficult to find the 6 possible regular and convex polychora. I tried using the 'polychora06.frag' script, and have found the following candidates: Type,U,V,W,T 3,0,1,0 0 - 5-cell, 4-Simplex [Tetra cells] 4,0,1,0 0 - 8-cell, Hypercube [Cube cells] 4,0,0,1 0 - 24-cell * [Octa cells] 4,0,0,0 1 - 16-cell [Tetra cells] 5,0,1,0 0 - 120-cell [Dodeca cells] 5,0,0,0 1 - 600-cell [Tetra cells] But I would like to have them confirmed, if other tried this - it is not easy to identify these for high vertex counts :-) In the comments for the script it says the 24-cell symmetry group is not present, and Knighty posted a special script for this. But in this "polychora-special.frag" fragment, the "24-cell" preset has 8 vertices and 24 edges, so it cannot be a 24-cell? (It could be the 16-cell, though). However, setting (U=1, and V,W,T=0) gives an object with 24 vertices, and 96 edges, which could be the 24-cell? It does however look extremely similar to the one I got above using the 'polychora06.frag' script - see the attached picture, comparing the two scripts. Title: Re: Polyhedrons, many many polyhedrons... Post by: knighty on February 05, 2012, 04:22:49 PM Shadow, to my understanding, would be plain projection as already done by the script? Yes, That's what is done by the script. But that is a stereographic projection of the projection of the polytope on the unit sphere. It is a projection of a projection. In fact what we see is the stereographic projection of a tiling of the 3-sphere.At least it uses SOME projection... @ Syntopia: Well, I'm also still learning this stuff and still not understanding it thoroughly. Sorry for any inaccuracy or errors. :) You are right, the 24-cell can be obtained with both the first and second scripts. I was thinking that the 24-cell was'nt possible with the first script because I remembered reading about it being special. :-\ It is special in the sens that it is the only regular polytope that is self dual beside the n-simplex. Also, it seems to me that you gave the correct values for the convex regular polychora. Title: Re: Polyhedrons, many many polyhedrons... Post by: kram1032 on February 05, 2012, 05:21:07 PM Well, then it already uses stereographic projection, which was one of the two projections I suggested...
Title: Re: Polyhedrons, many many polyhedrons... Post by: Syntopia on February 05, 2012, 06:15:32 PM Knighty, as I understand your script, you take a point in 3D space and find out which point it corresponds to on a 3-sphere in 4D (using inverse stereographic mapping).
Then the vertices of the polychora are projected onto the 3-sphere (actually, I could imagine the vertices of a polychora are already located on a 3-sphere, so maybe just scaling?), and the DE distance is calculated (and the magical 'DD' function is applied to do some planar/spherical conversion - still need to figure out how that works). I was thinking - is it possible to apply the same kind of projection to a 4D Quaternion Julia (or Mandelbrot) system? I tried using inverse stereographic projection, but as I understand it, this will only depict the intersection surface of a 3-sphere with the 4D Quaternion Julia system - I need to somehow project the points onto this 3-sphere, right? - but then the 3-sphere will get 'filled', I think... I suspect that the boringness of these Quaternion systems (espically the Quaternion Mandelbrot), could by because of our simple slicing depiction. I don't know if anyone has tried other projections of these systems? Finally, some of the Wikipedia pictures of polychora, are having straight lines, indicating a perspective(?) projection, rather than a stereographic projection. Anyone knows how this is achieved? Is it possible also to do using DE's? Title: Re: Polyhedrons, many many polyhedrons... Post by: knighty on February 05, 2012, 08:57:16 PM Beside the projection to the 3-sphere and the "magic" formula the process is exacly the same as for 3D-polyhedron.
As you said, the 3d point is projected on the unit sphere using inverse stereographic projection. The maths behind the "magic" formula is quite simple (see picture below). It's indeed used to convert distance on the sphere (3-sphere) into distance on the plane (3D-space). This conversion is essentially a 2D problem: The given point Z is projected onto the unit sphere giving Z'. Say, "alpha" is the angle between Z' and the x-axis. Say we know the spherical distance beween Z' and a point on the sphere ("delta" in the figure). The spherical distance is simply the angle beween Z' and that point. Now we construct a point P' on the sphere which angle is "alpha"+"delta". Then we project P' back on the plane and get P. The distance between P and Z is the distance estimate. The cosine of the angle between Z' and a vertex V of the polychora is simply the dot product of Z' and V. For the segments we have to find the closesest point to Z', project it onto the sphere (by normalizing it) then compute the dot product. the sine is a little more involved because we don't have vector product in 4D. Using sqrt(1-cos²(delta)) is not accurate enought. The renderings in wikipedia of polychora with straight lines is maybe done with the classic :D method. having the set of vertices and segments. Project the vertices onto 3D space using some appropriate projection (ideally one that shows most of the symmetries) Then render it as usuall. As I said in a previous post it is possible to use DE but it would be very slow (that also may answer kram's question). It's applicable to any well behaving 4D distance field and is just like raymarching... but it's a double raymarching: From the point of 3D space shoot a ray into 4D (much exactly what we do in 3D but in 4D: the screen space becomes a box ;)). Find the minimal distance along that ray. This is the distance we will use to marche in 3D. AFAIK, the boringness ;D of quaternionic fractals comes from the so called j,k equivalence, not from the projection. In particular quaternionic madelbrot set is simply a rotated 2D madelbrot set around the real axis in j and k directions. Title: Re: Polyhedrons, many many polyhedrons... Post by: Syntopia on February 05, 2012, 11:51:13 PM Thanks, Knighty - I think I got the idea of the 4D polychora DE now. Well... there is still the hyperboloid / special relativity stuff, which sounds really interesting, but I have to post-pone it till I get some more time to pursue it.
Btw, I've posted some images of the regular convex polychora here: http://blog.hvidtfeldts.net/index.php/2012/02/distance-estimated-polychora/ Title: Re: Polyhedrons, many many polyhedrons... Post by: knighty on February 06, 2012, 09:36:28 AM Me too, I'll have to find some time to implement hyperbolic space tilings.
For the segments we have to find the closesest point to Z', project it onto the sphere (by normalizing it) then compute the dot product. Keep in mind that that the closest point to Z' of the projection of the segment on the sphere is not the projection on the sphere of the nearest point on the segment to Z'. Instead, it is the projection on the sphere of the orthogonal projection of Z' on the plane formed by the polything vertex and the (mirror) plane which is perpendicular to the segment.Also, this method is unfortunately not applicable IMHO to the snub polyhedra/chora. BTW, here is a great article that explains much better how to render stuff in non euclidean spaces and their geometry : Jeff Weeks,"real-time rendering in curved spaces (http://page.math.tu-berlin.de/~sullivan/L/03W/Vis/curved-sp.pdf)",Computer Graphics and Applications, IEEE, Nov/Dec 2002. Title: Re: Polyhedrons, many many polyhedrons... Post by: KRAFTWERK on February 06, 2012, 10:18:59 AM I just love this! Mind blowing animations!
Keep up the good work knighty & subblue & the rest of you! I must try out fragmentarium. I feel at home from the pixelbender days.. :) Title: Re: Polyhedrons, many many polyhedrons... Post by: DarkBeam on February 06, 2012, 07:04:50 PM I have implemented the most simple Knighty f&c scripts and WOW how wonderful!
Added too a sphere ... The stars remembered me some videogame bombs ;D so much fun! Title: Re: Polyhedrons, many many polyhedrons... Post by: knighty on February 10, 2012, 08:58:53 PM Hi,
Thank you Kraftwerk. Fragmentarium can also generate (very) big pictures by dividing in tiles and assembling them for you. Very fast and comfortable ;o). It would be nice to have this feature in MB3D and mandelbulber. :evil1: I have implemented the most simple Knighty f&c scripts and WOW how wonderful! Added too a sphere ... The stars remembered me some videogame bombs ;D so much fun! Well done! :) I didn't like the parametrisation in that script so I've rewritten it in order to have more predictable results + some enhancements. I've also fixed some little bugs in the previous scripts. Title: Re: Polyhedrons, many many polyhedrons... Post by: marius on February 10, 2012, 09:26:24 PM I didn't like the parametrisation in that script so I've rewritten it in order to have more predictable results + some enhancements. I've also fixed some little bugs in the previous scripts. Fantastic! These make great shapes to have tumble around in a larger fractal, eiffie style ;-) Title: Re: Polyhedrons, many many polyhedrons... Post by: knighty on February 12, 2012, 08:53:12 PM :dink:
Someone have already done a briliant hyperbolic space navi on GPU (http://glsl.heroku.com/e#1479.2) (there are many other variation on the site) :hurt:. I'll have to do something better :tease:. Title: Re: Polyhedrons, many many polyhedrons... Post by: DarkBeam on February 12, 2012, 09:44:27 PM Go hero gooo :D
Title: Re: Polyhedrons, many many polyhedrons... Post by: marius on February 12, 2012, 10:30:49 PM :dink: Someone have already done a briliant hyperbolic space navi on GPU (http://glsl.heroku.com/e#1479.2) (there are many other variation on the site) :hurt:. I'll have to do something better :tease:. Indeed. Thanks for reminding me of glsl sandbox. Very cool and instructive stuff there. Title: Re: Polyhedrons, many many polyhedrons... Post by: DarkBeam on February 14, 2012, 04:21:00 PM Found an interesting image gallery
http://www.flickr.com/photos/fdecomite/sets/72157613498998540/ ^-^ Title: Re: Polyhedrons, many many polyhedrons... Post by: subblue on February 14, 2012, 04:31:58 PM Found an interesting image gallery Ahh yes, fdecomite, has done some very interesting work. I've been following his stuff for some time :)http://www.flickr.com/photos/fdecomite/sets/72157613498998540/ ^-^ Title: Re: Polyhedrons, many many polyhedrons... Post by: knighty on March 10, 2012, 08:48:51 PM Better late than never. Here is a 3D hyperbolic tesselation fragmentarium script. Just *-3-*-5-*-3-* Coxeter symmetry group for now. Others will come later.
Title: Re: Polyhedrons, many many polyhedrons... Post by: Syntopia on March 10, 2012, 10:28:48 PM Amazing stuff as usual, Knighty!
I just tried it out. You say it's a 3-5-3 group. So by setting the U,V,W,T parameters, it should be possible to find a regular icosahedral honeycomb, right?: http://en.wikipedia.org/wiki/Convex_uniform_honeycombs_in_hyperbolic_space#.5B3.2C5.2C3.5D_family Have you tried this? Title: Re: Polyhedrons, many many polyhedrons... Post by: marius on March 11, 2012, 08:40:48 AM Better late than never. Here is a 3D hyperbolic tesselation fragmentarium script. Just *-3-*-5-*-3-* Coxeter symmetry group for now. Others will come later. Cool .frag! I converted it into a boxplorer2 flavored one as well. Fun stuff when you make the clipping sphere reflective and swing a light around inside. (https://lh4.googleusercontent.com/-KA_k6fahXLo/T1xWOmih4OI/AAAAAAAAViY/lKNxVAAp1v8/s800/20120310_233149.jpg) Title: Re: Polyhedrons, many many polyhedrons... Post by: DarkBeam on March 11, 2012, 09:19:04 AM It is way too complicated for my limited brain! :'(
And too much vars too! :hurt: But it's fantastic :beer: Title: Re: Polyhedrons, many many polyhedrons... Post by: kram1032 on March 11, 2012, 10:40:35 AM hyperbolic spaces ftw!
http://www.youtube.com/watch?v=AGLPbSMxSUM http://www.youtube.com/watch?v=MKwAS5omW_w Title: Re: Polyhedrons, many many polyhedrons... Post by: knighty on March 12, 2012, 01:52:13 PM Thank you.
Kram: Thank you for the videos. It's amazing how knots and hyperbolic geometry are related. Marius: awesome! how do you get that glowing sphere (light?)? Syntopia: you can get icosahedral honeycomb in two ways: U=0,V=1,W=0,T=0; and U=0,V=0,W=0,T=1. It's not obvious to see the icosahedra. I think it is because of the vertex figure: eache vertex have 20 neighbours. I've attached another version of the script with a preset that shows clearly the icosahedra. It was neccessary to do a 'tanslation' in order to center it (see the rotation parameters). You can get most of the regular honeycombs by setting the UVWT parameters to 0 or 1. In order to be able to identify the honeycombs given in wikipedia, here are some hints: - [3,5,3]: The coxeter diagram is: 5 *-*-*-* a d b c V U W T Each star corresponds to a folding plane. The naming of the planes in the script is given by the letters under the diagram (well you will find na, nb... instead in the script). The line below gives the correspondance between the 'barycentric' coordinates of the vertex. Each barycentric coordinate corresponds to a plane. In fact the 'principal' point that is opposit to that plane. For example, V corresponds to the point that is opposite to the plane a. it is in fact given by the intersection of the other planes. In this case the intersection of d,b and c. Now, the "cantellated icosahedral" for example: the corresponding Coxeter–Dynkin diagram is: 5 (*)-*-(*)-* Each "ringed" dots mean "give 1 to the corresponding barycentric coordinate" (non "ringed" means give it 0) so we shoud have: V=1, U=0, W=1 and T=0. (Just don't ask for the "partially truncated icosahedral" because it's not possible with this method) :D I've finally finished to get the planes and vertices for the other Coxeter groups. The corresponding scripts are attached below. The "noncompact honeycomb" are not included yet because I will need to rework the distance estimation in order to avoid infinities that arise in the calculations. -[5,3,n]:file:"hyperbolic-tesselation-5-3-n-colored-00.frag" 5 n *-*-*-* a d b c V U W T n=4 or 5 (you can also try 6 but this will not render correctly sometimes because of vertices at infinity (ideal points)) -[5,31,1]:file:"hyperbolic-tesselation-bifurcating-5-3-3-colored-00.frag" *b W \ 5 U d*-*a V / *c T -[(m,3,n,3)]:file:"hyperbolic-tesselation-cyclic-m-3-n-3-colored-00.frag" V U a d *-* m| |n *-* c b T W m=4 or 5 (you can also try 6) n=3,4 or 5 (and also 6) I've completely forgotten the euclidean honeycombs. They should be easy compared to spherical and hyperbolic ones. ;D Title: Re: Polyhedrons, many many polyhedrons... Post by: marius on March 12, 2012, 09:11:09 PM Marius: awesome! how do you get that glowing sphere (light?)? It's an extra 'sphere' in the glsl raymarcher: http://code.google.com/p/boxplorer2/source/browse/trunk/cfgs/knighty/HypTess.cfg.data/fragment.glsl#337 (http://code.google.com/p/boxplorer2/source/browse/trunk/cfgs/knighty/HypTess.cfg.data/fragment.glsl#337) also used for hard shadowing: http://code.google.com/p/boxplorer2/source/browse/trunk/cfgs/knighty/HypTess.cfg.data/fragment.glsl#313 (http://code.google.com/p/boxplorer2/source/browse/trunk/cfgs/knighty/HypTess.cfg.data/fragment.glsl#313) (current code has the light white, not the weird blueish above) Title: Re: Polyhedrons, many many polyhedrons... Post by: jehovajah on March 13, 2012, 04:13:21 AM I always enjoy Knighty's scripts. I was wondering what it would look like "fractalized" with each vertice as another polyhedron. This is the result. Nice! I especially like how spaciometric density arises from the fractalisation of the vertices, and the multipleform gradually becomes a single object. These subjective experiences are well illustrated in this video.http://www.youtube.com/watch?v=-eo6ImWMcWg Title: Re: Polyhedrons, many many polyhedrons... Post by: jehovajah on March 13, 2012, 04:21:42 AM Better late than never. Here is a 3D hyperbolic tesselation fragmentarium script. Just *-3-*-5-*-3-* Coxeter symmetry group for now. Others will come later. The multiverse! The final frontier? Very nice :banana: :chilli: Title: Re: Polyhedrons, many many polyhedrons... Post by: knighty on March 13, 2012, 07:41:05 PM Thank you marius.
Thank you Jehovajah. :) Title: Re: Polyhedrons, many many polyhedrons... Post by: kram1032 on March 13, 2012, 10:25:29 PM knighty, the video was the first hint for me to actually understand how those disk-spaces you might have seen (poincare-model of hyperbolic space, etc.) translate into "actual", "infinite" hyperbolic space. At least I take it that the outsider's view on the cone is what would be the poincare-disk-model (or its corresponding 3D open 3-ball version) while the later hyperbolic polyhedral tilings are the "actual" picture...
Title: Re: Polyhedrons, many many polyhedrons... Post by: JosLeys on March 16, 2012, 11:11:11 PM Knighty,
How do you define the fundamental domain of a 4D polytope? I've been looking all over the internet for references, but I can't find any. I'd like to understand how you define the 4d vectors in your Fragmentarium script... Thanks...Jos Title: Re: Polyhedrons, many many polyhedrons... Post by: knighty on March 17, 2012, 05:44:20 PM Hi JosLeys,
I used the fact that the elliptic, euclidean and hyperbolic plans (spaces) can be "immersed" in a higher dimensional linear space. This is called the projective interpretation. The advantage of such model is that we will only manipulate (hyper) planes. The elliptic plane is seen as a (hyper) sphere imbedded in a 3D (4D) euclidean space where the dot product is as usual (with signature (+ + + +)). The euclidean plan (space) is seen as a (hyper) plane imbedded into the 3D (4D) affine space where the dot product have signature (+ + + 0). The hyperbolic plane (space) is seen as the (upper) unit hypeboloid imbedded in the Minkowski space where the dot product have the signature (+ + + -) (or (- - - +). it's a matter of convension). The generation of the planes defining the fundamental domain is exactly the same as for polyhedra. I begin from the Coxeter group which defines the angles between those planes. In the case of a polyhedra we have 3 planes. There are 3 angles, one for each pair of planes. Each of those angles gives a linear equation where the dot product of the normals of the two planes is equal to -cos(angle) (The convention I choose is that the normals point inside the fundamental domain). The problem here (weel in fact it is not a problem) is that we have 3 normal vectors each with 2 degrees of freedom (because they are normalized) which gives 6 degrees of freedom and we have only 3 equations. the system is underconstrained. The 3 remaining degrees of freedom correspond exactly to arbitrary rotation (and symmetries). Thus, we have to arbitrarily choose some of the components of our normal vectors. Let's consider the symmetries of the dodecahedron: the corresponding Coxeter group is: 5 *-*-* a c b a,b and c are our three normal vectors. each one corresponds to a dot (star) in the diagram. Thus we have the three equations: <a|b>=0 <a|c>=-cos(PI/5) <c|b>=-cos(PI/3)=-1/2 I choose to fix the components of 'a' to (1,0,0). b==(b0,b1,0). Because 'a' is orthogonal to 'b' we have b0=0 and b1=1. Now, c==(c0,c1,c2). <a|c>=c0=-cos(PI/5) <b|c>=c1=-cos(PI/3)=-1/2 because c must have unit norm, we have c0²+c1²+c2²=1 Thus c3=sqrt(1-c0²-c1²)=sqrt(3/4-cos²(PI/5)) The choice of the componenets of a and b is not arbitrary. First reason is that I'll just have to use abs() function to perform folding about a and b. The second reason is that I wanted the vertices of the fundamental domain (the intersection of the 3 pairs of planes plus the unit sphere) to have positive components. These are just practical choises, the first simplify the computations a lot, the second in order to not get lost ;). Concernig the vertices of the fundamental domain, at first I wanted them to be on the unit sphere. That was not good because I couldn't obtain simply the vertex of the uniform polyhedra from a weighted sum of the vertices of the fundamental domain. It's not linear. The solution is very simple: The three verices have to be pab=abs(a*b), pbc=abs(b*c) and pac=abs(a*c) and normalized afterward. '*' is the cross product. Why? Let's take for example the Rhombicosidodecahedron: it's vertex 'p' have to be at the same distance to each of the fundamental domain planes. it will be: p = pab + pbc + pac = abs(a*b) + abs(b*c) + abs(a*c) it's distance to eache plane is: d(p,a)=<p|a>= <abs(a*b)|a> + <abs(b*c)|a> + <abs(a*c)|a> = <abs(b*c)|a> = abs((a,b,c)) d(p,a)=<p|b>= <abs(a*b)|b> + <abs(b*c)|b> + <abs(a*c)|b> = <abs(a*c)|b> = abs((a,b,c)) d(p,a)=<p|c>= <abs(a*b)|c> + <abs(b*c)|c> + <abs(a*c)|c> = <abs(a*b)|c> = abs((a,b,c)) which is the same value! (Despite the abs() these equalities hold because of the convensions we used.) (a,b,c) is the triple product. it is the volume of the parallelepiped defined by a,b and c. It's easy to verify the case of the other uniform polyhedrons. It is remarkable that it works also in the case of the polychora and also for hyperbolic tesselations/honeycombs. in the 4D case the cross product a*b is replaced by its 4D generalisation: *(a,b,c). see (http://en.wikipedia.org/wiki/Cross_product#Multilinear_algebra). The case of the polychora is exactly the same. The system of eqations defining the normal vectors is derived from the coxeter group. we will have 6 equations for 12 degrees of freedom. The 6 remaining degrees of freedom are the isometries (rotations and reflexions) of the 4D Eclidean space. In the case of the hyperbolic tesselations/honeycombs, the dot product have (+++-) signature. The cosine of the angle between the (hyper) planes is still the dot product of their normals because they are space-like. The vertices of the fundamental domain are time-like. They are also computed using the generalisation of the cross produt ... well... one have to be very careful with the signs and the type of the vectors at hand! Some interesting papers that helped me understand (to some extent): The projective interpretation of the eight 3-dimensional homogeneous geometries (http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.57.2347) (a little bit technical) Hyperbolic Geometry (http://www.math.ecnu.edu.cn/~lfzhou/others/cannon.pdf) (see figure 5 for correspondance between the different models of the hyperbolic plane) Generating and Rendering Four-Dimensional Polytopes (http://torus.math.uiuc.edu/jms/Papers/dodecaplex/new.pdf) Real-Time Rendering in Curved Spaces (http://page.math.tu-berlin.de/~sullivan/L/03W/Vis/curved-sp.pdf) BTW, here are the fragmentarium scripts updated with the names of the honeycombs as described in wikipedia (see the presets). Title: Re: Polyhedrons, many many polyhedrons... Post by: JosLeys on March 17, 2012, 06:34:22 PM Wow, thanks Knighty!
I'll need a bit of time to digest all of it (and I'll probably have more questions...) Title: Re: Polyhedrons, many many polyhedrons... Post by: JosLeys on March 17, 2012, 08:53:45 PM Knighty, some first comments :
I have an implementation for polyhedra in Ultrafractal, where I made the following reasoning. Let's take the dodeca/icosa as an example. The fundamental domain here is a triangle on the sphere with one right angle and the two others pi/5 and pi/3. Call this trangle ABC with A the right angle, sides a,b,c (a opposite to A,b opposite to B,etc) and angles pi/2 in A,beta= Pi/5 in B and gamma=pi/3 in C. then from spherical trig we have cos(b)=cos(beta)/sin(gamma) and cos(c)=cos(gamma)/sin(beta). The vectors A,B,C are then simply: A=<0,0,1> B= <sin(b),0,cos(b)> C=<0,sin(a),cos(a)> And the normals on the three planes through the origin and sides a, b and c follow from the cross products A*B, B*C, C*A. As the vertex I simply take the barycentric point P=U.A+V.B+W.C, which gives a point P in the plane ABC, so I normalize to put it on the sphere. I saw no reason to do otherwise, as you do. For instance the polyhedron with U=V=W=1 is repreoduced below using these data. Now...on to the 4D case. I'm reading the Sullivan and Weeks articles first Title: Re: Polyhedrons, many many polyhedrons... Post by: puntopunto on March 19, 2012, 12:13:35 PM Many, many polyhedra...
These are the so called stellations of the cuboctahedron (http://stitchstitch.info/m3d/cuboctahedra.jpg) I rendered them in Mathematica 2.0, 20 years ago. I calculated the intersections of the face planes of the cuboctahedron, with one such a plane. The regions you get, you can use by rotating them according to the symmetry group of the cuboc. If anyone find them useful I can pull out the coordinates of the vertices. The same for the 59 icosahedron stellations. Title: Re: Polyhedrons, many many polyhedrons... Post by: knighty on March 19, 2012, 07:13:12 PM Sorry for being late. Busy at work.
I saw no reason to do otherwise, as you do. It's true that the method you use is more elegant but the one I use is not as complicated as it looks. It's main advantage is that it is straightforward to generalize to higher dimensions. It's not obvious to me how to generalize the method using spherical trigonometry identities.For instance the polyhedron with U=V=W=1 is repreoduced below using these data. It is not an uniform polyhedron. It is still possible to make it uniform by using other values for U,V and W but they will not be the same.I rendered them in Mathematica 2.0, 20 years ago. I calculated the intersections of the face planes of the cuboctahedron, with one such a plane. The regions you get, you can use by rotating them according to the symmetry group of the cuboc. If anyone find them useful I can pull out the coordinates of the vertices. The same for the 59 icosahedron stellations. That would be nice. :)Title: Re: Polyhedrons, many many polyhedrons... Post by: JosLeys on March 19, 2012, 09:21:37 PM To Knighty:
It's not obvious to me either to do spherical trigonometry on the 3-sphere, so I'm still wondering how you put it together in 4D. As far as I can see you took 4 hyperplanes that form the fundamental domain (also known as the Goursat tetrahedron): a, b, nc and nd being their normals. You took a to be <1,0,0,0> and b=<0,1,0,0>. The angles between the planes give 5 equations for 6 unknowns, but one component of a vector can be chosen freely. As far as I can see you took the angles between planes to be: a-b: pi/2, a-c: pi/5, a-d: pi/2, b-c: pi/3, b-d: pi/3, c-d:pi/2. ...and I'm puzzled at why this should be so! I have a hard time visualizing what the angles between the 4D hyperplanes should be! Anyway, choosing the fourth coordinate of nd to be zero, I arrive at your expressions for nc and nd. The points on the sphere can be derived from the cross products in four dimensions, which requires three vectors. What I do not understand is why your four points, pabc, pbdc etc. stem from the cross products abc, bdc, cda, dba and not something else like acb, cdb or dcb..the choice is endless!! Title: Re: Polyhedrons, many many polyhedrons... Post by: puntopunto on March 19, 2012, 11:22:24 PM In case someone needs them
The coordinates of the vertices of all Johnson solids. In the document: name of the polyhedron,vertices,face indices http://www.stitchstitch.info/m3d/JohnsonSolids.docx (http://www.stitchstitch.info/m3d/JohnsonSolids.docx) Title: Re: Polyhedrons, many many polyhedrons... Post by: knighty on March 21, 2012, 02:04:37 PM Hi!
Thank you very much puntopunto. To Knighty: The angle between two hyperplanes is given by the normals to thos e hyperplane. It's 2D whatever the dimension of the hyperplane is. the two normal vectors define a 2D plane (obviousely this plane is perpendicular to the hyperplanes and in our case it goes through the origin) which intersection with the two hyperplanes gives two lines. The angle between these two lines is exactly the angle between the two hyperplanes.It's not obvious to me either to do spherical trigonometry on the 3-sphere, so I'm still wondering how you put it together in 4D. As far as I can see you took 4 hyperplanes that form the fundamental domain (also known as the Goursat tetrahedron): a, b, nc and nd being their normals. You took a to be <1,0,0,0> and b=<0,1,0,0>. The angles between the planes give 5 equations for 6 unknowns, but one component of a vector can be chosen freely. As far as I can see you took the angles between planes to be: a-b: pi/2, a-c: pi/5, a-d: pi/2, b-c: pi/3, b-d: pi/3, c-d:pi/2. ...and I'm puzzled at why this should be so! I have a hard time visualizing what the angles between the 4D hyperplanes should be! Anyway, choosing the fourth coordinate of nd to be zero, I arrive at your expressions for nc and nd. The general method I use is as follow: - I require the hyperplanes to have normals pointing inside the fundamental domain. having 4 hyperplanes, they divide the 4D space into 2^4=16 sectors. Only one sector is such that the normal vectors to the hyperplanes all point inside the sector. - A consequance of the first requirement is that the half lines of the fundamental domain are on the positive side of the opposit hyperplane. - I also require that the positive part of the w axis be the intersection of hyperplanes a,b and c. It will be on the positive side of the hyperplane d. - because the angles between our hyperplanes are always <=PI/2, the fundamental domain is small enough to fit inside the first 1/16 sector where all coordinates are positive ;). (this is the same as the first octant in 3D or the first quadrant in 2D). That is why i take the (componenet wise) absolute value of the vector product to get the vertices. That way I haven't to worry about the order of the vectors as they appear in the vector product. Let the planes a:(a0,a1,a2,a3); b:(b0,b1,b2,b3); c:(c0,c1,c2,c3) and d:(d0,d1,d2,d3) be the normal vectors to the hyperplanes. We have a total of 16 unknowns. There are 6 angles (that are deduced from the coxeter diagram including those that are equal to pi/2). Those angles give 6 linear equations (such that a.b=-cos(angle(a,b))). We also want the normal vectors to be noralized which give a set of 4 nonlinear equations. We will need a mean to fix the 6 remaining degrees of freedom (which correspond to the set of orthonormal matrices in 4D). The simplest method I could think of is to set some of the components to 0 like this: a:(a0,0,0,0); b:(b0,b1,0,0); c:(c0,c1,c2,0) and d:(d0,d1,d2,d3). Then solve the system of equations. Because of the 4 nonlinear equations, one have to be careful abou the signs in order to keep the fundamental plane inside the first 1/16 sector. In the case of polychora: a0=1; b0<=0; b1>0; c0,c1<=0; c2>0; d0,d1,d2<=0 and d3>0. (in the hyperbolic case one can verify that d3 must be <0 also). In practice and in order to simplify the calculation (made by hand) I always group the perpendicular hyperplanes to be processed first. for example, if there is a angle of pi/2 I choose it to be the angle between a and b so their components will be (1,0,0,0) and (0,1,0,0). And so on... a-c then b-c then a-d ...etc. The points on the sphere can be derived from the cross products in four dimensions, which requires three vectors. That is the part where i was lost ;). In fact given three vectors a,b and c, their dot products *(a,b,c), *(b,c,a) and *(c,a,b) are equal. those are even permutations. The other permutations of a,b,c which are odd give a vector with same magnitude but opposit direction.What I do not understand is why your four points, pabc, pbdc etc. stem from the cross products abc, bdc, cda, dba and not something else like acb, cdb or dcb..the choice is endless!! The requirements I did, garantee that all the vertices have only positive coordinates. This way I don't have to worry about the right order for the cross products. I just take the absolute value. Title: Re: Polyhedrons, many many polyhedrons... Post by: JosLeys on March 21, 2012, 08:09:34 PM Knighty, again, thanks for your time.
If you think I'm stalking you with all these questions, just say so! One thing you did not answer is this : We have four hyperplanes : a,b,c and d. We take the angle between a and b to be pi/2. We take the angle between a and c to be pi/n, n being what you call 'Type' Between b and c it's pi/3. So far so good, that is how it is for the 3D case also. Where I am lost is how you determine what the angle should be between d and a,b and c.... Title: Re: Polyhedrons, many many polyhedrons... Post by: knighty on March 22, 2012, 09:32:04 PM Knighty, again, thanks for your time. Thank you too. :)If you think I'm stalking you with all these questions, just say so! There is no problem. I'm glad to answer any question. One thing you did not answer is this : I just took the Coxeter group diagram as it appears in for wikipedia (http://en.wikipedia.org/wiki/Uniform_polychoron). We have four hyperplanes : a,b,c and d. We take the angle between a and b to be pi/2. We take the angle between a and c to be pi/n, n being what you call 'Type' Between b and c it's pi/3. So far so good, that is how it is for the 3D case also. Where I am lost is how you determine what the angle should be between d and a,b and c.... Following your post, your naming is: n *-*-*-* a c b d Therefore the angles should be: (a,c)=PI/n (a,b)=PI/2 (a,d)=PI/2 (b,c)=PI/3 (b,d)=PI/3 (c,d)=PI/2 For one I took this naming convention for the fragmentarium shaders: n *-*-*-* a d b c where n=3,4 or 5. Therefore the angles are: (a,b)=PI/2 (a,c)=PI/2 (a,d)=PI/n (b,c)=PI/3 (b,d)=PI/3 (c,d)=PI/2 This is how I solve for the hyperplanes. I begin with: a=(a0,0,0,0) b=(b0,b1,0,0) c=(c0,c1,c2,0) d=(d0,d1,d2,d3) |a|=1 => a0=1 <a|b>=0 and |b|=1 => b0=0 and b1=1 <a|c>=0 => c0=0 <b|c>=c1=-cos(PI/3)=-1/2 => c1=-1/2 |c|=1 => c2=+-sqrt(1-c1²)=+-sqrt(1-1/4)=+-sqrt(3)/2 which is +-sin(PI/3). In order for the fundamental domain to remain in 1/16 sector I have to choose the positive solution. <a|d>=d0=-cos(PI/n) <b|d>=d1=-cos(PI/3)=-1/2 <c|d>=c1*d1+c2*d2=0 => d2=-c1*d1/c2=-1/2*1/sqrt(3) |d|=1 => d3=+-sqrt(1-d0²-d1²-d2²) i have to choose the positive solution so: d3=sqrt(2/3-cos²(PI/n)) Finally: a=(1,0,0,0) b=(0,1,0,0) c=(0,-1/2, sqrt(3)/2, 0) d=(-cos(PI/n), -1/2, -1/2*1/sqrt(3), sqrt(2/3-cos²(PI/n))) I think I am finally beginning to understand how the 4D cross product works (thanks to your stalking ;D): Let M be the matrix which rows are the vectors a,b,c,d. First the determinant of M have to be positive. Well, I don't really know why but maybe it means that our fundamental domain is correctly oriented w.r.t. the hyperplanes normal vectors. Now, each vertex A,B,C,D should be the vector obtained from the determinant of a matrix obtained itself from M but where the line corresponding to the hyperplane's normal opposit to the vertex is replaced with the row: (e0,e1,e2,e3). where ei are the basis vectors. for example: | a0 0 0 0 | | b0 b1 0 0 | C = | e0 e1 e2 e3 | = a0*b1*(e2*d3 - e3*d2) | d0 d1 d2 d3 | This way the signs should be correct. I gess it is a little bit different in the hyperbolic case. Title: Re: Polyhedrons, many many polyhedrons... Post by: JosLeys on March 22, 2012, 10:37:22 PM Knighty, I'm with you so far!
Merrily continuing my stalking, I now come to your magic formula for the distances which I've been looking at for quite some time without success. Here we go : in 3D, the distance from the origin of the point on our ray is r. We first promote our point to 4D through inverse stereographic projection. Next we do all the folding around the hyperplanes to get our 4D point between those planes. So our 4D point has changed position and if we now bring it back to 3D through stereographic projection it will be at another location than its original 3D location. How then can the original distance from the origin, r, feature in your magic distance formula? Title: Re: Polyhedrons, many many polyhedrons... Post by: knighty on March 23, 2012, 01:05:03 AM Short explanation for now. I'll try to give a more detailed one tomorrow.
The "magic" formula is just for converting distances on the 3-sphere -which are angles- to the projection space: Given a point on the projection space and a distance on the 3-sphere, what distance on the projection plane that corresponds? This is a 2D problem. we only need to do solve it on the plane defined by the original point and the w axis. After having folded the point, the distance from that folded point to the polychora is computed on the 3-sphere (in practice it is the sine and cosine of that spherical distance that is actually computed). That distance doesn't depend on the position of the point on the sphere. Therefore we can use the "magic" formula using the original point (on the projection space) to do the conversion. Title: Re: Polyhedrons, many many polyhedrons... Post by: knighty on March 23, 2012, 08:19:01 PM Here is a graphic that shows the logical steps in computing the DE:
1- Zp is our initial point in our flat space (projection space). 2- Zs is the inverse stereographic projection of Zp. 3- Zf is the Zs transformed (rotation and folding). 4- We measure the angle (spherical distance) between Zf and a feature of our polyhedra (here a vertex V in this case the cosine of the angle is <Zf|V>. both Zf and V are not necessarily in the plane of the graphic). 5- "transport" the angle towards Zs. 6- We get the point Zg 7- Zg is pojected back to the projection space which gives Good. The distance estimate is the length of the segment Zp-Good. (http://i395.photobucket.com/albums/pp36/jnosof/magicFormula02.png) It is possible to deduce a better "magic" formula than the one I used by noticing that the angle Zs-Pc-Zg is half of the angle Zs-O-Zg :). Title: Re: Polyhedrons, many many polyhedrons... Post by: JosLeys on March 24, 2012, 11:13:40 AM Am I right in saying that this produces a distance estimate that is always smaller or equal than the actual distance?
I'm sure it does not produce the exact distance, or am I wrong? Title: Re: Polyhedrons, many many polyhedrons... Post by: knighty on March 24, 2012, 02:17:30 PM Yes, It doesn't give the exact distance. The DE have to be conservative. Indded, the obatined unbounding volume is in reality a sphere which center is 0.5*(Good+Bad) and radius 0.5*|Bad-Good|. The DE is the distance from Zp to that sphere. It is still possible to use that sphere in raymarching but I don't think it gives a huge speedup if any.
Title: Re: Polyhedrons, many many polyhedrons... Post by: JosLeys on March 24, 2012, 02:58:58 PM One way to get the exact distance could be as follows :
-promote the point to 4D -Do the folding and keep track of what happens (note down the reflections, if any) -Fold the vertex point with the inverse sequence of the folding above. -Stereographically project the folded vertex point to 3D -The distance is then from our original 3D point to the folded/projected vertex point. This is probably somewhat more involved for the distance to the segments. Title: Re: Polyhedrons, many many polyhedrons... Post by: knighty on March 24, 2012, 03:49:03 PM Maybe I'm wrong but I don't think that the Obtained DE is conservative. There would be some overestimations. The unbounding sphere I described in the previous post is garanteed to contain no vertices (so is the DE because the corresponding sphere is inside the unbounding sphere). It is "tangent" to only one vertex. The obtained sphere with your method would have some parts that are outside the unbounding sphere which may contain other vertices.
Keeping track of the different transformation can be achieved with a matrix. Each time a transformation occurs it's matrix representation (it's inverse actually IIRC) is mutiplied with that matrix. Title: Re: Polyhedrons, many many polyhedrons... Post by: JosLeys on March 24, 2012, 08:19:30 PM What I was thinking of is the analog with one dimension less: the stereographic projection on a 2D plane of the vertices of a polyhedron in the circumscribed sphere.
Any point in the plane, through inverse stereographic projection will end up in some triangle on the sphere (see image below). Through a series of foldings, it will end up in the green, fundamental triangle. The inverse series of foldings will put the fundamental triangle in the triangle of our point. So if we take the stereographic projection of the folded vertex, which in this case is one of the vertices of the triangle, we can read the exact distance in the 2D plane friom the distance betwee our original point in the 2D plane, and the stereographic projection of the polyhedron vertex. In fact, this could give the exact distance to the segments also by 'backfolding' the vertices of the fundamental triangle (tetrahedron in the 4D case), and transforming the normal vectors. We can then work directly in the folded fundamental triangle... Title: Re: Polyhedrons, many many polyhedrons... Post by: knighty on March 25, 2012, 10:03:37 PM You will have to consider not only the copy of the fundamental domain containig the point but also the neighbours of that copy. The attached picture shows the stereographic projection of the tiled sphere wrt the symmetry group of the dodecahedron. The blue points are all copies of each other through the symmetry group. It's clear that the red dots are closer to feature points in the neighbouring cells instead of the point that is in the same cell.
Title: Re: Polyhedrons, many many polyhedrons... Post by: DarkBeam on March 25, 2012, 10:53:33 PM Keep doing good don't stop :D
Title: Re: Polyhedrons, many many polyhedrons... Post by: JosLeys on March 25, 2012, 11:27:55 PM Knighty, would this not also be the case with your magic formula?
A point is folded until it is in the fundamental domain, and a distance estimate follows from an angle measured within that domain. Could not a feature point in a neighbouring domain be closer after stereographic projection? Title: Re: Polyhedrons, many many polyhedrons... Post by: knighty on March 26, 2012, 10:19:56 PM No, on the sphere, the distance from a test point to a feature inside the same cell is always less than the distance to the features that are in the neighbouring cells (ie the kaleidoscopic images of the feature). The stereographic projection of the corresponding circle is still a circle but it's center is not on the projection of the test point. it is on the line from the origin to the projection of the test point and is farther from the origin than the projection of the test point. That projected circle obviousely won't contain any neighbour's projected features and because the circle corresponding to the DE is inside we won't get overstepping :). The picture below illustrates approximatively what happens. (sorry I used Windows paint)
Title: Re: Polyhedrons, many many polyhedrons... Post by: JosLeys on March 27, 2012, 11:32:51 AM Ok I see why I would overstep if I do what I had in mind.
Thanks for your patience! Title: Re: Polyhedrons, many many polyhedrons... Post by: knighty on March 28, 2012, 08:30:47 PM Thank you too. Thanks to your questions, I am having a better understanding of the subject. :)
This subject is very rich, so I think it won't stop here. Maybe just take some time to complete. The idea of keeping track of the applied transformations will be useful to handle the subgroups (the crystallographic groups for example) of the symmetry groups used so far. I think one still have to consider neighbouring cells in order to get consistant DE. That way the snub variations could be possible. It is possible to render those tessellations with direct raytracing within the projective model. The rays travel in the 4D space instead. It is much like what is described here (http://images.math.cnrs.fr/Une-chambre-hyperbolique.html) ;D. The advantage of using the projective model is linearity (and correct "deformations"). Maybe it will be better and faster to use it for the crystallographic groups (and their spherical and hyperbolic couterparts). But before, I want to do the euclidean case for the honeycombs. find a better "magic formula" for the hyperbolic case to handle points at infinity. And of course, a DE for the stellations (the data kindly provided by punto will be very useful). And after... back to fractals. But for now, back to work :'( :hurt: Title: Re: Polyhedrons, many many polyhedrons... Post by: matsoljare on March 28, 2012, 11:48:37 PM That's a really beautiful picture, any more like that?
Title: Re: Polyhedrons, many many polyhedrons... Post by: puntopunto on March 29, 2012, 09:27:12 AM Hallo Knighty:
Although I don't understand how you render the polyhedra, you cannot be far away from rendering the Archimedian duals. There are a few possible methods. Using the vertex figure or using the property that duals are derived from interchanging the vertices and faces of a polyhedron. You will find sufficient info on the wikipedia page. Anyway here are the vertex coordinates. (http://www.stitchstitch.info/m3d/arch.%20duals.jpg) http://www.stitchstitch.info/m3d/Archimedian%20duals.docx (http://www.stitchstitch.info/m3d/Archimedian%20duals.docx) One question: Which basic information of the polyhedra do you use. The reflections in the symmetry group, together with what? Next: some compounds. They can't be far away for you either Title: Re: Polyhedrons, many many polyhedrons... Post by: DarkBeam on March 29, 2012, 11:41:53 AM It's already possible to render zillions of truncations with his scripts. And with some nice colors and stuff, too! ;D
Title: Re: Polyhedrons, many many polyhedrons... Post by: puntopunto on March 29, 2012, 12:58:30 PM Dualisation is a general concept. If you succeed to implement this general concept, then you will have also the duals for the non convex polyhedra yet to come. And you cannot generate the duals by truncation.
Title: Re: Polyhedrons, many many polyhedrons... Post by: knighty on March 29, 2012, 10:54:02 PM Yes, there are many stellations and duals that are possible with that script (http://www.fractalforums.com/index.php?topic=10166.msg41859#msg41859 (http://www.fractalforums.com/index.php?topic=10166.msg41859#msg41859)) but not all of them, just a tiny part :dink:. IIRC, the polyhedras presented in the previous picture are already possible with that script except the last two in the second row (they don't have full mirror symmetry).
One question: Which basic information of the polyhedra do you use. The reflections in the symmetry group, together with what? just the position of a vertex inside the fundamental domain. The normal to the 1 to 3 faces that are adjacent to that vertex are simply the intersection lines of the three symmetry planes.Next: some compounds. They can't be far away for you either Ah yes, I forgot about them. Thank you. Not complcated indeed: Fold about one set of symmetry planes then draw one rotated polyhedra. Another possibility is to simply make rotated copies.That's a really beautiful picture, any more like that? Thank you :), It was made with an evaldraw script that you can find here:www.fractalforums.com/new-theories-and-research/the-power-of-fold/msg36045/ (http://www.fractalforums.com/new-theories-and-research/the-power-of-fold/msg36045/).Title: Re: Polyhedrons, many many polyhedrons... Post by: JosLeys on April 01, 2012, 12:14:09 AM Knighty, thinking about about rays traveling in 4D...
In the simple case of stereographic projection from the 2-sphere to a 2D plane : imagine we are shooting rays within this 2D plane. A point on such a ray, elevated to the sphere, would be on a circle through the north pole (the projection center) and the inverse projection of two points on the ray. The point would then progress along this circle until it encounters a vertex or a segment, or until it encounters the inverse projection of the target point of the ray. The progress along the circle is then a rotation around the normal on the plane of the circle, and the rotation angle can be found by the folding operation. Now, how can this be translated to the case of a ray traveling in 3D space and inverse stereographic projection to the 3-sphere? I have a hard time visualising this in my head... :angry: As the ray in 3D is a straight line, then in 4D, on the 3-sphere it would also be a circle through the projection center. (a line is a circle with infinite radius, stereographic projection projects circles as circles...). If we take two points A and B on the ray in 3D, and we call P the projection pole and A' and B' the inverse projection on S^3 of A and B, then this circle would be the intersection of a plane defined by the vectors PA' and PB' and the sphere. That's about as far as I got. How do we find the normal on this plane... Title: Re: Polyhedrons, many many polyhedrons... Post by: JosLeys on April 10, 2012, 07:18:23 PM I implemented Knighty's code on 4D polychora in Ultrafractal.
See an example below. The code in UF is based on Knighty's in Fragmentarium, but with an important difference, which I think is an improvement: instead of the "magic formula", here is what I do : - A point on the ray is 'promoted' to 4D : the inverse stereographic projection to the 3-sphere. - The promoted point is folded by the planes that make up the fundamental tetrahedron a sufficient number of times. - Determine the distance to a vertex and a segment, and take the smaller of the two, expressed as an angle, that we will call theta. .....so far, nothing new. - What we know now is that our point on our ray can move forward by a distance d, so that the angle between the 'promoted ' new point and the old point, both on the 3-sphere, is not larger than theta. If A is the old point, A' the promoted old point and B the new point, whereby B=A+v.d, v the direction vector of the ray , and B' the promoted new point, then the dot product A'.B' equals cos(theta). This produces a quadratic equation in d. So we can solve for d, and in principle step forward on the ray with the exact distance to a vertex or a segment. As it is a quadratic equation, there are either 2,1 or no solutions. We simply always take the absolute of the solution as we do not want to step backward. If there is no solution (a negative determinant in the solution of the quadratic equation) then we can progress rapidly on the ray: it will not encounter a vertex or a segment. So this replaces the 'magic formula' by another one (which is not simple either when written out as a formula) but that has the advantage to give the 'exact' distance. In pratice I still use a fudge factor, but 0.95*DE gives no artifacts... Here is an example in UF: a 4D soccer ball. It is obviously not as fast as Fragmentarium, as UF works on the CPU, but an on-screen render in UF takes less than 30 seconds on my machine. Title: Re: Polyhedrons, many many polyhedrons... Post by: knighty on April 10, 2012, 09:18:35 PM Hi,
If I understand correctly this should be computationally equivalent to post #85 (http://www.fractalforums.com/general-discussion-b77/solids-many-many-solids/msg44664/#msg44664). I don't think that the distance you get is exact in the projection space but it is on the hypersphere anyway :). It would be nice to compare the speeds of both methods. Title: Re: Polyhedrons, many many polyhedrons... Post by: JosLeys on April 10, 2012, 10:00:55 PM The ray we're following translates into a circle on the sphere through the projection pole.
The distance measured as an angle on the sphere translates into another circle on the sphere, centered on the actual point of the ray, promoted to the sphere, with a 'radius' equal to the calculated distance. If the border of the object (vertex or segment) happens to be on the intersection of these two circles, meaning that the ray is heading straight towards it, we should have the exact distance, don't you think? Title: Re: Polyhedrons, many many polyhedrons... Post by: knighty on April 11, 2012, 05:51:52 PM IMHO, no.
Let's say we have a point P on the sphere and a circle c (on the sphere) centered on that point. Let P' abd c' be the stereographic projections of P and c on the plane respectively. c' is also a circle but it's center doesn't coincide with P'. If we take three points on the sphere A,B and C and their projections A', B' and C', there are (many) cases where the (spherical) distanc between A and B is greater than the distance between A and C and where the (euclidean) distance between A' and B' is smaller than the distance between A' and C'. Because any point on the plane (augmented with the point at infinity) can be identified to a point on the sphere (there is a bijection) we can pretend that they are the same point. The only thing that changes is the metric. by changing the metric we also change the definition of the distance. In the picture below, all the points on the red circle are at the same spherical distance to A (that is the distance "defined" by a spherical metric). Also, all the points on the red circle are at the same euclidean distance to A. So you can say that you have the exact distance but with respect to spherical metric. :) Title: Re: Polyhedrons, many many polyhedrons... Post by: JosLeys on April 11, 2012, 06:11:40 PM Hmm...not sure I agree.
See the picture below: the red point is moving on the yellow ray. The corresponding blue point on the sphere is a distance away from a vertex or a segment defined by the green circle. This distance is an angle which defines a cone with its top in the origin, and the intersection with the sphere gives the green circle. We can move the point on the ray to the second red point, which is the projection of the intersection of the yellow circle (the inverse projection of the ray), and the green circle, without having to fear that we are going to overstep something. On the other hand, if a vertex or a segment lies on the blue point that is the intersection of the two circles, we move on the ray with the exact distance. Title: Re: Polyhedrons, many many polyhedrons... Post by: knighty on April 11, 2012, 09:16:06 PM All is about the definition of "exact distance". :)
Title: Re: Polyhedrons, many many polyhedrons... Post by: knighty on April 21, 2012, 05:30:08 PM Some experiments with stellations and compounds. :D
Title: Re: Polyhedrons, many many polyhedrons... Post by: DarkBeam on April 21, 2012, 07:18:59 PM Some don't work well... But those who work are 5 stars :)
Title: Re: Polyhedrons, many many polyhedrons... Post by: Syntopia on April 21, 2012, 10:30:41 PM Here is a render of one Knighty's latest frags:
(http://blog.hvidtfeldts.net/media/dual.png) (I'm playing around with Image Based Lighting, 2D textures projection, and tone mapping in Fragmentarium) Title: Re: Polyhedrons, many many polyhedrons... Post by: knighty on April 22, 2012, 11:08:04 AM Ty! ;D.
The stellation and compound shaders are just experiments, proof of concept. If you have compilation errors just let me know. Title: Re: Polyhedrons, many many polyhedrons... Post by: Tamfang on May 07, 2012, 07:04:35 AM By the way, Vladimir Bulatov told me that he works in the Poincaré model because it resists accumulation of arithmetic errors better than the hyperboloid model.
I wonder... How would that look like with a 16-cell... Of course you mean the 24-cell. And if infinite lattices are allowed, the (hyper)cubic lattices are also self-dual, as are these hyperbolic lattices: {3,5,3}, {5,3,5}, {5,3,3,5} with finite cells; {4,4,4}, {3,6,3}, {6,3,6} with infinite cells.http://en.wikipedia.org/wiki/16-cell That polytope has the remarkable property of being self-dual despite being neither a polygon nor a simplex. It's the sole exception. Here is a 3D hyperbolic tesselation fragmentarium script. Just *-3-*-5-*-3-* Coxeter symmetry group for now. There's a more specific notation for the figure shown: x3o5x3x x means a ring, o means (perversely) no ring I count 32 Coxeter tetrahedra in H3 (including 23 with vertices at infinity), giving at least 227 uniform tilings (about 14 with vertex at infinity) not counting snubs. I have long wished for the ability to make a picture of each one, but it looks like you're beating me to it. I have plenty of learning to do if I'm ever to use Fragmentarium. I can't even tell from your code whether it's ray-tracing with mirrors, or makes copies of all those rods .... By the way, in doing the algebra for hyperbolic geometry, I generally find it easiest on the brain to explicitly call one of the coordinates imaginary (it,x,y,z) rather than try to remember when to use a negative! This lets me treat positively and negatively curved spaces in the same way (up to a point). I can still build the (–+++) signature into my code when the time comes. ... We will need a mean to fix the 6 remaining degrees of freedom (which correspond to the set of orthonormal matrices in 4D). The simplest method I could think of is to set some of the components to 0 like this: a:(a0,0,0,0); b:(b0,b1,0,0); c:(c0,c1,c2,0) and d:(d0,d1,d2,d3). Then solve the system of equations. When the Coxeter symbol has a loop, this pyramid scheme generally doesn't work, in my experience. Title: Re: Polyhedrons, many many polyhedrons... Post by: kram1032 on May 07, 2012, 09:46:42 AM let's say sole euclidean exception, then?
Title: Re: Polyhedrons, many many polyhedrons... Post by: Tamfang on May 09, 2012, 06:51:20 AM sole finite exception.
Title: Re: Polyhedrons, many many polyhedrons... Post by: Tamfang on May 09, 2012, 10:45:46 PM I forgot to mention: The lattice renders in this thread are gorgeous!
Title: Re: Polyhedrons, many many polyhedrons... Post by: knighty on May 10, 2012, 05:23:51 PM Hi Tamfang and welcome to fractalforums.
Thanks for the infos :). The advantage of the hyperboloid model is its simplicity: The fundamental domain is represented using hyperplanes instead of planes and spheres. This gives a very small code because we don't have to worry about special cases. BTW! I used Poincaré disc model for triangular groups. (http://www.fractalforums.com/new-theories-and-research/the-power-of-fold/). Regarding numerical accuracy, I compute hyperbolic sine and cosine of the hyperbolic distance. Using only cosh and 32 bits floats (or cos in the spherical case) certainly gives too high numerical errors and visible artefacts. The rendering method used is distance field raymarching (sphere tracing). At a given point on a ray, we compute a scalar value that is less or equal to the distance to the nearest object, then we advance on the ray using that value. The rendered object is implicitly represented with a scalar function (the distance field). Say we have a distance function F(x,y,z). If we do F(abs(x),y,z), what we get is a symmetric field (about y,z plane) where the values F(x>=0,y,z) are duplicated in the half space where x<=0. This is just like a mirror in a kaleidoscope. doing abs(x) is just like folding the space about the y,z plane. One can define folding about an arbitrary plane (or sphere using inversion). It's also possible to do other types of folding operations. As I said in a prevois post of this thread it is also possible to do direct raytracing using mirrors (just like what you did for euclidean honeycombs :dink:).I haven't implemented this method for two reasons: It's slightly less simple (in the case of hyperbolic honeycombs) and I don't think it would be much faster than sphere tracing. When the Coxeter symbol has a loop, this pyramid scheme generally doesn't work, in my experience. You are right. That scheme doesn't work in that case but only when there are ideal points (noncompact honeycombs).Title: Re: Polyhedrons, many many polyhedrons... Post by: Tamfang on May 12, 2012, 04:36:48 AM The hyperboloid model has been good enough (http://commons.wikimedia.org/wiki/User:Tamfang) for me so far (http://bendwavy.org/wp/?p=2816).
Title: Re: Polyhedrons, many many polyhedrons... Post by: knighty on May 14, 2012, 09:10:04 PM So! That was you! ;D
Very nice and impressive! Any chance you make your phyton programs available? Title: Re: Polyhedrons, many many polyhedrons... Post by: Tamfang on May 19, 2012, 04:37:25 AM That makes two nudges ... Okay, here: http://commons.wikimedia.org/wiki/User:Tamfang/programs
Title: Re: Polyhedrons, many many polyhedrons... Post by: DarkBeam on April 09, 2015, 01:02:05 PM just found those cool spidron solids :)
(http://spidron.hu/pecs/images/images/archi4.jpg) Title: Re: Polyhedrons, many many polyhedrons... Post by: LMarkoya on April 09, 2015, 01:05:22 PM Beautiful
Title: Re: Polyhedrons, many many polyhedrons... Post by: DarkBeam on April 09, 2015, 02:26:36 PM ;) yes I also think so. Spidron require a fractal-like iterative process, wonder if it can be speedy :) http://www.youtube.com/watch?v=xupWsbc4zhg Detailed list of solids; http://spidron.hu/archispidron/ |