Development of Field has now moved over to GitHub. Follow us, build the latest versions of Field, and report issues there!
Field2 is being actively developed for OS X, Linux and Windows here.
The latest sneak preview of Field 14 for OS X can be downloaded here. Note: this preview version will only work with recent Processing 2.0. If you have an earlier version of Processing installed, please move it out of your Applications folder.
The latest sneak preview of Field 14 for OS X can be downloaded here. We are close to being finished, and close to having caught up with some of the technical debt given to us by Apple — There's an OpenGL 3.2 mode, there's a path to OpenJDK 1.7, there's a Mountain Lion compatible stereo mode etc. Note: this preview version will only work with recent Processing 2.0. If you have an earlier version of Processing installed, please move it out of your Applications folder.
For those not building from the repository — and joining us after our talks in chicago — the latest sneak preview of Field 14 for OS X can be downloaded here. It's still not quite tested and stabled enough to warrant being moved to the binary release page, but it's got too much good stuff (see below) for us to just keep it in the source tree. Note: this preview version will only work with recent Processing 2.0. If you have an earlier version of Processing installed, please move it out of your Applications folder.
For those not building from the repository — and joining us after our talks in chicago — the latest sneak preview of Field 14 for OS X can be downloaded here. It's still not quite tested and stabled enough to warrant being moved to the binary release page, but it's got too much good stuff (see below) for us to just keep it in the source tree. Note: this preview version will only work with recent Processing 2.0. If you have an earlier version of Processing installed, please move it out of your Applications folder.
For those not building from the repository, a sneak preview of Field 14 for OS X can be downloaded here. It's not quite tested and stabled enough to warrant being moved to the binary release page, but it's got too much good stuff (see below) for us to just keep it in the source tree.
We've also posted some "live coding" video based on the OnlinePlugin — including some WebGL work that we're very excited about. Grab them from our Vimeo page.
More features and tutorials from the repository version:
FLine
systemPLine
drawing code FLine
s are mutableSome features that are in the repository as of now (and in an upcoming release):
Tired of restarting Field to see your changes to Java classes — enter the ReloadPlugin.
By popular request, a little JRuby support in Field.
A new release! The usual place.
Field / Javascript / Processing.js / Protovis / in a web-browser. Yes we can (in the upcoming beta).
We're having a short Field workshop at Georgia Tech Music Technology department. We'll be testing out the very new, "cross platform" build of Field (although we'll be limiting this to Macs right now) and a revised set of tutorials: available here.
We are pleased to announce that the next Field beta will almost certainly be the last Mac-only beta. We are close to having Field working on Ubuntu well enough to consider it useful to others.
We've we're already planning to take last month or so for take a deep breath and a step back from the codebase; to get it ready for both platform independence and it's future in general. But during this time we heard some troubling news from Apple: future versions of OS X will no longer come with Apple supported versions of Java. What's more, in the weeks that followed, there was only silence from Oracle — the most likely company that would step in and fill the gap. The future of Java on OS X seems murky; and the future of OS X as a place that makes hackers and engineers comfortable seems to be in doubt.
As far as we can tell, this means two things. Firstly, the (always slightly absurd) situation of Field being Mac-only simply has to change. Secondly, Field's dependence on complex platform-specific corners of AWT and Swing is unmaintainable. To this end we've been working feverishly on both a usable Linux port of Field and move away from Swing/AWT towards SWT. SWT does two things for us. It gives us both a better shot an having an app that truly feels at home on multiple platforms — OS X, GTK and probably also Windows; and it frees us of the part of the Mac Java runtime that was exclusively Apple's. So should Apple choose — as seems likely — to not provide the source code to their existing JDK modifications we ought to still be able to run Field on a purely ported JDK. Even today you can in theory run SWT/Field on Mac OS X on a completely open source version of Java, with no help from (and no thanks to) Apple.
We've got most of the functionality of the current Field beta working under this new regime, and we're pleased to report that everything feels tighter, more native and snappier than before. We're transitioning to using the SWT version of Field on Mac exclusively at this point; and we may well be working exclusively under Linux by the end of the month. After we've given this back to the same level as the previous beta, we'll be releasing the first cross-platform beta of Field.
In the meantime we'll be releasing the last mac Field beta — with the patches and bug fixes accumulated over the summer in the next coming week.
The NSF as accepted our Field-based grant proposal. This will provide funding for Field's further development for the next year within the context of a very exciting collaboration between us, EMPAC and Peter Fox's group at RPI. This is great news for Field (and also for anybody wanting Field ported to Linux).
We're still playing with Clojure but we need a little help — Field's text editor (in beta 12) will allow you to code syntax overlays live, see TextEditorDecoration.
We've refreshed our take on NodeBox — [NodeBox2LooksInteresting]. Seems like that project is progressing wonderfully — Field's NodeBox integration still works. Better yet, their SVG library is far better than ours.
Just posted — AdHocUi — documentation for a host of small things that make customizing Field and producing little interfaces to your work more straightforward.
Just cleaned up and posted some information about our work integrating GigE Vision cameras and Field's graphics system. We're assembling an ultra-lightweight stereo capture rig for an upcoming shoot in London. We're enjoying our new AVT/Prosilica cameras quite a bit, and we've also put together a video / DNG based workflow for the images we extract off of them — source-code included.
Beta 11 — just posted. We've been hacking on stereo (see below), look and feel, some under the hood things that get us a little closer to platform independence, UI things in general, the MaxMSP plugin, and making a different approach to real-time video in Field's graphics system.
We are, however, now pretty much Snow Leopard only at this point — specifically we're Java 1.6 only (although both 32 and 64 bit VM's are fine). The Java 1.5 holdouts seem to be only on Leopard where 1.5 is the only available 32 bit VM.
Field has had support for active stereo 3d for a long time, but it's been impossible to find consumer level hardware for displaying 3d made on Macs — that might be changing.
If you have a working NVidia 3d vision setup on a bootcamp partition and are in the mood for some hacking, contact us.
Back after a art-related hiatus (the feature length stereoscopic movie we made in Field). We're the University of New Mexico on April 5 and 6 talking about Field (and lots of other things). Currently refreshing the tutorials to reflect all the new things in the imminent Beta 11.
And we're glad to say that two of the most requested features — data transfer in the Max Plugin and customizable colors in the text editor — have made the cut.
Our experiments with non-mac platforms continue. We can now boot the Field graphics system on Windows. This allows us to run a master Field controller on a Mac and have a fleet of commodity Windows (and soon hopefully Linux) drones do its bidding. If you are interested in tracking and helping on with this work, take a look at the "windows" branch in the repository.
If you are tracking the repository, Field's look and feel got just a little bit more platform independent.
The new Processing integration and the bug fixes driven by the workshop are just too good to keep to the dev tree. Have fun, and happy new year!
Every so often somebody persuades us that we really should be using NodeBox's spline libraries. But we've never gotten around to writing the hard code to bridge Field's Jython/Java drawing code with NodeBox's Python/Quartz code. Well, I'm sure glad we didn't get round to it — it looks like NodeBox v2 is now Jython/Java. As you'd expect we're welcoming it with open arms.
A brief addition to the Field Porting page. Linux based network rendering anyone?
OpenEnded is changing server. If you can read this, then it's worked. For those with accounts, any trouble logging in, let us know.
Beta 10 is almost ready to be posted (there's a memory leak that it would be very nice to track down). In the meantime, more on the new Processing integration: ProcessingDirectEmbedding
Fresh from our first Field workshop (don't miss the tutorials) we've added some docs that we've wanted to do for a long time — ProcessingIntegrationFourWays — enumerating all the different ways that you can integrate Field with your existing Processing lifestyle. We had much fun conducting Field "border raids" on people's codebases using these tactics during the workshop.
Perhaps more excitingly we've added a new way (beta 10 / or the dev tree) — by extending Field's support for embedded Java you can now just write Processing code directly in Field and have it participate with the Processing Plugin. We'll have some more focused docs on this wonderful trick very soon.
We're beginning to post some of the tutorial materials that we are creating for our upcoming workshops — including the unmissable first one at EMPAC this Saturday and Sunday. See you there!
Humbled by the sincere and ongoing enthusiasm for porting Field to Windows, I though we should give it another shot — PortingField.
The information page is up — EmpacWorkshop. Join us in early November.
Added a page on MakingYourLifeEasier.
Inspired by (and we admit slightly needled by) the Rhonda Forever project, we polished the 3d freehand drawing tool in Field. Then we build a binary with it actually turned on.
We think that doodling in 3d and in code simultaneously is a lot more fun than just doodling in 3d alone — and we'd like everybody else to think so to. Documentation and video here.
Added another small example — how to export a PDF in Processing/Field and Field.
Just posted beta 9 to the downloads page. It's a big beta — on the one hand it's so stuffed with new features that probably should be called beta 10; on the other hand it's so stuffed with new features that it probably should be called alpha 9. Give us a hand shaking out the bugs, I'm sure there will be a real beta 10 fairly soon.
In exchange you get the MaxPlugin, OpenCL support on Snow Leopard; UnrollingAndRecording; TypingPlugin; UnitTesting; sensible copy and paste of visual elements; some nice new keyboard shortcuts for manipulating time sliders and a new Java launcher more in line with Apple's recent thinking.
Developers: due to our mercurial repository becoming hopelessly corrupted, you'll have to take a fresh clone of the Field repository.
Very much in the spirit of last night's Max Plugin docs, here is some early documentation on Field's upcoming OpenCL support. OpenCL is very cool right now — and now you can hack on it from within Field, and more importantly, from within Field's graphics system.
Word about Field's upcoming Max Plugin is leaking out. Here's some super early documentation about its shape — MaxPlugin.
Flash, Silverlight, Processing, vvvv and ... Field. Thanks to editor Jens Franke, there's a paragraph (in German) on Field in the inaugural issue of Weave magazine. (Hopefully they'll publish the full interview at some point, otherwise we'll put it online on this site.)
Marc spent 10 days with artist and engineer Nick Rothwell working on the Choreographic Language Agent (a tool for british choreographer Wayne MacGregor built in Field). While hard at work on that we took in all kinds of interesting diversions, that are piling up marked as 'beta 9'. The first of which you can preview here — a unit testing "framework" for Field.
Very much inspired by Nick's work here we have a MaxPlugin — a bridge between Field and Cycling '74's venerable Max/MSP platform — that we are just positively giddy about, but that's going to have to wait just a little longer to announce. If you are a Max/MSP specialist thinking about Field, contact us.
The Field workshop at EMPAC / RPI is now official.
We're also pleased to announce that, with much thanks to the jnaerator the next version of Field will have OpenCL support integrated into its graphics system. Of course, you'll need the upcoming Snow Leopard version of OS X (and a recent graphics card) to get anything from this. But for machines so equipped, we're starting to get substantial amounts of additional processing using this library.
The all new, super-cool, "marking menu" system in Field (coming in beta9, there in the tree).
While working on something unrelated, we found Cheloniidae. 5 mins in Field, a trip down memory lane and an answer to anybody who is looking for something simple and fun to try in Field.
If you track the development tree a new plugin — UnrollingAndRecording — that lets you record what it was you were doing in Field and play it back. Also the extremely fun — TypingPlugin. A command line for Field!
Documentation on Field's internal graphics system keeps growing. Just added BaseGraphicsSystem_FBO. I'd say that we have reached some kind of threshold here where most of the interesting things in the graphics architecture have at least been mentioned on this site. We're pretty sure that everything on this new page works with beta7 and above, but there will be some rough edges. The rest of the things in our documentation queue will probably be beta 9 (or, as always, the development repository).
We're very pleased to announce the first serious Field workshop. This weekend long event will take place at RPI university's EMPAC center — which, if you haven't heard, is the new media utopia in the US right now.
I'm sure everybody involved will get up all kinds of Field related mischief (we've been having a blast with their stereo-capable projectors over the last year). We're going to make sure that Field is in a good spot for teaching and rapid experimentation.
We'll kick off on Novemeber 6 and run through the 7th and 8th. More details to follow.
In other news the repository is in "extreme flux" right now as we commit and polish some of last months bolder experiments — two major new plugins and the beginnings of work on this project here.
YourKit just donated an open source license for their Java profiler to the Field project. Expect speedups.
Beta8 has been posted!
Erm, Apple's latest Java Software Update appears to disable Field (and a number of other Java applications) from launching. Ridiculous! We pay good money to Apple for prerelease software to stop this from happening. Fortunately the fix is easy (and already in the development tree).
Tomorrow whatever is in the tree gets bundled up and called beta 8.
Just added StatsBoxWidget to the documentation on this site. For anybody who has found a little tedious data visualization problem getting in the way of a big interesting data visualization problem.
The dev tree (and the upcoming beta8) contain a few new goodies for those tracking the bleeding edge of Field. A Field specific OscPlugin — not necessarily better than any of the other Java or Python OSC libraries, but perhaps a little better integrated into Field. Several new text editor embeddable widgets are also there.
For the completely unbalanced language wonks out there, we've been playing a little with the wonderful Ioke — so you'll find a new button in the OtherLanguages plugin. It doesn't do much yet inside Field that it doesn't do from the command line.
Since we've fixed some fairly irritating bugs in recent weeks we hope to be pushing out a beta8 in fairly short order — send feedback!
I don't need much provocation to add something to my Field classpath — and ANAR+ provided more than enough. An additional small example here.
The "browse source" section of this website is offline while we figure out how to stop Google's denial of service attack against this site. We're not hiding the source, get it here: InstallingField. The source for Field itself is also included inside the Betas.
Beta 7b — get it while it's still warm.
The graphics system interfaces and documentation continues to get fleshed out — in progress, right now texturing. It's turned out to be a good excuse to polish and document all kinds of shader related things. As usual, it's dev tree only for now. But this burst of BaseGraphicsSystem related activity probably brings this cycle of development to a close. Beta 7 imminent...
Four Loops-related things: 1) it has come to our attention that Loops probably doesn't work on laptops or low-end graphics cards. This isn't unexpected. We're thinking about how to reduce the shader and VRAM requirements. 2) it's also come to our attention that there's a straight-ahead texture loading bug in the current distribution. Now that we'll fix immediately. 3) Unscaled (and thus tightly cropped) footage from the piece is now at http://vimeo.com/4298574 4) Software from the Boston Cyberart's commissioned "remix" of Loops, by Golan Levin, C.E.B Reas, Brian Knep and Sosolimited is available for download at http://bostoncyberarts.org/loops . Anybody want to port Reas's Processing code to Field/Processing ?
Fresh (so fresh it might be broken) in the dev tree — documentation and interfaces for loading FBX files. These are the kinds of files that Maya, MotionBuilder and 3dsMax like to export. We've been using them for complex geometry, skinned characters and motion capture importing for a couple of years now. Finally we've had a chance to clean up the interfaces and integrate them with the BaseGraphicsSystem.
Field beta7 will (and the dev tree currently has) early NURBS support — see ThreeDPLines. Right. Who wants to do some parametric architecture in Field?
How to file a bug report ? See BugReports.
In the dev tree (and the upcomming beta7), the first draft of the 3d on-canvas drawing support — see ThreeDPLines.
While we move slowly through the bug reports and feature requests towards beta7, a small update to LoopsRelease — we now have binary snapshots again. This makes it slightly easier for people to download and install. Still: watch the prerequisites!
Also lightly updated, BaseGraphicsSystem — documentation on the canvas camera.
Asked how we should snap-to-grid in Field (#153), we respond — SnapToGrid. Developers tracking the repository can have this right now; people tracking the binary snapshots need to wait a few days for beta7.
Creeping up on the problem of documentation BaseGraphicsSystem. We've just added a little documentation to show you how to get PLines into the Full screen renderer.
Beta6 is out! We pushed it out before the list of changes got out of control, so not every bug fix made it into this version. Things like the upgrade to the latest version of Jython are just the kinds of things that are likely to be disruptive, so you should consider this beta as a hair more beta-y that normal. We'll certainly aim for a beta7 before a week's passed to make sure that everything settles back down again.
That said, it contains a slew of bug fixes small and large as well as a number of feature enhancements that will ripple out through the documentation in the next few days. I'll also be working through a number of micro-tutorials based on the pieces of code that people have been sending me and posting those on the website as well. If you have anything self contained (or Processing Plugin-y) that you'd like to share, email me with it and I'll polish it a little and put it up.
Thanks, as usual, to everybody's bug hunting, official and unofficial, on-list and off. Keep it coming.
We've also posted a few of the pieces of example code that people have been emailing field@openendedgroup.com to a new page that will grow with simple examples. It's mainly the Processing Plugin for now. Everybody should keep these coming as well — and sign up for the google group!
Despite the outward quiet (OpenEnded has been in residency at EMPAC) things have been busy behind the scenes. Next week promises a beta6 (with upgraded Jython, some significant Processing bugs squashed; a more complete 3d PLine system; and maybe even some JavaFX attention). There also seem to be organizing Field workshops on a rather international scale; starting with St. Petersburg on April 11. And for some more Open Source / OpenEnded attention , we'll be keynoting and presenting work at a show organized around Loops at the Boston Cyberarts Festival April 24th.
A fairly intense week for Field, a beta 5; a day on the front page of the programming section of Reddit; some initial traffic on our Google group. Partly in response to an inbox full of people downloading and trying Field, we've started a Field FAQ.
A bunch of bugs in the Processing bridge have been shaken out (shaken out by the labor of others no less) which will get wrapped up in a beta 6 shortly. Meanwhile we note that the JavaFX people seem to have taken another (and long awaited) look at their interfaces to the outside world. We'll be taking another look at them shortly.
Just back from a week of "west coast" Field lectures and chats. The binary releases are continuing, we'll be dropping a "beta 4", which tweaks yet more annoying bugs out of existence, later tonight. Hopefully we'll now be able to turn back towards some documentation — BaseGraphicsSystem, History in general and OtherLanguages all have features inside beta 4 that haven't been exposed in the documentation.
In the meantime, some new documentation about how to make Field's windows disappear and execute things automatically when it comes time to "install" a finished artwork someplace.
Added another video — this time giving a whirlwind overview of the Processing Plugin. It's embedded both on the main page and on the SimpleProcessingTutorial.
Going through the site it looks like the poor TopologyPlugin had no documentation at all. This was too bad — it's not central, but it completes a number of thoughts found throughout Field. It's also another example of our relationship to other methodologies and paradigms — the more, the better — see TopologyAndControlFlow.
Added overview embedded videos to key pages of this site (see the main documentation page, PaletteOverview and BasicDrawing. We had quite a bit of fun making them — expect at least a couple more in the next two days.
Cosmetic updates and minor tweaks to SimpleProcessingTutorial, TheCanvas and TextEditor to reflect the current appearance of Field.
As a non-beta related treat, the first documentation of AdvancedGraphics — a Plugin that exposes the underlying 3d graphics library that comes with Field. It's a sophisticated beast — all about GLSLang shaders and Vertex Buffer Objects — but it can be given an appealing (to us at least) Python interface. If you are looking for a "traditional style" and pedagogically grounded way of putting triangles on the screen you will be much better served looking at the ProcessingPlugin. However, if you are looking to prototype some new GLSLang-based rendering techniques and need an graphics environment that's hosted in a "real" development language, this might be just the thing for you.
We're back! The repository has been updated once again. If no major bugs surface (and there may well be bugs, the last update to Jython was fairly traumatic), we're going to call this version a beta shortly and wrap it up as a binary.
Our issues with Jython (see below) have almost now been resolved (between patching Jython and patching Field). In the meantime, the first half of some documentation on how to customize the Field canvas and box behavior directly from within Field itself.
Looks like our long awaited binary beta will have to wait just a few more days. We've just integrated Jython2.5 beta 1 that turned out to be rather radically different from their beta 0. The Jython crowd need to fix a few bugs and we need to make sure that everything that was working still works.
One more part of the Processing welcome committee tutorial set: ConvertingAProcessingApplet joins AProcessingTree and the older (and now with out of date screengrabs!) SimpleProcessingTutorial. This tutorial, with seed-code generously provided by friend, colleague, and early Field-tester Terry Pender (Associate Director, Computer Music Center, Columbia University), takes you through the process of converting a Processing applet to Field.
While fairly large documentation efforts go on unfinished and as yet unpublished, some small useful changes: The text snippets list now knows about dropped finder files and can, in addition to offering the snippet of text that's the filename (and the url) also sometimes gives you the code you want to access that file — load an image, extract the PLines from an .svg and so on. The selection manager now has a menu item that wraps up selected items into a temp .fieldpackage file and copies a reference to this file to the clipboard — just ready to paste into iChat, mail, or any other collaborative tool. Also, various memory leaks (mostly in the optimized Canvas drawing code) holding up a beta have been eliminated.
A tiny little, but useful, feature has been added to the text editor — the text snippets list.
Just added JavaFX to the list of embedded languages that Field support (although we confess that we're having a hard time getting it's scripting bridge into a state that's well integrated with Field, it's in a state where you can play with it).
Optimized drawing framework modifications have been uploaded to the repository, and a short piece of documentation on how to extract a little more performance from Field during complex printmaking — OptimizingFLines. If geometry starts doing 'weird' things, let us know. A secret proof-of-concept 3d PLine
system has also been uploaded — architects beware! — but it's too early to even consider documenting.
Inspired by a recent trip that involved spending time with architects we've optimized Field's 2D drawing framework to handle large geometric loads while remaining fully interactive. This work, together with the upgrade to Java 6, allows Field to emit complex PDF's that crush Preview's renderer (but still do actually make it out of OS X's print path). We're tempted to "finish this thought" with a framework built on-top of this for constructing genuinely 3d geometries from inside Field's canvas. While this system will continue be optimized to prefer static geometry rather than animation (and thus is generally quite far from the kind of work that OpenEnded does) we're beginning to suspect that there's a very interesting contribution that Field can make to the generally bland set of existing architectural tools. In any case, the first phase of the these optimizations will hit the repositories tomorrow. The second, "3D" phase, will probably wait until after our Beta, binary release.
A new repository for the Loops "example code". See LoopsRelease for more information.
And the concluding part of this tripartite warning. The version of Field available from public repositories now runs by default on Java 6, and includes the new JSR233 scripting plugin (which, like the Processing Plugin, the Scala Plugin, and a few others are off by default. Turn them on with the Plugin Manager. Which is, coincidently, where you can tell Field to startup in the old Java 5 mode should you be using an incompatible native library. Otherwise drawing performance is greatly improved under Java 6 and the repository has seen dozens of small bug fixed. Time, now, to update some of the screenshots embedded in this wiki to reflect these changes.
This very much follows on from the warning below. One thing that Java 6 also gives us is uniform access to javax.script.*
. We have a working prototype for a JSR-223 language host integrated into Field. This, at a stroke, radically increases the number of programming languages supported in Field — from one and a half (one being Python, the half being Scala. Already we can count JavaScript, Groovy and, rather oddly, Java itself as three more supportable languages. And a whole list of languages (most of which we've never heard of) should be but a few lines of code away.
Python too slow for an inner loop? Simple, code it in actual Java, compile it automatically within Field, and execute it just like anything else you'd execute. Obviously, we're still working through the details of how to access the dynamic environment of Field from the very statically type-checked environment of Java, but early indications are positive. This will drop (as a plugin in 'extras') alongside the Java 6 version of Field shortly.
Warning / Exciting News. The next changeset to hit the development repository will be running on Java 6. This provides a significant speed boost (especially for sheets with large amounts of PLine based geometry) & access to more than 2Gb of Memory. The downside is that it also provides significant incompatibilities with third-party native libraries (Java 6 on Mac OS X is exclusively 64 bit). An experimental changeover has been unexpectedly straightforward, so straightforward in fact that we'll support running Field under 1.5 for a bit — at least while we figure out our own replacements for dependancies on Quicktime and other non-64bit clean libraries.
A trio of pages document the 2d drawing system in Field, how to create geometry, how to craft it's appearance and how to edit it in code. We're adding the remaining functions and approaches developed for Breath but there's now a large chunk of very useful code for advanced 2d print-making and code visualization. Many other pages have had small changes for clarity — check the timeline.
The repository reorganization has calmed down now. For everybody interested in 2d — BasicDrawing is about to get a lot more "reference" style documentation just as soon as we get it proofed properly. In the meantime, how to export PDF's in Field, an introduction to the simple linear algebra library and an updated page on integrating with other apps.
The source repository is very much in flux right now as we begin the commit of the big reorganization. Proceed with caution, wait a bit, or join in the testing effort. In other news, this website will also now render correctly on older browsers running on Windows machines.
Cleaning house for an alpha binary release of Field. You can track the changes that are currently being made right now, AlphaChanges.
Field's Processing plugin has been upgraded to the latest beta release of Processing. We took a moment to fix the incredibly annoying bug #37 which made the whole affair seem much flakier than it was (an what a dark journey into the darkness that is Processing's OpenGL renderer that was). We're very much looking for people to hack on Field/Processing related things. Bug fixes to Fields image processing support, and various minor things that our tracking of Jython's alphas have revealed, complete today's Field commits.
Next: a great swath of cross-cutting documentation centered around Fields use of Python's Generators is now available GeneratorExamples (don't miss the 'extended assignment' documentation at the end); and some more focused documentation on auto-completion in the text editor. All this and the small bug fixes that inevitably happen when you write documentation.
The history ruler is up next for a pre-binary release clean-up and documentation. Also there's a new line number ruler that you can select in the text editor.
As suggested by colleagues at a little Field "sprint" we held in London this month, we've got two things: 1) a much better interface to running visual elements with the mouse: OptionClicking 2) far fewer niggling little bugs with the spline editor, integration with swing, sub time lines.
We continue to track the alpha releases of Jython (they are now at alpha 3) — we've found at least one rather sizable bug there, and it's nice to be able to contribute back. The latest alpha has much better syntax error reporting than the previous builds, but you should still be on the look-out for oddities (especially in annotations and generator expressions).
Finally, we've just committed a first draft of a Plugin manager — something that will let you turn on and off things inside the extensions directory.
The image manipulation plugin got a work over. We now support "Accumulators" — Core Image's main technique for doing iterative things (we also leak less memory now). We've also reworked the error reporting inside Field to be much more useful if you are not looking at a terminal window.
We are begining to move through the list of wiki-pages on this site that are defined but don't actually exist. First up SubTimeSliders — how to create additional markers for executing visual elements on the sheet — hierarchical, code controlled visual execution flow can be yours!
The bug reports continue to come in (and, mostly, get squashed). But two Trac-site updates. Firstly, a revised version of the Field overview pdf has been posted — now with 100% fewer typos and at least 10% more clarity. Also, some documentation for an additional technique for building interactive things in the Canvas out of the 2d line drawing system — LineBasedInteraction.
Finally some documentation on the "rest of Field" — the new palette window.
The documentation sprint begins: first, SwingIntegration — how to integrate a little Swing into the Field environment; second — updated ScalaSupport notes.
In preparation for three Field related projects this summer, Marc's just committed the results of three weeks of on-the-road laptop Field hacking. These changes, from large to small: Field now uses the "alpha 0" of Jython 2.5 — although a shade scary, the Jython people could probably do with the bug hunting themselves. In exchange we get two features that Field has been waiting for for literally years: generator expressions and python decorators. New hooks into the auto-completion in the text editor allow for integration of documentation from various sources (of course, now we need some documentation). A new component class allows Swing components to be drawn and interacted with directly on the canvas — including text editors and complex swing components. Swing with the right Python wrappers can actually be quite pleasant and terse. There have been several small fixes to the Scala Plugin which is now useful enough for Marc to at least begin to learn Scala properly. Finally, Field now registers itself as a .py file editor and automatically imports or refreshes .py files into workspaces. I think we are doing a good job of moving towards a widely useful and documented-enough binary release by the end of the summer.
Goaded by the meetings in London last week, we've completely overhauled the window and "workspace" management in Field. It's always been poorly tested by us — with our use cases seeming to never overlap with everybody elses — and a source of confusion. In any case, the workspace manager is gone; an honest File menu has arrived and tool palettes are compressed into a single window. Everything already feels much more solid, it will be hitting the repositories tomorrow.
Just pushed a medium size commit to the main repository that covers a number of small niggling bugs that were fleshed out in a "Field meeting" in London last week. OpenEnded has been collaborating with Random Dance / Wayne McGregor as part of the "Entity" project, and we've been kicking Field into shape as a platform for a very personal idiosyncratic "choreographer's sketchbook". Expect a) some interesting text parsing features to be added to Field, b) some actual documentation of Field's underlying graphics system and c) a more complete set of Scala features to happen this summer
As work comes to a conclusion on Housebound, we've taken the opportunity to revise the Loops public release. The latest (very large) commit to the Field repository reflects hopefully the final refactoring of Loops into Loops specific code (available as a snapshot here) and code that's more general purpose. But above all, it contains the tweaks to the Loops renderer (which is essentially a different combination of the techniques behind Recovered Light and Point A->B) to get it to run on the new NVidia 8800 graphics cards from Apple. Hunting for the bugs in Apple's OpenGL stack was painful enough that I'm pretty close to saying that all of our interesting rendering is only going to be supported on that card form now on.
Hard at work on the workflow for Housebound — OpenEnded's upcoming short stereo-film. En route, we've found a rather nice, short, self contained, example of Field as a "tool to build tools"— in this tutorial we show how the drawing and text editors can be, with a little code, turned into an experimental color-matching suite. I'm also posting my short code for doing "healing brush" like automatic in-painting.
A short page describing Scala-based success. After much Classloading trouble, the early stage of integration now works.
Spent the day perturbed from my true, stated course of documenting recent work, by an intoxicating possibility that adding support for the Scala language to Field might be quite straightforward. While it lacks a JSR-233 compatible scripting interface (and it's pretty clear that to those driving Scala this is low priority), it's Java integration is at least theoretically tight and we've wrestled its evaluation loop into the kind of state that we need it in. Thus we have a working prototype of a block transform that allows you to write Scala code directly in Field's text editor. It's missing nearly everything (most of completion, syntax coloring, embedded GUI elements and a working _self magic variable) but it is still somehow compelling. Scala is a language that has a really different perspective than Python, and hopefully it will both initiate a cleanup and re-factoring of the text editor code and extend the audience for Field.
A lot's been happing in the last month that's poorly reflected in this news log. Firstly the history format for "versioned properties" seems to have stabilized and the features that depend on this are all working much better. In particular history for copied boxes and pieces of code is now being correctly stored and analyzed. This means that you can write a useful piece of code, copy it to a number of places, change it here and there and then gather all of these multiple edits together together to examine them. But the simplest and most obvious win from this is that you can easily switch back and forth in time for a whole sheet, or a subset of boxes, using the history window.
Also there's a host of cosmetic fixes to the line drawing and text systems, but also some real feature additions, including a lightweight constraint system for expressing constraints between nodes on lines that harks back, in a way that I find very appealing, to Sutherland's Sketchpad system (now that's a dissertation).
Under the hood, we've begun to transition to Apple's new Mac Pro's and their NVidia 8800's — much more impressive GPU's than the previous ATI 1900's we've been using — so in the underlying graphics system for Field there's support there for Geometry Shaders. People with this setup should be warned: there seem to be some significant Apple bugs associated with doing intensive graphics on these cards while monitors have been rotated in system-preferences. Currently Loops suffers from some serious visual artifacts on this card, but we have a workaround implemented, we just need to back port it.
Finally, ScrubberPlugin has been checked in. It's designed to let you add devices that move boxes around, most notably the Connexion SpaceNavigator's that we use at OpenEnded. It's pretty straightforward right now, but ultimately there will be some record and playback features added to it as well. This takes Field one step towards being a live performance system rather than just a live "rehearsal" system.
Our next task for the next week or so returns to this site: documentation and examples.
While the "history" features of Field are coming along, we've been cleaning and documenting a whole host of "small things" and "small bugs". The embeddable-gui tricks are working better than ever (and not just in the text editor: EmbeddingGuiOnCanvas) and we seem to have solved the copy and pasting problems.
The simple Core Graphics bridge has been committed and documented here. The BasicDrawing documentation is also having a little clean-up, to highlight the PDF export options and articulate more clearly how properties work.
Next: now is the time to spend a few days cleaning up the "history" features of Field (some of which remain damaged from the switch from SVN to Mercurial).
Marc has just posted a .tar.zip file of the source for Loops, as shown by OpenEnded Group on the Feb 26th. We'd still like to give it some polish, and some documentation, and some package refactoring before checking it into a repository parallel to field
and workspace
. But as it stands it contains too much code that might be of interest to other people for us to feel comfortable continuing to hoard it.
In preparation for OpenEnded's new stereo-film series Depth, Marc has been bridging Apple's Core Graphics framework into Field. This augments BasicDrawing with GPU accelerated image processing. This ends up looking a lot like the Core Graphics functionality of NodeBox — except we encourage CIKernel's to be written directly inside Field's text editor itself. Expect a preliminary check-in, and a tutorial, around the end of the week.
A good first draft of the ProcessingPlugin has been added to the main repository (inside the /extras directory). We've written a tutorial to help people move over from the Processing world to Field here: SimpleProcessingTutorial. While there are still a few rough edges, as far as we can tell it's ready for some serious Processing experts to come in and give it a good test.
OpenEnded is recovering from the press conference / premier of the Loops Preservation Project with the Merce Cunningham Dance Company. After we've cleaned up the source code to Loops, we'll be posting it (probably as a separate .tar.gz) available here . Already there's a considerable (and considerably interesting) chunk of motion capture and video documentation of Merce's 1999 performance.
There are other ways of tracking Field's development. Consider the Index-By-Date page or the timeline link.