jamievicary / globular

Globular
37 stars 9 forks source link

Feature: allow for the graphical display of a specific local geometry rather than the generic cell picture #9

Open cdgls opened 8 years ago

cdgls commented 8 years ago

A cell in your n-category may have a particular meaning that is best represented by a particular picture, which may be different than or indeed explicitly contradict the default picture globular choses. Thus it would be nice if there were some control over these pictures.

For example, in the sphere eversion, the 3-cells called "cusp" correspond geometrically to an actual cusp

/\

where the incoming lines are vertically tangent, whereas say the "cup" 3-cells correspond geometrically to

|_|

where the incoming lines come together smoothly, ie they are horizontally tangent.

At present, globular displays both types of cells with the same picture, because of course it doesn't know what they represent.

In theory, one could for instance specify the angle at which a line should come into the central node. Or one could actually provide a little graphic that globular would display at that spot as a visual reminder of the meaning of that cell (which would allow for situations where this reminder itself isn't geometrically based).

I realize that the 'angle' suggestion would wreck havoc with the current bezier display calculations.

I think this feature is a low priority, but worth having a record of it to consider as other aspects of the graphics engine are revamped (eg during the 3d development).

jamievicary commented 8 years ago

This is a really cool idea. The curved lines are all cubic Beziers, which are defined by specifying the start point, the end point, the initial tangent and its 'speed', and the final tangent and its 'speed'. At the moment, the initial and final tangents and speeds are hard-coded. But there's no reason in principle we couldn't allow these to be independently specified. It wouldn't be too hard to update the Bezier intersection calculations (used to detect when you're mousing over an interchanger) to take account of this.

cdgls commented 8 years ago

Great, I wasn't sure how crazy it might be to implement this.

jamievicary commented 8 years ago

So clearly there is a need for the wires leaving vertices to sometimes have horizontal tangents, and sometimes vertical tangents. Is there ever a need (from the perspective of topology) to have some other tangent?

cdgls commented 8 years ago

Well, I think in 2 dimensions, other angles probably wouldn't happen, but I think higher dimension singularities can come together at other angles, and so 2d slices of those might look like other angles. But I'm guessing a bit I'd need to think about/look at examples to be sure.

On Wednesday, January 27, 2016, jamievicary notifications@github.com wrote:

So clearly there is a need for the wires leaving vertices to sometimes have horizontal tangents, and sometimes vertical tangents. Is there ever a need (from the perspective of topology) to have some other tangent?

— Reply to this email directly or view it on GitHub https://github.com/jamievicary/globular/issues/9#issuecomment-175591179.

jamievicary commented 8 years ago

Interesting! I'll see if I can get a project student to solve the equations for the general case.

On Sun, Jan 31, 2016 at 4:16 AM, cdgls notifications@github.com wrote:

Well, I think in 2 dimensions, other angles probably wouldn't happen, but I think higher dimension singularities can come together at other angles, and so 2d slices of those might look like other angles. But I'm guessing a bit I'd need to think about/look at examples to be sure.

On Wednesday, January 27, 2016, jamievicary notifications@github.com wrote:

So clearly there is a need for the wires leaving vertices to sometimes have horizontal tangents, and sometimes vertical tangents. Is there ever a need (from the perspective of topology) to have some other tangent?

— Reply to this email directly or view it on GitHub <https://github.com/jamievicary/globular/issues/9#issuecomment-175591179 .

— Reply to this email directly or view it on GitHub https://github.com/jamievicary/globular/issues/9#issuecomment-177380869.