Open videlec opened 2 years ago
@saraedum It is not clear to me whether we want this in sage-flatsurf
or pyflatsurf
. I don't like so much the datastructure of sage-flatsurf when it comes to edge flipping (which is all what this iso-Delaunay triangulations is about).
One optimiztion question. Each iso-Delaunay region is written as half-space intersections. These sets of half-spaces for two neighboring regions are almost the same. Typically, only 5 half-spaces differ corresponding to the edges adjacent to an edge flip. In the iso-Delaunay tesselation, it would be interesting to optimize the region computation by using this fact.
Two students I was working with last summer, Zhi Heng Liu and Seth Foster, coded the iso-Delaunay tiling last summer. I've been negligent about getting it in Sage. It works even for dilation surfaces.
Two students I was working with last summer, Zhi Heng Liu and Seth Foster, coded the iso-Delaunay tiling last summer. I've been negligent about getting it in Sage. It works even for dilation surfaces.
Is there code available somewhere online?
@saraedum It is not clear to me whether we want this in
sage-flatsurf
orpyflatsurf
. I don't like so much the datastructure of sage-flatsurf when it comes to edge flipping (which is all what this iso-Delaunay triangulations is about).
I think this should live in sage-flatsurf. It's true that edge-flipping is easier in libflatsurf but we don't actually need edge flipping for this step yet. We need to determine whether an edge can be flipped though which is triangle_flip(..., test=True)
. We might find performance issues due to the structure in sage-flatsurf but we can still worry about these once we have them.
I'd be more comfortable putting it in sage-flatsurf anyway. I'll try to get to this in the next week or two.
The code is in some Jupyter notebooks that the students created. It makes use of the Hyperbolic geometry packages in Sage. We needed "canonicalization" for dilation surfaces. This is some stuff I mostly wrote that will need also to go into sage-flatsurf.
So, @SFreedman67 has an implementation of this as well (without the dilation surface part.) It's similarly in some Jupyter notebooks. We were getting started on getting this into sage-flatsurf for #157 during a conference in Bordeaux last week and had planned to work on this more during this week while we're both in Orsay.
I started to work on some hyperbolic geometry code in #158 since apparently the implementation in sage has some problems. (@videlec @slel could you elaborate?)
We made some notes on the eventual interface that we want to implement at https://hackmd.io/@EGlfdaUNRiSIIb7HvoU0rw/r1uAwLEE9
Could we have a call about this to discuss how we want to continue here? @wphooper @videlec @slel @SFreedman67 (Any day but Thursday works for me, 10am-2am Paris time.)
I'd think I'm pretty free Tuesday (not Paris evening) and Wednesday
The problems with sage implementation of things is that
I believe that we can try to use it to some extent and improve what needs to be.
@saraedum Did you mean 10am-2am or 10am-2pm? If you meant pm, then I can get up early one day to meet you at 1-2pm Paris Time Wednesday. But if you really meant 2am, then I could do 7pm Paris time on Tuesday.
We did run into some issues with SymbolicRing
with the hyperbolic geometry. If I recall correctly, we didn't do anything smart about that, just used the code and forced things to go back into the correct ring after calling the hyperbolic geometry package.
Ok. Let's meet at 7pm Paris time on Tuesday then. We'll meet at https://bbb.imo.universite-paris-saclay.fr/b/jul-2bp-hjt-ery.
Some results from that meeting:
* We should maybe support half-dilation surfaces in libflatsurf.
Let's discuss a wishlist/plan at https://github.com/flatsurf/flatsurf/issues/302
- We should look into making the approach work for (half-)dilation surfaces. (Someone has to check whether our codes still work there.)
@wphooper @saraedum @videlec @slel Is anyone interesting in hopping on a Zoom call early next week to discuss this?
I'd be willing to discuss on Zoom on Tuesday or Thursday next week. I'm free most of those days except 11-12 on Tuesday (NY time).
Here are some comments that might be useful if you want to put half-dilation surfaces in libflatsurf, and perhaps for iso-Delaunay.
I guess I'm saying this because considering half-dilation surfaces seems to give this beautiful structure to the iso-Delaunay regions. So, I think in some sense this is the most natural setting for the algorithm. Bowman's paper is great, but the identification between the hyperbolic plane and triangulations seems less natural than what I am describing above (which is a different way to move between the geometries). This stuff will appear shortly in a paper I am writing jointly with Zhi Heng Liu and Seth Foster (who coded this other version of the algorithm that works for half-dilation surfaces). It would be great to combine to have the best possible algorithm...
Perhaps slope coordinates would be useful for libflatsurf?
I'd be willing to discuss on Zoom on Tuesday or Thursday next week. I'm free most of those days except 11-12 on Tuesday (NY time).
Tuesday works for me as well. Could we do 9am or 10am NY time?
I'd be willing to discuss on Zoom on Tuesday or Thursday next week. I'm free most of those days except 11-12 on Tuesday (NY time).
Tuesday works for me as well. Could we do 9am or 10am NY time?
How does does sound @wphooper @saraedum @videlec @slel ?
We're having our regular weekly call Tuesday at 8pm Germany time. Maybe we should discuss this then? (Otherwise, I am also fine with the proposed 9am NY time.)
Maybe we should discuss this then?
I like that idea
That time works fine for me too.
According to Joshua P. Bowman "Teichmueller geodesics, Delaunay triangulations and Veech groups", to any flat triangulation
(T, ζ)
the set of matricesM
inSO(2) \ SL(2,R) = H
such that(T, M ζ)
is Delaunay form a hyperbolic polygon of finite area (each edge of the triangulation determines a half-space).Note that this polygon might be empty if
(T, ζ)
can not be turn in Delaunay form.We should have functions