# ICE Nodes Reference Library: Geometry Queries

##### By Sunder Iyer
In this tutorial, we will be taking a detailed look at each of the Geometry Queries nodes found in Softimage's Interactive Creative Environment. Software required: Softimage 7 and higher.
###### Course info
Level
Updated
Sep 25, 2008
Duration
55m
Introduction and Project Overview
ICE Nodes Reference Library: Geometry Queries
Description
Level
Updated
Sep 25, 2008
Duration
55m
###### Description

In this tutorial, we will be taking a detailed look at each of the Geometry Queries nodes found in Softimage's Interactive Creative Environment. Each video in this course is a self-contained tutorial centering on one of the nodes found in ICE within Softimage. This means that these tutorial can be viewed in any order you wish, allowing you to jump straight to the content that is most relevant to you. These tutorials will take a detailed look at each of the nodes found within the Geometry Queries section of ICE and we'll learn how they can be used to speed up our workflow. Software required: Softimage 7 and higher.

###### About the author

Originally from Lagos, Nigeria, Sunder has made great headway in both the interactive game design and 3D animation worlds.

###### Python in Houdini
Intermediate
43m
Sep 17, 2009
Section Introduction Transcripts
###### Section Introduction Transcripts

Introduction and Project Overview
The Basic Collide node will check if a moving point has collided with its static order deforming geometry. Keep in mind that point clouds and curves do not serve as valid geometries to check for collisions with using this node. So now let's see what we need to do to get this node to work on an essential level. We're going to create a very simple particle simulation. So let's go to Model, Get Primitive, Polygon Mesh, Grid. Let's make this grid a little bit bigger, so I'll do 32 by 32. Let's take it, raise it up and now let's emit some ice particles from it by going to Simulate, Ice, Create, Emit Particles from Selection. Execute this command and a new point cloud will be made that will have ice particles emitted from this surface here. If you have the particles selected and you hit the Update button, you'll see the network in here inside of the ice tree. I want to go in, collapse this node, press Control + R so I can just move it a bit and now you can do certain things like you can double click this node, change the color for example and now you'll have white particles. Right now they're drifting upwards. You can always pull them down by using Add Forces nodes. I'll go ahead and just simply rotate this the other way around so we can have the particles flowing downwards. Alright, now if we were to create some kind of terrain or landscape, these particles would probably collide with it and maybe stay there, or they might die upon contact. In either case, we'll need to check for collisions using the Basic Collide node. So drag and drop that into your ice workspace and now we need to make at least three connections in here to get this to work. We're going to need an obstacle, so let's build it. I'll do this from a Surface Grid so let's go to Get, Primitive, Surface, Grid. I'm going to take this and scale it out a little bit, it was 32 by 32. Close that off. I'm going to go into Shading mode. I'm going to hide this grid up here because it's no longer necessary. The simulation will work with it hidden and I'm also going to hide the reference grid by tapping the G key. Alright, let's modify this so we can give it some kind of a relief feature. So hit the T key to enter Tag mode, grab some points if you want, raise them up, and then you can grab some other points, pull them downwards like so and this will do the trick for now. Now we need to plug this in as the obstacle. So with it selected in the viewport, hit the F3 key, drag and drop the grid name from any explorer onto your ice graph and connect the value into the obstacle. Alright, now this is not going to work until we have the start position provided and we can get that using the current point position of each one of these particles here. To get this information, we're going to need to use the Get Particle Position node, so go ahead and grab Get Particle Position and connect the Position output into the Start Position input of the Basic Collide node. Now if you were to run it at this point, the simulation will still not work. You need to ensure that you have the movement value provided. There are a few ways by which we can get this movement value. One method is to simply get the particle velocity. So grab the Get Particle Velocity node. Keep in mind that you don't want to plug it immediately here, you want to plug it in as a ratio or a version or a value based off of the simulation step, or per frame. To get this, we'll need to multiply the velocity with the simulation step node, that way we can get the proper movement value as expressed as a unit of each frame. So grab in two more nodes. You need to grab the Multiply by Scaler node. You can grab it from any section you want, it's all the same preset, or the same node. And then we're going to need to get ahold of the Simulation Step so type in the letters to grab the Simulation Step node. There you have it. Connect the Get Particle Velocity as the value and the Simulation Step time as the factor and output this result into the Movement Port. Now we have provided the proper obstacle, we've provided the current position, and we've provided the movement depicting where that point will be in the future that way we can test for proper point positions. Now, by itself, really nothing will happen here until we connect the output of the Basic Collide node into some kind of an input here. So if you want these particles to stop upon collision, connect Hit to Mute. Now when you hit rewind and play, the particles will stop upon collision. Let me increase the length of my simulation here. There we go. The particles are stopped like so. And there you have it. So these are the bare minimum connections you need to use in order to get this Basic Collide node to work. You need to plug in an obstacle, you need to plug in the current point that you want to check for collisions with as well as the speed that it's moving at. Now you can do some other things in here. So for example, if you want to delete these particles on collision, type in the letters for the Delete Point node, drag and drop that in. Oops, let's try that again, actually no, it's already here, I missed it, then connect Delete into Port 2 and the Delete Point node will delete any particles that are checked on with True, so connect Hit into Deleted and now if you hit rewind and play, particles will be deleted upon collision. See there, no particles coming through. Of course you'll have some escaping here, but you can fix that by using the frame fractions and some of these other nodes in here, but this is the most fundamental connections we need to use or do in order to get his Basic Collide node to work.