ICE Modeling speed (or lack of?) : Scatter Geometry

179 views
Skip to first unread message

Malcolm Zaloon

unread,
Apr 25, 2011, 2:35:44 PM4/25/11
to soft...@listproc.autodesk.com
Hello guys.


I´m building some "scatter" compound using geometry instead particle instances, just for test and learn ice modeling speed when dealing with geometries.
the compound works nicely, but i found it extremely slow when dealing with just 20k cloned objects. (simple 13 polygons mesh as source). 
Over 4 minutes to complete operation!

timings:
2k clones = 10 seconds to complete
4k  clones = 30 seconds to complete
20k  clones = insanes 4:40 seconds to complete (very disproportional actually)

Is it normal? (note, my machine is very fast,6 real Cores with 12Gb ram, the same operation with particle instances is a instant!)

--
__________________
Malcolm Zaloon - Lighting TD - XSI Generalist
Quote:
"Everything can be interconnected and will update according by interface" AND FAST!

Guillaume Laforge

unread,
Apr 25, 2011, 3:53:28 PM4/25/11
to soft...@listproc.autodesk.com
Hello Malcolm,

It looks like a normal timing to me. Doing multi-copies of a polygon mesh source into one new mesh is not the same thing than doing particle instancing.
Particle instancing is be design suited for a high numbers of the same copy. You won't be able to get such performance with a true polygon mesh generation.

Btw, if you just need to copy the polymesh source without any other attributes, you can turn off the "Set Material from Source" and the "Set Default Texture Projection". This way, it will be a pure topology copy operation and should be faster.

Cheers

Guillaume Laforge 

Malcolm Zaloon

unread,
Apr 25, 2011, 4:03:58 PM4/25/11
to soft...@listproc.autodesk.com
Oh, i will try this!
Thanks Guillaume!

Malcolm Zaloon

unread,
Apr 25, 2011, 9:18:55 PM4/25/11
to soft...@listproc.autodesk.com
Guillaume, 
I try without copying attributes, but still very slow, no performance updates here...

Just for my own performance observations, i recreate exact same scene on houdini apprentice today(including source geometry imported via .obj), but not with 20k clones, but 200K!, and take only 3 seconds to show results in viewport, without using particles...
the screenshot is attached.

Partial conclusion: Same approach in both, but to much different results.
Maybe i need another approach building this on ICE, or is it a performance bottleneck of softimage specifically?

Malcolm.
200k_clones_houdini.JPG

Andreas Bystrom

unread,
Apr 25, 2011, 9:42:30 PM4/25/11
to soft...@listproc.autodesk.com
and are you sure that houdini isn't doing some kind of optimization under the hood, i.e using instances when there is no change to each individual clone?

perhaps a more valid speed test would be to create a bunch of random polygons or change the topology on a dense mesh in ice/houdini

if you are only doing clones why do you need to copy the geometry in the first place, is there a reason not to use particle instances here?
--
Andreas Byström
Lighting TD - Weta Digital

Guillaume Laforge

unread,
Apr 25, 2011, 9:56:12 PM4/25/11
to soft...@listproc.autodesk.com
Yeah I know that the Copy Sop is faster. That is because it is not really the same thing in fact.

If you take a look in the "Create Copies from Polygon Mesh" compound, you will see that it is not a simple copy but a merge of the same topo (it is using the Merge Topo Array node).
I guess time was too short for us to add more work on it...
What we could do in the future is (for example) provide a pure Copy Topo node. Maybe it would give better performances (maybe, because it is just speculation on my side for now).

For a fair comparison with Houdini, try to use the Merge sop to do your 20k copies :p.

Houdini is a mature procedural system. ICE Modeling is very young but the potential is there. It is already capable of lot of things (impossible to do procedurally in Softimage before), and I hope its features will grow more in the future.

Cheers

Guillaume

christian keller

unread,
Apr 25, 2011, 10:06:22 PM4/25/11
to soft...@listproc.autodesk.com
check the performance difference :

http://vimeo.com/groups/13784/videos/7218396
http://si-community.com/community/viewtopic.php?f=27&t=334&start=0

the same method guillaume had on his blog
massive difference ;-)



christian keller
visual effects|direction

+49 0179 69 36 248
chr...@gmx.de

Graham D Clark

unread,
Apr 25, 2011, 11:08:53 PM4/25/11
to soft...@listproc.autodesk.com
On Mon, Apr 25, 2011 at 6:56 PM, Guillaume Laforge <guillaume....@gmail.com> wrote:
Yeah I know that the Copy Sop is faster. 

sure is ;) 
miss the easy groups and rules too, but crossing my fingers good stuff on way next version of soft.
--
Graham D Clark,
phone:  why-attempt, S3D work phone: why-I-stereo
http://www.linkedin.com/in/grahamclark

Malcolm Zaloon

unread,
Apr 26, 2011, 10:44:56 AM4/26/11
to mailgrah...@gmail.com, soft...@listproc.autodesk.com

Thanks for explanations Guillaume!
Pure copy will be very interesting node.... ;)

Guillaume Laforge

unread,
Apr 26, 2011, 11:32:20 AM4/26/11
to soft...@listproc.autodesk.com
> Pure copy will be very interesting node.... ;)

The interesting thing with ICE Modeling is that you could build it yourself !

I'm not saying that we should not implement a factory "Polymesh Copy" node (it would be a very good idea in fact) but just that ICE Modeling gives lot of un-expected solutions.

I don't have time to build such compound (for now) but here is how the algorithm could be done :

- Get the polygonal description and the point position of the source to copy.

- Build an array with a size equal to this polygonal description array multiplied by the number of copies

- Set this array (the tricky part) using some magic modulo tricks.

- Same thing for the point position array.

- Set a Create Topo with those two arrays.

I'm pretty sure that designing a copy polymesh this way would be very fast. And it would be a very good exercice for all the TD's intersting in learning ICE Modeling ;).

Hint : This design looks really similar to the "Create Extrusion Along Strands" compound.

ICE Modeling give a very a deeper level of control without coding. Now we need some more high level compounds to expose this flexibility to the artists.

Cheers

Guillaume Laforge

________________________________
From: softimag...@listproc.autodesk.com [softimag...@listproc.autodesk.com] on behalf of Malcolm Zaloon [mzal...@gmail.com]
Sent: April 26, 2011 7:44 AM
To: mailgrah...@gmail.com; soft...@listproc.autodesk.com
Subject: Re: ICE Modeling speed (or lack of?) : Scatter Geometry


Thanks for explanations Guillaume!
Pure copy will be very interesting node.... ;)

winmail.dat

Sebastian Kowalski

unread,
Apr 26, 2011, 11:38:25 AM4/26/11
to soft...@listproc.autodesk.com
ha! thats where the real fun happens.

Sebastian Kowalski

unread,
Apr 26, 2011, 12:51:50 PM4/26/11
to soft...@listproc.autodesk.com
i went the easy way and filled up the arrays by iterating thru a repeat node.
unbelievable slow, but i got the basics down.
so tomorrow i'll try to build the description mathematically.
afraid i wont get a sec of sleep tonight.

Guillaume Laforge

unread,
Apr 26, 2011, 1:06:07 PM4/26/11
to li...@sekow.com, soft...@listproc.autodesk.com
Don't use the Repeat node ! The goal is to be faster, not slower than the current "Create Copies" compound :).

And go to sleep tonight. There are no hurry at all ;).

________________________________
From: softimag...@listproc.autodesk.com [softimag...@listproc.autodesk.com] on behalf of Sebastian Kowalski [li...@sekow.com]
Sent: April 26, 2011 9:51 AM
To: soft...@listproc.autodesk.com


Subject: Re: ICE Modeling speed (or lack of?) : Scatter Geometry

i went the easy way and filled up the arrays by iterating thru a repeat node.


unbelievable slow, but i got the basics down.
so tomorrow i'll try to build the description mathematically.
afraid i wont get a sec of sleep tonight.

Am 26/04/2011 17:32, schrieb Guillaume Laforge:

Pure copy will be very interesting node.... ;)


The interesting thing with ICE Modeling is that you could build it yourself !

I'm not saying that we should not implement a factory "Polymesh Copy" node (it would be a very good idea in fact) but just that ICE Modeling gives lot of un-expected solutions.

I don't have time to build such compound (for now) but here is how the algorithm could be done :

- Get the polygonal description and the point position of the source to copy.

- Build an array with a size equal to this polygonal description array multiplied by the number of copies

- Set this array (the tricky part) using some magic modulo tricks.

- Same thing for the point position array.

- Set a Create Topo with those two arrays.

I'm pretty sure that designing a copy polymesh this way would be very fast. And it would be a very good exercice for all the TD's intersting in learning ICE Modeling ;).

Hint : This design looks really similar to the "Create Extrusion Along Strands" compound.

ICE Modeling give a very a deeper level of control without coding. Now we need some more high level compounds to expose this flexibility to the artists.

Cheers

Guillaume Laforge

________________________________
From: softimag...@listproc.autodesk.com<mailto:softimag...@listproc.autodesk.com> [softimag...@listproc.autodesk.com<mailto:softimag...@listproc.autodesk.com>] on behalf of Malcolm Zaloon [mzal...@gmail.com<mailto:mzal...@gmail.com>]


Sent: April 26, 2011 7:44 AM

To: mailgrah...@gmail.com<mailto:mailgrah...@gmail.com>; soft...@listproc.autodesk.com<mailto:soft...@listproc.autodesk.com>


Subject: Re: ICE Modeling speed (or lack of?) : Scatter Geometry


Thanks for explanations Guillaume!
Pure copy will be very interesting node.... ;)

winmail.dat

Guillaume Laforge

unread,
Apr 26, 2011, 1:41:09 PM4/26/11
to soft...@listproc.autodesk.com
I quickly made a prototype, and yes it is much faster :).

I re-use the compound named "Build MultiExtrusion PackedPolygons" found in the "Extrusion along Strands" one.

This compound duplicate N time a polygonal description without using the Repeat node.

Here is the result of my little test using a source with 64 polygons (instead of 13 like in Malcolm's test, and my machine is not as fast) :

2000 copies : 474 ms

4000 copies : 915 ms

20 000 copies : 4683 ms

Without coding a single line ;). Of course, those timing could be improved with a dedicated Copy Topo node.

If you are interested, here is the scene : http://dl.dropbox.com/u/5533643/Softimage/CreatCopiesFromTopology_prototype_00.rar

I made the hard part. If someone want to build a compound with all the transformation options from this graph, feel free to share it on the web !

Cheers

Guillaume

________________________________
From: softimag...@listproc.autodesk.com [softimag...@listproc.autodesk.com] on behalf of Guillaume Laforge
Sent: April 26, 2011 10:06 AM
To: li...@sekow.com; soft...@listproc.autodesk.com
Subject: RE: ICE Modeling speed (or lack of?) : Scatter Geometry

winmail.dat

Sebastian Kowalski

unread,
Apr 27, 2011, 8:14:45 AM4/27/11
to soft...@listproc.autodesk.com
i couldnt sleep, of course...

slammed something similar together, but mine is still slower than yours.
maybe cause of the transform multiplications i am doing, before writing the vector array.
i have to organize the tree a bit and will post it later as soon as i finish the daily biz.

this was fun. i wont mind for more inspiration in that regard.
some kind of week assignment like helge used to do in the ice childhood ;)


Guillaume Laforge

unread,
Apr 27, 2011, 11:19:27 AM4/27/11
to li...@sekow.com, soft...@listproc.autodesk.com
Yes, I like the idea of those little ICE week workshop on the web too !

The question is where ?
XSI Base, Si-Community, The Area or a dedicated Google group ?

Guillaume

Eric Thivierge

unread,
Apr 27, 2011, 11:26:49 AM4/27/11
to soft...@listproc.autodesk.com
How about a weekly thread on this list?

--------------------------------------------
Eric Thivierge
Technical Director
http://www.ethivierge.com

Guillaume Laforge

unread,
Apr 27, 2011, 11:40:19 AM4/27/11
to soft...@listproc.autodesk.com
>How about a weekly thread on this list?

+1

From: softimag...@listproc.autodesk.com [mailto:softimag...@listproc.autodesk.com] On Behalf Of Eric Thivierge
Sent: Wednesday, April 27, 2011 11:27 AM
To: soft...@listproc.autodesk.com
Subject: Re: ICE Modeling speed (or lack of?) : Scatter Geometry

How about a weekly thread on this list?

--------------------------------------------
Eric Thivierge
Technical Director
http://www.ethivierge.com

On Wed, Apr 27, 2011 at 11:19 AM, Guillaume Laforge <guillaume....@gmail.com<mailto:guillaume....@gmail.com>> wrote:
Yes, I like the idea of those little ICE week workshop on the web too !

The question is where ?
XSI Base, Si-Community, The Area or a dedicated Google group ?

Guillaume

> From: softimag...@listproc.autodesk.com<mailto:softimag...@listproc.autodesk.com> [softimag...@listproc.autodesk.com<mailto:softimag...@listproc.autodesk.com>] on behalf of Guillaume Laforge


> Sent: April 26, 2011 10:06 AM

> To: li...@sekow.com<mailto:li...@sekow.com>; soft...@listproc.autodesk.com<mailto:soft...@listproc.autodesk.com>


> Subject: RE: ICE Modeling speed (or lack of?) : Scatter Geometry
>
>
> Don't use the Repeat node ! The goal is to be faster, not slower than the current "Create Copies" compound :).
>
>
>
> And go to sleep tonight. There are no hurry at all ;).
>
>
>
>
>
> ________________________________

> From: softimag...@listproc.autodesk.com<mailto:softimag...@listproc.autodesk.com> [softimag...@listproc.autodesk.com<mailto:softimag...@listproc.autodesk.com>] on behalf of Sebastian Kowalski [li...@sekow.com<mailto:li...@sekow.com>]


> Sent: April 26, 2011 9:51 AM

> To: soft...@listproc.autodesk.com<mailto:soft...@listproc.autodesk.com>


> Subject: Re: ICE Modeling speed (or lack of?) : Scatter Geometry
>
> i went the easy way and filled up the arrays by iterating thru a repeat node.
> unbelievable slow, but i got the basics down.
> so tomorrow i'll try to build the description mathematically.
> afraid i wont get a sec of sleep tonight.
>

> Am 26/04/2011 17<tel:26%2F04%2F2011%2017>:32, schrieb Guillaume Laforge:
>
> Pure copy will be very interesting node.... ;)
>
>
> The interesting thing with ICE Modeling is that you could build it yourself !
>
> I'm not saying that we should not implement a factory "Polymesh Copy" node (it would be a very good idea in fact) but just that ICE Modeling gives lot of un-expected solutions.
>
>
>
> I don't have time to build such compound (for now) but here is how the algorithm could be done :
>
>
>
> - Get the polygonal description and the point position of the source to copy.
>
> - Build an array with a size equal to this polygonal description array multiplied by the number of copies
>
> - Set this array (the tricky part) using some magic modulo tricks.
>
> - Same thing for the point position array.
>
> - Set a Create Topo with those two arrays.
>
>
>
> I'm pretty sure that designing a copy polymesh this way would be very fast. And it would be a very good exercice for all the TD's intersting in learning ICE Modeling ;).
>
> Hint : This design looks really similar to the "Create Extrusion Along Strands" compound.
>
>
>
> ICE Modeling give a very a deeper level of control without coding. Now we need some more high level compounds to expose this flexibility to the artists.
>
>
>
>
>
> Cheers
>
>
>
> Guillaume Laforge
>
>
>
>
>
>
>
> ________________________________

> From: softimag...@listproc.autodesk.com<mailto:softimag...@listproc.autodesk.com><mailto:softimag...@listproc.autodesk.com<mailto:softimag...@listproc.autodesk.com>> [softimag...@listproc.autodesk.com<mailto:softimag...@listproc.autodesk.com><mailto:softimag...@listproc.autodesk.com<mailto:softimag...@listproc.autodesk.com>>] on behalf of Malcolm Zaloon [
>
>

winmail.dat

Sebastian Kowalski

unread,
Apr 27, 2011, 11:59:52 AM4/27/11
to soft...@listproc.autodesk.com
yay!

Fabricio Chamon

unread,
Apr 27, 2011, 2:47:41 PM4/27/11
to li...@sekow.com, soft...@listproc.autodesk.com
please do.
(though I will regret for the lost nights)

nebbe...@googlemail.com

unread,
Apr 27, 2011, 3:02:18 PM4/27/11
to soft...@listproc.autodesk.com
This a brill idea, any thing to help artist get more in touch with ice.


Sent from my BlackBerry smartphone from Virgin Media

Guillaume Laforge

unread,
Apr 27, 2011, 3:11:38 PM4/27/11
to soft...@listproc.autodesk.com
Ok, I will try to start a little ICE modeling thread on this list around next week ;).

Btw, it is a shame that Google Wave is dead. It was the perfect media for this kind of thing.

Cheers,

Guillaume

winmail.dat

Guillaume Laforge

unread,
Apr 27, 2011, 3:18:55 PM4/27/11
to soft...@listproc.autodesk.com
> Btw, it is a shame that Google Wave is dead. It was the perfect media for this kind of thing.

Not sure if Google Wave is dead in fact. I can still connect to it...

winmail.dat

Steven Caron

unread,
Apr 27, 2011, 3:25:48 PM4/27/11
to soft...@listproc.autodesk.com
i didn't really care for wave, i hope we decide to keep it on the email list. i feel the pace of wave can be overwhelming at times.

s

Alan Fregtman

unread,
Apr 27, 2011, 3:30:56 PM4/27/11
to soft...@listproc.autodesk.com

Guillaume Laforge

unread,
Apr 27, 2011, 4:13:38 PM4/27/11
to soft...@listproc.autodesk.com
I saw those info about goggle wave too. Sticking to this mailing list sounds better.
winmail.dat

Malcolm Zaloon

unread,
Apr 28, 2011, 8:11:49 AM4/28/11
to soft...@listproc.autodesk.com

Thanks Guillaume. I will try it soon! And I will try to improve on process to build a compound with transform...  ;)

Sebastian Kowalski

unread,
Apr 29, 2011, 4:37:05 AM4/29/11
to soft...@listproc.autodesk.com
btw, here is my attempt for a faster copy polymesh compound.
ive documented it a bit, but i couldnt spare more time on it. so sorry if the copy options come a bit short. anyway, i like my compounds minimalistic..i hate parameter clustering.
you do not have to set a copy count, it will be fed by the input transform array. if you want to.

thanks Guillaume for kick-starting my braincells. at last the problem is not that tricky, its the approach.
first building up empty arrays, then feeding them with series of indices. with that, fetching the initial poly description indicies into a new array, offsetting them. now its sounding so so easy ;p
i hope i will keep that approach in my arsenal, i am just looking into old setups which using a lot of iterations via repeat nodes, only to populate some arrays. maybe these could be optimized a bit.

-sebastian

Faster Copies from Polygon Mesh.rar

Guillaume Laforge

unread,
Apr 29, 2011, 7:40:56 AM4/29/11
to li...@sekow.com, soft...@listproc.autodesk.com
Great :),

I will take a look at it soon !

G.

Guillaume Laforge

unread,
May 1, 2011, 6:02:44 PM5/1/11
to soft...@listproc.autodesk.com
Hi all,

So I finally found some time this morning to take a look at Sebastian Kowalski compound. Good job, it is the good way to go :).

I was thinking of doing a weekly thread about this faster geometry duplicator but as it is a rather finished project, I'm just going to write a summary of this story to help some of you to understand better ICE Modeling. By the way, I didn’t cancel the idea of those weekly ICE threads (just need to find some time). 

I'm using some pictures in this email so if you read in plain text mode, you will miss a lot of info !

The problem :

So Malcolm Zaloon found that 20 000 copies of a simple polymesh geometry was very slow. 
I made this a scene using the original “Create Copies from Polygon Mesh” to duplicate the Softimage dog :

test_original.jpg
.
14 seconds to do the duplication...it is really slow indeed.


The bottle neck :

Using the performance timer, it is obvious that the bottle neck is the “Merge Topo Array” node, as it can take 99% of total time (we wanted to add a native “Copy Topo” node, but never found time to do it before the release :-/). The “Merge Topo Array” node is able to merge sources with different topology. This is a rather complex operation but we don’t really need it for a pure topo duplication (it is like a special case of merging some identical sources).  Fortunately, we’ve got this basic ICE Modeling node called “Create Topo”. This node build a geometry from two arrays. So the user can virtually describe any polymesh directly from ICE. No need to use some dedicated factory topo nodes ! Of course, “With great power comes great responsibility” would say Spiderman’s uncle, so you will have to handle the duplicated polygonal description and point positions yourself to build a pure topology copies compound.

Building the duplicated arrays :

To get a clearer picture, we can build some kind of “virtual ICE graph” like this :

DuplicateTopoPrototype.jpg

I call it "virtual" because this graph does nothing for the moment. It just defines the needed compounds with the needed inputs and outputs, nothing more. Note that we don’t need to store the Duplicated Point Positions and Polygonal Description in a custom attribute, because those data won’t be very useful once the polygon mesh will be generated.
Now we need to add some nodes in those compounds to make them work ;).


Duplicating a point position array is rather trivial. First we create a new array of size equal to the number of source points multiplied by the number of copies. Then we need to feed this array with the original point positions. Lets say that the number of point in the source is equal to N and the new array size is equal to W. Each point index in the source are between 0 and N-1. From point 0 to point N-1, we can set the good position value in the array. But how do you find the good position for the next index equal to N or bigger (those indice are not in the set of source points) ? This is a classic job for the modulo operator. For example, using N as the “Modulo by”, will return 0 for the N, 1 for N+1, 2 for N+2 etc...

So we can easily match the indice between the source points positions and the new array of duplicated position !
Now we need to be able to ask for a point position on the source mesh using just an index. Get Data > PointPosition return a per point context. That means that you don’t need to deal with a specific point index to do an operation on points. But in our case, it is not so useful as we need to specify which point we want to extract from this set of point... We need to “convert” those point position from a per point context to an per object array (singleton context). To do that, we can use the new “Build Array from Set” or the “Point Index to Location” node (we choose the new node as it is a little bit faster in this case). Once in object context, we’ve got one element who is an array of point position. For the programmers readers, we’ve got in fact a 2D array with first array size equal to one.

DuplicatePointPosition.jpg

From this array, and using the modulo we can match the point positions between the source array and the duplicated one. Each copies are at the same place. We can now apply a specific transformation per copy on this array (very similar to the one done in Sebastian compound).

TransformCopies.jpg

Duplicating the polygonal description is not so easy to figure out at first. For the recall, this array store the vertices indice of each polygons. As it is a simple array of integer, a special value is reserved to describe the end of a polygon. Internally, this value is “-2”. But you can use any negative value in the ICE array as the Create Topo node will interpret those negative values as “-2” or more explicitly as a “polygon end”. So lets try to build this description on a very simple scenario :

The topo source is one triangle. So its polygonal description looks like : 0, 1, 2, “Polygon End”.
If we copy this description 2 times, it should look like : 0, 1, 2, “Polygon End”, 3, 4, 5, “Polygon End”.
Finally it doesn't look so complicate to do the copy, as it is just an offset based on the number of source points and the current copy index !

DuplicatePolyDescription.jpg

I updated the “Create Copies from Polygon Mesh” using those compounds and here is the new timing :

test_new.jpg

600 ms instead of 14 seconds. Now it is interesting :).


For those who have read this email until the end, you can download "Create Copies from Polygon Mesh" V2 here : 

That's all for today folks,

Cheers !

Guillaume Laforge


Mohammad Abdulfatah

unread,
May 2, 2011, 2:07:57 AM5/2/11
to soft...@listproc.autodesk.com
Two things:

1. That was very informative. Thanks for sharing!
2. You really need a blog.

- Mohammad Abdulfatah

Stefan Andersson

unread,
May 2, 2011, 2:32:43 AM5/2/11
to soft...@listproc.autodesk.com
He has a blog, but I wonder if these kind of posts should go on the support blog instead.

Regards
Stefan 

A message delivered from a phone booth in purgatory..

Stefan Andersson

unread,
May 2, 2011, 3:25:42 AM5/2/11
to soft...@listproc.autodesk.com
btw, this is Guillaume's blog


http://frenchdog.wordpress.com/

--
Stefan Andersson
Creative Director

Mad Crew
Roddargatan 8
116 20  Stockholm
SWEDEN

reel: http://vimeo.com/21972066
mail: ste...@madcrew.se
phone: +46 (0)8 668 27 13
cell: +46 (0)73 626  8850
web: http://www.madcrew.se

Sebastian Kowalski

unread,
May 2, 2011, 4:03:06 AM5/2/11
to soft...@listproc.autodesk.com
thanks for breaking it down once again, this was definitely a great learning experience, for me at least.
-sebastian


Am 02/05/2011 00:02, schrieb Guillaume Laforge:
Hi all,

So I finally found some time this morning to take a look at Sebastian Kowalski compound. Good job, it is the good way to go :).

I was thinking of doing a weekly thread about this faster geometry duplicator but as it is a rather finished project, I'm just going to write a summary of this story to help some of you to understand better ICE Modeling. By the way, I didn�t cancel the idea of those weekly ICE threads (just need to find some time).�

I'm using some pictures in this email so if you read in plain text mode, you will miss a lot of info !


The problem :

So Malcolm Zaloon found that 20 000 copies of a simple polymesh geometry was very slow.�
I made this a scene using the original��Create Copies from Polygon Mesh� to duplicate the Softimage dog :

test_original.jpg

.
14 seconds to do the duplication...it is really slow indeed.


The bottle neck :

Using the performance timer, it is obvious that the bottle neck is the �Merge Topo Array� node, as it can take 99% of total time (we wanted to add a native �Copy Topo� node, but never found time to do it before the release :-/). The �Merge Topo Array� node is able to merge sources with different topology. This is a rather complex operation but we don�t really need it for a pure topo duplication (it is like a special case of merging some identical sources). �Fortunately, we�ve got this basic ICE Modeling node called �Create Topo�. This node build a geometry from two arrays. So the user can virtually describe any polymesh directly from ICE. No need to use some dedicated factory topo nodes ! Of course, �With great power comes great responsibility� would say Spiderman�s uncle, so you will have to handle the duplicated polygonal description and point positions yourself to build a pure topology copies compound.

Building the duplicated arrays :

To get a clearer picture, we can build some kind of �virtual ICE graph� like this :

DuplicateTopoPrototype.jpg



I call it "virtual" because this graph does nothing for the moment. It just defines the needed compounds with the needed inputs and outputs, nothing more. Note that we don�t need to store the Duplicated Point Positions and Polygonal Description in a custom attribute, because those data won�t be very useful once the polygon mesh will be generated.

Now we need to add some nodes in those compounds to make them work ;).


Duplicating a point position array is rather trivial. First we create a new array of size equal to the number of source points multiplied by the number of copies. Then we need to feed this array with the original point positions. Lets say that the number of point in the source is equal to N and the new array size is equal to W. Each point index in the source are between 0 and N-1. From point 0 to point N-1, we can set the good position value in the array. But how do you find the good position for the next index equal to N or bigger (those indice are not in the set of source points) ? This is a classic job for the modulo operator. For example, using N as the �Modulo by�, will return 0 for the N, 1 for N+1, 2 for N+2 etc...


So we can easily match the indice between the source points positions and the new array of duplicated position !
Now we need to be able to ask for a point position on the source mesh using just an index. Get Data > PointPosition return a per point context. That means that you don�t need to deal with a specific point index to do an operation on points. But in our case, it is not so useful as we need to specify which point we want to extract from this set of point... We need to �convert� those point position from a per point context to an per object array (singleton context). To do that, we can use the new �Build Array from Set� or the �Point Index to Location� node (we choose the new node as it is a little bit faster in this case). Once in object context, we�ve got one element who is an array of point position. For the programmers readers, we�ve got in fact a 2D array with first array size equal to one.

DuplicatePointPosition.jpg


From this array, and using the modulo we can match the point positions between the source array and the duplicated one. Each copies are at the same place. We can now apply a specific transformation per copy on this array (very similar to the one done in Sebastian compound).

TransformCopies.jpg


Duplicating the polygonal description is not so easy to figure out at first. For the recall, this array store the vertices indice of each polygons. As it is a simple array of integer, a special value is reserved to describe the end of a polygon. Internally, this value is �-2�. But you can use any negative value in the ICE array as the Create Topo node will interpret those negative values as �-2� or more explicitly as a �polygon end�. So lets try to build this description on a very simple scenario :

The topo source is one triangle. So its polygonal description looks like : 0, 1, 2, �Polygon End�.
If we copy this description 2 times, it should look like : 0, 1, 2, �Polygon End�, 3, 4, 5, �Polygon End�.

Finally it doesn't look so complicate to do the copy, as it is just an offset based on the number of source points and the current copy index !

DuplicatePolyDescription.jpg


I updated the �Create Copies from Polygon Mesh� using those compounds and here is the new timing :

test_new.jpg


600 ms instead of 14 seconds. Now it is interesting :).


For those who have read this email until the end, you can download "Create Copies from Polygon Mesh" V2 here :�

Matt Lind

unread,
May 2, 2011, 1:00:22 PM5/2/11
to soft...@listproc.autodesk.com

I would advise making posts like this part of the documentation since the documentation is now online.  After all, that is the point of having online documentation, right?

 

Matt

 

 

 

 

 

From: softimag...@listproc.autodesk.com [mailto:softimag...@listproc.autodesk.com] On Behalf Of Stefan Andersson
Sent: Sunday, May 01, 2011 11:33 PM
To: soft...@listproc.autodesk.com
Subject: Re: ICE Modeling speed (or lack of?) : Scatter Geometry

 

He has a blog, but I wonder if these kind of posts should go on the support blog instead.

Guillaume Laforge

unread,
May 2, 2011, 1:48:21 PM5/2/11
to soft...@listproc.autodesk.com
>2. You really need a blog.

About my blog, well, it is my blog, so I can choose what I want to post :P.
The thing is that my blog is maybe followed by 100 peoples (just a guess), so posting here is much more efficient I think. Also doing a quick search in old email is easy.

I would advise making posts like this part of the documentation since the documentation is now online. 

So I'm not allowed to do any personal work on Softimage anymore ? ;)
Doing a documentation work and doing a quick article like I did on sunday afternoon from home is not really the same thing...
Documentation could not work in this case as the compound I shared is not in Softimage 2012.


Sorry if it sounds rude, it is not intend. I just wanted to express my personal feeling.

Cheers

Guillaume Laforge
Softimage developer at autodesk AND Softimage user at home

Matt Lind

unread,
May 2, 2011, 1:54:32 PM5/2/11
to soft...@listproc.autodesk.com

It’s not about the compound, it’s about the strategy.  That is what should be in the documentation.

Guillaume Laforge

unread,
May 2, 2011, 1:56:49 PM5/2/11
to soft...@listproc.autodesk.com
Ok, so I'm stopping those personal things...That was not a good idea after all.

Cheers

Matt Lind

unread,
May 2, 2011, 2:05:20 PM5/2/11
to soft...@listproc.autodesk.com

I wasn’t suggesting you stop personal work.

 

What has plagued the softimage community for many years is lack of in-context examples how to use the software effectively, and a central location to house the information.  Between XSIBase, XSIBlog, siCommunity, Softimage Wiki, and a host of other sites, figuring out the product formerly known as XSI was a real challenge. 

 

The manuals contain information about individual buttons and parameters, but don’t go into much detail when it comes to applying the tools.  What is really valuable about your most recent post, and others like it, is it details the inner workings of the ICE framework in a way that users can reap some useful information which can be applied to production.  That is what users need and why I suggest putting the article in the documentation.  If you want to dress it up or modify it, fine, but what’s important is the user gains an understanding of how the ICE framework is working under the hood.  If they understand that, they can build their own compound to solve the problem.

 

XSIBlog.com was useful for this kind of stuff, and really, wouldn’t mind seeing more of that type of article embedded directly into the software’s documentation.  Now that the documentation is online, there really isn’t a reason not to do so.

Ciaran Moloney

unread,
May 2, 2011, 2:37:28 PM5/2/11
to soft...@listproc.autodesk.com
Well, whether you continue or not, I thought this was a great bit of knowledge. Thanks for sharing it.

Ciaran

Tim Leydecker

unread,
May 2, 2011, 3:10:37 PM5/2/11
to soft...@listproc.autodesk.com
How about that:

You�ve earned yourself a few extra rounds of free beer for posting
your personal things here. Very good documentation. I do like that.

That could also lead to being considered art:

http://www.art-magazin.de/kunst/41385/die_bierpyramide_berlin?cp=3

Let�s drink to that, private, art, personal, whatever!

Sixpacks, averyone? Solved.


Cheers

tim


On 02.05.2011 19:56, Guillaume Laforge wrote:
> Ok, so I'm stopping those personal things...That was not a good idea after all.
>
> Cheers
>

> On Mon, May 2, 2011 at 1:54 PM, Matt Lind <ml...@carbinestudios.com <mailto:ml...@carbinestudios.com>> wrote:
>
> It�s not about the compound, it�s about the strategy. That is what should be in the documentation.
>
> Matt
>
> *From:*softimag...@listproc.autodesk.com <mailto:softimag...@listproc.autodesk.com> [mailto:softimag...@listproc.autodesk.com
> <mailto:softimag...@listproc.autodesk.com>] *On Behalf Of *Guillaume Laforge
> *Sent:* Monday, May 02, 2011 10:48 AM
>
>
> *To:* soft...@listproc.autodesk.com <mailto:soft...@listproc.autodesk.com>
> *Subject:* Re: ICE Modeling speed (or lack of?) : Scatter Geometry


>
> >2. You really need a blog.
>
> About my blog, well, it is my blog, so I can choose what I want to post :P.
>
> The thing is that my blog is maybe followed by 100 peoples (just a guess), so posting here is much more efficient I think. Also doing a quick search in old email is easy.
>
> > I would advise making posts like this part of the documentation since the documentation is now online.
>
> So I'm not allowed to do any personal work on Softimage anymore ? ;)
>
> Doing a documentation work and doing a quick article like I did on sunday afternoon from home is not really the same thing...
>
> Documentation could not work in this case as the compound I shared is not in Softimage 2012.
>
> Sorry if it sounds rude, it is not intend. I just wanted to express my personal feeling.
>
> Cheers
>
> Guillaume Laforge
>
> Softimage developer at autodesk AND Softimage user at home
>

> On Mon, May 2, 2011 at 1:00 PM, Matt Lind <ml...@carbinestudios.com <mailto:ml...@carbinestudios.com>> wrote:
>
> I would advise making posts like this part of the documentation since the documentation is now online. After all, that is the point of having online documentation, right?
>
> Matt
>

> *From:*softimag...@listproc.autodesk.com <mailto:softimag...@listproc.autodesk.com> [mailto:softimag...@listproc.autodesk.com
> <mailto:softimag...@listproc.autodesk.com>] *On Behalf Of *Stefan Andersson
> *Sent:* Sunday, May 01, 2011 11:33 PM
>
>
> *To:* soft...@listproc.autodesk.com <mailto:soft...@listproc.autodesk.com>
> *Subject:* Re: ICE Modeling speed (or lack of?) : Scatter Geometry


>
> He has a blog, but I wonder if these kind of posts should go on the support blog instead.
>
> Regards
>
> Stefan
>
> A message delivered from a phone booth in purgatory..
>
>

Mathieu Leclaire

unread,
May 2, 2011, 3:20:59 PM5/2/11
to soft...@listproc.autodesk.com
Yeah... I really hope you are being sarcastic Guillaume. We don't always communicate the level of appreciation we have for people like you who are taking some of their own personal private time to share and explain us how to accomplish some of these tasks. We all greatly benefit and become much better at our jobs thanks to people like you. So allow me to speak for the quiet mass and extend a great big thank you for sharing. I highly encourage you to keep doing them, only if you still want to keep doing them of course. We might not always express our appreciation, but we do appreciate it.

-Mathieu

Stefan Andersson

unread,
May 2, 2011, 3:25:33 PM5/2/11
to soft...@listproc.autodesk.com
I agree 10000000000 times over. Please don't stop! And I also think that it could be a post on the support blog, as a "user" tip. I value all of your posts very much and respect the knowledge that you have. Please don't stop... And Tim is right, by now you should be set for a life time of beer supply :)

Best regards from a humble servant
Stefan Andersson 






A message delivered from a phone booth in purgatory..

Guillaume Laforge

unread,
May 2, 2011, 3:46:02 PM5/2/11
to soft...@listproc.autodesk.com
Thanks all for the kind words. Now I’m crying…

Of course I won’t stop ☺. I’m just not sure if my next personal stuff will be in the doc at the same time ;).

Thanks again everyone,

Cheers,

G.


From: softimag...@listproc.autodesk.com [mailto:softimag...@listproc.autodesk.com] On Behalf Of Stefan Andersson
Sent: Monday, May 02, 2011 3:26 PM
To: soft...@listproc.autodesk.com
Subject: Re: ICE Modeling speed (or lack of?) : Scatter Geometry

I agree 10000000000 times over. Please don't stop! And I also think that it could be a post on the support blog, as a "user" tip. I value all of your posts very much and respect the knowledge that you have. Please don't stop... And Tim is right, by now you should be set for a life time of beer supply :)

Best regards from a humble servant
Stefan Andersson






A message delivered from a phone booth in purgatory..


On 2 maj 2011, at 20:39, Ciaran Moloney <moloney...@gmail.com<mailto:moloney...@gmail.com>> wrote:
Well, whether you continue or not, I thought this was a great bit of knowledge. Thanks for sharing it.

Ciaran
winmail.dat

Williams, Wayne

unread,
May 2, 2011, 3:53:44 PM5/2/11
to soft...@listproc.autodesk.com

*hugz*

 

From: softimag...@listproc.autodesk.com [mailto:softimag...@listproc.autodesk.com] On Behalf Of Guillaume Laforge


Sent: Monday, May 02, 2011 3:46 PM
To: soft...@listproc.autodesk.com

Subject: RE: ICE Modeling speed (or lack of?) : Scatter Geometry

 

Thanks all for the kind words. Now I’m crying…

 

Of course I won’t stop J. I’m just not sure if my next personal stuff will be in the doc at the same time ;).

 

Thanks again everyone,

 

Cheers,

 

G.

 

 

From: softimag...@listproc.autodesk.com [mailto:softimag...@listproc.autodesk.com] On Behalf Of Stefan Andersson
Sent: Monday, May 02, 2011 3:26 PM
To: soft...@listproc.autodesk.com
Subject: Re: ICE Modeling speed (or lack of?) : Scatter Geometry

 

I agree 10000000000 times over. Please don't stop! And I also think that it could be a post on the support blog, as a "user" tip. I value all of your posts very much and respect the knowledge that you have. Please don't stop... And Tim is right, by now you should be set for a life time of beer supply :)

 

Best regards from a humble servant

Stefan Andersson 

 

 

 

 



A message delivered from a phone booth in purgatory..

 


On 2 maj 2011, at 20:39, Ciaran Moloney <moloney...@gmail.com> wrote:

Well, whether you continue or not, I thought this was a great bit of knowledge. Thanks for sharing it.

Ciaran

Alan Fregtman

unread,
May 2, 2011, 4:15:16 PM5/2/11
to soft...@listproc.autodesk.com
* compound hug! *

:p

On Mon, May 2, 2011 at 3:53 PM, Williams, Wayne
<wayne.w...@xaviant.com> wrote:
> *hugz*
>
>
>
> From: softimag...@listproc.autodesk.com
> [mailto:softimag...@listproc.autodesk.com] On Behalf Of Guillaume
> Laforge
> Sent: Monday, May 02, 2011 3:46 PM
>
> To: soft...@listproc.autodesk.com
> Subject: RE: ICE Modeling speed (or lack of?) : Scatter Geometry
>
>
>

> Thanks all for the kind words. Now I�m crying�
>
>
>
> Of course I won�t stop J. I�m just not sure if my next personal stuff will

Guillaume Laforge

unread,
May 2, 2011, 4:44:49 PM5/2/11
to soft...@listproc.autodesk.com
I think that we all agree with Matt about having a more centralize information system.
But please open a new thread for that, this one is just for big hugs ;).

Love,

G.


From: softimag...@listproc.autodesk.com [mailto:softimag...@listproc.autodesk.com] On Behalf Of Adam Sale
Sent: Monday, May 02, 2011 4:15 PM
To: soft...@listproc.autodesk.com
Subject: Re: ICE Modeling speed (or lack of?) : Scatter Geometry

I echo the sentiment by everyone here.. This list has been the biggest resource for me since starting with Soft3d.
I do agree with Matts point, though I know its not pointed at Guillaume

Centralization of info is one of the hardest things about learning Soft.

There are many times where I've found a valuable tidbit of info, which I don't need at that very moment.. Later, when I do need to utilize it, I hunt through my usual list of about 8 or 9 sites until I find it.. The Base, XIDB, Rray, Si-community, the Area, Creative Crash, XSI Blog, Wiki, Eh-xsi support..

The old community website that was up just before AD bought out soft was heading in the right direction, in my opinion. The way it handled compounds, and learning resources was close to or right on the button..

I still can't bring myself to visit the area very often... Its a maddening place..

Nonetheless, thanks to everybody whose brains I have mined over the years. :-)

On Mon, May 2, 2011 at 12:53 PM, Williams, Wayne <wayne.w...@xaviant.com<mailto:wayne.w...@xaviant.com>> wrote:
*hugz*

From: softimag...@listproc.autodesk.com<mailto:softimag...@listproc.autodesk.com> [mailto:softimag...@listproc.autodesk.com<mailto:softimag...@listproc.autodesk.com>] On Behalf Of Guillaume Laforge
Sent: Monday, May 02, 2011 3:46 PM

To: soft...@listproc.autodesk.com<mailto:soft...@listproc.autodesk.com>


Subject: RE: ICE Modeling speed (or lack of?) : Scatter Geometry

Thanks all for the kind words. Now I'm crying...

Of course I won't stop :). I'm just not sure if my next personal stuff will be in the doc at the same time ;).

Thanks again everyone,

Cheers,

G.


From: softimag...@listproc.autodesk.com<mailto:softimag...@listproc.autodesk.com> [mailto:softimag...@listproc.autodesk.com<mailto:softimag...@listproc.autodesk.com>] On Behalf Of Stefan Andersson
Sent: Monday, May 02, 2011 3:26 PM
To: soft...@listproc.autodesk.com<mailto:soft...@listproc.autodesk.com>
Subject: Re: ICE Modeling speed (or lack of?) : Scatter Geometry

I agree 10000000000 times over. Please don't stop! And I also think that it could be a post on the support blog, as a "user" tip. I value all of your posts very much and respect the knowledge that you have. Please don't stop... And Tim is right, by now you should be set for a life time of beer supply :)

Best regards from a humble servant
Stefan Andersson


A message delivered from a phone booth in purgatory..


On 2 maj 2011, at 20:39, Ciaran Moloney <moloney...@gmail.com<mailto:moloney...@gmail.com>> wrote:
Well, whether you continue or not, I thought this was a great bit of knowledge. Thanks for sharing it.

Ciaran

winmail.dat

Mohammad Abdulfatah

unread,
May 2, 2011, 4:45:36 PM5/2/11
to soft...@listproc.autodesk.com
On Mon, May 2, 2011 at 11:15 PM, Alan Fregtman <alan.f...@gmail.com> wrote:
* compound hug! *

*ICE compound hug?*

Adam Sale

unread,
May 2, 2011, 4:15:15 PM5/2/11
to soft...@listproc.autodesk.com
I echo the sentiment by everyone here.. This list has been the biggest resource for me since starting with Soft3d.
I do agree with Matts point, though I know its not pointed at Guillaume

Centralization of info is one of the hardest things about learning Soft.

There are many times where I've found a valuable tidbit of info, which I don't need at that very moment.. Later, when I do need to utilize it, I hunt through my usual list of about 8 or 9 sites until I find it..  The Base, XIDB, Rray, Si-community, the Area, Creative Crash, XSI Blog, Wiki, Eh-xsi support..

The old community website that was up just before AD bought out soft was heading in the right direction, in my opinion. The way it handled compounds, and learning resources was close to or right on the button..

I still can't bring myself to visit the area very often... Its a maddening place..

Nonetheless, thanks to everybody whose brains I have mined over the years. :-)




Malcolm Zaloon

unread,
May 4, 2011, 11:41:08 AM5/4/11
to soft...@listproc.autodesk.com
Hi Guillaume! I´m very busy this weeks (and next ones), only today i see the "final" compound.
Great!


Thanks for your attention to the speed problem, and so informative e-mails!

Malcolm.

--
__________________
Malcolm Zaloon - Lighting TD - XSI Generalist
Quote:
"Everything can be interconnected and will update according by interface"

Malcolm Zaloon

unread,
May 4, 2011, 1:54:03 PM5/4/11
to soft...@listproc.autodesk.com
Hi Guillaume.

I´m testing the 2.0 compound, it´s very fast, in factor of almost 2:1 with houdini test now. Very, very impressive!
But... i found 2 things..

1. that old "Transform per Copy" compound become incompatible with.(appear to miss some custom parameter per copy Arrat not correctly feed inside old compound)
2. uvs can´t be copied from source correctly on some tests...



Malcolm.


Malcolm Zaloon

unread,
May 4, 2011, 1:56:00 PM5/4/11
to soft...@listproc.autodesk.com
(sorry the duplicated post on other thread, this is the right place...)

Hi Guillaume.

I´m testing the 2.0 compound, it´s very fast, in factor of almost 2:1 with houdini test now. Very, very impressive!
But... i found 2 things..

1. that old "Transform per Copy" compound become incompatible with.(appear to miss some custom parameter per copy Arrat not correctly feed inside old compound)
2. uvs can´t be copied from source correctly on some tests...



Malcolm.




Guillaume Laforge

unread,
May 4, 2011, 2:15:53 PM5/4/11
to soft...@listproc.autodesk.com
Good catch !

I know why the "Transform per Copy" is broken. And it should be easy to update.

But I have no idea why the UVs are broken in your test. Will need to take a look at it soon. If you've got a repro scene, it would be great.

Thanks for your feedback,

Guillaume

Guillaume Laforge

unread,
May 4, 2011, 8:19:42 PM5/4/11
to soft...@listproc.autodesk.com
Hi,

I updated Create Copies from Polygon Mesh.2.0 to support the "CopyTopology_Transforms" attribute. So it is now compatible with the "Transform per Copy" compound.

I couldn't reproduce your UV problem in my quick test. So feel free to send me a repro scene if you find the time !

Cheers

Guillaume
Reply all
Reply to author
Forward
0 new messages