something in the way

a tumblog about design + code
Jul 26

Dynamic Touch Interfaces That Build Themselves, with Android, iOS

Today, we note the availability on Android of Control, a WebKit-based touch interface also on iOS.

For visualists and interactive designers, it’s worth paying attention to one feature in particular: dynamic interface creation. Perhaps biased by the musicians who have tended to embrace them, touch interfaces have tended to rely on the static layouts favored by physical knobs and faders. That’s arguably the worst of both worlds: you lose the tactile feedback of physical controls, but you don’t add any of the flexibility of a display.

Control is an open-source application rendered in HTML5, powered by JavaScript and JSON, so it’s capable of anything you can imagine. But Charlie Roberts has already demonstrated how a dynamic interface could work. Using OSC, you can make control layouts on the fly. That could lead to more sophisticated software integration for visual and musical performance, new chances for collaboration and live rigs, and the ability to make an interface on someone’s device in an interactive situation.

We saw the last of these scenarios in the case of the iOS app mrmr, developed by Eric Redlinger. As proof of concept, I and others put together a gallery show using mrmr, at which interactive pieces were able to build interfaces on-the-fly on user’s iPhones and iPads. With Control, those horizons expand, no longer constrained to individual proprietary UI widgets on one platform (like iOS), but cross-platform, Web-based, and dynamic.

The video above I think does a good job of scratching the surface of what’s possible. More on that here:
Control 1.3: Dynamic Interfaces, jQuery integration & more

But dynamic layouts could go in many, many directions. Since this is especially relevant to visual performance, perhaps in modes of interaction not really possible in music, I’d love to hear what readers imagine. And do try Charlie’s app, whether on iOS, Android, or both:
Control

– and if you’re really ambitious, have a look at the source!

Media_httpfeedsfeedbu_betoh
Media_httpfeedsfeedbu_hnxfy
Apr 21

Processing 1.5 Arrives: Android Support, GLGraphics OpenGL Awesomeness

For people coding for visuals, Processing just keeps getting better. And for people who aren’t … well, you might just want to give it a second look, as a growing global army of people who never fancied themselves coders suddenly start typing up new creations. A new release makes mobile development easier and corrects lots of bugs. But specifically of interest to readers here, powerful libraries for 3D help make Processing an intensive tool for creating visuals. With the aid of running of your GPU, they can also deliver eye-popping real-time performance not normally associated with Java.

Processing 1.5

In a surprise release, much of what’s coming in Processing 2.0 this summer is now available in a stable, general release of Processing 1.5. It lacks the new built-in renderer – OPENGL2 – but does incorporate new features for developing for Android and, via the third-party library GLGraphics, you get all sorts of new OpenGL goodies. (Note: Processing 1.5 = 0196. The previous pre-release version, 0195, is worth downloading if you want to play with the new OPENGL2 renderer and its examples. Both are on the download page, and they can be installed side-by-side.)

Most importantly, for anyone publishing to the Web, you need to download this version now and re-export sketches. Applets were seeming to run very slow in Chrome and Firefox 4. (While I vastly prefer the Java version for things like performance tools or installations, I also appreciate the Processing.js JavaScript fork for Web delivery – but this fix does make applets work pretty well.)

New to Processing 1.5:

  • Tons of editor fixes in the PDE development environment
  • An essential bug fix that corrects slow performance when exporting for the Web.
  • Android development support – in preview builds, but now in a stable build. (I think this is still considered a pre-release feature, but it means you can run the stable build to try it out.) Now go make stuff for phones and tablets easily.

Processing 1.5 is a good start, but for me, the live visual workflow isn’t complete without two additional libraries, toxiclibs and GLGraphics. A new GLGraphics update improves integration with both toxiclibs and the new Processing release.

toxiclibs

toxiclibs represents over 270 classes in 7 libraries, some 25,000 lines of code, written by digital artist Karsten “toxi” Schmidt. There’s gobs of stuff in there. The most useful is a basic set of classes for things like geometries, meshes, and 3D vectors which you’d otherwise have to build from scratch, and which are generally built in fairly standard ways. With elegant math, Verlet physics, and color libraries, and wonderfully-usable API design, Karsten gives you all the essentials in a way that will inspire you to use them and make something truly original. (A full tour is probably a good subject for another post. Just ignore the toxi.audio packages; with the libpd crew, I’m working on something with Pd I think you’ll find more useful and stable.)

I had a discussion with one colleague who felt that, indeed, toxi’s libraries are so powerful that people are simply using it as a crutch. That may be true to an extent: people should prominently credit toxi’s work, and to do otherwise is plagiarism. But with proper credit, I feel that standing on the shoulders of someone else’s work can be a good thing. Digging through toxi’s libraries is like going to school for the sorts of math and geometry that you need to learn to understand 3D generation. For many of these classes, involving essential mathematics operations and 3D modeling, I’d have no idea where to start, would spend weeks or months writing something inefficient, and would come out with something that reinvented the wheel. A lot of the techniques themselves in those 27,000 lines of code weren’t developed by Karsten, either: it’s more like seeing the wisdom of a master teacher, assembled from a wide variety of sources and passed on.

In fact, this is a rant that I should probably invoke elsewhere, but to me received knowledge is the essence of any craft. Composers don’t invent new rules of harmony (well, at least, not tonal harmony). Engineers don’t work out the laws of physics from scratch each time they build something.

And most importantly, because all of this exists in code, you can read and modify anything you find. It’s a black box if you want it to be, but I very often dig directly into the code to understand how things work.

There’s a bunch of documentation and a showcase for great work:
http://toxiclibs.org/

GLGraphics

Media_httpcreatedigit_zfojq

All of this, though, brings me to GLGraphics. As I’ve been saying for – gee, years now – GLGraphics is the future of Processing. Now, that’s come to pass: gifted developer Andres Colubri authored the new OPENGL2 renderer that is similarly based on native OpenGL calls, and now runs the Processing Android port and upcoming Processing 2.0.

GLGraphics is separate from OPENGL2, but it’s your best bet for work on the stable Processing 1.5 build. Version 0.95 adds compatibility for that latest release, and adds two essential other features:

  • An example of how to integrate with toxiclibs
  • GLSL shader support, which can in turn be used for complex mesh generation.

See yesterday’s blog post announcing the update:
Processing 1.5 / GLGraphics 0.95

And there should be still more coolness to talk about soon, at least for Mac users, with the availability of Syphon for Processing. Stay tuned on that.

I think I have to hide away in a hole and do nothing but code this weekend. Anyone want to hop on IRC or PiratePad and pass code snippets back and forth?

Media_httpfeedsfeedbu_htpxr
Media_httpfeedsfeedbu_nusgb
Jun 4

SenseWall: Open, Free Platform for Multi-Touch, More; Wants Your Work

SenseWall (preliminary) from Tiago Serra on Vimeo.

Multi-touch walls have been a closely-guarded novelty, but they’re evolving into something else: a real, usable platform that focuses on content and not just gimmicks. In the process, a hard-working community is building richer, standards-based, cross-platform, free and open source tools. The result: faster iteration, broader access of artists to the technology, and soon, hopefully, better and better work.

Tiago Serra writes with his latest project, based on the Community Core Vision project. He includes a call for works that I think a number of CDM readers may want to check out.

I recently developed a multitouch wall called SenseWall, located at a Computer Science and Design university in Portugal.

In terms of hardware, the display has an area of 2.8m x 1.05m and it consists of 2 XGA ultra short-throw projectors amounting to a total resolution of 2048×768. For the multitouch sensing, this is an LLP setup using 8 infrared lasers, 2 PS3 Eye cameras and a custom compiled version of the excellent CCV tracker (ccv.nuigroup.com), giving us a touch resolution of 1280×480.

This installation is an open platform for anyone interested in doing something with it. Although it is a multitouch enabled surface it also has a pair of cameras at the top for computer vision applications, a microphone for sound input, speakers for sound output and an RFID reader (http://www.touchatag.com). So there’s lots one can do with it.

By open platform I mean that our intent is to have college students use it at will, being in class courses or just for fun.
A webapp is being developed by a few students so that anyone can upload their apps through a web interface making them available instantly on the SenseWall. This will be also open sourced once finished on GoogleCode.

At the SenseWall there’s an “app launcher” showing the available applications name, author and date.

My main purpose with this installation is to let pupils learn new HCI concepts and hilight their creativity by giving them the tool to do so. Only if I had something like it when in college

Media_httpcreatedigit_upsjs

I really enjoy you’re work so I’d like to invite you to submit any TUIO (http://tuio.org) based app, or any other app that uses micro/vision/rfid, you’d like to see there, and I’ll be more than happy to send you a video of it.
I do feel that it is also a great opportunity to showcase any artist/designer/coder.

Apr 30

Apple Scores Easy Points Against Flash, But Throws Debate on Openness Off the Rails

Media_httpcreatedigit_yfdah

Photo (CC-BY) Steven Depolo.

Editorial

Misdirection is an art practiced by magicians by which an audience’s attention is diverted from one place to another. What’s brilliant about it is that it’s not a lie. Indeed, the audience has to participate for it to work. We, the audience, watch the right hand instead of the left, because what the right hand is doing seems more interesting. The left hand is still there, in plain sight; if anyone bothered to look, they’d see the trick.

After months of obsessive campaigning, Apple scored the final blow with Jobs’ “Thoughts on Flash”. The firm has reduced important debates over open development, censorship on devices, and the future of Web standards into a simplistic dunking booth contest with Flash as the target. Adobe’s CEO called the debate a smokescreen. Adobe has their own biases; they want to direct attention away from the possibility that their flagship product stands to lose market share in the shakeup over the future of the Web. But that’s Adobe and Apple. What matters more is that the rest of the technological sphere has gotten dragged into a pro-Flash, anti-Flash debate. Watching that devolve over the course of yesterday was painful, and it’s time to say something.

It’s a false debate, because it’s clear that Flash’s role in the future isn’t exactly what it was in the past. Flash has traditionally done two things: it’s been a common-denominator solution for video, and a cross-platform development framework for interactivity, animation, gaming, and other “rich” application experiences. It’s recently done those two things in the absence of any solid alternative. In the browser, the bottom line is that open Web standards are finally able to accomplish many if not most of those goals, not only for video but for interactive animation and drawing. That doesn’t mean the end of Flash development: Flash is used for everything from rich client apps outside the browser to animated television on the Cartoon Network. But it does mean a different landscape.

Focusing entirely on that issue, however – as Apple apparently dearly hopes you will do – misses other, more fundamental issues.

The irony here is, I agree with most of what Jobs said — about Flash. (I expect a lot of you are with me.) But this isn’t just about Flash. It’s not just about the iPhone and the iPad (least of which once you start using “the future of the Web” as the catchphrase.) And it’s what Jobs and Apple aren’t saying that bothers me most. Whether the misdirection is intentional or not, whether Jobs’ thoughts are heartfelt (I believe they are), that doesn’t matter. There’s a danger here of losing the plot by allowing Apple to control the whole debate.

There are serious concerns about whether Apple’s path, limiting the tools developers use and what applications can say, is the right course for digital expression. And there are real concerns about the future of video standards, and whether those will give the Internet the freedom with video that it’s had with text, images, and sound. Each of those issues is far deeper than whether or not Flash sucks.

Talking about Flash, but slamming all cross-platform development

Scoring points against Flash and its issues with reliability and performance is an easy matter. But Apple isn’t just suggesting Flash is a poor alternative. They’re blocking development with other tools, restricting developers from using other tools on their single-vendor store. Apple knows better, developers, what you should do. And Jobs goes further, to argue all cross-platform development libraries, in effect, are bad:

We know from painful experience that letting a third party layer of software come between the platform and the developer ultimately results in sub-standard apps and hinders the enhancement and progress of the platform. If developers grow dependent on third party development libraries and tools, they can only take advantage of platform enhancements if and when the third party chooses to adopt the new features. We cannot be at the mercy of a third party deciding if and when they will make our enhancements available to our developers.

This becomes even worse if the third party is supplying a cross platform development tool.

What does that mean, exactly? When is a “layer” of software “between the platform and the developer”? Jobs’ “Thoughts” still don’t offer an explanation of an issue that has confused and troubled even some of Apple’s most loyal developers. The nearest translation I can work out is that Apple doesn’t like anyone using tools other than their own.

It’s a big deal, too. Complaining about such tools is one thing. But Apple has promised – and delivered on that promise – to weed out even high-quality apps just for the sin of using such tools.

In case there’s any doubt about how sweeping this generalization on cross-platform tools, and how divergent Jobs’ thinking is from actual developer realities, read on:

Adobe has been painfully slow to adopt enhancements to Apple’s platforms. For example, although Mac OS X has been shipping for almost 10 years now, Adobe just adopted it fully (Cocoa) two weeks ago when they shipped CS5. Adobe was the last major third party developer to fully adopt Mac OS X.

The problem is, even Apple themselves don’t necessarily live up to the same standard. It took Snow Leopard for Apple to fully “adopt” Cocoa technology in the OS, and Apple’s pro apps have only just become fully Cocoa-based and 64-bit. Aside from illustrating that Jobs is sometimes unencumbered by reality in his arguments, this raises questions about the underlying thesis, that supporting cross-platform development means that you support a lowest common denominator and nothing else.

Incidentally, while its developers have assured me they’re safe, the logic itself flies in the face of even simple tools for artists like OpenFrameworks, which because of how it’s architected as a cross-platform development tool that could target the iPhone alongside a Linux desktop, or any number of other combinations. That’s just the sort of compatibility and portability I would think you’d want for creative expression and development, but the gist of Jobs’ entire rant in “Thoughts on Flash” is the opposite: proprietary, platform-specific development is always better. Apple wants apps on their platform, and not elsewhere. I can’t blame Apple, but I do have to question whether the rest of us need to accept the logic. Jobs is really clear on this point:

Everyone wins – we sell more devices because we have the best apps, developers reach a wider and wider audience and customer base, and users are continually delighted by the best and broadest selection of apps on any platform.

Of course, “everyone” wins only if they spend their cash at the Apple ecosystem. And there are casualties: while Apple makes a great case against Flash, they have less of a case against tools like the Scratch viewer, a teaching tool that allows kids to develop on desktops using kid-friendly programming schools and run their creations on the device.

Now, if this only applied to tools, it wouldn’t be so bad. Unfortunately, a topic Jobs doesn’t mention at all is why Apple is blocking certain ideas from its store, too.

Talking about Flash, but not talking about censorship

Can you say “slippery slope”? Apple’s “Thoughts on Flash” do nothing to explain how the single-vendor control of the iTunes store has apparently made Apple feel responsible for anything delivered on their device. Yes, it’s true, game systems suffer from the same (often worse) restrictions, though I’m not arguing that’s a good idea, either. The issue is drawn into sharp relief because of the number of apps and number of developers on Apple’s mobile platforms – more so as it appears this could be the future of development. (It’s telling to me that Apple is awarding only iPhone and iPad developers its coveted Apple Design Awards this year at the WWDC developer conference.)

Apple already eroded free speech on their platform by blocking pictures of people in bikinis and other PG-rated, suggestive content. As with any censorship, what makes this a dangerously slippery slope is that it mandates double standards. One bikini app is blocked, while another (Sports Illustrated) is fine. [PC World]

Banning bikinis seems overly Puritanical enough. But we were reminded that free speech is at issue this month with the case of Pulitzer Prize-winning political cartoonist Mark Fiore. The very definition of a “slippery slope” is this: once you begin blocking some things, what’s to stop you from seriously impeding free communication. The fact that the browser remains open to any content you like, including hard-core (or potentially even illegal) porn, only illustrates how pointless this whole exercise is.

If application development is important, and not just what’s in the browser, then free expression in applications ought to be important. And as for the one argument Jobs has made on the subject, that “if you want porn, buy an Android,” here’s an experiment for you. Try searching for “porn” or “naked” on the Android Market. I did, to see if in fact Jobs was right and my Droid had become a smutty wasteland. You’ll find almost nothing there. What is there has, most often, one or two stars and a lot of negative reviews. In other words, democracy wins.

So, Jobs didn’t address the fundamental issues of how development works on his company’s devices. But he did score some points against Flash in the “open” battle over the Web and video, right?

The problem is, he didn’t really address the ongoing concerns about H.264, and the reason everyone hasn’t already adopted the video tag with that codec as a standard.

Talking about Flash, but not talking about H.264’s patent problems or real open standards

Web tags aren’t really open unless there’s a standard underneath for them to serve. Early standards advocates learned this the hard way with GIF, the Graphics Interchange Format. The story goes like this: for years, GIF was adopted as a graphics encoding standard online. Sure, it was patent-encumbered and could potentially result in massive license fees – but it was free at the moment, so why should anyone worry? (Is this sounding familiar yet?) In the late 80s and early 90s, GIF was a free ride, so no one bothered to adopt an open alternative. Then, just as GIF began to peak in popularity, the folks who owned the patented technology, UNISYS, decided to change the rules. It was their right to do that, because they still owned the patent.

Ironically, GIF’s patent was far less dangerous than the patent that covers H.264, because it applied only to the LZW compression algorithm used in writing the files, not decoding them. That meant only the GIF creation tools were really at risk, from 1994 when the additional fees were announced to 2004 when the patent expired. (If you want to brush up, there’s a 2004 reprint of a 1995 story on the topic.

First, it’s important to understand that MPEG LA, the body that licenses H.264/AVC (among other things), represents not one patent owner but a pool of patent owners. Those owners set the license fees and terms. That makes licensing patented technologies easier, but as far as making H.264 the new video standard for the Web, the whole situation is more complex, not less – because any member of that pool could decide to cause trouble before the patents expire, in roughly 2025.

But I digress. There’s a bottom-line question here.

Is it possible browsers, streamers/broadcasters, and users might incur license fees for using H.264? If they did, it could threaten the freedom of video on the Web in generally, which depends on a level playing field for publishers and viewers. It could also be devastating to free and open source video production tools: not only would those tools violate the patents, but it’s possible users of those tools could be liable for fees.

The answer is relatively clear, but only through New Years’ Eve at the end of 2015. From Betanews:

As part of its response late yesterday, MPEG LA delivered a statement to multiple sources, including Betanews, announcing that the rights management firm will extend the period for which it will refrain from collecting royalties for use of H.264 in free streaming video, until the last day of 2015. The term of that royalty-free agreement was due to expire at the end of this year.
“Products and services other than Internet Broadcast AVC Video,” reads MPEG LA’s statement to Betanews, “continue to be royalty-bearing, and royalties to apply during the next term will be announced before the end of 2010.” Internet Broadcast AVC Video is the name of the patent portfolio to which H.264 belongs, when used in the context of streaming.

H.264 licensing body won’t charge royalties for HTML5, other Web streams [Betanews, February 2, 2010]

That’s an incomplete answer, though. We still haven’t seen the 2016-2025 terms, and just as importantly, the MPEG LA is very clear that users could be liable for the use of the codec. From the same article:

But in a direct, personal response to the LWN.net reader that was shared with other members, MPEG LA global licensing director Allen Harkness explained that the fact it doesn’t charge end users (viewers) royalties for downloading H.264 streams, doesn’t mean they should not be licensed to do so. Effectively, someone has to be licensed to produce the videos, and that license does incur a fee. But that license is then effectively passed downstream to the end user.
“While our Licenses are not concluded by End Users, anyone in the product chain has liability if an end product is unlicensed,” wrote Harkness. “Therefore, a royalty paid for an end product by the end product supplier would render the product licensed in the hands of the End User, but where a royalty has not been paid, such a product remains unlicensed and any downstream users/distributors would have liability. Therefore, we suggest that all End Users deal with products only from licensed suppliers.”

By the way, before you get your conspiracy theorist hats on, one of the companies that could wind up paying steep fees is Apple. Apple is just one member in the MPEG LA pool, and its liability (the number of patents for which it would have to pay) could well be greater than its equity (the patents Apple themselves own, which are far fewer in number and smaller in importance). It’s more likely that Apple’s support for H.264 is motivated by practicality, not some desire to cash in on H.264 patents. They’re already paying to be a licensee, and they’re aware of the legal ramifications of using H.264. It’s “the devil you know,” in other words.

Is there an alternative to H.264?

There are many things to like (or even love) about H.264 as a codec, but it’s a stretch to argue that H.264 is the best codec for all Web video.

On this, we can ask Adobe and get a more fair and balanced answer. Adobe added H.264 support in Flash Player 9 and Adobe AIR. If it was the solution to everything, you’d expect it would have been the solution in Flash. So why wasn’t it? David Hassoun of RealEyes Media explained in a Flash 9 tutorial on the Adobe Developer Connection:

So does this new Flash Player support for MPEG-4 and H.264 mean that it will replace the On2 VP6 codec? Absolutely not. The addition of H.264 gives developers greater choice to select the technology that best meets their needs. The current implementation of H.264 does have some limitations, such as lack of support for alpha channel and the inability to embed video into a SWF file. On2 VP6 is a solid, high-quality choice for Flash-based video projects. The On2 VP6 codec is also clear of any licensing issues that may arise with MPEG-LA. (Licensing information can be found on the MPEG LA and Via Licensing sites.) The On2 VP6 codec will remain a consistent and viable option for media delivery—see the On2 VP6 technology white paper (PDF, 140K) for more information. The added support for H.264 simply means that there are now more options and wider spread compatibility for high quality and HD video.

Apologies for my geeky Empire Strikes Back metaphor, but here’s where we’re at: OGG Theora is blasting into space, headed for a losing battle with Darth Vader. “That boy is our last hope,” says the open video movement. “No,” says Yoda, or, erm… maybe Google. Or me. Or Frank Oz. Or something. “There is another.”

If Google were to open up the video codecs it got from On2, the whole debate could change, as I wrote last week. On2’s video codecs may actually, ironically, be better suited to the job than H.264, for some of the reasons above. But most importantly, it would mean that On2 video could become a format that’d satisfy the major browsers and open and proprietary video production tools alike, without everyone risking incurring lots of fees. (One variable to explore would be this codec’s performance on mobile, though I know various parties have considered On2’s stuff as a mechanism for targeting mobile devices.)

But let me be clear: this is not just me wishing I’d gotten a job with ZDNet or going off on some personal vendetta. There are major reasons for the visualist community to care. Both this site and its sister site have long been about online freedom of expression, and about the democratic power of our connected world and its open standards. If we’re going to have the freedom to edit, produce, distribute, and consume video, having proprietary “taxes” along the way is a very bad thing. And this debate isn’t over yet. It also has far, far less to do with Flash than a lot of people currently seem to think.

Right now, though, the news isn’t good. The biggest news this week was largely ignored:

The other shoe: Microsoft and H.264

I’m not optimistic. If I had to bet right now, I’d bet on a patent-encumbered future for video. When I spoke to parties from organizations like the Mozilla Foundation at the Open Video Conference, their biggest concern was time. While the world has focused on Apple and the iPad, the simple truth of the matter is that everyone in the tech world has reached a consensus that the time for video directly in the browser, as part of HTML5, is now. So what everyone has been waiting for is support from the world’s leading desktop OS vendor and #1 browser maker: Microsoft.

I think the battle is over. Dean Hachamovitch, General Manager, Internet Explorer says that Microsoft has chosen H.264:

H.264 is an industry standard, with broad and strong hardware support. Because of this standardization, you can easily take what you record on a typical consumer video camera, put it on the web, and have it play in a web browser on any operating system or device with H.264 support (e.g. a PC with Windows 7). Recently, we publicly showed IE9 playing H.264-encoded video from YouTube. You can read about the benefits of hardware acceleration here, or see an example of the benefits at the 26:35 mark here. For all these reasons, we’re focusing our HTML5 video support on H.264.

So why isn’t Microsoft concerned about the litany of potential license issues above? That’s easy: Microsoft doesn’t need open standards. You’ll need to pay for that license somehow. So why not get locked into their proprietary operating system in the process?

Other codecs often come up in these discussions. The distinction between the availability of source code and the ownership of the intellectual property in that available source code is critical. Today, intellectual property rights for H.264 are broadly available through a well-defined program managed by MPEG LA. The rights to other codecs are often less clear, as has been described in the press. Of course, developers can rely on the H.264 codec and hardware acceleration support of the underlying operating system, like Windows 7, without paying any additional royalty.

In fact, Microsoft is better off if alternative operating systems like Linux and Android incur license fees. It means those operating systems are just a little less free, which erases some of their advantage over Windows.

Is there any hope at all? As near as I can figure, Google is now the only company with the leverage to navigate us out of this mess, thanks to the enormous popularity of YouTube and the growing popularity of Android and the Chrome Browser, plus the fact that Chrome OS is on the horizon. Time is running out, but if (this is a huge if) Google were to open up an On2 codec, then adopt it across YouTube and its mobile and browser lines, then nail implementation so well that it convinced others (particularly Microsoft) to follow. The other likelihood is that even the likes of Microsoft may privately adopt a “wait and see” approach with those MPEG LA terms. If later this year, MPEG LA either plans to hike its rates in 2016, or it doesn’t cover terms all the way to 2025, it might raise the appeal of an alternative like Google’s.

Alternatively, we can hope that the MPEG LA decide to be generous and extend free terms through 2025. If that happened, then even this patent-encumbered video format could become a major tool in the open Web. We’d effectively get the dreamworld Apple has been hinting at: an open video tag with a free video format that looks great and has wide hardware and software support. So the “happy ending”
doesn’t have to exclude H.264.

Mozilla is, in the meantime, in a tough position. Having promised not to support H.264, we could wind up in the weird situation of having to use Flash in Firefox while Chrome, Safari, and Internet Explorer all use HTML5 and H.264. It seems that could change, though, depending on how things play out. The fact that Mozilla has taken the hard line ought to suggest that there is at least some cause for concern.

Phew. There’s absolutely no way to cover this issue in a small number of words. Well, or you could gloss over the issues and pretend they don’t exist, if you’re a tech CEO.

There are other issues left out of Jobs’ “thoughts,” though.

What we can do: think different

Don’t get me wrong. As I said, Jobs’ “Thoughts on Flash” likely mirror a lot of our own. What I’m saying is that we don’t have to limit our thoughts to that debate.

Cross-platform development, freedom of speech in software, video codecs, patents, intellectual-property, Web standards: these are all complex issues. They merit more than simply scoring quick political points against one platform or another. (And yes, that includes even being too quick to dismiss Apple’s platforms and what they do right.)

This isn’t just about the iPad or the iPhone. It isn’t just about Apple. It’s about which debates we have, who frames them, and how we address them.

The point is, what we all see in our Web browsers could depend on the these issues. What the tech community thinks and decides about how development should work, about which freedoms are important for developers and which aren’t, all depend on these issues.

Mesmerizing magic tricks are a good time. But in this case, the responsibility falls on us – not Apple, on us. Fool me once…

Apr 3

Open Source Code Changes Visualized; Results Amazingly Hypnotic

You’ll hear odd cynicism about people working on free software / open source projects. Something like, “well, harumph, it’s not as though a bunch of people will make this stuff in their free time.”

Not only are these folks wrong, but you can actually visualize the contributions to source trees – and the results look spectacularly hypnotic. It’s free software – the music video.

Okay, now, granted, I may get so mesmerized by the results that I’ll just spend time staring at that instead of getting actual work done, but – working too hard isn’t good for you, anyway. It’s an organic high, audiovisuals.

At top, Ryadh Amar sends in a visualization of the excellent, lightweight LXDE windowing environment for Linux. (Actually, I’m inspired to give LXDE a fresh install.) At bottom, a collage of various projects showing that these data visualizations can take on various identities. Gource can support just about any project repository, too: Git, Bazaar (popular on Ubuntu), and Mercurial (recently added to Google Code, incidentally) are available native, and CVS and SVN are available as third-party extensions for those of you kickin’ it oldskool and non-distributed. (Though, really, come join the 21st Century – it’s awesome.)

And Gource can visualize itself. Freaky. It’s all thanks to the ongoing awesomeness of OpenGL.

http://code.google.com/p/gource/

I’d love to see this added to project management so you’d have a sort of live, superb visual to inspire you to keep the code moving forward.

Who knew source code would turn out to be so visually inspiring? (Now I just need a new way of visualizing me writing bad code and then correcting and cleaning it up. I think it could be best represented as a set of stick figures getting stuck in quicksand and hitting each other over the head. Then there could be a big Smoke Monster that represented the Evil Force of Procrastination.)

But wait! There’s more! You can visualize web logs, too. (It works with Apache; I have to see if I can make it work with our nginx logs, as visualizers could actually be very beneficial with the kind of complex data you get in something like a web log):

Mar 12

Magazine Cover Opens Imagined Worlds: Augmented Reality Publishing, Free Code

Boards Interactive Magazine – Walkthrough from Theo Watson on Vimeo.

Augmented reality has inspired plenty of experiments, magazines included – some successful, some failing to get far beyond the gimmick. What’s nice about this work is that it introduces the concept of motion to the typically-static pages of print, and inspires readers to imagine a world beyond the bounds of the page. There’s also an elegant expression of the theme.

It’s all made with OpenFrameworks (again – yes, OF is one of the easiest ways to hook into augmented reality). And none other than Theo Watson was involved.

For the March 2010 issue of Boards Magazine, Emily Gobeille and I worked with Nexus Productions to develop an interactive cover experience called Rise and Fall. Here is a little preview of the experience.

You can download the software and the cover from: boardsmag.com/RiseAndFall

Update: Found out you can buy a copy of the magzine for $7 by emailing – BoardsCustomerCare@boardsmag.com . You can also download the cover as a pdf from the link above.

The project uses the Ferns library for tracking ( cvlab.epfl.ch/software/ferns/index.php ) and the whole project is open source released under the GPL v2.0 . Grab the source code here: boardsmag.com/RiseAndFall

Credits:

Digital Directors:
Emily Gobeille – zanyparade.com
Theo Watson – theowatson.com

Produced by:
Nexus Productions – nexusproductions.com

Sound Design:
MOST Original Soundtracks – m-ost.nl

Software:
Made with openFrameworks – openframeworks.cc
Using the Ferns library for tracking – cvlab.epfl.ch/software/ferns/index.php

Thanks to @wetterberg via Twitter for sending this our way.

Dec 15

Teaser: Processing is Coming to Android

The remarkable thing about Processing on Android is that you can use your (desktop) sketchbook development environment as always, then run on the Google emulator or your device.

Google’s open-source Android mobile platform runs on Java. Processing, the elegant coding language for visualization, art, and media, is built in Java. The marriage of the two, therefore, is one we’ve long been anticipating. Processing’s ability to focus on lightweight, portable implementation is a perfect match for the demands of mobile development. For artists and visualists wanting to make handheld devices and tablets more expressive, I have good news: it’s coming. While not fully implemented or ready for widespread testing yet, Processing is in active development on the platform.

Ben Fry, co-creator of Processing, has been hard at work making Processing run on Android. Interestingly, in some ways Android itself vindicates the direction Processing charted years ago. Google made their platform work based on open-source development tools. They removed parts of the Java platform that would have overwhelmed the limited processing power of handhelds – even as a handful of purist Java developers cried foul. Graphics focuses on lightweight 2D and OpenGL drawing output, much in the same way that Processing strips Java to its bare essentials.

Best of all, doing Processing development for Android promises the same streamlined, sketchbook-like production flow that Processing does on desktop. To create Android apps, you simply set Processing to “Android mode.” (Right now, you have to point to Google’s SDK, but that happens only once and may be removed in future versions.) Hit run, and your sketch launches in the Emulator. Plug in an Android device via USB, and it’ll run on your device. Soon, you should have one-click-export of apps in the way that you do Processing desktop apps.

This also suggests some great possibilities for cheap, handheld devices, installations, and reliable portable devices for visual performance. Sure, right now a lot of Android-powered devices require a phone contract and don’t output video, but a lot of devices slated for later this year are media devices with video output and tablets, too.

Processing for Android is an early work-in-progress. If you’re thinking about playing with it and you don’t know what you’re doing, or you have little patience for bugs and wrinkles, you should wait until the waters grow safer. Right now, the team working on testing the port is intended to be limited, although as someone testing it myself, I can say it’s already a lot of fun and holds a lot of promise for the future. OpenGL support is currently not available, but it’s coming – and I’ll say again, if you want to know what Processing’s 3D future looks like, check out the superb GLGraphics library. Anyone who thinks Processing can’t be fast, or do intensive GPU work, or mix HD video (okay, not on Android, but on desktop at least), check out this library. OpenCL should also be possible soon.

http://android.processing.org/

BIG, BIG disclaimers! Please don’t go testing Processing on Android assuming it’ll work out of the box – for the brave ONLY, at least for now. (That should change very, very soon, but I couldn’t keep the news under my hat any longer.) As the disclaimer says (hilariously):

Do not use this code while operating heavy equipment. Do not rely on this code for thesis or diploma work, as you will not graduate. Do not use this code if you’re prone to whining about incomplete software that you download for free.

A number of us have already begun talking about the possibility of adding libraries to connect Processing’s capabilities to Google’s own APIs for the phone, SMS, sensors, and so on. Sound and synthesis via external libraries should also be possible.

I think Processing for Android is the perfect complement to openFrameworks for native code on mobile platforms. Right now, OF has already been used for terrific work on the iPhone. It’s not quite as user-friendly as Processing for Android for a number of reasons, but it has Processing-derived syntax, aesthetics, and philosophy, and it’s also free and open. For a superb guide to developing on the iPhone with OF, plus some links:

http://www.openframeworks.cc/setup/iphone

OF does not appear to be a practical solution for Android development, not least because Android requires apps to be distributed as Java, and uses Java to talk to all the native APIs. But it’s a good option for some of these other devices, and you can run the two alongside one another in Eclipse if you like, more advanced users.

With OF on the iPhone (and presumably other native platforms in future – Nokia N900, anyone?), and Processing for Android, plus tools like Pd and SuperCollider for synthesis (more on that soon), there’s no reason not to go completely open with portable interactive art on mobile devices.

Media_httpfeedsfeedbu_bbcao
Media_httpfeedsfeedbu_bexfy
Jun 19

Multitouch Evolution: Free PyMT Framework, in Action

Puddle of Life - Darwin Exhibit from Tiago Serra on Vimeo.

Here’s a really elegantly-designed multi-touch table. It uses two really key pieces of open source technology: the Community Core Vision (“CCV”) tracker, formerly known as tbeta, and a lovely framework for coding visuals called PyMT.

PyMT, as the name implies, is a Python-based framework. I’ve gotten to know Nathanaël Lécaudé, a talented artist and coder who was nice enough to put me up a couple of nights while I was in Montreal; he’s one of several core coders. They’re doing a lot to really encapsulate functionality in widgets in a nice way. Features of PyMT include an event framework, specialized widgets for gesture, touch, and layout, and connections to OpenGL, OpenGL shaders, and sound. You can even work with the enduring, evergreen synthesis language Csound using its Python bridge, the oddly-named but powerful Ounk.

Of course, that’s all plumbing. It’s nice to see this applied to something powerful and educational. From the Vimeo description:

"Puddle of Life" is an educational multi-touch installation that was designed for Coimbra’s Science Museum (Darwin exhibit), demonstrating the theory of natural selection, as part of Darwin’s 200th anniversary.

The installation is composed of a round multi-touch table whose surface represents a virtual environment where 4 species of creatures live in. Each of these little creatures have different physical characteristics visually expressed by it’s quantity and/or size: Vision, Locomotion and Fur.

The player interacts with the game by touching the surface. He has to maintain full awareness of his creatures emotions (visually represented by a cartoon like ballon) and using this information to properly choose the mating partners on the control console. This console also allows the user to select the most appropriate descendent from 4 possible mutations, resulting from the reproduction.

The player’s objective is to help the species he controls achieve the highest number of creatures of its kind. Since this world suffers from climate change the player must assure that his creatures are well adapted to this ever-changing environment by choosing the best balance between mating partners and descendants.

The species move in a swarm, but they split when the predator is near. When a creature sees food it warns the nearby siblings and they all run towards it. Of course only the ones who have best locomotion reach it. The vision gives them the ability to see the predator sooner and the ability to see the food further ahead too. The fur is useful to them when the temperature is low but harmful when it’s hot, leading the creature to a shorter lifespan.

The player wins when they reach about 18 living creatures and loses when all of it’s creatures die from cold/hot, predation, famine or old age.

Photos: flickr.com/photos/tserra/sets/72157619458503007/with/3619335559/

Technical Specs:
LLP multi-touch table
CCV tracker - nuicode.com/projects/tbeta
pyMT framework - code.google.com/p/pymt/
Cython - cython.org/
Rabbyt sprite library for pyglet - matthewmarshall.org/projects/rabbyt/
Animation and artwork: Adobe’s AE, Ai and PS with Fasticon.com icons

The project is the work of Tiago Serra and his collaborators, who have also been PyMT contributors (see comments). Great work, gang. We’ll be watching for more.

Media_httpfeedsfeedbu_albzf
Media_httpfeedsfeedbu_reefe
Apr 22

Google O3D: Mind-Blowing Open-Source 3D API in the Browser with JavaScript + OpenGL, DirectX

Wish granted!

Think 3D in the browser will never catch on? Think again. The folks at Google Labs have built an incredible-looking 3D API called O3D. It does just about everything you want, and then some:

  • It’s multi-platform: Mac + Windows + Linux.
  • It can render to both OpenGL and DirectX render pipelines.
  • You can write your own vertex and pixel shaders. You have to use O3D’s own language for doing this, but that actually enhances compatibility, as frustrated shader coders may already know. (See the FAQ)
  • It’s a scene graph, so managing complex 3D scenes isn’t a chore.
  • It has powerful built-in functions like viewports and pickers (plus custom pickers), so you can actually get something up and running in a reasonable time.
  • It has an import workflow with COLLADA, an open standard for 3D assets (and which, incidentally, has support in Google’s own SketchUp).
  • You code in JavaScript, using the powerful V8 engine (developed for Chrome).
  • Gears lets you run offline.

There are already some complaints about “another standard,” but to me, putting together a whole package here and employing other, lower-level standards (JavaScript, COLLADA, OpenGL, DirectX) makes a lot of sense.

http://code.google.com/apis/o3d/

I expect the folks working on Java and JavaFX are busy thinking about the fact that Sun just got bought by Oracle – something I’m hopeful, at least, ensures Sun’s future and is ultimately a good thing. But I hope someone on those teams is starting to get the message: 3D isn’t just something that’d be “nice to have.” It’s essential. And while even most developers likely don’t have a clue about things like custom shaders, having access to customize the graphics pipeline is likewise something ultimately benefits all developers – even if they just wind up relying on someone else’s code. I really do hope this is a priority with the coming development of Java and JavaFX, which could have the power to do these sorts of things. (Heck, Java could even benefit from the code Google just posted.)

On the proprietary side, this to me is a big blow to Microsoft’s WPF and Silverlight and Adobe’s Director. Unlike those products, O3D looks simple, powerful, flexible, open source, and directly programmable with JavaScript.

That’s not to say there aren’t some questions here – and the Java/JavaFX comparison is especially relevant:

  • Another plug-in: You do have to install a plug-in to work with O3D, something that actually isn’t necessary with JavaFX (when it finally does 3D) or right now with JOGL and Java3D.
  • Mobile, or just desktop? My big question I have is what this means for mobile. I’d love to have O3D work with OpenGL ES on, say, Google’s own Android platform.
  • Not Just JavaScript? It would be nice if eventually you could use other languages like Java to program O3D.
  • Sound? Oh, yeah, that. 3D sound is an ideal complement to this sort of scene, and the browser may be a bit constrained in that respect. I’m curious whether O3D might eventually include an audio API. (And yes, that’s where something like Director is still unparalleled.)
  • Making it actually work: Okay, there’s also the fact that I haven’t successfully installed it just yet. Working on that.

(I’ll try to get answers to those questions.)

Oh yeah, and then there are details like the necessity to write your own custom shaders just to add more than one light to a scene – I think this will initially appeal only to folks with some real 3D experience.

But am I excited? Ohhhhh, yes, indeed. O3D itself looks fantastic, and I think this is a sign that 3D times ahead are going to be really fantastic.

And as long as you have the plug-in working and a browser in full-screen mode, you could literally set up an O3D project as a performance / installation tool. O3D visualists? Absolutely. Enjoy.

Media_httpfeeds2feedb_ywscm
Media_httpfeeds2feedb_zhoht
Feb 23

Weekend Inspiration: Cheap Camera + Free Blender Software = Motion in Hours

For further proof that you can make footage in Blender, here’s an example whipped up by Troy James Sobotka. Troy’s approach is one familiar to a lot of us: grab the simplest camera possible, go shoot something, go make something. I think it’s part of what I find appealing about the world of live visualists - exploration is encouraged. The tools in this case:

  • A Kodak Zi6 camera - cost: US$160. (I’m impressed; sure, it’s broad daylight which is ideal for cheap cameras - but it still looks better than what I’ve seen from the Flip.)
  • Blender for editing, effects
  • ffmpeg for export (no capture necessary — thanks, flash memory camera!)
  • Two hours shooting, four hours editing. (Now, if they did it on the day they had a gig, then they’d be a VJ.

I’m not saying you wouldn’t still prefer your fancy pro HD cam and Final Cut, but that’s not the point - the point is, you can make these tools work if you like. And, hey, if I had to choose, I’d save my money there and go buy my favorite VJ software package / more projectors and gear. More details:

The Driblet of an Aphorism: Right Where it Belongs (via)

As a follow-up to why I’m interested in Blender for video editing.

Media_httpfeeds2feedb_fxppk
Media_httpfeeds2feedb_eisnw

Get Updates

Tags

Archive

2012 (6)
2011 (11)