neozhaoliang / pywonderland

A tour in the wonderland of math with python.
MIT License
4.18k stars 346 forks source link

双曲图案讨论 #28

Open neozhaoliang opened 3 years ago

OuyangPeichang commented 3 years ago

新的旅途开始 ^_^

贴一张图纪念

![Uploading WildGoose.jpg…]()

neozhaoliang commented 3 years ago

@OuyangPeichang 我新写了一个 Escher 风格的拟周期广义彭罗斯铺砖,你可以在这里查看: https://www.shadertoy.com/view/wsKBW1

OuyangPeichang commented 3 years ago

你说的东西非常吸引人,非常遗憾我打不开网页?手机也不行,有其他方式分享与我吗?

neozhaoliang commented 3 years ago

不至于吧?我在华为手机上用自带的浏览器就可以正常播放。chrome 应该也是可以的。这个网站没有被墙。

OuyangPeichang commented 3 years ago

是最近做的吗?我之前在某个地方见过一个类似版本。但动态的效果图片更有意思。

可以抽空写一个关于高维投影构造非周期tiling的扫盲性帖子吗(对,就是你网页的背景图)?目前国内还没有这方面的科普性文字,这个话题挺有意思的。

neozhaoliang commented 3 years ago

你现在能访问 shadertoy 了吗?不排除你的浏览器禁止了执行 js 代码。

OuyangPeichang commented 3 years ago

很奇怪,我这边试过的几个ip地址都不能,我是借朋友手机浏览的,很多手机也无法访问。

neozhaoliang commented 3 years ago

你试试这个:https://www.shadertoy.com/view/WdGBz3

我用华为荣耀手机自带的浏览器是可以的。有可能是手机上的 glsl 版本过低,无法编译 shadertoy 的代码。

OuyangPeichang commented 3 years ago

No way 以前这种网址打得开,现在不行了。

neozhaoliang commented 3 years ago

好吧,我觉得不能访问 shadertoy 的话你错过了好多好东西。建议安装翻墙工具试试?

还有就是建议试试 chrome 和 firefox 浏览器。我在家使用联通网,不开代理,使用 firefox 是可以正常访问的。

OuyangPeichang commented 3 years ago

感谢建议,在找翻墙软件(现在不容易了),firefox也打不开。

没见过中文的投影构造方法,英文的对于非数学人士也有困难。

期待你的科普力作。

neozhaoliang commented 3 years ago

我找到了一个办法,可以将 shader 放在一个 svg 图像里面,可以在本地用浏览器打开。github 不允许直接传 svg,你可以下载以后解压得到 svg 。

marden.zip

OuyangPeichang commented 3 years ago

非常高兴收到你的消息赵博士。半年来一直忙换工作,最近才安顿下来。世界非常小, 月初在桂林开会偶遇夏壁灿老师,就想起你。

你发的这个图是模拟保形映射吗?我的项目很多是在有限区域中表现无穷的概念,用svg计算量会很大吧?目前我们应用很多成熟的计算机图形技术,搭建的框架在处理光栅图案效率很高。

我一直念念不忘你做的关于螺旋的gif图案(http://pywonderland.com/mobius-cn/),非常惊艳。你介意我们在你的程序框架上添加代码,用Escher风格艺术设计做艺术渲染吗?我想结果会很引人

最近我们上传了一些理论研究图及仿真图案,你可以打开附件图案微信扫。你的思想与点评往往发人深省,非常期待你的建议与指导。

另外,非常期待你关于反周期tiling构造算法介绍,尤其是高维投影构造方法。国内了解的不多(最好是数学原理+算法细节,图文并茂),这会是一个很引人的话题。

祝好

在 2021-06-24 13:36:38,"Zhao Liang" @.***> 写道:

我找到了一个办法,可以将 shader 放在一个 svg 图像里面,可以在本地用浏览器打开。github 不允许直接传 svg,你可以下载以后解压得到 svg 。

marden.zip

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or unsubscribe.

neozhaoliang commented 3 years ago

所以现在不在井冈山大学了是吗?

marden.svg 那个动画介绍的是平面几何中的 Marden 定理与静电场、复分析的联系,非常有趣的小结论,见 https://pywonderland.com/Marden-theorem/ 这是个 SVG 文件,但是里面嵌入的是 glsl 代码,在显卡里面实时运行然后渲染,所以它其实不是个图片,是一个可执行的 xml 文件。它的大小只有 9.5KB。对双曲图案,如果是一笔一画地在 SVG 里面画 path 的话那得到的文件就太大了。

Mobius 那个代码你可以自由修改和使用。我在博客上和 github 中公开的所有代码都是如此。

de Bruijn 构造拟周期密铺的方法我在考虑写,应该下个月能完成。这方面英文资料其实也不多,最好的可能还是 de Bruijn 的原论文。

还有我没有看到有附件啊?

OuyangPeichang commented 3 years ago

感谢你分享的Marden成果,在数学与物理上非常简洁优美,可以把这种美以艺术的形式可视化吗?理论上是否可以把3个点电荷推广到N个的情况?

注意到你更新了一个内容:Coxeter群的可视化实现,非常震撼。Coxeter和万哲先扼要概括了主要事实,但理解起来真费事,容我有时间再消化。

我在思考一个事情:平面的万花筒已经制作出来了,球面万花筒的实物产品我没见过,现在的技术是否可以实现呢?

真丢人,我还不会翻墙。你代码网页我以前能打开,现在打不开了(或者没找对?)。你可以把《Möbius 变换的分类与上半双曲空间的等距》项目的可执行程序完整转发给我吗?在你的已有框架上做艺术渲染会事半功倍的。

https://www.bilibili.com/video/av2871480/ 中能搜到很多关于《三体》的视频解读,比电影好看 ^ _ ^

de Bruijn 高维投影构造拟周期或反周期tiling技术,我一直没弄明白,期待你的文章能更科普一些。

祝好

在 2021-06-24 20:43:51,"Zhao Liang" @.***> 写道:

这个动画介绍的是平面几何中的 Marden 定理与静电场、复分析的联系,非常有趣的小结论,见 https://pywonderland.com/Marden-theorem/ 这是个 SVG 文件,但是里面嵌入的是 glsl 代码,在显卡里面实时运行然后渲染,所以它其实不是个图片,是一个可执行的 xml 文件。它的大小只有 9.5KB。对双曲图案,如果是一笔一画地在 SVG 里面画 path 的话那得到的文件就太大了。

Mobius 那个代码你可以自由修改和使用。我在博客上和 github 中公开的所有代码都是如此。

de Bruijn 构造拟周期密铺的方法我在考虑写,应该下个月能完成。

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or unsubscribe.

neozhaoliang commented 3 years ago

Marden 本人做过 N 个电荷,包括负电荷的推广,正电荷对应有理函数的根,负电荷对应有理函数的极点,也有一个内切于多边形的高阶曲线以根为焦点,不过这个曲线不容易确定。

Mobius 项目代码在这里 https://github.com/neozhaoliang/pywonderland/tree/master/src/mobius shadertoy 版本 https://www.shadertoy.com/view/4scfR2 附件是那个博客文章里面的代码,你应该是不能直接运行的。它使用了 glslCanvas 。不过互相之间代码差别不大。

mobius.zip

de Bruijn 构造拟周期密铺的方法分为高维投影和对偶网格法两种,这两种是等价的,网格法更容易编程实现,其可以绘制的图案更灵活。

OuyangPeichang commented 3 years ago

谢谢你的慷慨分析。 我下载不到mobius.zip, 如果文件不大的话,可以直接发到我邮箱吗?

在 2021-06-25 20:52:48,"Zhao Liang" @.***> 写道:

Marden 本人做过 N 个电荷,包括负电荷的推广,有多边形内切一个高阶曲线的结论,不过没有 sterner 圆这么好的性质。

Mobius 项目代码在这里 https://github.com/neozhaoliang/pywonderland/tree/master/src/mobius shadertoy 版本 https://www.shadertoy.com/view/4scfR2 如果你指的是那个博客文章里面的代码,那你应该是不能直接运行的。它使用了 glslCanvas 。不过互相之间代码差别不大。

mobius.zip

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or unsubscribe.

neozhaoliang commented 3 years ago

见附件。你把代码拷贝到 http://roy.red/editor/ 这个网页上应该是可以运行的

OuyangPeichang @.***> 于2021年6月26日周六 上午11:47写道:

谢谢你的慷慨分析。 我下载不到mobius.zip, 如果文件不大的话,可以直接发到我邮箱吗?

在 2021-06-25 20:52:48,"Zhao Liang" @.***> 写道:

Marden 本人做过 N 个电荷,包括负电荷的推广,有多边形内切一个高阶曲线的结论,不过没有 sterner 圆这么好的性质。

Mobius 项目代码在这里 https://github.com/neozhaoliang/pywonderland/tree/master/src/mobius shadertoy 版本 https://www.shadertoy.com/view/4scfR2 如果你指的是那个博客文章里面的代码,那你应该是不能直接运行的。它使用了 glslCanvas 。不过互相之间代码差别不大。

mobius.zip

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or unsubscribe.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/neozhaoliang/pywonderland/issues/28#issuecomment-868941168, or unsubscribe https://github.com/notifications/unsubscribe-auth/AFR2HJVHZI3XFA3AHKKZYJTTUVET3ANCNFSM4S34X2VQ .

neozhaoliang commented 3 years ago

我把 Mobius 变换那篇文章的代码更新了,你可以直接在动画上右键单击,选择此框架 --> 新建标签页打开框架,然后右键查看网页源代码即可下载代码。

OuyangPeichang commented 3 years ago

谢谢你的细心考虑和帮助,我们已经取得了代码,需要一些时间做整理。

在 2021-06-27 22:33:24,"Zhao Liang" @.***> 写道:

我把 Mobius 变换那篇文章的代码更新了,你可以直接在动画上右键单击,选择此框架 --> 新建标签页打开框架,然后右键查看网页源代码即可下载代码。

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or unsubscribe.

neozhaoliang commented 3 years ago

抱歉我发现更新的 Mobius 场景中软阴影部分的渲染代码有个错误,1e-4 写成了 1e4,导致阴影效果没有出来。你可以重新下载修正后的代码。

此外我更新了欧式蜂巢渲染的代码,效果比之前漂亮许多,可以渲染的场景也更多,你可以去看看。

neozhaoliang commented 3 years ago

Hi, 作品好久没更新了,这次做了比较大的改动,我把以前的双曲蜂巢删掉了,重新制作了新的图片,我觉得比之前的要好。见我的博客置顶文章。里面有源代码链接。

OuyangPeichang commented 3 years ago

这些交织离散群、代数、几何等的内容国内精通的恐怕不多,难得的是简明易懂的介绍(非数学的恐怕还看不懂)。

双曲蜂巢非常震撼,视觉冲击力极大,科幻异星感十足,欧氏蜂巢也非常棒。若能开发成VR,随身携带展示就非常好,兼具美学与科普。你对科研论文有兴趣吗?或者我可以整理后发到Fractals杂志。

我们在你螺旋框架上做了一些埃舍尔渲染,效果没到预期,还在继续改进,见http://fractals92.5v.pl/fractals/spirals.mp4中的案例。

感谢分享。

neozhaoliang commented 3 years ago

那个 spirals.mp4 里面的效果很不错!如果能按照螺线的轨迹走起来就更好了,进一步如果还能做到在双曲圆盘里面动起来就更更漂亮了。不过那样的话,翅膀的抖动就要按照双曲几何下的测地线移动,不太确定是否好做。

蜂巢结构做成 VR 是个不错的主意,将来一定会实现。

科研论文的话,这个建议很好,如果您乐意帮助整理发表,那非常感激!目前这个蜂巢项目还在进行中,还有许多需要改进的地方,大约需要几个星期时间,到时完成后我们可以具体讨论下。

OuyangPeichang commented 3 years ago

我们已经完成了沿螺旋线轨迹运动的效果,还在进一步整理中。

双曲圆盘的螺旋更复杂,我们下一步有这个计划:双曲及球面螺旋埃舍尔艺术图案制作,目前卡在一些算法细节。

万花筒(我们最近做了很多,见随附案例)类型的VR是一个很酷的东西,有专利潜力,一直想做,但没有接触过这个技术领域,还没找到下手途径。

非常期待你的蜂巢改进版,待完成后,你来执笔理论及算法部分,我来完成综述与总结,这会是一个非常引人的结果,Fractals是个不错的选择。 17 10 15 CFP

neozhaoliang commented 3 years ago

你们设计的图案很棒!我比较喜欢第三个和第四个。如果能把中国风的元素,比如生肖、悟空、剪纸等融合进去效果会不错。我觉得做一个剪纸贴画,过年的时候推向市场应该值得试一下。

OuyangPeichang commented 3 years ago

才发现前几天邮箱回复的留言没有成功。

你的嗅觉很灵敏。我们一直想展开中国风的艺术设计,但国内几乎找不到Escher设计师,国外的合作者不擅长中国元素,有限的几款设计也是一直要求下才得到的结果。

我们计划做一批仿真工艺品用来装饰工作室,特别特别喜欢你做的球面多胞体与双曲蜂巢艺术效果,目前没看到更好的作品,你擅长3D建模吗?若能把它们制成3D打印格式就太美了!

neozhaoliang commented 3 years ago
  1. 我对 3D 建模没有经验。3D 打印的蜂巢有人做过,做成首饰之类的是可以的。
  2. “装饰工作室”,这是个人创业项目吗?
  3. 蜂巢这个项目我还在写,我对现在的图像质量不满意,正在重新做一批。
OuyangPeichang commented 3 years ago

新入职的学校给了一个办公室,我想装修一下,方便展示和介绍研究成果,摆放一些工艺品看着也舒服。你若喜欢其中一些风格的话,我多订制一些寄给你。

挖掘艺术图案经济潜力的想法一直有,在找好的形式和切入点。

高维蜂巢的可视化近年进步很快,但感觉仿真效果没能充分呈现它们的数学“美”。你的创意和效果图非常棒,现在的工艺技术每天都在进步,我觉得可以在此基础上做出更好工艺品。

neozhaoliang commented 3 years ago

有个办公室摆放这些作品还是很不错! 我过年的时候逛超市,发现有鲤鱼、中国结的剪纸,想到可以做成Escher极限的图案,我肯定会买。

蜂巢结构也可以做成一个画框形式的挂着或者摆着也是可以的,前提是图像要足够好看,哈哈。如果你喜欢的话可以试试这个图

373-0110

OuyangPeichang commented 3 years ago

这张图好有科技感,若能3D打印出完整的球结构肯定很震撼。

中国风的Escher极限剪纸图有人实现过,见下面的图。

12shengxiao 计划仿真两类工艺品,一类是无艺术图案渲染的抽象对称数学结构(比如你的这个作品);另外一类是Escher设计渲染的艺术品。

neozhaoliang commented 3 years ago

这个剪纸的作品很不错,细节笔画挺到位的。 抽象对称数学结构,除了多面体、欧式密铺,双曲密铺之外,还有扭结、代数曲面,都有非常漂亮的图案可以做。 双曲蜂巢有个最大的问题是因为 glsl 的精度限制,只有 32 位浮点数,所以很难渲染一个整体图。

OuyangPeichang commented 3 years ago

是的,扭结、某些方程和拓扑曲面的几何结构都非常漂亮,扭结编织很有意思,贝聿铭是几何装饰大师。 knot

neozhaoliang commented 3 years ago

这些编织图案是自己绘制的吗?那些无限变小的极限点说的是什么?

OuyangPeichang commented 3 years ago

这是老外的作品。

这些编结需先做基本艺术设计(相当于基础域),然后经由迭代的方式基础域逐渐铺开或收敛,极限点相当于不动点。

neozhaoliang commented 3 years ago

最近可能要憋几个大招。目前在做高维蜂巢的可视化,包括

  1. 4d 蜂巢在三维和二维的可视化,这里面 4d 蜂巢有五个生成元,level 是 2, 3 的话情况很不一样。
  2. 3d 蜂巢在三维和二维的可视化,这里面 3d 蜂巢在三维的效果你已经见到了,今晚正在写 2 维的。但是 3 维的未来应该会用新方法重写一遍。覆盖之前没有处理的情形。

4 维蜂巢在二维的可视化已经非常精彩,代码地址在这里:

https://www.shadertoy.com/view/NdK3zy

这里面有大约 180 种不同的 rank 5 level 2 的群,每种群又可以有多种玩法,非常精彩。具体玩法见代码中的文档注释。这些群实际给出了 3d 的球堆积。而 level 3 的群更加精彩,它们给出了分形圈最爱玩的 pseudo Kleinian 分形。

E_jeWIrVkAQvBd7 E_jeV3_VIAEC1FT E_jeWIqVkAIF1vS E_eIyzlVQAMqXp9 E_cl6BlUYAQNEcE E_cl6F_VgAIAFyL E_cl6BnUcAI875D E_cl6GDVcAQEaqH E_YZr46VQAEK4qm E_YA3t-VUAQtyZl 2021-09-19 22-13-45 的屏幕截图

OuyangPeichang commented 3 years ago

一直在关注你的进展 ^ _ ^

改进的双曲万花筒图案非常精致,有些图科技感特别足。你能设计一个上帝视角看全貌呢?钻进去看到的都是森林,迷失坐标了。

新的二维蜂巢投影图有Kleinian group 和壁纸群的结构,不知道怎么得来的,感觉你发现了新的可视化玩法。

neozhaoliang commented 3 years ago

双曲蜂巢看全貌很难,因为你要把边界包含进来,而边界在双曲模型里面对应的是无穷远。现在的算法精度不够,边界上会出现明显的瑕疵。

新蜂巢这个关键在于做 level 2 的 Coxeter 群。目前所有网上能见到的 tiling 的图基本都是画的 <= level 1。level 2 和 level 3 的 Coxeter 群的情形其实更精彩,只不过算起来的时候比较麻烦,而且有很多 tricky 的地方。我是和一位学者陈浩交流以后了解了怎么去对一般的群构造反射镜面。

上面的图里面,其实每一个“洞”都来自一个 3d 双曲 Poincare 单位球,每个球有内部有自己的蜂巢。不同轨道的球包含的蜂巢可以是不一样的。相同轨道的都是一样的。

OuyangPeichang commented 3 years ago

全貌并非是完全,我感觉向外铺开3-5层、露出珍珑结构即可止步,或许能提供不同的观感。

我从你的代码中追到一些陈浩的工作,很惊喜有中国学者这么精通Coxeter几何的。

level 2对我来说是新词,之前没看到这个技术。感觉你发现了新的宝藏,期待你的进一步分享。

neozhaoliang commented 3 years ago

1541326530

我之前做过这样的图,边界上噪点很多。双曲几何是个宝藏,我本来计划画完蜂巢做做扭结设什么的,现在看来光双曲几何就够做个几年的。

OuyangPeichang commented 3 years ago

现在的计算技术解决不了误差吗?说真的,我想象不到误差能多大程度影响结果。

这是庞加莱球体正交球面的切面吧?我觉得很漂亮,从中能看到很多逻辑结构,非常棒的视角。这种结构做成纳米级材料会不会发挥独特的作用?

OuyangPeichang commented 3 years ago

我也被这个东西迷住了。。。。。。

neozhaoliang commented 3 years ago

这种高维蜂巢在边界上的空洞,给出的空间球堆积,也可以由数论或者二次型给出。这方面我就不懂了。 https://sites.math.rutgers.edu/~alexk/crystallographic/ 美妙的结论很多,如果一直走下去,恐怕要穷尽很多年。

neozhaoliang commented 3 years ago

新作品:

E_-o_yvVgAg2X5U

这是 Level 3 的 Coxeter 群给出的 ball packing 分形图案。这样的群有无穷多个,每个群可以控制不同类型球的出现,所以有无穷多种这样的分形场景。图中每一个空洞都是因为去掉了对应位置的球,每一个这样的球内部都是一个 3d 的双曲蜂巢。不同轨道的球内部的蜂巢可以不同。

neozhaoliang commented 3 years ago

![Uploading FADkJ32VQAgwGz0.jpeg…]()

OuyangPeichang commented 3 years ago

非常震撼,非常魔幻! 我注意到Josleys做过很相像的工作 http://www.josleys.com/show_image.php?galid=382&imageid=10023 不知道原理是否一样。

另外他还用Sphere Inversion构造一个IFS,用不同尺度球体填充大球,做成具有多面体对称性的Sphere packing,10年前做出的效果极具视觉冲击力。

很想知道你的数学原理和算法流程图,后面可以详细分享出来吗?

neozhaoliang commented 3 years ago

原理不一样。这个方法可以构造无穷多种这样的分形,它们来自不同的coxeter群。代码我们后面整理后会放在github上。

neozhaoliang commented 3 years ago

代码在 github 上开源了

OuyangPeichang @.***> 于2021年9月25日周六 下午12:49写道:

非常震撼,非常魔幻! 我注意到Josleys做过很相像的工作 http://www.josleys.com/show_image.php?galid=382&imageid=10023 不知道原理是否一样。

另外他还用Sphere Inversion构造一个IFS,用不同尺度球体填充大球,做成具有多面体对称性的Sphere packing,10年前做出的效果极具视觉冲击力。

很想知道你的数学原理和算法流程图,后面可以详细分享出来吗?

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/neozhaoliang/pywonderland/issues/28#issuecomment-927010241, or unsubscribe https://github.com/notifications/unsubscribe-auth/AFR2HJVCYHGRZ22FFVDXH7DUDVID3ANCNFSM4S34X2VQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

OuyangPeichang commented 3 years ago

图片很魔幻,很神奇,还有点恐怖。。。。

我不会Python,你上传的资源安装好Python都可以运行吗?

neozhaoliang commented 3 years ago

用这个软件:https://github.com/Syntopia/Fragmentarium 你需要先学一下怎么用它。

OuyangPeichang @.***> 于2021年9月25日周六 下午9:53写道:

图片很魔幻,很神奇,还有点恐怖。。。。

我不会Python,你上传的资源安装好Python都可以运行吗?

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/neozhaoliang/pywonderland/issues/28#issuecomment-927124774, or unsubscribe https://github.com/notifications/unsubscribe-auth/AFR2HJR3YTXVIERDSB7QQBDUDXH63ANCNFSM4S34X2VQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.