4 个有趣(且有点无用)的 Linux 玩具

8 位读者喜欢这个。
Penguins on beach

原始照片来自 Rikki Endsley. CC BY-SA 4.0

有一些小工具和应用程序一直出现在我的工具箱中。你可能不会称它们为“杀手级应用”,但该死,它们玩起来很有趣,有时会把你带到有趣的方向。有些具有创造性并鼓励生产力,而另一些只是激发创造力。有些只是纯粹的傻。

Evolvotron

你喜欢生成艺术吗? Evolvotron!

你喜欢无法解决的难题吗? Evolvotron!

鼠标的点击和灯光的闪烁让你着迷吗? Evolvotron!

是的,Evolvotron 是一款 Linux 上的交互式生成艺术应用程序,它强制纹理和图案的演变。简而言之,它是 Linux 的熔岩灯。

事实上,Evolvotron 可以完成很多很酷的事情。尽管它看起来是随机和古怪的,但显然是通过计算来创建图像。 Evolvotron 让你访问所有内容,而不仅仅是开源软件的意义;它包含隐藏的选项。

起初,使用 Evolvotron 似乎很简单。你打开应用程序并单击。这会在一个六乘五的矩阵中加载图形模式的随机渲染。再次单击,会根据你单击的单元格计算并形成一个新的矩阵。你可以单击任何单元格;有时,沿着偏差路径前进很有趣,有时,沿着恒定的种子前进很有趣,还有一些时候,随机选择任何给定的生成都会把你带向意想不到的方向。

Evolvotron

这就是入门级的 Evolvotron。公园漫步般的 Evolvotron。但是 专业 Evolvotron 艺术家(他们总共有三位)会引入一些数学知识。

Evolvotron 的设置菜单有几个选项,你可以用它们来影响 Evolvotron 生成其艺术作品的方式。我没有追溯源代码中的所有数学,但从艺术的角度来看,你的选择是

  • 突变参数:设置与基础图像的偏差百分比。你可以手动设置这些值,也可以使用描述符,例如热度冷却保护辐射等等。你还可以切换自动冷却功能,该功能控制突变持续的时间。
  • 函数权重:设置所用数学函数的强度。在核心集中必须至少有 100 个函数,加上迭代分形稀释等等。
  • 最喜欢的函数:定义(或保持未定义)你希望根图像从哪个函数开始。

如果你看到特别喜欢的图像,请右键单击它。从那里,你可以生成图像的新版本,将其锁定到位,分析生成它的函数,或放大并将其保存为你和数学之间的协作艺术作品。

Evolvotron

Evolvotron 是多线程的,但即便如此,某些图像的完全渲染可能比你预期的要长。如果你尝试保存图像并且收到错误提示无法保存,请耐心等待并在渲染完成后再次保存。

Fred 的 ImageMagick 脚本

无论你是否知道,你都知道 ImageMagick。它是 Unix shell 的照片编辑器;它处理图像而无需 GUI 界面。如果你曾经将图片上传到在线论坛或社交网络站点,并且图片被调整大小和裁剪,那么你很可能间接使用 ImageMagick。

诚然,花一个下午的时间坐在那里对照片运行 ImageMagick 脚本可能不是一件有趣的事情。但是 ImageMagick 可以编写脚本,因此很容易在充满照片的目录上运行随机的 ImageMagick 函数,一夜之间或在你上班离开期间,这样你就可以坐在电脑前,看看你设法创造出什么令人兴奋的意外艺术。

为了使该过程不那么偶然,一位名叫 Fred Weinhaus 的人维护着 200 多个 ImageMagick 脚本,可供使用“仅供非商业用途”。在他的网站上,“商业”的定义并不是很清楚(如果你不打算通过使用该脚本来赚钱,而是赚钱呢?你可以通过脚本的最终产品来赚钱吗?),因此它们的实际用途取决于你对他的限制的解释(或者如果你有疑问,可以与他进行电子邮件通信)。

但是,作为一种有趣的消遣,这些脚本绝对合格。

并非所有脚本都是完美的,也并非所有脚本都会产生你期望的结果。但是它们易于使用,并且作为脚本,你可以将它们释放到一个充满照片的目录中,并在几个小时后回来筛选结果。许多脚本需要很长时间(它们很复杂!),而且除了启动专用进程外,我还没有找到一种非常优雅的多线程方式。

每个脚本都有自己的 -help 命令,因此有关语法,请查阅你正在运行的脚本。这是一个使用 vintage3 脚本的示例

$ ./vintage3 -T torn -L 23 -B 33 -M 23 ./IMG_0559.JPG texture18.jpg oldboat.jpg

在此示例中,选项位于最前面,接下来是输入文件加上纹理文件(我使用沙子或干泥的图片来表示胶片颗粒,但你可以尝试任何东西),然后是输出目标。

要在我的桌面上通宵在一个目录上“多线程处理”,我只是做一些愚蠢的事情,例如在三个单独的 xterm(或 rxvt 选项卡,如果你喜欢)中启动一个单独的命令

tab1_$ ./vintage3 -Blah blah blah ./IMG_???{0,1,2}.JPG texture18.jpg oldphoto-`date +%s`.JPG
tab2_$ ./vintage3 -Blah blah blah ./IMG_???{3,4,5}.JPG texture18.jpg oldphoto-`date +%s`.JPG
tab3_$ ./vintage3 -Blah blah blah ./IMG_???{6,7,8,9}.JPG texture18.jpg oldphoto-`date +%s`.JPG

你还可以使用 GNU Parallel(尽管语法比拼凑在一起的 Bash 命令稍微高级一些。)

结果很有趣,让照片处理是一种消磨 CPU 周期的好方法,否则这些周期会被浪费掉。这也是一种通过基准测试来评估你的计算机性能以及学习更多关于照片处理的好方法。

之前

之后

Xaos

你是否尝试向别人解释什么是分形?这真的很难描述,而且我发现餐巾纸上的粗略草图很少能捕捉到好的 Julia 集所激发的敬畏和惊叹。使用 Xaos,你可以停止向你的朋友描述分形,而只需展示它们。

Xaos 是那些起初看起来很简单,然后以整个隐藏的秘密世界选项让你感到惊讶的应用程序之一。例如,当你启动 Xaos 时,你首先看到的是一个相当普通的 Mandelbrot 集。当我第一次发现 Xaos 时,这对我来说已经足够了;我已经寻找分形生成器多年了,因此对我来说,找到一个实际为我渲染分形的应用程序值得我进入 Linux 世界。但是,如果你稍微浏览一下,你会发现单击并拖动分形会使你更接近它,并在你更接近时动态渲染形状的复杂细节。

如果这还不够,你会发现无数的选项绑定到屏幕上的菜单(仅当鼠标光标悬停在 Xaos 窗口顶部附近时才可见)和几个热键。例如,你可以通过按 j 动态创建自己的 Julia 集,或者从分形 > 公式菜单中更改要渲染的集合类型。但这只是技术选项。 Xaos 的全部内容是渲染分形,因此有很多选项可以更改分形的呈现方式;从 2D 更改为伪 3D,更改颜色,强制恒定旋转,启用自动驾驶仪以沿着分形的路径飞行,添加运动模糊,并进入 VJ 模式,以便你可以在没有文本渲染的情况下操作和控制 Xaos 以进行公开展示。

伪 3D 模式下的 Xaos 伪 3D 模式下的 Xaos。

 

Xaos 是一次有趣且具有教育意义的分形几何之旅。尝试一下,玩得开心,然后变得更聪明一点。

Netcat 乐队

有了所有这些随机化的艺术,你将花时间在上面,你将需要一些背景音乐。幸运的是,一支对极客友好的乐队,名为 Netcat,在 GitHub 上以Linux 内核模块的形式发布了一张专辑。

那么,专辑如何成为内核模块呢?好吧,这张名为Cycles Per Instruction的专辑被编译成一个内核模块(具体来说,是 netcat.ko)。当模块添加到你的环境中时,它会表现为 /dev/netcat。将该“设备”的输出管道传输到像 ffplay 这样的媒体播放器中会播放该专辑。

如果听起来太棒了以至于不真实,欢迎你亲自尝试一下。这些说明很简单,但我将在此处重申它们,并附上一些注释

$ git clone https://github.com/usrbinnc/netcat-cpi-kernel-module.git
$ cd netcat*module
$ make -j4
$ su -c 'insmod ./netcat.ko'
$ ffplay - < /dev/netcat

我已经成功地在 Linux 2.6.x 系列内核和 3.x 内核上编译并收听了这张专辑。该乐队的 GitHub 页面推荐 ogg123,但最近一些用户报告了播放问题。我发现 ffplay 可以解决播放问题,但你也可以尝试 mpv,旧版 mplayer 或其他播放器。

专辑本身很美。非常值得一听。但是,它将继续播放,直到你删除该模块

$ su -c 'rmmod ./netcat.ko'

开源的随机性

有如此多更有趣的项目等待探索,所以不要让我的简陋列表成为冒险的终点。在开源世界中,我们经常遭受人们的围观、审视我们的成果,并寻找实现盈利的实用且清晰的路径。但那并不是开源的真正意义所在;开源应该是充满乐趣和启发性的。它赋予每个人能力,去完成他们最模糊的想法,无论它多么“无用”或“无聊”。

花一个下午或两天的时间,做一些无意义的事情。尝试一下生成式艺术应用程序,编写一些代码并看看它会产生什么,播放一张极客专辑,或者制作一张极客专辑。外面有很多“玩具”,而玩耍才是真正驱动创新的动力。创造一些东西并分享它。


本文最初发表于 2016 年 6 月,并已更新了新信息。

标签
Seth Kenlon
Seth Kenlon 是一位 UNIX 极客、自由文化倡导者、独立多媒体艺术家和 D&D 爱好者。他曾在电影和计算机行业工作,而且经常同时进行。

评论已关闭。

Creative Commons License本作品采用知识共享署名-相同方式共享 4.0 国际许可协议进行许可。
© . All rights reserved.