Archive for the ‘Programming’ Category

OpenCL in Cytoscape   Leave a comment

In the the previous post I discussed the integration of OpenCL into Processing by means of its library mechanism. An early version of a new OpenCL-physics library, based on traer.physics, was used to simulate a couple of particle systems in real-time (N-Body and Springs). An interesting application of these new methodologies is to carry out GPU-acceleration of compute operations in Cytoscape. Networks of protein-protein interactions handled in Cytoscape usually involve thousands of nodes and edges. The visualization and analysis of such networks is computationally demanding, and the use of parallel processing on GPUs provides a way to cope with this complexity. So what I did as a new experiment with OpenCL and OpenGL was to use CLPhysics to simulate a force-directed network layout in Cytoscape.

Read the rest of this entry »

Posted April 26, 2011 by ac in Programming

Tagged with , , ,

Real-time experiments with OpenCL, OpenGL, and Syphon   3 comments

This is an exciting time to work with real-time graphics, as the capabilities of GPUs keep increasing in raw performance and functionality, and also because the “GL family” of programming API’s (OpenGL, GLSL, OpenGL ES, JOGL) has been evolving rapidly during the past years in order to give access to new hardware features and devices. One area I have been interested in for some time is General Processing on GPUs (GPGPU). GPUs can allow for major speed-ups in computational problems that are suitable for data parallelization. Originally, it was possible to carry out GPGPU calculations (such as the simulation of a particle system) with the graphics API and writing the computation “kernels” using Cg or GLSL shaders. The major disadvantage of this approach was the need to cast a general computation algorithm in graphics terminology, i.e.: an array of particle positions becoming a texture, the output of a calculation being stored in a color variable, and so on. Despite these complications, many initial GPGPU projects were carried out in this way. I also implemented some simple particle systems for non-photorealistic rendering using OpenGL and GLSL shaders. Today, there are several API’s specifically designed to program the GPUs as general parallel processors, and among the most mature and widely used ones I would mention CUDA and OpenCL. I recently chose to learn OpenCL as it is a hardware-agnostic API aimed to support GPUs from different vendors as well as CPUs and other compute devices. Also, there are already several Java-bindings for OpenCL which are in an advanced stage of development (Jogamp’s JOCL, JavaCL, and JOCL.org). This opened-up the possibility of combining OpenCL and OpenGL in Processing in order to simulate and render large particle systems with full GPU-acceleration. Continue reading for the details (and also for some video renderings made possible by Syphon).

Read the rest of this entry »

Posted April 26, 2011 by ac in Programming

Tagged with , , , ,

Processing 1.5 / GLGraphics 0.95   2 comments

Processing 1.5 was announced a few days ago. This version brings many changes since the last stable release, including the new Android mode to create apps for smartphones and tablets running Google’s operating system. I updated the GLGraphics library to work with Processing 1.5, and so a new version of the library (0.95) is available for download.

Read the rest of this entry »

Posted April 20, 2011 by ac in Programming

Tagged with , , , , ,

Cytoscape and OPENGL2   Leave a comment

In earlier posts I talked about using Processing to create Cytoscape plugins, and also about the new OpenGL rendering engine for Processing, OPENGL2. This engine introduces several improvements over the original OPENGL renderer, and it is already available in the latest pre-release of Processing, 0194. A few days ago, I put together a simple template project for Eclipse that attempts to make writing Processing-based plugins for Cytoscape a little easier. Now I updated this template to use the OPENGL2 engine as the renderer for the plugin. Download here.

Read the rest of this entry »

Integrating Toxiclibs and GLGraphics   2 comments

A recent post in the Processing forum discussed the question of how to use GLGraphics to speed-up rendering of geometry created with the Toxiclibs libraries. Toxiclibs is an open-source collection of libraries for computational design, created by Karsten “toxi” Schmidt. It has been used to create really good work, check the community showreel for a compilation of projects made with it. So in this post I expand a little on this topic of integrating Toxiclibs and GLGraphics.

Read the rest of this entry »

Posted March 28, 2011 by ac in Programming, Software

Tagged with , , , ,

Design a site like this with WordPress.com
Get started