RemixLab Feed Aggregator

Proscene v3.0.0-* Release Notes

Proscene-v3 is currently under development. Some (quite stable) beta releases are found here. Release notes are also maintain there. Please note that the latest release can always be downloaded automatically through the Processing Development Environment (PDE) contribution manager.

Proscene v2.0.5 Released

Proscene v2.0.5 is out. It should be possible to import/update it directly from your PDE. Otherwise download it here and extract it to your sketchbook libraries folder.

Changelog

  • Most of the examples have been simplified to better follow Processing style and conventions.
  • Fixes a bug in the KeyFrameInterpolator when restoring a position within a path having a single keyframe.
  • The PointUnderPixel example is back, thanks to the discussion that’s going here.

Proscene v2.0.4 Released

Proscene v2.0.4 is out. It should be possible to import/update it directly from your PDE. Otherwise download it here and extract it to your sketchbook libraries folder.

Changelog

  • Adds few remixlab.bias.agent.profile API improvements missed in the previous release. Methods holding the old syntax have been marked as deprecated

Proscene v2.0.3 Released

Proscene v2.0.3 is out. It should be possible to import it directly from your PDE. Otherwise download it here and extract it to your sketchbook libraries folder.

Changelog

  1. Many examples have been improved. For instance, those focusing interactivity to a particular Frame from the scene.mouseAgent(), such as Frame.FrameInteraction have been simplified.
  2. The following (missing) functions were added to the Scene: isMouseButtonActionBound(Target target, DOF2Action action), isMouseWheelActionBound(Target target, DOF1Action action) and isMouseClickActionBound(Target target, ClickAction action). The Eye.CadCamera example illustrates them.
  3. The remixlab.bias.agent.profile API has slightly been changed to be unified across all its classes taking the remixlab.bias.agent.profile.Profile base class as a model. Methods holding the old syntax have been marked as deprecated, e.g., KeyboardProfile.shortcut(), KeyboardProfile.isShortcutInUse(), KeyboardProfile.isKeyboardActionBound(); use KeyboardProfile.binding(), KeyboardProfile.isBindingInUse(), KeyboardProfile.isActionBound() respectively, instead.

Proscene v2.0.2 Released

Proscene v2.0.2 is out. It should be possible to import it directly from your PDE. Otherwise download it here and extract it to your sketchbook libraries folder.

Changelog

  1. Fix for a ZOOM_ON_REGION action bug that appeared when the action was triggered during a mouse drag and wasn’t started at a mouse press.
  2. New example Timing.AnimationHandler which illustrates how to add an animation handler function to the scene.

Proscene v2.0.1 Released

Proscene v2.0.1 is out. It should be possible to import it directly from your PDE. Otherwise download it here and extract it to your sketchbook libraries folder.

Changelog

  1. API changes:
    1. remixlab.dandelion.core.Constants.WheelAction has been renamed as remixlab.dandelion.core.Constants.DOF1Action. The former has been marked as deprecated. The change should be reflected in all scene mouse wheel methods.
    2. remixlab.bias.core.EventConstants has been removed. Modifier constant values have been moved to remixlab.bias.core.BogusEvent. Use PApplet.LEFT, PApplet.CENTER and PApplet.RIGHT to refer to mouse buttons.
  2. New example Frame.FrameAPI added. The example illustrates the powerful Frame API used to convert points and vectors along a frame hierarchy.

Finding Correlations in Complex Datasets

It is now almost three years since I moved to Boston to start working at Fathom Information Design and the Sabeti Lab at Harvard. As I noted back then, one of the goals of this work was to create new tools for exploring complex datasets -mainly of epidemiological and health data- which could potentially contain […]

Proscene v2.0.0 Released

Proscene v2.0.0 is out. Being a stable release, it should now be possible to import it directly from your PDE. Otherwise download it here and extract it to your sketchbook libraries folder.

The library aims at providing interactivity to Frames (coordinate systems) allowing picking and motion control of objects, including the Eye, which in 3D is referred to as the Camera. Version 2 introduces a new library design supporting all the features found in version 1 plus some others. Perhaps the three key new features are:

  1. Cross-platform support: the new library architecture separates the core functionalities from the language/platform where target applications are to be run. ProScene may be regarded just as an interface between that core and Processing. Details may be found here. The Demos.MatrixShader example shows a taste of it.
  2. Support to all sorts of interaction mechanisms, including the standard mouse and keyboard, but not being particularly tie to any of them. i.e., it’s device agnostic by design. The examples of the Input section illustrate the approach.
  3. Support for 2D as well as 3D Processing renderers. Many of the examples are available in both cases.

Combined, features 1. and 2., represent the foundation to implement a wide range of setups ranging from simple to very complex ones. For instance, we already began a ProScene Android port, which is currently taken place at its own fork. We hope to integrate it back upstream once TouchEvents are directly supported in Processing. We also plan a first release of the Android port soon, so please stay tuned. In the mean time, have a look at the examples.Demos.Android2DOF,examples.Demos.Android3DOF which only require the Android-mode of Processing to run. We also implemented a kinect interface to control the camera on top of that foundation. The demo may be found at examples.Demos.Kinect5DOF and the gestures implemented to control the camera here. Finally, we hope that the Version 2 cycle will see the first Java-Script port taking the most out of our approach.

This release also includes additional examples illustrating most of the new features. We are confident that a learn-by-example methodology is the main (and most entertained) way to get use to them. The API has also been thoroughly reviewed and fully documented.

Happy hacking!

Acknowledgments

Thanks to Eduardo Moriana and Miguel Parra for their contributions with the TUIO-based touch and kinect interfaces, respectively. Thanks to experimental computational designer Amnon Owed for his collaboration with polishing the KeyFrameInterpolator sub-system. Thanks to Jacques Maire for providing most of the examples found at the contrib section. Thanks to Andres Colubri for his continuous support and thorough insights. Thanks to Victor Forero who is developing the proscene Android port. Thanks also to all ProScene users whose sketchs and library hacks always amaze and inspire us.

Shader API in Processing 2: An Updated Reference!

Processing 2.0 was released almost a year ago, and introduced many exciting improvements in several areas. Among those, a new OpenGL renderer with GLSL shader support. Since that time, the shader API – defined not only by the new functions in the Processing language to load and run shaders in a sketch, but also by […]

Proscene v2.0.0-beta3 Released

Proscene v2.0.0-beta3 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 introduces the first proscene Android port thanks to Victor Forero and also improves the API docs. The port is taken place at its own fork which we hope to integrate it back upstream once it is ready. The related zip file may be found here. Here’s a proof-of-concept example illustrating how to control the Scene using DOF2Events:

check the code here and the related apk here.

Proscene v2.0.0-beta2 Released

Proscene v2.0.0-beta2 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 fixes a nasty bug introduced in the previous beta which made the scene dissapear when dragging with the mouse center button. Thanks to Amnon Owed for reporting it. We encourage all Proscene2 users to upgrade to this version.

Proscene v2.0.0-beta1 Released

Proscene v2.0.0-beta1 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).

The new API has been thoroughly reviewed and documented and may be considered frozen (unless something unexpected requiring a fix happens). Check it out here. We are greatful to Jacques Maire for contributing the new Proscene logo code which is a torus solenoid.

The new library architecture comprises the following packages:

FPSTiming

A single-threaded timing handler providing timers and animators. The package may be run stand-alone and it’s provided in its own tree.

BIAS

An input handler providing means to translate event input data into high-level user-defined actions. The package represents the new Proscene event back-end, but it may be run stand-alone and it’s provided in its own tree too.

Dandelion

Package implementing all sorts of (motion) actions on Frames (coordinate systems). Dandelion depends on both, FPSTiming and BIAS.

Proscene

Package holding a single class (the Scene) which represents an interface between Dandelion and Processing.

Although the (high-level) Scene API has been re-factored, Proscene1.x users may stick to it and feel at home. Most of the examples ported from Proscene1.x look even simpler now. They all have been re-organized reflecting the new structure to attract those willing to digg into the inners of the new architecture.

Expect for one or two more betas before the final release. We plan to improve the docs, particularly that of the examples. Please report any bug or issue you may find and help us make the upcoming proscene2 as polished as possible.

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 […]