艺术即是工程化的现实
在您的桌面上生成您自己的风景、月景和绵羊景观。
作者:Marcel Gagné
我敢说,弗朗索瓦,这款 1999 年的 Côte-Rôtie 是卓越的吗?品尝如此美妙的葡萄酒,我仿佛被带到了新的存在层面。当然不是真的,弗朗索瓦,这只是一种表达。这是我对酿酒师酿造如此美酒的赞美。难道我还不是和你一起在这家餐厅里,看着这个月工程重点刊的菜单吗?
现实和感知是独特的个人体验,mon ami,所有 Linux 用户如果愿意都可以探索的体验。Linux 环境的一大乐趣在于,它为世界各地才华横溢的程序员提供了自由,让他们可以创造替代的工作和娱乐方式。我们这些仅仅使用、准备和提供他们的作品的人,也可以分享这些愿景。
弗朗索瓦,你在哪里,mon ami?你的注意力似乎被别处吸引了。啊,mes amis!欢迎来到 Chez Marcel。我没有意识到你们已经在这里了。弗朗索瓦,Vite!为我们的客人再拿些这种美妙的葡萄酒,immédiatement。请坐,各位。请随意。弗朗索瓦马上会带着更多我刚才品尝的,呃,我是说,当然是进行质量控制的 1999 年 Côte-Rôtie 回来。这可能看起来很奇怪,mes amis,但弗朗索瓦和我刚才正在讨论现实和感知的本质。
我从未真正从第一次看到壮丽的分形景观中缓过神来。令人叹为观止的真实山景,以及白雪皑皑的山峰和依偎的湖泊,让我理解了数学的纯粹之美。如果像景观、蕨类植物或星系这样复杂的事物可以简化为一系列重复播放的数学符号,那么宇宙的核心肯定存在着某种 starkly 的美。
使用一个名为 xmountains 的小程序,您可以为自己重现那些梦幻般的风景。访问作者 Stephen Booth 的网站 (www.epcc.ed.ac.uk/~spb/xmountains) 并获取他的程序的最新版本。工程化一点现实,操纵它,并装饰您的桌面。
有了它,现在是提取和构建源代码的时候了。请注意,我创建了一个临时目录,源代码可以提取到其中。不幸的是,这些文件没有保存在它们自己的目录中。构建 xmountains 包括以下简单步骤
mkdir temp_dir cd temp_dir tar -xzvf xmountains_2.6.tar.gz xmkmf make
然后您可以将生成的二进制文件(名为 xmountains)复制到您认为合适的任何位置(可能是 /usr/local/bin)。有很多方法可以使用命令行开关来调整程序的输出,但在其最简单的形式中,您只需键入 xmountains & 并观看表演。一个全屏窗口将打开,其中包含一个随机生成的景观。每十秒钟,景观会向左滚动一点,并生成新的地形。要查看可用选项,请使用 -h 选项。请查看图 1,了解 xmountains 输出的示例。

图 1. 山地虚拟现实
根据您使用的窗口管理器,可以修改 xmountains 以直接写入根窗口,从而提供不断变化的分形景观。默认情况下,代码不允许这样做,并且该效果并非在所有窗口管理器上都能很好地工作。因此,作者没有将此选项设置为程序的默认选项。我决定继续进行更改。也许,mes amis,您也会尝试一下。更改很简单。修改您的 Makefile 并查找读取 PROJECT_DEFINES = 的行,并将其更改为如下所示
PROJECT_DEFINES = -DVROOT
现在执行 make clean,然后执行 make,并使用 -b 开关重新运行程序。生成的像素图将写入您桌面的根窗口。在 KDE 下结果不太好,但在 Window Maker 下一切都完美运行。正如他们所说,mes amis,里程,它会有所不同,non?
创建虚拟景观只是使用分形创作艺术的众多应用之一。如果您只想参与其中并开始生成一些视觉享受,您可能不需要安装任何软件。大多数 Linux 发行版都带有一个名为 xscreensaver 的软件包,其中包含一系列屏幕保护程序。您可能不知道的是,每个屏幕保护程序本身都是一个程序,具有自己的功能。例如,drift 是一个用于绘制递归分形火焰的程序。它可以从 xscreensaver 程序或直接调用,如下所示
/usr/X11R6/lib/xscreensaver/drift -background "Wheat"
这将打开一个窗口,其中 drift 在小麦色背景上无休止地生成分形火焰。默认颜色为黑色,但您可以尝试使用其他颜色。如果您想要更大的窗口(例如,800 × 600),请尝试添加 -geometry 800x600 标志。还记得我们讨论 xmountains 时谈到的根窗口吗?就窗口管理器而言,同样的规则也适用于此处,但您当然可以启动该程序以使用 -root 标志在您的桌面上生成动态艺术
/usr/X11R6/lib/xscreensaver/drift -root您是否渴望大自然的召唤?一个小玩笑,mes amis。也许山不是您的菜,而是未驯服的森林之美。也许在您桌面的角落里放一个小窗口会更好——尝试来自同一软件包的 forest。可执行文件的路径将因您的安装而异。在我的测试系统中,这些都位于 /usr/X11R6/lib/xscreensaver 下。
forest -geometry 300x200当您对此感到厌倦时,请尝试 hopalong 并尝试分形平面。您也可以调用 julia 来获取一些动画 julia 集分形。您问那是什么?好吧,根据文档,该程序“使用 ifs {w0 = sqrt(x-c), w1 = -sqrt(x-c)} 与随机迭代来绘制 julia 集,并使用正弦变化参数来设置,并用圆圈绘制参数。”(您不庆幸自己问了吗?)为了完成今天的 xscreensaver 产品,请考虑我个人最喜欢的 imsmap 之一。图 2 显示了我的相当繁忙的桌面,其中同时运行着许多这些程序。

图 2. 分形,尽收眼底的视觉享受。
当涉及到创建超现实主义艺术的虚拟景观时,您的 Linux 系统是一个宝库。另一个可能作为您的发行版一部分安装的软件包是 netpbm 或 netpbm-progs。作为该软件包的一部分,您会找到一个名为 pgmcrater 的程序,它将使用分形创建陨石坑地形,这样您最终会得到一个虚拟的月球景观(如图 3 所示)。尝试这个
pgmcrater -x 800 -y 600 > crater.out convert crater.out crater.jpg
第二个命令是 ImageMagick 工具集的一部分。pgmcrater 程序以原始便携式图形格式生成图像,该格式转储到一个临时文件中。然后我将原始图像转换为 JPEG,这是一种我可以用来为我的桌面设置背景图像的格式。顺便说一句,我们可以使用以下命令将这两个命令合二为一
pgmcrater -x 800 -y 600 | convert - crater.jpg <center>

图 3. 是月球还是 pgmcrater
ppmforge -hour 10.5 -glaciers .5 -tilt 23.5 -ice .5 -width 800 -height 600 -stars 70 | display - <center>

图 4. 奇异的新世界任您创造!
对于那些喜欢由点缀着云朵的蓝色天空组成的背景的您来说,ppmforge 也可以做到这一点。尝试此版本的命令
ppmforge -clouds -width 800 -height 600 | display -
如您所见,灵感触手可及。弗朗索瓦,我们的客人渴了。请再来点酒。
您谦卑的厨师最喜欢的电影之一是 Bladerunner,改编自 Philip K. Dick 的小说 Do Androids Dream of Electric Sheep?,这是一幅关于现实的迷人图景(如果有的话)。迪克的这部小说是我们接下来与另类现实相遇的灵感来源,Scott Draves 的 electric sheep。当您失去灵感时,请将您的手从键盘上移开,等待这个迷人的屏幕保护程序启动,并准备进行一些电子梦。
前提如下:当屏幕保护程序启动时,您的屏幕将短暂变黑,因为程序会连接到服务器。然后,会出现一个动画“绵羊”。这只绵羊实际上是由联网客户端的协作处理工作创建的动画分形帧。每 15 分钟,每天 24 小时都会创建新的绵羊(生成的动画)。很难说这像 Seti@HOME 项目(electric sheep 的另一个灵感来源)一样有用,但它肯定非常酷,non?
生成的高分辨率动画的性质几乎需要某种高速互联网连接;56K 调制解调器可能不够用。如果您渴望尝试,我建议您首先访问 electricsheep.org 获取您的副本。然后,像这样提取并构建它
tar -xzvf electricsheep-2.1.tar.gz.html cd electricsheep-2.1 ./configure make su -c "make install"
您可以通过简单地键入 electricsheep 来启动程序并进行测试,而无需进入屏幕保护程序模式。在这种模式下,它将占据根窗口背景,因此您可能必须最小化您的活动窗口。您也可以传递 --help 标志以获取选项列表。要将其用作 xscreensaver 软件包的屏幕保护程序,请修改(或创建)您的 .xscreensaver 文件,并将 electric sheep 列为程序之一。在以下示例中,我还将我的屏幕保护程序超时设置为两分钟
timeout: 0:02:00 lock: True lockTimeout: 0:02:00 programs: \ electricsheep --nick "ChefMarcel" \n然后,使用命令 xscreensaver -nosplah & 启动 xscreensaver 并等待。图 5 展示了出现在您谦卑的厨师屏幕上的众多绵羊之一。

图 5. 您的 Linux 系统会梦见电子羊吗?
说到梦想,mes amis,时间不早了,我们很快就要关餐厅了。为了帮助您今晚睡得更舒服,弗朗索瓦会最后一次为您斟满酒杯。弗朗索瓦,s'il vous plaît。像往常一样,您光临 Chez Marcel 真是一种享受。我敢说 dreamy 吗?Non。
喝完您的酒。尽情享受。下个月见。A votre santé!Bon appétit!
