polyhedra-viewer icon indicating copy to clipboard operation
polyhedra-viewer copied to clipboard

transitions between platonic solids

Open heavyk opened this issue 10 months ago • 2 comments

hi, I'd like to use your program to demonstrate the transition between platonic solids. the illustration would go something like this:

  1. start with a tetrahedron, such that it's not pointing upward (like how it's normally seen), but with its two edges opposite to each other forming a cross (to visualise this, imagine I'm looking from the top looking down: one edge will go horizontally left-to-right, then just above or below that is another edge that goes top-to-bottom. connected to each of these two edges are two triangles, which swing up (or down) to meet the end of the above (or below) edge -- not sure if that makes sense). (TH standing on it's edge?)
  2. the points of the TH will be selected, and then they will be pushed inward to form planes (this is effectively the same as trucating or rectifying the tetrahedron, but the visual of them being pushed, is because it's designed to show the platonic solids being creating from a contracting or constraining force). once the points have been pushed in such that all of the planes meet each other, it should form an octahedron.
  3. again we're going to take the octahedron now and push it's points inward until the planes meet, and a cube should be formed. (in each one of these transitions, I want to show how the new shape is positioned at a slightly offset angle from the original shape).
    • the cube and octahedron are duals of each other -- and I can't do it in my head, but I believe that if the cube's points are pushed inwards again, it'll form an octahedron again. that'd be cool to show that not only are they duals, but they can be made from each other by continual contraction (pushing their verticies till they become planes).
  4. with the cube, now we're going to do something different: this time, we're going to push the edges inward, forming a plane, and when the planes meet, this will now be a dodecahedron.
  5. again the icosahedron can be created from the dodecahedron by pushing the points inward till they become planes.
    • (it's really hard for me to do this stuff in my head) for this trasformation, it appears different than the cube <-> octahedron one because the planes don't really "meet" in the same way, but kinda stop when they hit the vertex (effectively the same as drawing the triangle around any of the points on the dodecahedron and chopping it there). this is probably significant.
  6. now, there are three duals which transform one to another, each by pushing the points inward (TH and itself, HH <-> OH, DH <-> IH). then, there's two transformation from one solid to another (push TH points into OH (irreversible?), and push cube's edges into DH).
  • TH and itself, each time (half?) the size of the former, and upside-down.
  • the HH <-> OH is turned (by 45(degrees)? -- not sure).
  • the DH <-> IH are also turned a bit as well.
  • I'm not sure the size/volume diffrences, between these solid but it seems it would be interesting to know that.
  1. I find the two contractive transformations of edges and points to be really interesting, because it's paired with three duals: same but an octave bigger (TH), different going from traingles (3) to squares (4) (HH <-> OH), and then harmonius expansive/contractive (DH <-> IH).
  • oscillating between these duals gives me three different feelings:
    • the TH is always double or half (relating to octaves and binary), and because the double or half is pointing the opposite direction, it's like a direct ricochet (180(degrees) reflection)
    • the HH <-> OH transformation is both extremely pointy and sudden. the angles also arrive at 45(degrees from each other), so feels like a very hard ricochet, which gives me the sense of these two being very diffreent from each other. also, the OH looks much more like a sphere than a cube does even though the cube has more points than a sphere. I'm not sure how to capture the feeling of that difference between these two visually though.
      • in traditianl teaching, the difference is between air and earth, which are quite different -- but I don't think that's an effective way of showing the difference -- because air is invisible and earth is visible. these are both visible, so the difference has to be seen in their angles. they're like complete opposites, wheras the IH <-> DH one has much more similarity, and so is therefore more harmonius.
    • the DH <-> IH shows expansion/contraction because the DH's pentagrams become IH's domes, and it feels very smooth, as it's a very slight ricochet (not sure the angle, but much less than 180 or 45). these as water/ether make the calm feeling that happens at the ocean and stuff like that.

ignore all of my extra commentary about their properties at the end there :) each shape produces a strong feeling for me. anyway, next I'd like to show the platonic solids as an expansive transformation, but I haven't figured those ones out yet. I'll explain more later, and maybe you have some ideas.

heavyk avatar Apr 04 '24 00:04 heavyk

hi again, I just read both of your blog posts, and played with the program a bit (I wrote the previous one only using the program only a few months back on my phone). this time, I used the desktop, and the experience was quite different from how I remembered it, so sorry for assuming there wasn't a rectify operation... I literally didn't see it, or somehow skipped over it or something (probably pressed truncate instead). anyway, as I was using it, I noticed that my main difficulty that I had was getting back to the previous shape that I had. I'm not familiar with the proper names for these things, and so I use expressions that normies would say like "pull a vertex" or "push a vertex" because truncate to me is the way to empty a database. reading along on the blog, I think I realised the main thing that made UI for this app so difficult: the focus is on "operations" which makes it feel like I can do any of these operations (though some are some of them greyed out?), when in reality I cannot.

going back to my first experience, I remember being quite frustrated becasue I couldn't grab the verticies and perform the operations on them. like, when it says "truncate", I felt like now all of the verticies would be highlighted, and then I could perform that operation on the verticies (something like Wings3D). it wasn't until after playing with it for a while that I realised that the program is based on a graph of a limited set of polyhedra. perhaps a way to get around the unclear what the operations do UI difficulty, is to make the graph the central part of the experience; imagine something like this:

  1. I start up the page, and after the loading animation and the brief explanation (which I can get back to reading somehow if I want), the tetrahedron shows up, and it's spinning slowly and perhaps changing rotation direction (to allow me to see it's 3 dimensionality). however, when I touch or click in the viewer, it should stop moving so that I know I can rotate it.
  2. around the tetrahedron are some of those operatons floating, now with the operation icon, but with the icon of the destinatiion shape. below the destination shape's icon it says the operation (and perhaps) below that the name of the destination polyhedron. when I click on the icon, it performs the operation with the animation (and it'd be cool if it maybe rotated a bit so I can see what's happening), and that icon now shifts to the 9'clock position (denoting that's the way to get back to the previous shape), and it shows the new operations that can be performed on the octahedron.
    • another option is to make a series of "breadcrumbs" on the bottom of the screen (for desktop) which show the previous polyhedra I saw.
  3. now, when I press on something like augment, I'd want to know that I have to perform an action, so I'd want it to show the exact amount of augmentation options I have showing up around the shape as icons hovering around near to the face of its operation). if I were to hold my mouse over one, or long touch on moble, the shape turns so I can see the face being augmented and adds it, and when I touchend or mouseout, it returns back to previous state.
    • this is a solution to the difficulty that I experienced when I pressed augment on the dodecahedron, and expected to be able to augment all of the faces, producing some new shape I wanted to see -- but I was sad to find out that I can't augment adjacent faces.
  4. finally, a small thing: on the options menu, the text should be user-select: none, as I noticed in my browser it would select the text and bring up the bing copilot thing, but without user-select added, the text activated the checkbox just perfectly.

heavyk avatar Apr 04 '24 05:04 heavyk

OK, I have a few more ideas...

  1. while "list" may work well on mobile (it seemed intuitive), it doesn't really make sense to me on desktop. I found myself wanting to go back to see the chart on the loading page. so, for desktop, what I think would be cool is if that whole list thing no longer there on the sidebar, and instead it showed me a full-screen popup of all of the icons in that chart. when clicking on one, it would load the new shape. I think it would also do better to have a color button that says maybe "all polyhedra" or something with maybe like an icon with icons in it (with the vague appearance of shapes)
  2. I feel like the animations are really really fast. every time that I'm clicking on one, it seems to pass by before I can even see what's happening. I'd really like to be able to slow them down, and also I feel like the default should be at least a 1s transition. in combination with an idle rotation effect, I think it'll give each form a chance to be seen in a much more 3 dimensional way. (btw, I'm a good case to see this because my eyes are really slow; I've tested it and I only see and process about a maximum of 5-15fps). (update: I just looked in options and found the animation speed. visually I assumed it was going to be a slider, not a dropdown, so my brain passed right over it. I only saw opacity)
  3. in many of the animations, it's really difficult to see what's actually happening in 3d (this is probably because of the 3d to 2d projection while rendering -- it's not the same as holding the thing in my hand). in many cases, I wanted to replay the animation over again to see what happened, turning the shape a bit to see the other side -- but replaying the animation proved difficult because I couldn't remember what the undo operation is (ie, rectify/truncate <-> sharpen). (I realise now that the back button (or alt+left) probably would work -- just tried it, and it does, but doesn't play the animation). anyway, one way that could also make it easier to see what's happening could be to add a reflective solid around the scene (like a "decagonal prism") so that looking in the reflection I can see what's happening to the vertices.
  4. for the dual animation, it looks really cool, but the thing that I wouldn't understand (and would want to illustrate to a person) is that the dual fits exactly around the other shape, where its verticies touch the middle point of the faces. that really important detail is lost in the animation. the angle of intersection between the edges leading to the points, and the middle of the face, is also something that I feel is a very strong indicator of how the dual feels in relation to its dual (ie, a cube around an OH feels way different than an OH around a cube -- they're not the same -- and that's completely lost in the animation). I don't have a good idea of how to illustrate that, so I'll keep thinking and update in the future.
  5. the last thing that bugs me about the camera on the desktop, but not on mobile (can use two fingers) is that I can't rotate about the axis that is coming toward me. I don't have a solution to this one either, other than add one of those rotator gizmos (seen in 3d modeling programs) where I can click on the direction I want to rotate.
    • actually, now that I think about it, the rmb is used for zoom, but zoom can alread by achieved (very slowly) with the mouse scroll, so rmb could be used to rotate on camera direction).
    • as I play with it a little bit right now, I notice that just trying to spin the octahedron with the mouse as if it were a top, proves to be pretty difficult. it seems like it's really wobbly, and if my mouse goes even the slightest bit vertically, the whole thing tips in a strange way. it feels to me like lateral movement should rotate the shape on the top-to-bottom axis (not sure what that one is called), and vertical movement should move it on the left-to-right axis (also don't know what that's called). finally with the rmb held, vertical movement can zoom, and lateral movement can rotate on the forward-backward axis (I call this one the u-dimension)

ok, that's it for now. I'll try and think of some more stuff later... bye!

heavyk avatar Apr 05 '24 04:04 heavyk