Hybrid Geometries

livio's picture

Hello,

I'm preparing a new project (may be for NIME 2011). Since it's quite "ambitious" for my skills (it's my second in QC) I'd like to ask your advice to start working in the best direction.

Basically I'd like to morph back and forth euclidian and non-euclidian (chaotic, noisy, recursive, ...) geometries. I'd also like to "geometrically transform" solids to particles (force driven, boidsy, gravitating, ...), in a sort of reversible controllable explosion. So I guess I need a sort of "common structure" to describe and render shapes, which seems not to be evident, to me at least..

I've been diving in Particles Tools and Kineme 3D (planning to purchase a licence soon) these last days and learned a lot from examples patches and from your compositions (thanks for sharing!). I'm sure the tools are there, I just have to figure out how to put them together properly :)

Here are some inspirational references: http://vimeo.com/1216602 http://vimeo.com/15395471 http://vimeo.com/8837024

Hope you can point me to some directions to try out.. Thanks!

dust's picture
Re: Hybrid Geometries

you should look at t-linked he does this sort of reversed explosion type of thing your talking about. so its kind of like taking a solid model and turning it into particles.

to do what your saying from an actual solid 3d voxel in qc to a particle is tricky. i have thought of a few ways to do this seeing a cl kernel doesn't write a 3d image in qc you would have to copy your volume data struct from a buffer and use cl converter and mesh creator render volume in qc. then you take that struct and blow it bits with random.

gtoledo3's picture
Re: Hybrid Geometries

Here are some thoughts off of the top of my head:

  • The explosion force in Kineme 3D is "time scrubbable". One can explode an object, and then effectively "rewind" the explosion by controlling patch time on the explosion force. Look at the multi object explosion sample in the example downloads for an example controlling patch time for this force.

  • GLSL shaders can be used to make shapes. If you look in the Xcode QC developer examples, you'll see a Sphere shader and Torus shader. Placing things like particle systems inside of these will make the path of the particles conform to that geometric shape. Sphere and Torus are basic; one can go much further with the principle.

  • Placing 3D objects inside of the GL Tools Polygon mode, set to draw GL Points can make an object look like it is constructed of particles. You can do things like place have a model drawing as points, and the same model drawing fully faceted. Controlling color between the two (eg., fading one to alpha black, and the other to white) will create the effect of a dissolve.

That's kind of the tip of the iceberg.

livio's picture
Re: Hybrid Geometries

Hello George, sorry for this late reply but I'm just back on the project after other professional interrupts :) Thank you for your tips, it seems to be quite a big iceberg putting my nose underwater!

I am following the "GLSL shader way" inside the "GL Tools Polygone Mode", because t-linked approach (thank you Dust for pointing it out, awesome work) it's too "hard coded" for my skills.

So back to Kineme Particle System.. I found a composition of yours from which to start > GLSL Torus Flocking Kineme Particles.qtz

I got some questions which answers can't be found on the forum nor in any documentation I found on the web. BTW is there a place where to understand what all particle objects parameters (ie. omega, theta, ...) are about, how they affect the scene and so on? Maybe a book?

As you suggested I looked for the Sphere shader but can't find it. Where do the Xcode QC developer examples should be? Somewhere on my hard-drive? Sorry for me being dumb :)

Next step.. to morph the conforming geometry into a new one, let's to morph between a sphere and a cube, on which the particles conform to... is there a simple way (let's say putting the two shaders into a magic morphing patch :) or it has to be coded in GLSL?

An apple box full of thanx for you!

Cheers, Giorgio