RemixLab

Members Blog


RemixLab Feed Aggregator

Proscene v2.0.0-alpha3 Released

Proscene v2.0.0-alpha3 is out. Download it here and extract it to your sketchbook libraries folder (automatic importing proscene from your PDE is only available for stable releases, currently v-1.2.0).

This release completes the main functionality expected in proscene2 and also focuses on API stabilization. Thanks to collaborations with experimental computational designer Amnon Owed, to whom we’re greatful, we’ve polished the KeyFrameInterpolator sub-system. We’ve also implemented view frustum 2D culling routines (please refer to the new example: TwoD.WindowCulling), thus completing the 2D functionality.

We now enter the beta (sub)cycle which will focus on documentation completeness and bug fixing, to make the upcoming proscene2 as polished as possible.

Proscene v2.0.0-alpha2 Released

Proscene v2.0.0-alpha2 is out. Download it here and extract it to your sketchbook libraries folder (automatic importing proscene from your PDE is only available for stable releases, currently v-1.2.0).

Respect to the first alpha, this release implements full matrix handling in core, making possible to perform all geometry transformations directly by proscene2. Actually, this is part of a more general idea: to make it possible to run proscene2 within other contexts different than Processing. Please refer to the new example Basics.MatrixShader. I hope to give more details here soon.

Currently, we are performing more experiments to decide what experimental stuff will make it into the upcoming cycle. We plan to release a pair or so of more alphas with our results before entering beta stage.

Proscene v2.0.0-alpha1 Released

Today I’m releasing the first alpha of what will hopefully become proscene2. For the impatient, download it and extract it to your sketchbook libraries folder (automatic importing proscene from your PDE is only available for stable releases, currently v-1.2.0). Even though the library has almost been completely rewritten from the ground up, you will find most of the current examples with some minor changes, plus a whole bunch of new ones. There’s also a new project home and its code is now kindly hosted at github. Read on for some more details.

Motivation

Some years ago Proscene was firstly designed to ease interactivity of 3D Processing scenes through standard input devices: mouse and keyboard. Then at some point when we noticed that some of you guys were interacting within your sketches using “non-standard” Human Interface Devices (HIDs), we decided to add some basic support to them, but the code never really makes it to Proscene’s core: the iFrame class hierarchy. The reason for that being that iFrames and (standard) input events were tightly coupled. Our first Proscene design also lacked providing means to interact using a touch device, mainly because back in 2010 when it was first released, there wasn’t a Processing “android mode”. On the other hand, as with any other Processing library, publishing a sketch online was a matter of exporting it as a java applet. However, this is no longer the case and, as most of you probably know, Java-Script (JS) has almost ended up replacing java applets in Processing2.

Challenges for the Proscene2 cycle

  1. Add 2D Scene mode (e.g., size(640, 360, P2D); scene = new Scene(this);). Yes, it’s not part of the above motivation, but that would be cool ;)
  2. Allow adding a new HID to interact with a 2D or 3D scene as simple as possible, without hindering the customization flexibility as it is found with standard devices.
  3. Support other Processing modes such as JS and/or Android.

and while it has been progress for the third challenge, this release only covers the first two of them.

Approach

  1. 2D interactivity required scaling to be added to iFrames which are now defined by their position, orientation and (now) scaling. As a result, moving the viewpoint around, picking and manipulating objects, adding keyframes to a camera path, etc., are all now possible in 2D too.
  2. We completely decoupled the handling of HIDs from the set of actions (all sorts of iFrame manipulations) supported by Proscene, by defining a set of virtual events (called TerseEvents) which represents an interface between them. An important TerseEvent specialization is a MotionEvent which is defined according to its degrees-of-freedom (DOFs), making it particularly suitable to applications requiring all sorts of kinematics computations, such as those involved in iFrame manipulations. Adding an HID thus “only” requires reducing hardware input events to MotionEvents, from which all Proscene actions are now implemented.

Expect more technical details regarding Proscene2 and its new package structure with the next pre-releases.

Current status: why we call it alpha.1?

  1. JS mode: work-in-progress.
  2. Examples documentation: mostly missing. However all the examples seem to run fine here (archlinux and Processing-2.1b1).
  3. API docs: broken and incomplete.
  4. Advanced examples need more polishing.

This release is mainly aimed at testers and enthusiasts that wanna try the new features from perfectly well undocumented examples ;)

Acknowledgements

Thanks to Eduardo Moriana and Miguel Parra for their contributions with the TUIO-based touch and kinect interfaces, respectively.

Dome Projection

I have been interested in projection on spherical domes for a while, but never had the chance to experiment on an actual dome. This situation changed after I met Dave Pentecost a couple of years ago. Dave is an advocate and practitioner of the use of digital domes in education and art, and has been documenting his […]

Processing 2.0 Is Out! Processing 2.0 Is In!

Yesterday was a very important day for the Processing project, as a new stable version, “the 2.0″, has been released. This release is the result of the hard work of a small team of volunteers over the course of the past two years, plus the fundamental support and contributions from the entire Processing community. For […]

Shaders in Processing 2.0 Beta

Processing 2.0 beta was finally released a couple of weeks ago, with the 2.0b3 version being the latest release in the beta series at this time. The new shader API described in the previous posts (1, 2, and 3) received some tweaking and cleaning-up, so the examples mentioned earlier might not work properly. Check below […]

Shaders in Processing 2.0 – Part 3

This is the last part of a series of posts about the new shader architecture in Processing 2.0. This post focuses on how to integrate low-level OpenGL calls with the standard Processing API. This integration has been possible since very early releases of the 1.0 branch, and allowed users through the use of OpenGL functions […]

Shaders in Processing 2.0 – Part 2

The new capability of loading user-provided GLSL shaders into Processing’s P2D and P3D renderers opens up the possibility of customizing all the rendering operations in Processing, as well as of creating interactive graphics that would be very hard or impossible to generate otherwise. For OpenGL web applications, WebGL supports (only) programmable pipelines through GLSL shaders, […]

Shaders in Processing 2.0 – Part 1

The new OpenGL renderers in Processing 2.0 (P2D/P3D) rely extensively on GLSL shaders. Although in most common situations the use of shaders is invisible to the user, Processing includes a new PShader class that allows to apply custom shaders to the drawing of the sketch. This post describes the shader architecture in Processing 2.0, and […]

OpenGL in Processing 2.0 Alpha 5

The march towards the 2.0 version of Processing reached an important milestone with the alpha 5 release, available for download since last Friday. The detailed list of changes is here, while the wiki offers a more in-depth discussion of the new features and ongoing changes. A major update in alpha 5 is the inclusion of the […]

A Couple of GSVideo Tips

GSVideo is a Processing library I have been working on for almost four years now (!). It improves video support in Processing by using GStreamer as the underlying multimedia toolkit. The latest release is 1.0.0 and it should be used exclusively with Processing 1.x (the alpha releases of Processing 2.0 already include a simplified version […]

Syphon Client Working in Processing

Syphon is an OSX framework to share frames between applications. The authors of Syphon, Tom Butterworth and Anton Marini, made it very easy to create Syphon plugins for other languages, frameworks, VJ’ing and mapping tools, etc. So a while ago I wrote a simple Processing library that allowed to send frames out. This was quite […]

OpenCV 2 in Processing

Xavier Hinault recently released a new computer vision library for Processing, based on JavaCV and OpenCV 2: JavacvPro. This is a great contribution to the community, since it appears that the development of the original OpenCV library for Processing has stalled, without moving beyond OpenCV 1.0 support. JavacvPro is based on the very solid JavaCV wrappers […]