Same Old Stuff (but still nice)

…but this time, with proper lighting.

And a low-res quick video-grab. Sorry about the pause at the beginning. I can’t be bothered to install QuickTime 7 just so I can trim the beginning off the clip.


5 Responses to “Same Old Stuff (but still nice)”

  1. 1 Obscure
    October 20, 2009 at 6:58 am

    Can you describe what you’re doing here? Or share the source?

  2. 2 toneburst
    October 20, 2009 at 8:37 am


    It’s based on parametric surface equations. The idea is that you take a flat grid, and apply an equation to each point, so that the 2D grid is bend around into a 3D form.

    This is an extension of the idea whereby multiple grids are used, with each grid offset and scaled by different amounts, so you get this fragmented look.

    It’s not a new idea, in fact. Members of the vvvv community have been doing this for a long time, and vvvv makes it easy because of the ‘spreads’ concept which is used throughout the program. It’s always been a bit trickier to achieve in Quartz Composer though, and so has been something of a holy grail to me for a while now.

    This particular implementation uses the new OpenCL patch in QC to generate the geometry, which is then rendered with simple per-vertex lighting.

    Hope this helps explain what’s going on.


  3. May 31, 2010 at 3:02 pm

    I never got a chance to take a look at this until today (at least I think it’s this one – the VDM OpenCL?)… on my system, it doesn’t run correctly (I have the same laptop as you, and the latest dev seed).

    In the log, I get:

    [10:54:59.218] Execution failed at time 0.000
    [10:55:14.175] : Error creating output stream for index 0
    [10:55:14.175] : Failed executing kernel __kernel void main(__global uint *indices, uint count)
    int tid = get_global_id(0),
    x = tid îount,
    y = tid / count;

    if (y==0) {
    if (x<count-1) {
    indices[2*tid] = x + y*count;
    indices[2*tid+1] = x + (y+1)* count;
    } else {
    indices[2*tid] = x + y*count;
    indices[2*tid+1] = x + (y+1)* count;
    indices[2*tid+2] = x + (y+1)* count;
    } else {
    if (x==0) {
    indices[2*y-1+2*tid] = x + y*count;
    indices[2*y-1+2*tid+1] = x + y*count;
    indices[2*y-1+2*tid+2] = x + (y+1)* count;
    } else if (x<count-1) {
    indices[2*y-1+2*tid+1] = x + y*count;
    indices[2*y-1+2*tid+2] = x + (y+1)* count;
    } else {
    indices[2*y-1+2*tid+1] = x + y*count;
    indices[2*y-1+2*tid+2] = x + (y+1)* count;
    indices[2*y-1+2*tid+3] = x + (y+1)* count;

    Global Dim (0) = 0, 0, 0
    Local Dim (0) = 0, 0, 0
    Input Arguments:
    Output Arguments:

  4. 4 bLackburst
    December 12, 2011 at 5:11 am

    This is so damn cool.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s


  • RT @qikipedia: "Anyone who is capable of getting themselves made President should on no account be allowed to do the job." DOUGLAS ADAMS 2 days ago
  • RT @_psonice: @johnreppion Did they really put Paul Nuttal's orgasm face on the bus? That has to be photoshopped. 1 week ago
  • RT @_psonice: Also happened by Lacy's Caves. Good spot. Path was washed away further up, nearly lost a bollock to barb wire going round. Wo… 1 week ago
October 2009
« Sep   Nov »


Blog Stats

  • 470,063 hits

%d bloggers like this: