Mozilla

SAN FRANCISCO -- First-person shooter games don't appeal to Brendan Eich, Mozilla's chief technology guru and the guy who created JavaScript nearly two decades ago. He doesn't let his kids play them, either, he says. But he was so excited on Friday about showing off the potential of a new browser codec called ORBX.js at Autodesk's One Market Street offices here that he began playing Epic's Unreal Tournament 3 "Sanctuary" level in a room of 20 or so witnesses.

As Eich maneuvered somewhat awkwardly through the onslaught of opponents, Jules Urbach, CEO and founder of OTOY, Mozilla's partner in creating the new HTML5 codec, explained what we were seeing. "The app is running 600 miles away, but it's running [here] at full stream," he said.

Eich confirmed the gameplay felt as seamless as it looked: "I don't feel any latency here," he said.

Eich was able to play the game in a build of Firefox Nightly using a combination of the new ORBX.js and the recently released ASM.js and Emscripten tools. To give an idea of the complexity of what's in ORBX.js, Eich said that while it took four days to port the million-line codebase of Epic's Unreal Engine 3 to JavaScript using Emscripten and ASM.js, ORBX.js took four weeks to code in JavaScript and WebGL based on 15 years of OTOY development. Basically, ORBX.js is an enormous leap, based on work spanning two decades.

The future of computing? What made the demo unique wasn't that the game was being streamed from a server without any lag, it's that it was being run in a browser without a plug-in. ORBX.js allows for an uninterrupted, adaptable stream, and it can stream operating system desktops, single-serving apps and high-end programs, or entertainment content.

"The future for streaming video will be this pristine, high-end source, 4K, 8K [resolution], and then we stream that adaptively to whatever you can handle," said Urbach.

He noted that while all five major HTML5-enabled browsers support ORBX.js, Firefox currently has the best implementation and allows for 1,080-pixel, 60-frames-per-second playback. Google Chrome is close, he said, with 1080p-30fps. Internet Explorer 10, Safari, and Opera also support ORBX.js, with varying degrees of implementation and smoothness. It's a work in progress, albeit a usable one.

"ORBX isn't just for streaming video, it's for encoding models," Urbach said. "This technology is very complementary to what Oculus Rift is trying to do." Games; programs and apps; digital models; and movies "will be rendered in the cloud and made accessible to everyone," he said.

"This is Tony Stark stuff," enthused Eich on his blog post about the ORBX.js announcement, referencing the tinkerer/hacker/mechanic alter-ego of Marvel Comics' Iron Man.

Hosting the event was Autodesk Chief Technology Officer Jeff Kowalski, who boldly claimed that the impact of ORBX.js will be enormous. "We want you to be able to do hardware downgrades," he said. "For our customers, up until now they've had to choose the hardware to match the software. And that's not the case anymore with this."

Kowalski, Eich, Urbach, and William Morris Endeavor CEO Ari Emanuel, also at the Friday launch, all agreed that when high-performance software is being hosted in the cloud, then the local platform becomes irrelevant as long as it can handle the stream.

"From the perspective of a commercial software developer, the current state of JavaScript is that we can develop commercial software for it," said Kowalski.

This isn't some far-off fantasy. Adobe debuted the Creative Cloud last year, a server-hosted version of its high-performance Adobe Creative Suite, and Microsoft just did the same when it introduced Office 365.

However, those programs aren't currently streaming with OBRX.js.

Emmanuel, for his part, said that entertainment companies, and especially those that are involved in big-budget film production, will like ORBX.js for more than the watermarking. "Instead of movies costing upwards of $100 million plus, the cost will come down," he said, because companies won't need dozens of hardware rigs to power their postproduction tools. "How much it will come down, I can't say. Instead of 40 hours of rendering, you can do it instantly. That's a huge cost savings."

Hardware is converging, too, Eich said. He pointed to the fact that there are plans for Firefox OS and Chrome OS, the two browser-based operating systems, to integrate USB driver support in JavaScript as WebUSB. "[H]ardware took a wrong turn in the '90s," Eich wrote in a comment on his aforementioned blog post. He lamented the emphasis on "power-hungry cores" but said that's finally being corrected.

ORBX.js lets the streamed-content owner attach both visible and invisible watermarks to the stream. The obvious implication is that entertainment studios will be able to watermark content in addition to DRM (or forgo DRM entirely) -- but software companies will be able to do the same. Emmanuel confirmed that there has been at least one conversation with Netflix representatives about getting them to adopt ORBX.js, and he implied that other streaming-content services "like Amazon" also have been approached.

Problems and questions remain One current roadblock to widespread adoption happens to live in Cupertino. Apple's iPhones and iPads don't support WebGL in the browser, but Eich said he thought that was simply a matter of time. Apple, he said, has two compelling reasons to support WebGL and ORBX.js in Safari for iOS.

"Apple will turn on WebGL at some point. There are 8 million Web developers, and a couple hundred thousand iPhone developers," he said, and he noted that ORBX.js is good for phones and tablets. "It's a 25 percent better compression. It'll be better for cellular bandwidth."

ORBX.js will continue to develop, its proponents promised. On the roadmap in the near future for the codec is WebP image support; 12-bit color, an upgrade from the current 8-bit; full HDR for motion sensors like Kinect and Leap over Web Sockets, and built-in alpha support.

The codec's proponents conceded that while they're looking at hosting with Amazon's cloud service, they don't have a customer pricing schedule. Also not going away anytime soon is support for pay-for-use codecs, like MPEG-LA.

The potential of ORBX.js is enormous, promising a world where apps and even entire operating systems are streamed a la carte; streaming-media formats no longer matter; and smart compression makes the most of whatever bandwidth is available. It sounds great, but we may be on HTML6 or HTML7 before that world arrives.

Corrected on May 7 at 11:30 a.m.: Clarified the comparison of OBRX.js to ASM.js.