sirkitree / aframe-ephem

https://aframe-ephem.glitch.me/
MIT License
0 stars 0 forks source link

Date/time input ideas #6

Open sirkitree opened 6 years ago

sirkitree commented 6 years ago

1. Radials

image

2. Dodecahedrons

untitled_133_00 untitled_133_01

3. Radials 2

untitled_134_01

sirkitree commented 6 years ago

There's a physics system built on cannon.js that could allow the spinning mechanism I'm envisioning here: https://github.com/donmccurdy/aframe-physics-system

preview: https://twitter.com/donrmccurdy/status/894335912779235332?ref_src=twsrc%5Etfw&ref_url=https%3A%2F%2Faframe.io%2F

sirkitree commented 6 years ago

Worked on a prototype for idea 2 today. Need to figure out how to get it to rotate around a single fixed point, but it's getting closer. May try to use a texture to put the numbers on the dodecahedron. http://aframe-dodeca.glitch.me - cc @kentbye

sirkitree commented 6 years ago

Got it rotating around a single fixed point! Next part would be detecting which face of the dodecahedron is facing the user... hrm...

sirkitree commented 6 years ago

I've got three radial dials right now for, day, year, and month.

These currently change those values very quickly as you twist the knob. There's no real good way to have these default components (from https://github.com/caseyyee/aframe-ui-widgets/blob/master/src/rotary.js) have stop points to try to snap to various values. It's too incremental.

It did allow me to see that these calculations can happen at a very high rate though without having a performance impact on the overall application.

From here, @kentbye had some feedback about being able to set a date, and then set how fast it should increment, and hit "play". So more accurate input on where to start, how fast to run (minute, day, week, month, year) and then allow the animation to run.

kentbye commented 6 years ago

CAVEAT: I'm open to hiding the moon if we're animating a day at a time, unless there's a way to do animated interpolation and to make it look smooth. The moon moves 13 degrees in a day, and so this is more of a question of how to make it look good at the higher speeds

As a user, I want to be able to watch a smooth animation of the moon, sun, mercury, venus, and mars. I want to quickly and easily set the input date, and dynamically change the relative animation speed via a horizontal slider, and be able to watch a smooth animation.

kentbye commented 6 years ago

As I try to hone down what it is I'm looking for with a date picker on this experience, I realize that it's kind of trying to find a sweet spot between function and form. Or more specifically:

As a user, I want to either enter in a specific date and time numerically with optimal movement and speed, or more intuitively through movement and gesture in a way that may be slower but is either more aesthetically beautiful or uses spatial movement of my body in a satisfying way. Find a good tradeoff between efficiency and beauty and proprioceptive feeling using the spatial affordances of VR.

kentbye commented 6 years ago

Here's another high-level user story:

As a user, I want to move my hand through space and time and see a correlating movement of the planets at different relative speeds. I'd like either continuous gestures that could allow non-stop motion, or discontinuous gestures similar to scrolling down a website. For discontinuous gestures, I'd like to move my hand to the extreme left or extreme right, or the limits of comfortably reaching up and reaching down, and have my movements complete either a full or partial 360-degee revolution of a selected period. There may be hours (24 hours), months (30 days), years (12 months), or each planet/moon will have it's own period representing their synodic cycle of moving around 360 degrees around the Tropical zodiac. Moon = 29-30 days. Mercury = 116 days. Sun = 362.25 days. Venus = 584 days. Mars = 780 days. Jupiter = 11.9 years. Saturn = 29.5 years. Uranus = 84 years. Neptune = 164.8 years. Pluto = 248.5 years. I may want to see visual UI feedback of radial dial moving through a 360-revolution due to whatever spatial movement or gestures are tied to moving it. Or the planet moving may be feedback enough.

I don't know if this will work, but this is just what my body wanted to do. And as I write this out, I'm realizing that this specific experience is all about the relative speeds of the planets to each other. So there's an embodied cognition intention for providing an embodied experience of the different speeds. So controls for moving the planets could be more tied to the specific experience of seeing the feedback of the motion rather than as a generalized 3DUI input method that's applicable for other date/time entry.

I'd like to create an experience that cultivates an intuition for speeds of the planets relative to each other. QUESTION WANTING TO BE ANSWERED: If you move your body through the same physical space, then how fast do the planets move? It's a similar concept to SUPERHOT in correlating your gesture movements to moving the world, but in this case moving other worlds from an omniscient and symbolic perspective.

Because of this unspoken intention, I originally tried to use the radial dials by moving my entire arm through space rather than twisting my wrist, but I wasn't able to get to move 360-degrees around by moving my hand to the extreme left/right or up/down but it felt like it should react to my extending my arm either up or right (turns the dial clockwise and moves time forwards) or moving down or left (moves counter clockwise and moves time backwards).

I'm not sure if I've actually seen anyone do this yet, but this is what my body wanted to do.

I really like the radial dial as a feedback representation of moving through 360-degrees for a cycle (24 hours/day dial, ~30/days/month dial, 365.25 days/year).

There are other synodic cycles for each planet/moon, and so think about how to represent different speeds of movement based upon the same movement of your body and how fast or slow the other planets have to move. The periods are listed above for what a full radial dial revolution or extreme left/right swiping would get.

Should the gestures be continuous or discontinuous? Moving your fingers down a laptop touch pad scrolls down a comfortable, but consistent speed down a web page. And scrolling up quickly, you can flick you fingers up. How can these dials act more like infinite scroll bars where you could make cyclical arm gestures to move through a cycle? Also try moving in continuous circular motion rather than straight lines where you are pulling the trigger while moving to scroll and releasing to reposition

Should cycles be broken up? Rather than extreme left and right making it through a complete cycle, then should it be broken up into 2, 3, or 4 segments where moving from extreme left to right only goes through a 1/2, 1/3 or 1/4 revolution to have more fine grained control?

Are there dials for each speed? Or is there one dial with a way to switch the increment? Does pointing to a planet to change the increment to that planet's cycle period? Should it be about grabbing and dragging the planet? Or should there be other buttons to select the speed? Is there a dial for each increment?