Message #1237

From: Roice Nelson <roice3@gmail.com>
Subject: 3D-only rotations in MHT633
Date: Tue, 02 Nov 2010 09:00:02 -0500

I wanted to chime in that I liked Melinda’s thoughts on this.

This email is going to make the argument that the Poincare ball model would
be the right place to offer 3D-only rotations. One would do the projection
to the ball model, then allow the user to manipulate that post-projection as
if it was a 3d object. Of course, you could also offer enhanced controls to
do pre-projection H3 movements, leading to all the fun warping. Here is my
reasoning for liking the ball model for this…

First of all, it is the closest H3 analogue we have to the projection that
MC4D uses.

<digression as to why>
MC4D is close to a stereographic projection of S3 objects. The vertices
live in S3 and are stereographically projected. The edges are then
connected up with straight Euclidean lines, living only slightly outside of
S3 (in R4). The ball model of H3 is also a stereographic projection of a
constant radius surface (see this
page<http://www.geometrygames.org/HyperbolicGames/>),
so it is an analogous situation. One could even similarly connect up the
stereographically projected vertices with straight lines, and I wonder what
Euclidean dimensional space that original object might live in, if any…not
R4!
</digression as to why>

But analogy closeness aside, the crux of why I think 3D rotations would fit
in quite naturally with a ball model representation is the following:
Consider that in the ball model, spheres centered at the origin are
equidistant from the origin in both H3 space and projected space. So for a
puzzle representation with the POV (lookat position) always at the origin, *a
3D rotation is also an H3 rotation*. Things work well in MC4D for the same
reason, because the 3D rotations are also R4 rotations.

When this is not the case, I can see why offering 3D-only rotations would be
strange (either in the current "in space" view of MHT633 or if there was a
similar "S3 in space" view for MC4D). Due to the 3D rotations not also
being an H3 rotation, the user would be forced to mentally track two
different sets of vectors, the 3D camera position and the H3 camera
position. Here’s an example of what I mean… Say you’re at some location,
then you 3D rotate around 180 degrees, then you want to do another H3
movement, moving forward for example. It would be awkward to do so, unless
you snapped back to a canonical 3D position first (your original location
with no rotation). If you didn’t snap back, the forward H3
movement would make you feel like you were moving backwards, as all the
pieces rushed away from you. It seems like it could be easy to get lost.

A final benefit of doing this with the ball model is that it is more overtly
a model, which also leads to a naturalness in zooming around and studying it
in the way Melinda describes. Hope I’m not being too off-topic or
persistent with the ball model focus (though I can say I would be happy to
help on such a feature, if Andrey ever desired that)…

All the best,
Roice

On Thu, Oct 28, 2010 at 6:50 PM, Melinda Green <melinda@superliminal.com>wrote:


> I am starting to better understand. I don’t doubt that you have chosen
> your viewing controls to be the best analogues to the MC4D controls in
> flat space. They may also be ideal when attempting a solution. Still, I
> find myself frustrated with the interaction so I will describe my
> expectation and maybe you can convince me that my expectations need to
> change.
>
> It is immediately clear that there is a 3D space behind the computer
> screen and that the controls affect viewing parameters in some model
> space which are then transformed into the viewing space. My problem is
> that I constantly want to understand the geometry that I see in the
> simple view space but I have no ability to examine it directly. I want
> to be able to left-drag to tumble the current 3D geometry around and
> view it from all sides in view space. I know that allowing me to see
> "behind the curtain", that I may well see jagged boundaries where small
> cells are being culled, but that’s fine with me. I want to be fully in
> charge of what happens in my 3D viewing space. To my eye, your left-drag
> is the equivalent to MC4D’s controls for the 4D view (shift-drag)
> controls that map from model space to view space, even if your model
> space is a 3D hyperbolic one.
>
> Here is a simple analogy: I’ve seen many viewers for star charts and
> other full-sky astronomical images such as the cosmic microwave
> background. They tend to use a fish-eye panorama display where the
> user’s viewpoint is at the center of the Earth because that makes the
> most logical or realistic sense. The user is then allowed to drag the
> sky around or use left/right/up/down/zoom controls to change their
> viewing parameters. Unfortunately I find myself frustrated with those
> views just like I feel with this one. I much prefer to see star maps and
> CMB images mapped onto a sphere that I can view from the outside. Even
> if those viewpoints don’t relate to any physical orientation, they just
> make more sense to me. I can easily understand that I really live at the
> center of those spheres just as I understand that the central face in a
> MC4D view is the furthest from me in 4-space.
>
> I’m not asking that you change your default left-drag behavior because
> I’m sure that I’ll never attempt a solution, but I suspect that other
> users will find it very helpful and comforting to have a view control
> like I’m describing. I bet it would also be a really helpful debugging
> aid for you when work on your face culling code.
>
>