I have no idea how to do this...

   8363   25   5
User Avatar
Member
271 posts
Joined: March 2012
Offline
Hi all,
I'm trying to create an effect of biological cells multiplying on an arbitrary surface, all squishing together nicely and interacting with each other. Currently, I've gotten nowhere with any part of this. My first thought was to

  1. create a surface to try and cover with cells
  2. scatter points on the surface
  3. copy a sphere (the basic cell) to those points - at this stage the cell is small in scale
  4. spring constrain each copied cell to it's starting location
  5. make the cells FEM organic tissue
  6. grow the size of the cell until they start to squash together nicely


    Basically, none of this works, or I don't know how to do it. My first problems are
  7. The radius of the simulated FEM cells does not grow, even though the original cell is keyframed. I've tried setting the default operation of the FEM solver to Set Always, but this did nothing.
  8. The spd spring constraint does nothing
  9. lots more…but I'll save those for later


    Any ideas? I'm stumped.
User Avatar
Member
245 posts
Joined: Sept. 2011
Offline
I've created an example, not sure if this is what you are looking for?

http://www.youtube.com/watch?v=u_JxX-KvjtA&feature=youtu.be [youtube.com]

What I basically did in here is copying multiple spheres in SOP and used that as FEM object in DOP, the next thing to do is scale all of the spheres in SOP into a different NULL which I called OUT_TARGET_SIZE.

And as last you should take the solid object node in DOP, and in geometry use the “OUT_TARGET_SIZE” null as your rest position, which will make your object grow..

Attachments:
multi_FEM.hipnc (198.7 KB)

User Avatar
Member
1391 posts
Joined: Dec. 2010
Offline
johnnycore
I've created an example, not sure if this is what you are looking for?

http://www.youtube.com/watch?v=u_JxX-KvjtA&feature=youtu.be [youtube.com]

What I basically did in here is copying multiple spheres in SOP and used that as FEM object in DOP, the next thing to do is scale all of the spheres in SOP into a different NULL which I called OUT_TARGET_SIZE.

And as last you should take the solid object node in DOP, and in geometry use the “OUT_TARGET_SIZE” null as your rest position, which will make your object grow..

I checked your File ,That's so clever way :wink:
https://www.youtube.com/c/sadjadrabiee [www.youtube.com]
Rabiee.Sadjad@Gmail.Com
User Avatar
Member
271 posts
Joined: March 2012
Offline
That's definitely part of the effect that I'm after. The unfortunate part is that I don't understand it
I'm looking through the file now…
User Avatar
Member
245 posts
Joined: Sept. 2011
Offline
Let me know if you are stuck, I will give a more detailed explaination.

Joker386
I checked your File ,That's so clever way :wink:

Thanks
User Avatar
Member
271 posts
Joined: March 2012
Offline
That'd be great johnnycore - thanks

The part I'm confused about is the foreach. Why is this necessary? Why doesn't the FEM solver just respect the sphere size?
(I know what a foreach does, I just don't know why the xform and point SOPs are doing)
User Avatar
Member
245 posts
Joined: Sept. 2011
Offline
Ah yes, might have to mention this:

Reason foreach:

I want to scale the spheres individually, (you can also use a second Copy SOP instead but I chose a different way) the xform SOP inside the foreach is used to scale every sphere from the center with centroid() expression.

The point sop is actually very important when using FEM, your target needs to have velocity attributes, I used the normals as my velocity attribute. This way the sphere scales in the direction of the normals.
User Avatar
Member
271 posts
Joined: March 2012
Offline
Hmm, I've just set the point SOP to ‘no normals’ and ‘no velocity’, reloaded the file and it all still works
User Avatar
Member
245 posts
Joined: Sept. 2011
Offline
Oh thats weird, in one of my earlier tests Houdini told me the target required a velocity attribute. I must have passed that onto this setup also so sorry for the confusion.
User Avatar
Member
1391 posts
Joined: Dec. 2010
Offline
Also we can use only “Peak SOP” instead of “Foreach SOP” for scaling each Sphere :idea:
https://www.youtube.com/c/sadjadrabiee [www.youtube.com]
Rabiee.Sadjad@Gmail.Com
User Avatar
Member
271 posts
Joined: March 2012
Offline
I feel really stupid asking this, but how is the sphere growing in size? I can't find anything animated that would affect it's size
User Avatar
Member
245 posts
Joined: Sept. 2011
Offline
Take a look at the screenshots please.

The “OUT_REST_SIZE” null is the target scale for the spheres to scale to.
You can actually animate this node, the FEM does take in account what is the rest position.

What I basically did is I've created a small sphere for simulation, and used a bigger sphere for rest position. What FEM will do with this: it tries to go to rest position, since the start of the sphere is small it will grow to the bigger rest position.

Attachments:
2.png (300.5 KB)
1.png (228.7 KB)

User Avatar
Member
245 posts
Joined: Sept. 2011
Offline
Joker386
Also we can use only “Peak SOP” instead of “Foreach SOP” for scaling each Sphere :idea:

Somehow I was not aware of this.. ops:

thanks!
User Avatar
Member
271 posts
Joined: March 2012
Offline
OK, I've tried to duplicate this, but I've immediately run into trouble.
I've used the peak node to create a target size for the sphere, I go to solid>Organic tissue, but as soon as I set the rest geometry the FEM solver gives me one of two errors:
  • Object “sphereobject1”: integer point attribute “initialpid” is missing.
  • It complains about the number of vertices in the object being different from the number of simulated vertices.


    I have no idea what caused either of these messages or what to do about them. This is very frustrating.

Attachments:
my_multi_fem.zip (16.7 KB)

User Avatar
Member
245 posts
Joined: Sept. 2011
Offline
You should use peak from this node:

tetrahedralize1

Because the target requires you to have the same geometry (or the same amount of points / primitives).

You used peak on the “copy1” node, which has a different topology and is not the same topology as further down the chain: tetrahedralize1

I hope this makes things clear.
User Avatar
Member
271 posts
Joined: March 2012
Offline
Ah yes, thank you!
Now I'm trying to get the spheres to grow slowly. At the moment they are at full size after a single frame
User Avatar
Member
1391 posts
Joined: Dec. 2010
Offline
johnnycore
Joker386
Also we can use only “Peak SOP” instead of “Foreach SOP” for scaling each Sphere :idea:

Somehow I was not aware of this.. ops:

thanks!

Ha ,That's no problem ,Sometimes we solve very complex problems ,Sometimes we can't see very simple solutions ,Exactly like you !!!

However ,I think your solution is a good way to create Soap Foam ,Of course with make some changes :?

Attachments:
JKFoam2.jpg (458.4 KB)

https://www.youtube.com/c/sadjadrabiee [www.youtube.com]
Rabiee.Sadjad@Gmail.Com
User Avatar
Member
245 posts
Joined: Sept. 2011
Offline
I kinda wanna create something like this now…
Maybe tomorrow…
User Avatar
Member
271 posts
Joined: March 2012
Offline
Let me know how you get on guys.
In the mean time, I'm going to try and figure out how to get the cells to stay fixed to an arbitrary surface. If you have any suggestions, please let me know
User Avatar
Member
245 posts
Joined: Sept. 2011
Offline
If you can explain “fixed to an arbitrary surface” in more depth I might be able to help
  • Quick Links