Particle Collision Help

mst1228's picture


I am trying to obtain something similar to the application in the video below:

Right now, I'm focusing on just the particle system and collision with the logo. I've attached a VERY basic example of what I am having trouble with. (You might need to change the path to the 3d object in the composition after opening, it is currently a direct path on my local file system.)

I have a couple of questions at the moment: I have successfully loaded the 3d object and created the particle system and setup the 3d object to be a collision object with the particle system. However, it seems like the particles are colliding with the object much to early. Almost as if the object was higher on the screen than it actually is. Any idea why that might be happening? The 3D object used for collision is a .stl file I exported from Google SketchUp.

Secondly, is it possible to have the particles collide with themselves? I haven't tried using 3d objects as particles, but maybe that could be something?

Sometimes the particles go behind the 3d object altogether. Do I have to change a Z location value somewhere that I'm missing?

Finally, I have concluded that the final objective really doesn't have anything to do with 3D. It will be a 2D plane, and perhaps the same goal could be accomplished much easier a completely different way.

Any help would be appreciated, Thanks so much.

Quartz Composer Physic | Collision

biro's picture

Hello everyone, I'm trying to simulate a physic system with collision detection in quartz, but with no results.

First thing first. I've downloaded the ParticleTool from the download section, with no results. Quartz is unable to find the tool in the library. (i've a mbp with os x 10.6.7 and the 0.3 version of particle tool) Despite this, i've decided to try with javascript (i'm feeling more comfortable with javascript or ActionScrip, and i found a lot of examples for them)

the question is: How can i do that with quartz? and if there's no way to make ParticleTools working on my mac, how can i do it with javascript?!

and why did apple made no user manual about quartz?! :(

Thank You so much!!!

Souped up Struct Environment & Structure Environment in Reverse - Obtaining all info in Macro with Structure Output Environment

Proposal: "get" objects that could get vertex/normal structure info post render/transforms/rotations, for Mesh/OpenCL based renderers, or even better, standard objects as well. In addition, other info about the state of the patches in a structure would be useful.

What could happen is that Render patches could get draped in an environment that's function is to provide a structure output with each Render patch inside of the macro being represented as a separate structure key in the output structure of the Environment patch.

The structure key names would correspond with each renderer's already existing key name (the one you see by hovering over the patch), enumerating structure by layer order of Render patches, with the post-render Vertex (and normal?) info of the Render patch enumerated nested inside of that keyed object. Again, this means the environment patch would convey the vertex and normal values post transform/rotate/scale on the renderer patch via a structure output on an environment that wraps one or more renderers.

Something like a clear, if on layer 1, would show up as index 0, with a keyname "clear", and possibly structure info that described the rest of the state. A Sprite on the next layer would be index 1, have a key of Sprite_1, info about the coordinates of each of it's corners, and perhaps all other info about the state of the patch.

By being able to easily obtain the vertex info of objects post scale/transform/rotation/render, we can create events that are dependent upon collision between objects, bar objects from touching one another, etc. In general, being able to read all info about the state of a macro via some kind of structure output on the macro just makes good sense, and it's sort of surprising that the functionality isn't there, after thinking about it - trying to do something ultra easy in another language tonight made me think of how this would allow for many different functions, and is a pretty straightforward and QC-esque way of handling it.

So, like a image broadcaster or spooky, but an environment that can hold consumers and have a struct output, that provides the scene structure with additional info provided by calcs of vertices, etc that the User gets to avoid (or have some real method of obtaining at all, really). This patch wouldn't "do anything", it would be for obtaining info.

ALSO, it would be great to be able to pass arbitrary structure data to a souped up GL Structure Environment that would work in a similar way (probably a separate patch). If wrote a keyed structure that corresponded with all of the Key names of the patches inside, as well as input key names, transmission could happen to those patches without even noodling anything up, if I plugged that structure into an input port on the Structure macro environment.

ALSO ALSO, iteration/duplication could happen inside of the environment by hooking objects that are like Iterator Variables to patch time on things, except the number of iterations would be specified on THAT patch, not the actual environment.

Perhaps one patch could perform both functions.


I've discovered another near-impossible weakness in QC - the ability to use a mouse cursor (or any coordinate) to select arbitrary objects. This can be done pretty easily in javascript if there are only a few objects that are the same size, but if they're all different sizes and there are many of them, it's very difficult to tackle.

This would probably be a prerequisite for the GUI widgets etc.

In a more general form, collision detection might be handy to solve this...