Field是一个基于实验性代码和数字艺术最广泛可能性的开发环境。这是一个能够快速和实验性地组织和探索算法系统的代码书写环境。它可视化、混合,并且基于代码。基于始于MIT Media Lab(又是它)的最初想法,至今,Field的开发已经超过六年光景。在具备众多开发环境与数字艺术工具的今天,Field遵循以下两个最根本的原则进行开发:
包容性及扩展性 —— 相比制作一个私人原始的代码乌托邦,Field更希望能够在尽可能多的库及编程语言间搭建桥梁。这个世界并不需要其他的程序语言或者串口库(serial port library),我们也不需要在数据流系统、可视化用户界面以及纯文本程序编辑器间艰难抉择 —— 我们可以在一个好的环境中同时拥有这一切,我们可以用自己的工具和方法去控制他人的作品。
灵活编码使得一切皆有可能 —— Field尽可能将各种“特质”用可编辑的代码块替代。它的首选编程语言是Python —— 一种在世界范围内受到广泛追捧并异常灵活的语言。因此,Field具备高度的可定制性,无论是界面对象还是Field本身的代码。它很重视可以尽可能地将其自身重设为符合使用者需求及风格的观念。
全功能的代码文本编辑器
Field提供一个强大的文本编辑器作为其核心并满足你对于一个好的脚本代码编辑器所有的需求。它支持语法高亮、自动完成、检查、特定位置部件测试。它具备众多快速选择和执行代码的方式。
这个编辑器同样具备一些惊喜。图形化用户元素,诸如滚动条、图表、按钮和combo盒子等可以就像文本一样与文本编辑器进行结合;工具栏、菜单和过滤器可以在环境内部直接定制;一组元素允许其他的编程语言嵌入同一文档 —— 包括在其他程序(比如Maya和Afereffects)内部执行的编程语言;嵌入的元素可以被在Field内部书写的代码扩展;版本跟踪信息直接整合在文档内部,因此你可以在文档适当的地方查看历史记录。
一个多式样的代码“画布”
Field向文本编辑器加入了绘制界面。在这块画布上的元素“包含”着文本编辑器编辑的代码。如何使用这个界面完全取决于你。它只是提供一个简单的桌面隐喻(desktop metaphor),一个对于你代码片段组织的空间记忆。但你同样可以将这些代码盒子组织成序列并且用执行标记(execution markers)擦洗(scrub over)它们;你可以在代码片段间创制你专属的控制流系统(control-flow systems);你可以用复杂的程序绘制系统写在画布内部绘制的代码(you can write code that draws into the canvas using a sophisticated procedural drawing system);你可以在代码执行的时候看到它们内部的工作;你可以随后用整合进系统的基于鼠标的spline编辑器编辑这些绘制。你可以在画布上直接嵌入图形化用户界面元素,以开始为你所写的代码建立自己的界面。
与大多数的玩意整合,包括Processing库
Field希望能够连通你自己的Java代码基础,打开java源文件.jars或纯Python库。仅需向Field指出.jar文件,Field的路径或输出目录即可 —— 无需其他封装或修改。使用Field集合、审查和测试你自己的Java代码或使用别人的库。文件和自动还原将自动识别额外的类。Field的基于插件的结构体系,和大量的扩展点,允许你为你当前的工作定制独特的扩展。现在,Field已包含了对于JavaScript, 嵌入性Java, Groovy, Clojure和Scala的实验性捆绑(experimental bindings)。
由于是有趣的库的重要源头,Processing的传统受到了特别的关注 —— ProcessingPlugin在Field的执行模型与Processing的世界建立了桥梁。Field在允许你在Field与Processing整合的“小程序”中使用所有你最喜欢的Processing库和渲染器的同时,替代了Processing的开发环境和它的编程语言。Field没有开始和停止按钮 —— 没有编译循环。你可以在这个“小程序”运行时执行、改编、排列和操控代码 —— 同时在画布上建立个人所有面向练习的界面。我们认为,对很多用户而言,Field是一个比Processing更好的Processing。我们注意到,几乎所有被Processing列为“未来功能”的功能,要不就是已经在Field中具备,要不就是并不需要在Field中具备因为这些一个活的环境,或者就是可以在今天的Field内被快速制造。
最新beta版本的Field同样包括了一个与流行的Max/MSP平台沟通的试验桥 —— 允许你实时在Max/MSP内嵌入、编辑、检查和修正Python代码。
一个复杂的、基于spline-, image-和OpenGL的绘制系统
当Field想尽可能利用现存Java和Python库的时候,它确实拿出了它自己的绘制系统。这对代码标记系统的开发来说是无价的,使代码运行结果可见,或简单的在画布上创制界面或接口。Field现在具备state-of-the-art 2d & 3d绘制系统,以及与Apple的Core Image框架间的桥梁,使得你可以在画布中直接导出高质量的PDF,或者自定义的GPU加速图像滤镜。
Field同时具备它自带的3d scene-graph库并且现在还捆绑了Python基于GLSLang的渲染系统,还包括对雪豹OpenCL并行处理库的支持。
开发
翻不动了,有兴趣的可以自行查阅以下链接:
http://openendedgroup.com/field/wiki/OverviewBanners2
太他妈的牛屄了,感谢仁兄的分享
@博沈,
一起学吧,是的,东西只会越来越牛逼。
惊呼世界变化太快,我都来不及适应 🙂
对于Field,我无从下手,望WW兄指点迷津,多谢 :)
WW兄,我对这个还是不懂,恳请你指点迷津,比较基础的东西给我看看? 多谢 :)
你只能先看看官网的帮助文档了,他写的还是非常全面的。我最近在研究SC,没空搞这个啊- -
好的,我先试试,谢啦
TouchDesigner
WW兄这个软件试过么?
@博沈,
不好意思,我家PC慢如蜗牛,而这个软件恰巧不支持MAC 🙁
我们不能在bootcamp上搞么?
我试了一下在mac上的WIN7,动不起来
@博沈,
你把我分成四份,我就跟你一起学这个..
🙂
WW兄见笑啦