Comments (116)
from pywonderland.
from pywonderland.
新的旅途开始 ^_^
贴一张图纪念
from pywonderland.
@OuyangPeichang 我新写了一个 Escher 风格的拟周期广义彭罗斯铺砖,你可以在这里查看:
https://www.shadertoy.com/view/wsKBW1
from pywonderland.
你说的东西非常吸引人,非常遗憾我打不开网页?手机也不行,有其他方式分享与我吗?
from pywonderland.
不至于吧?我在华为手机上用自带的浏览器就可以正常播放。chrome 应该也是可以的。这个网站没有被墙。
from pywonderland.
是最近做的吗?我之前在某个地方见过一个类似版本。但动态的效果图片更有意思。
可以抽空写一个关于高维投影构造非周期tiling的扫盲性帖子吗(对,就是你网页的背景图)?目前国内还没有这方面的科普性文字,这个话题挺有意思的。
from pywonderland.
你现在能访问 shadertoy 了吗?不排除你的浏览器禁止了执行 js 代码。
from pywonderland.
很奇怪,我这边试过的几个ip地址都不能,我是借朋友手机浏览的,很多手机也无法访问。
from pywonderland.
你试试这个:https://www.shadertoy.com/view/WdGBz3
我用华为荣耀手机自带的浏览器是可以的。有可能是手机上的 glsl 版本过低,无法编译 shadertoy 的代码。
from pywonderland.
from pywonderland.
好吧,我觉得不能访问 shadertoy 的话你错过了好多好东西。建议安装翻墙工具试试?
还有就是建议试试 chrome 和 firefox 浏览器。我在家使用联通网,不开代理,使用 firefox 是可以正常访问的。
from pywonderland.
感谢建议,在找翻墙软件(现在不容易了),firefox也打不开。
没见过中文的投影构造方法,英文的对于非数学人士也有困难。
期待你的科普力作。
from pywonderland.
我找到了一个办法,可以将 shader 放在一个 svg 图像里面,可以在本地用浏览器打开。github 不允许直接传 svg,你可以下载以后解压得到 svg 。
from pywonderland.
from pywonderland.
所以现在不在井冈山大学了是吗?
marden.svg 那个动画介绍的是平面几何中的 Marden 定理与静电场、复分析的联系,非常有趣的小结论,见
https://pywonderland.com/Marden-theorem/
这是个 SVG 文件,但是里面嵌入的是 glsl 代码,在显卡里面实时运行然后渲染,所以它其实不是个图片,是一个可执行的 xml 文件。它的大小只有 9.5KB。对双曲图案,如果是一笔一画地在 SVG 里面画 path 的话那得到的文件就太大了。
Mobius 那个代码你可以自由修改和使用。我在博客上和 github 中公开的所有代码都是如此。
de Bruijn 构造拟周期密铺的方法我在考虑写,应该下个月能完成。这方面英文资料其实也不多,最好的可能还是 de Bruijn 的原论文。
还有我没有看到有附件啊?
from pywonderland.
from pywonderland.
Marden 本人做过 N 个电荷,包括负电荷的推广,正电荷对应有理函数的根,负电荷对应有理函数的极点,也有一个内切于多边形的高阶曲线以根为焦点,不过这个曲线不容易确定。
Mobius 项目代码在这里 https://github.com/neozhaoliang/pywonderland/tree/master/src/mobius
shadertoy 版本 https://www.shadertoy.com/view/4scfR2
附件是那个博客文章里面的代码,你应该是不能直接运行的。它使用了 glslCanvas 。不过互相之间代码差别不大。
de Bruijn 构造拟周期密铺的方法分为高维投影和对偶网格法两种,这两种是等价的,网格法更容易编程实现,其可以绘制的图案更灵活。
from pywonderland.
from pywonderland.
from pywonderland.
我把 Mobius 变换那篇文章的代码更新了,你可以直接在动画上右键单击,选择此框架 --> 新建标签页打开框架,然后右键查看网页源代码即可下载代码。
from pywonderland.
from pywonderland.
抱歉我发现更新的 Mobius 场景中软阴影部分的渲染代码有个错误,1e-4 写成了 1e4,导致阴影效果没有出来。你可以重新下载修正后的代码。
此外我更新了欧式蜂巢渲染的代码,效果比之前漂亮许多,可以渲染的场景也更多,你可以去看看。
from pywonderland.
Hi, 作品好久没更新了,这次做了比较大的改动,我把以前的双曲蜂巢删掉了,重新制作了新的图片,我觉得比之前的要好。见我的博客置顶文章。里面有源代码链接。
from pywonderland.
这些交织离散群、代数、几何等的内容国内精通的恐怕不多,难得的是简明易懂的介绍(非数学的恐怕还看不懂)。
双曲蜂巢非常震撼,视觉冲击力极大,科幻异星感十足,欧氏蜂巢也非常棒。若能开发成VR,随身携带展示就非常好,兼具美学与科普。你对科研论文有兴趣吗?或者我可以整理后发到Fractals杂志。
我们在你螺旋框架上做了一些埃舍尔渲染,效果没到预期,还在继续改进,见http://fractals92.5v.pl/fractals/spirals.mp4中的案例。
感谢分享。
from pywonderland.
那个 spirals.mp4 里面的效果很不错!如果能按照螺线的轨迹走起来就更好了,进一步如果还能做到在双曲圆盘里面动起来就更更漂亮了。不过那样的话,翅膀的抖动就要按照双曲几何下的测地线移动,不太确定是否好做。
蜂巢结构做成 VR 是个不错的主意,将来一定会实现。
科研论文的话,这个建议很好,如果您乐意帮助整理发表,那非常感激!目前这个蜂巢项目还在进行中,还有许多需要改进的地方,大约需要几个星期时间,到时完成后我们可以具体讨论下。
from pywonderland.
我们已经完成了沿螺旋线轨迹运动的效果,还在进一步整理中。
双曲圆盘的螺旋更复杂,我们下一步有这个计划:双曲及球面螺旋埃舍尔艺术图案制作,目前卡在一些算法细节。
万花筒(我们最近做了很多,见随附案例)类型的VR是一个很酷的东西,有专利潜力,一直想做,但没有接触过这个技术领域,还没找到下手途径。
非常期待你的蜂巢改进版,待完成后,你来执笔理论及算法部分,我来完成综述与总结,这会是一个非常引人的结果,Fractals是个不错的选择。
from pywonderland.
你们设计的图案很棒!我比较喜欢第三个和第四个。如果能把**风的元素,比如生肖、悟空、剪纸等融合进去效果会不错。我觉得做一个剪纸贴画,过年的时候推向市场应该值得试一下。
from pywonderland.
才发现前几天邮箱回复的留言没有成功。
你的嗅觉很灵敏。我们一直想展开**风的艺术设计,但国内几乎找不到Escher设计师,国外的合作者不擅长**元素,有限的几款设计也是一直要求下才得到的结果。
我们计划做一批仿真工艺品用来装饰工作室,特别特别喜欢你做的球面多胞体与双曲蜂巢艺术效果,目前没看到更好的作品,你擅长3D建模吗?若能把它们制成3D打印格式就太美了!
from pywonderland.
- 我对 3D 建模没有经验。3D 打印的蜂巢有人做过,做成首饰之类的是可以的。
- “装饰工作室”,这是个人创业项目吗?
- 蜂巢这个项目我还在写,我对现在的图像质量不满意,正在重新做一批。
from pywonderland.
新入职的学校给了一个办公室,我想装修一下,方便展示和介绍研究成果,摆放一些工艺品看着也舒服。你若喜欢其中一些风格的话,我多订制一些寄给你。
挖掘艺术图案经济潜力的想法一直有,在找好的形式和切入点。
高维蜂巢的可视化近年进步很快,但感觉仿真效果没能充分呈现它们的数学“美”。你的创意和效果图非常棒,现在的工艺技术每天都在进步,我觉得可以在此基础上做出更好工艺品。
from pywonderland.
有个办公室摆放这些作品还是很不错!
我过年的时候逛超市,发现有鲤鱼、**结的剪纸,想到可以做成Escher极限的图案,我肯定会买。
蜂巢结构也可以做成一个画框形式的挂着或者摆着也是可以的,前提是图像要足够好看,哈哈。如果你喜欢的话可以试试这个图
from pywonderland.
这张图好有科技感,若能3D打印出完整的球结构肯定很震撼。
**风的Escher极限剪纸图有人实现过,见下面的图。
我
计划仿真两类工艺品,一类是无艺术图案渲染的抽象对称数学结构(比如你的这个作品);另外一类是Escher设计渲染的艺术品。
from pywonderland.
这个剪纸的作品很不错,细节笔画挺到位的。
抽象对称数学结构,除了多面体、欧式密铺,双曲密铺之外,还有扭结、代数曲面,都有非常漂亮的图案可以做。
双曲蜂巢有个最大的问题是因为 glsl 的精度限制,只有 32 位浮点数,所以很难渲染一个整体图。
from pywonderland.
是的,扭结、某些方程和拓扑曲面的几何结构都非常漂亮,扭结编织很有意思,贝聿铭是几何装饰大师。
from pywonderland.
这些编织图案是自己绘制的吗?那些无限变小的极限点说的是什么?
from pywonderland.
这是老外的作品。
这些编结需先做基本艺术设计(相当于基础域),然后经由迭代的方式基础域逐渐铺开或收敛,极限点相当于不动点。
from pywonderland.
最近可能要憋几个大招。目前在做高维蜂巢的可视化,包括
- 4d 蜂巢在三维和二维的可视化,这里面 4d 蜂巢有五个生成元,level 是 2, 3 的话情况很不一样。
- 3d 蜂巢在三维和二维的可视化,这里面 3d 蜂巢在三维的效果你已经见到了,今晚正在写 2 维的。但是 3 维的未来应该会用新方法重写一遍。覆盖之前没有处理的情形。
4 维蜂巢在二维的可视化已经非常精彩,代码地址在这里:
https://www.shadertoy.com/view/NdK3zy
这里面有大约 180 种不同的 rank 5 level 2 的群,每种群又可以有多种玩法,非常精彩。具体玩法见代码中的文档注释。这些群实际给出了 3d 的球堆积。而 level 3 的群更加精彩,它们给出了分形圈最爱玩的 pseudo Kleinian 分形。
from pywonderland.
一直在关注你的进展 * ^ _ ^ *
改进的双曲万花筒图案非常精致,有些图科技感特别足。你能设计一个上帝视角看全貌呢?钻进去看到的都是森林,迷失坐标了。
新的二维蜂巢投影图有Kleinian group 和壁纸群的结构,不知道怎么得来的,感觉你发现了新的可视化玩法。
from pywonderland.
双曲蜂巢看全貌很难,因为你要把边界包含进来,而边界在双曲模型里面对应的是无穷远。现在的算法精度不够,边界上会出现明显的瑕疵。
新蜂巢这个关键在于做 level 2 的 Coxeter 群。目前所有网上能见到的 tiling 的图基本都是画的 <= level 1。level 2 和 level 3 的 Coxeter 群的情形其实更精彩,只不过算起来的时候比较麻烦,而且有很多 tricky 的地方。我是和一位学者陈浩交流以后了解了怎么去对一般的群构造反射镜面。
上面的图里面,其实每一个“洞”都来自一个 3d 双曲 Poincare 单位球,每个球有内部有自己的蜂巢。不同轨道的球包含的蜂巢可以是不一样的。相同轨道的都是一样的。
from pywonderland.
全貌并非是完全,我感觉向外铺开3-5层、露出珍珑结构即可止步,或许能提供不同的观感。
我从你的代码中追到一些陈浩的工作,很惊喜有**学者这么精通Coxeter几何的。
level 2对我来说是新词,之前没看到这个技术。感觉你发现了新的宝藏,期待你的进一步分享。
from pywonderland.
我之前做过这样的图,边界上噪点很多。双曲几何是个宝藏,我本来计划画完蜂巢做做扭结设什么的,现在看来光双曲几何就够做个几年的。
from pywonderland.
现在的计算技术解决不了误差吗?说真的,我想象不到误差能多大程度影响结果。
这是庞加莱球体正交球面的切面吧?我觉得很漂亮,从中能看到很多逻辑结构,非常棒的视角。这种结构做成纳米级材料会不会发挥独特的作用?
from pywonderland.
我也被这个东西迷住了。。。。。。
from pywonderland.
这种高维蜂巢在边界上的空洞,给出的空间球堆积,也可以由数论或者二次型给出。这方面我就不懂了。
https://sites.math.rutgers.edu/~alexk/crystallographic/
美妙的结论很多,如果一直走下去,恐怕要穷尽很多年。
from pywonderland.
新作品:
这是 Level 3 的 Coxeter 群给出的 ball packing 分形图案。这样的群有无穷多个,每个群可以控制不同类型球的出现,所以有无穷多种这样的分形场景。图中每一个空洞都是因为去掉了对应位置的球,每一个这样的球内部都是一个 3d 的双曲蜂巢。不同轨道的球内部的蜂巢可以不同。
from pywonderland.
from pywonderland.
非常震撼,非常魔幻! 我注意到Josleys做过很相像的工作
http://www.josleys.com/show_image.php?galid=382&imageid=10023
不知道原理是否一样。
另外他还用Sphere Inversion构造一个IFS,用不同尺度球体填充大球,做成具有多面体对称性的Sphere packing,10年前做出的效果极具视觉冲击力。
很想知道你的数学原理和算法流程图,后面可以详细分享出来吗?
from pywonderland.
原理不一样。这个方法可以构造无穷多种这样的分形,它们来自不同的coxeter群。代码我们后面整理后会放在github上。
from pywonderland.
from pywonderland.
图片很魔幻,很神奇,还有点恐怖。。。。
我不会Python,你上传的资源安装好Python都可以运行吗?
from pywonderland.
from pywonderland.
我又渲染了一些示例图片,可以在项目的 readme 里面看到。3d 分形这个程序后面应该不会做新图了,渲染还是挺费时间的,会集中精力做下一个程序。
你之前说可以发 fractals,fractals 好像是挺理论的期刊,会接收这种科普/艺术类的文章吗?
from pywonderland.
你提的很到位,杂志有不同的爱好品位,写稿时需注意侧重点。
Fractals现在的亚太主编是郁伯铭教授,他对新型的分形topic肯定有兴趣。
我的感觉是,你做的东西理论上是清晰的,但没有人可视化过,或者没人做出过如此惊艳的效果。如果是这样的话,可以冲一冲计算机TOP期刊。具体要看看你的理论基础和算法创新。
上午翻阅你和陈浩的工作,想,有没有必要把你的python程序翻译成sln下的c++吗?会不会工作量很大?
from pywonderland.
好的,多谢提供的信息。计算机期刊您指的是?我以为这个渲染工作也就是发 bridges 类型的宣布一下就好了。其实这些数学理论是早有的,但是应该没有人意识到(或者没有人明确指出) level 3 的群是可以用来制造 pseudo kleinian 分形的。我们算是戳破了一个窗户纸?
这个项目里面没有 Python 程序,只有shader程序。要么跑在 Fragmentarium 里面,要么跑在 shadertoy 上。
Jos Leys 我想他是并不知道 coxeter 群和 BM packing 理论的,他使用的应该是分形圈玩家们从 pseudo Kleinian 分形里面修改得到的一些魔法公式。当然创作这些魔法公式的人脑子里应该是有一些合理的去摆放平面和反演球的理论的。
实际上 pseudo Kleinian 分形就是 Level 3 群的一个例子,被 knighty 无意发现了,然后在分形圈火起来了。我看到这个分形以后感觉它应该和 ball packing 有关,推荐给了陈浩,他看到以后认出它对应的是 o---inf---o---inf---o---4---o---4---o 这个level 3 的例子,由此我们才受启发造出来更多的这种分形。
from pywonderland.
这种情况就很令人兴奋了,你相当于打开了一个窗户!
Bridges主要是交流idea,可以起到很好的广播效果。但我觉得可以考虑好的图形学杂志,比如computer graphic forum,IEEE TRANSACTIONS ON VISUALIZATION AND COMPUTER GRAPHICS, ACM TRANSACTIONS ON GRAPHICS,它们的级别逐级抬升,这些杂志的审稿人都是魔鬼,能发一篇是很了不起的。
我可以找人把你的程序提取数据做3D仿真,是否还可以把Escher艺术设计嵌入进去呢?这样理论、技术、艺术方面就很丰满了。
另外,可以把比较数学化的理论方面分拆发到Fractals。
from pywonderland.
from pywonderland.
又更新了一个新程序,绘制 rank 4 时 (三维蜂巢) 边界上的 2d 图案。这样还剩下大约两个程序就基本结束了。
from pywonderland.
图片非常惊艳,感觉与Kleinian 的结构不一样,很想弄清楚其中的数学原理和实现算法,有没有简易上手的学习资料呢?
from pywonderland.
这个原理和 apollonian gasket 一样,一些圆关于其它的圆反演以后会出现 circle packing 的图案。我没有看过,但 indra'a pearl 可能是不错的教材?
from pywonderland.
我写了一篇博客文章介绍双曲圆堆背后的数学,您方便的话可以看看。里面肯定难免有错误和表述不清楚的地方,还望不吝给提提意见。
https://neozhaoliang-github-io.vercel.app/hyperbolic-kaleidoscope/
from pywonderland.
from pywonderland.
from pywonderland.
请教您一个双曲几何算法问题:
给定双曲对称群T(p,q,r),如何用正p边形覆盖整个庞加莱圆盘呢?
等价的问题是,如何把圆盘中的任意一个点映射回到中间正p边形(绿色的)呢?
from pywonderland.
我只知道 shader 里面 用 distance field 这种方法。一般的 inverse pixel mapping 我感觉空间可以分成 p 个恒等的部分,所以只要画其中一个部分就好了。可以只用角度为 2pi/p 的旋转外加一个球面的反演这两个变换的组合即可。每次将像素旋转到一个固定的2pi/p 的扇形区域内,然后判断是不是在多边形里面。不是的话就反演,再旋转,这样下去。
from pywonderland.
我现在了解到,这个算法的实现并不简单,涉及到群元素的精细结构。
要实现的话,还需需要花费不小的精力。
感谢您的帮助。
from pywonderland.
如果是想一笔一笔画路径的话,那个就比较麻烦了。我使用的方法就是用有限状态机。你可以看看 hyperbolic
那个包,他用的另一种遍历方法似乎也有效。https://github.com/cduck/hyperbolic
from pywonderland.
我看到知乎上有人已经整理了 de Buijn 方法画彭罗斯密铺的论文:(算是翻译了一遍)
https://zhuanlan.zhihu.com/p/410926259
from pywonderland.
from pywonderland.
from pywonderland.
什么格式的数据?
可以试试运行这个例子:https://github.com/neozhaoliang/pywonderland/blob/master/src/polytopes/example_polytope_animation.py#L124-L142
运行以后多面体的数据会被写入 povray 目录下面的那个 polyhedra_data.inc 文件里面。
from pywonderland.
from pywonderland.
povray.zip
数据在压缩包里面
from pywonderland.
from pywonderland.
from pywonderland.
from pywonderland.
我确实不太清楚怎么让 POV-Ray 能输出 300dpi 的图像,好像这个只能通过后处理的方式实现?
https://uutool.cn/img-300dpi/
from pywonderland.
from pywonderland.
好的,附件是 2000x2000 分辨率的图片。
polytope_frames.zip
from pywonderland.
from pywonderland.
from pywonderland.
from pywonderland.
from pywonderland.
是不是这个?
from pywonderland.
from pywonderland.
你的附图我一直都看不到。
上方的曲面是 hyperboloid,红色的三棱柱是射影模型下的基本区域。
from pywonderland.
from pywonderland.
from pywonderland.
from pywonderland.
哇哇哇~~~~好漂亮!!!
能发几个对比度强烈、分辨率在4k左右的图吗?我想做一个水晶内雕装饰彩灯工艺品。
from pywonderland.
你可以自己修改这里的代码:https://www.shadertoy.com/view/NstSDs
4K 的图片我的电脑渲染不了。
from pywonderland.
from pywonderland.
from pywonderland.
from pywonderland.
代码在这里:https://www.shadertoy.com/view/4scfR2
这个界面里是用户自己编写的 glsl 代码,网站在背后还做了一些编译和传递参数的工作。我这个效果其实一般,你可以看看 shane 的一些作品:
https://www.shadertoy.com/view/NlKXWt
https://www.shadertoy.com/view/Dd2SWh
from pywonderland.
还记得您分享给我的多面体数据吗(见下面附的案例)?这解决了我的大难题,我们在投稿的论文中向您致谢,感谢帮助。
我们现在有个特殊需求,需要多面体的其中一个顶点刚好包含北极点(即其中一个顶点数据为<0, 0, 1>).
您的程序能算出包含北极点的多面体数据吗?如果可以的话,能再分享给我吗?
#declare vertices = array[8]{
<0.5773502691896253, 0.5773502691896256, 0.5773502691896263>,
<-0.5773502691896253, 0.5773502691896256, 0.5773502691896263>,
<0.5773502691896258, -0.5773502691896251, 0.5773502691896263>,
<-0.5773502691896258, -0.5773502691896251, 0.5773502691896263>,
<0.5773502691896258, 0.5773502691896268, -0.5773502691896244>,
<-0.5773502691896258, 0.577350269189627, -0.5773502691896244>,
<0.5773502691896272, -0.5773502691896256, -0.5773502691896244>,
<-0.5773502691896272, -0.5773502691896256, -0.5773502691896244>};
#declare edges = array[1] {
array[12][2] {
{0, 1},
{0, 2},
{1, 3},
{2, 3},
{0, 4},
{1, 5},
{4, 5},
{4, 6},
{2, 6},
{3, 7},
{5, 7},
{6, 7}}};
#declare faces = array[1] {
array[6][4] {
{0, 2, 3, 1},
{0, 4, 5, 1},
{0, 4, 6, 2},
{1, 5, 7, 3},
{2, 6, 7, 3},
{4, 6, 7, 5}}};
from pywonderland.
抱歉前几天在外旅游,没有看到邮件。附件是 18 个阿基米德多面体的数据。
data.zip
from pywonderland.
from pywonderland.
见上面回复的附件。每个多面体的第一个顶点坐标是 (0, 0, 1)
from pywonderland.
赵先生您好,我们在推导一个模型,需要用到阿基米德体的顶点坐标,满足如下要求(见附图):
(1)其中一个顶点P1=(0,0,1)落在北极;
(2)设P1P2是多面体的一条边,P1P2刚好处于XOZ平面上,即可设P2= (sin eta, 0, cos eta) (eta是由多面体确定的一个参数)。
通过指定上述条件,则多面体的所有顶点唯一确定。您的程序能按上述要求,计算出所有坐标吗?
from pywonderland.
Related Issues (12)
- Suggestion: Conway's Game of Life HOT 2
- Error when runing e8.py HOT 1
- [Feature request]Universal Random Structures in 2D HOT 2
- Question about gifmaze module and pypi HOT 4
- Create a Contributing and Code of Conduct file HOT 3
- Gallery Images HOT 13
- (PYL-R1723) Unnecessary `else` / `elif` used after `break`
- Remove obsolete branch? HOT 1
- update galley
- Missing image in 2d-hyperbolic-tilings HOT 2
- Projects to be added in this repo
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pywonderland.