|
Processing: Open Source Language Brings You Closer to Web 2.0
by Razvan Petrescu
The advent of 'Web 2.0' has brought to the fore a focus on the end user experience and the creation of immersive environments on the Internet. The new technologies that underpin Web 2.0, such as AJAX or Flex, offer developers the possibility to create a more user-friendly experience to enhance the social nature of the new Web. While developers embark on the task of learning these new technologies, it is important to recognize that these tools have been available for a long time, yet some of them have been only marginally familiar to the developer community at large.
In particular, a thriving 'Web arts' community has been active since the early days of the Internet, pushing the boundaries of creativity and ingenuity in terms of development. Some of the work of these Web artists, although technologically dazzling,has been of limited mainstream developer interest. However, as high-bandwidth connectivity increases end-user experience expectations, mainstream developers may be able to use a few of these ideas and tools, until now only relegated to the interactive/digital arts community.
One luminary in the computational design field is John Maeda, who has done pioneering work in digital art and education, most recently at the MIT Media Lab. This article introduces Processing, a Java-based development environment originating in the Web arts community, developed by two of John Maeda's students, Ben Fry and Casey Reas, and which can be used to create online 3D content.
3D on the Web
The uses of 3D in Web development are numerous, from games, to simulation, to computer-aided design, to education; dedicated standards such as OpenGL and DirectX have been available for some time. For the Web, several standards are in existence:
- SMIL: a W3C multimedia standard with very limited support for 3D
- VRML
- Adobe Atmosphere: a 3D content creation tool, currently discontinued
- QuickTime: Support offered through the QuickDraw 3D library
- The Java 3D API
- Browser Plug-ins: Specifically for 3D creation applications, like Blender
- Flash Plug-ins: Like Swift 3D from Electric Rain
- XAML: Microsoft's new XML-based GUI technology for WinFX
Java developers in particular have been able to use Java in conjunction with VRML, Quicktime, or Java's own 3D API. Processing is another tool that should be immediately accessible to anyone familiar with Java.

Figure 1. The Processing IDE
What Is Processing?
According to its creators, "Processing is an open source programming language and environment for people who want to program images, animation, and sound. It is used by students, artists, designers, architects, researchers, and hobbyists for learning, prototyping, and production . . . Processing is developed by artists and designers as an alternative to proprietary software tools in the same domain."
Its authors call it a 'language', but Processing really is a set of Java libraries geared towards multimedia developmentincluding 3D. It also provides its own IDE, shown in Figure 1, which hides a lot of the library/classpath complexity from users and which uses the Jikes compiler (originally from IBM, now an open source project available here).
Processing's 3D engine is not based on the Java 3D specification. The source code is available on the project's home page.
New on the Java Boutique:
New Review:
Time Management Made Easy with the Quartz Enterprise Job Scheduler
Why not just use the Java timer API? This open source scheduling
API boasts simplicity, ease-of-integration, a well-rounded feature
set, and it's free!
New Applet:
Reverse Complement
Reverse Complement is a simple applet that converts DNA or RNA
sequences into three useful formats.
Elsewhere on internet.com:
WebDeveloper Java
Lots of Java information on webdeveloper.com
WDVL Java
Thorough Java resource at the Web Developer's Virtual Library.
ScriptSearch Java
Hundreds of free Java code files to download.
jGuru: Your View of the Java Universe
Customizable portal with online training, FAQs, regular news updates, and tutorials.
|