hfjidufu 289 days ago
Great post.

I enjoy the almost Oliver Burne[0] meets Mondrian[1] like outputs of Duckering's implementation, but appreciate the simplicity of the author's as well.

Excellent linked resources for anyone interested in using programming to illuminate mathematics.

[0] https://en.wikipedia.org/wiki/Oliver_Byrne_(mathematician)

[1] https://en.wikipedia.org/wiki/Piet_Mondrian

blululu 289 days ago
The Duckering Hyperbolic Geometry library is also worth digging into: https://github.com/cduck/hyperbolic/ This is organized into a pip module and has a few example ipynb files to get started.
xrd 289 days ago
Thanks for taking me down the rabbit hole. I didn't know there was an esoteric programming language called Piet.

https://en.wikipedia.org/wiki/Esoteric_programming_language#...

cwmoore 289 days ago
Your post goes a lot farther, but the Pappus Chains reminded me of the Method of Apollonius that I have used to generate nested yinyan symbols with JavaScript.
xrd 289 days ago
Really fun, and the link to the numberphile video is great, too.
xiaodai 289 days ago
Python is a very poor choice for such a tool. Julia should have been used
randrus 289 days ago
In case this is relevant to your reasons for posting … every time I see one of the fact free posts the slam Python to promote Julia it pushes me further from considering Julia for anything.
bbor 289 days ago
Obviously the comment above is far from helpful in tone or content, but this spurred me to look it up. As a python guy, my takeaways are:

1. It’s designed by mathematicians specifically for math.

2. It has much better support for generic/runtime types, something the academics apparently describe using the terms “parametric polymorphism” and “multi-dispatch”.

Plus there’s this cute founding ethos blog post from 2012, though it’s necessarily vague: https://julialang.org/blog/2012/02/why-we-created-julia/

None of that sounds even close to convincing me to switch from Python, but I can see the appeal for people who value those typing features and want something faster.

I don’t necessarily see the connection between either of those things and the implementation above, tho… presumably it’s basically instant, anyway?

__MatrixMan__ 289 days ago
I would be more likely to pick up Julia if comments like gp told me something interesting about the language.
bgoated01 289 days ago
The biggest thing that keeps me from using Julia rather than Python for math prototypes is that it uses one-based indexing. I go back and forth between these prototypes and my C++ codebase, and the mental gymnastics to switch from 0-based to 1-based makes Julia a non-starter for me. I prefer Julia over Python other than that one issue, and the lower availability of tutorials, etc. for Julia.
lupire 289 days ago
Index all your arrays with from_offset(n)

def from_offset(n: int): return n+1

Well-typed (or sightly-better-typed) programming ftw.

xiaodai 282 days ago
I am sorry. I am autistic.
jazzyjackson 289 days ago
So post a link about making cool hyperbolic SVG with Julia