How to Use Fisio: Experiments and Learnings
RGcincy
Posts: 2,834
This will be a summation of learnings made while trying out Alvin Bemar’s new Fisio: Physics Simulator product for Daz Studio. This is a rigid-body physics simulator. Like my dForce thread, I’ll share observations and learnings I make while using this product.
TABLE OF CONTENTS
My Examples | Other Authors |
Alberto: Hanging Chain Artini: Barbult: Filled Basket Santa's Sleigh |
Post edited by RGcincy on
Comments
Future Index
1. Accessing Fisio After Installation
a. After installing Fisio, select Windows/Panes(tabs) from Daz Studio’s Main menu.
b. Select Fisio.
c. Dock the Fisio pane. My suggestion is to make it visible on one side of the viewport while the Scene and Parameters pane are docled on the other side as you will often use these 3 together.
2. Chain Made from Tori – Part 1
a. On the Fisio pane, click on the button Create Fisio Material node… and accept the recommended name. For this example we will be using the default material settings.
b. Create a torus that is Y-positive, 1 inch major diameter, 0.2 inch minor diameter, 64 segments, and 16 sides.
c. Select the torus and click on DS main menu and choose Edit/Object/Geometry/Convert to SubD. Then go to the Parameters pane and select Mesh Resolution/Resolution Level and set to Base. Later we will test the impact of subD on simulation.
d. Select the torus and on the Fisio pane, click on the button Assign Rigid Bodies… On the popup window click on Update Selections and then on the Accept button. There will now be a Fisio Rigid section in the Parameters pane. Click on it and set Enable and Selectable to On and Fixed to Off. Click on Collision Material and select Fisio Material. By setting up this one torus with Fizio parameters, when we duplicate it we don’t have to do so for each copy.
e. Make a copy of the torus by clicking on DS main menu and choosing Edit/Duplicate/Duplicate Node(s). Rotate the new torus 90 degrees and move along Z-axis so the two tori are interleaved. Optional: you can use instances instead.
f. Select the two tori in the Scene pane and click on DS main menu and choose Create/New Group and accept the name. This provides a base set of links to form a chain.
g. Make a copy of the group by clicking on DS main menu and choosing Edit/Duplicate/Duplicate Node Hierarchies. Move it along the Z-axis so the last torus of the previous group is interleaved with the first torus of the duplicated group.
h. Repeat step g two times.
i. Select the first torus in the chain and in the Fisio Rigid section in the Parameters pane set Fixed to On.
j. On the Fisio pane, click on Run Simulation. At frame 5, the first torus will remain in place but the others will fall away as a group.
k. Select all the tori in the Scene pane then in the Parameters pane select all the tori again. Scroll down and find the parameter Collision Shape Type and choose Sphere (default is Undefined). Run the Simulation. At frame 5, you will have the same result, the tori separating from the first torus.
l. Repeat step k but choose Ellipsoid as the shape. At frame 5 the last five tori will separate but several others will come undone as well.
m. Repeat step k but choose Mesh as the shape. At frame 5 the tori will stay linked but at frame 10 they will swing down vertical and start to come apart.
Frame 5:
Frame 10:
n. Repeat step k but change subD Resolution Level to High Resolution. The simulation will run slower. At frame 5 the tori will stay linked but at frame 10 they will start to come apart but less so then in step m.
The next example will show one way to keep the links together.
I don't see any of the images.
Hmm, I see them on my end. I wonder what's up with that? I'll delete them and try a new set.
3. Chain Made from Tori – Part 2
I found reducing Scale in the Fisio pane and adding one level of subD helps keep the chain links together.
a. Continue to use the scene we set up in example 2.
b. On the Fisio pane, set Scale to 0.5.
c. Select all the tori in the Scene pane then in the Parameters pane select all the tori again. Scroll down and find the parameter Collision Shape Type and choose Sphere (default is Undefined). Run the Simulation. At frame 5, you will have the same result as in Part 1, the tori separating from the first torus.
d. Repeat step c but choose Ellipsoid as the shape. At frame 5 the last five tori will separate but several others will come undone as well.
e. Repeat step c but choose Mesh as the shape. At frame 5 the tori will stay linked but at frame 15 they will swing down vertical and start to come apart.
Frame 5:
Frame 15:
f. Repeat step c but change subD Resolution Level to High Resolution. The simulation will run slower. At frame 5 and 15 the tori will stay linked but at frame 23 they will start to come apart.
Frame 5:
Frame 15:
Frame 23:
g. On the Fisio pane, set Scale to 0.25. Repeat step f. Now the chain links hold together throughout the 30 frame simulation.
Frame 30:
Yeah, I see them all now.
Nice, thanks for posting.
I am looking forward to creating a piles of objects (rocks, furniture, fruits etc)
on another object (like ground, vases, etc).
So far, has not achieved a good results.
Has tried to simulate dropping pens to the vase, but most of the pens has not remains in the vase,
but just moving further.
Looks like the collision does not work right - will make more experiments.
I think that, as with Fluidos, the simulation needs to be sufficiently "fine grained" to see the colision targets - but making it too fine grained will incease the number of calculations and so slow the process down.
Thanks for that tip, Richard.
You can also use Fisio Links to get the chain links held together.
Attached is a duf with a simple example of a chain. The first Torus is managed as a Fixed rigid body, thus it is manually animated.
A basket filled with the gadgets from: https://www.daz3d.com/everyday-gadgets
Clear keyframes after not wanted simulations helps.
Can the links be animated? I was put in mind of hammer throwing, and wondered if you could attach the loose end of the chain to an object, rotate it to build a spin in the chain and ball, and then release to send it flying.
It's possible.
Attached is a .duf that is a modified version of the previous chain example. I registered the Torus (11) as rigid-body (Fixed). added a new Fisio Link (number 6) to bind the Torus (11) to the Torus (6) (Link type is Fix all). The Torus (11) is attached to a new sphere. This sphere is manually animated.
At the frame 130, the Fisio Lin (6) is disabled, thus the chain is broken.
Frame 0:
Frame 130:
Frame 230
Of course, the example can be refined or reconstructed with better results.
Beautiful!
Thanks for the file Albero. Helpful to study how you structured it.
That's excellent. Any tips to share on how you did this?
Thanks, @Alberto and @RGcincy.
I will post more settings later on, when I will be sitting again at my rendering computer.
I have used Mesh collider on all items, set Scale to 0.1
and adjusted Friction and Cohesion parameters.
Very nice. Unfortunately I am still serialless, but I will look when that changes.
You're welcome. If I can help, let me know, please.
4. Filling a Basket with Apples
a. Create a six foot Y-positive plane. Lower it to Y-translate -40.
b. Locate a suitable basket, I used one from a product called Basketry. Position it on the plane.
c. Locate an apple, I used one from Tangy Apple Orchard.
d. On the Fisio pane, click on the button Create Fisio Material Node. I use the default settings for this example.
e. On the Fisio pane, click on the button Assign Rigid Bodies. Click update selections. Choose the plane, basket, and apple.
f. Select each of those items in the Scene pane and in the Parameters pane, open the Fisio Rigid section. Select the Fisio material node in the Collision material box for each. Set the plane and basket to Fixed. For the plane, select Box as the Collision Shape Type. For the basket, select Cylinder as the Collision Shape Type. For the basket, select Cylinder as the Collision Shape Type. For the apple, select Sphere as the Collision Shape Type. Note: these shape types are for illustrative purposes as they will not give us the results we are looking for.
g. Use a product like UltraScatter Pro to create instances of the apple. I used the Matrix type, setting the X and Z Rows to 2, Y to 20 (this gives 2x2x20 = 80 apples) and setting the spacing for X, Y, and Z to 10 cm so they fit the opening of the basket.
h. Translate the basket so it is under the column of apples.
i. Select the Instances group and break it apart by selecting from the DS main menu Edit/Object/Instances/Break Instance Group.
j. Run the Fisio simulation. You will see that the Collision Shape Types we chose are not the best. With the basket set to cylinder, Fisio does not know there is an opening so the apples first stack up then overflow the top.
k. Select the basket in the Scene pane and in the Parameters pane, go to the Fisio Rigid section and select Mesh as the Collision Shape Type.
l. Run the Fisio simulation. You now see the basket fills but the apples are all vertical (as the original prop is) and then the last apples will overflow as there is not enough space..
m. Select the original apple prop in the Scene pane and in the Parameters pane, go to the Fisio Rigid section and select Mesh as the Collision Shape Type.
n. Run the Fisio simulation. Now you will see all but one or two of the apples fit in the basket and the apples have varied rotations that look more realistic. A few apples may poke out of the basket. If that happens, select them and move them inside.
o. Key Learnings: (1) Use a Collision Shape Type of mesh for an object with an opening if you want it to fill. (2) Although using a shape type of sphere gives a faster simulation, using a shape type mesh for an irregular object like the apple allows for it to rotate.
If others have examples to share, please feel free to post them. I will add links to them from the table of contents and index when I create those.
Great example and explanation.
I have tried to drop objects around Genesis 9.
That's a good scatter, would look good with leaves too. I wonder why they hover above the ground, what collision type did you use?
5. Draping a Chain
Create a longer chain than in examples 2 and 3 and then free drape it as well as drape it around a cylinder and arm.
a. On the Fisio pane, set Scale to 0.25.
b. On the Fisio pane, click on the button Create Fisio Material node… and accept the recommended name. For this example we will be using the default material settings to start.
c. Create a torus that is Y-positive, 1 inch major diameter, 0.2 inch minor diameter, 64 segments, and 16 sides.
d. Make a copy of the torus by clicking on DS main menu and choosing Edit/Duplicate/Duplicate Node(s). Rotate the new torus 90 degrees and move it along Z-axis so the two tori are interleaved.
e. Hide everything in the scene except for the two tori. Using the DS main menu, select File/Export. Type in a name (like chain link) and check that wavefront object .obj appears in the drop down box below the name. In the next dialog box pick To: Daz Studio.
f. Using the DS main menu, select File/Import. Select the file you just created. In the next dialog box pick From: Daz Studio. You now have an object with the two tori linked so you can more easily create instances with UltraScatter Pro.
g. You can hide or delete the original two tori now that you have a copy.
h. On the Fisio pane, click on the button Create Fisio Material node… and accept the recommended name. For this example we will be using the default material settings.
i. On the Fisio pane, click on the button Assign Rigid Bodies… On the popup window click on Update Selections. Click on the chain link and then the Accept button.
j. There will now be a Fisio Rigid section in the Parameters pane. With the chain link selected, click on Collision Material and select Fisio Material. Scroll down and find the parameter Collision Shape Type and choose Mesh. Set Enable and Selectable to On and Fixed to Off.
k. Next we will make copies of this link with UltraScatter Pro. Select the link, then run the USP script. Select matrix style and in the Rows area set X and Y to 1 and Z to 20. Set Z spacing to 4.
l. Select the Instances group and break it apart by selecting from the DS main menu Edit/Object/Instances/Break Instance Group.
m. Select the chain link object (not an instance) and then from the main menu choose Edit/Instances/Duplicate Node Hierarchies to create a copy. Move this to the right end of the chain and position it to be interleaved with the first object. Go to parameters and set Fisio Fixed to On. This link will hold the chain up so it doesn’t all just fall straight down.
n. Run the Simulation. The chain will drape from the fixed link. It holds together until frame 15 when it begins to separate.
Frame 15:
Frame 24:
o. Change the Fisio Material parameters to Cohesion 20.
p. Run the Simulation. The chain will now drape until frame 34 before breaking.
Frame 32: Frame 34:
q. Create a new X-positive cylinder, 2 feet long, 6 inches in diameter, 24 segments, and 16 sides. Position it just under the chain at about half its length.
r. On the Fisio pane, click on the button Assign Rigid Bodies… On the popup window click on Update Selections. Click on the new cylinder and then the Accept button. Then in the Parameters pane click on Collision Material and select Fisio Material. Scroll down and find the parameter Collision Shape Type and choose Mesh. Set Enable, Fixed, and Selectable to On.
s. Run the Simulation. The chain will drape around the cylinder and not break (simulation was run to 46 frames, image shows frame 30).
t. Load a figure (I used G3M) and position it so its left arm is located where the cylinder is. Hide the cylinder. Repeat step r but for the figure this time.
u. Run the Simulation. It will be similar to step s. You’ll notice it doesn’t fit tightly around the arm but projects forward and looks as if the cylinder is still there. It is, even though it is hidden.
v. Select the cylinder and turn the Fisio parameter Enable to Off. Rerun the Simulation. Now it wraps around the arm.
Frame 30: Frame 40:
Key Learnings: (1) Use a small amount of cohesion to keep the chain links together. (2) If you have multiple Fisio Rigid Bodies in a scene but are only use one in a simulation, hiding the item does not remove it from a simulation as it does for dForce. You need to change Fisio Enable to Off.
6. Breaking the Chain
We found in the last example that Fisio Cohesion of 20 held the chain together. But what if you want to break it?
a. Use the same scene with figure as we did at the end of example 5. Give the G3M figure a pose and position the chain so it is over the left shoulder as shown in the images.
b. Set Fisio Scale to 0.25 and Fisio Material Setting Cohesion to 20 (same as the end of example 5). Note1: Cohesion values can be animated, so if you want the same value to be applied across all frames, be sure you are on frame 0 before changing. Note 2: If you have a Fisio Setting node in your Scene pane, change scale there and not in the Fisio pane.
c. Run the simulation. The chain will hold together to the end at frame 45.
d. Increase Fisio Scale to 0.5 and you’ll get the same result.
e. Increase Fisio Scale to 1.0 and the chain will break into three pieces at frame 8. The central piece will remain over the shoulder even to frame 45.
f. Increase Fisio Scale to 2.0 and the chain will break into multiple pieces at frame 3.
g. Now set Cohesion to 0 and leave Scale at 2. The chain breaks in a similar fashion.
h. Set Scale to 1.0 and 0.5. The chain breaks into multiple pieces but do not fall as far.
i. Set Scale to 0.25. The chain holds together until frame 15 then breaks into multiple pieces but is slower to break apart and slower to fall.
Key Learnings: (1) With Fisio Scale 0.25 and Fisio Material Cohesion 20, the chain holds together. As you increase Scale, the chain begins to break, first into large pieces and as scale gets even larger, many pieces. (2) With Cohesion at 0, the chain breaks apart into many small pieces quickly.
Put into action for a render:
7. Fisio Material Parameters - Cohesion
To better understand the effect of the Fisio Material parameters, I’ll use the apple drop arrangement I used in example 4. I could use spheres but the irregular form of the apple better shows how falling objects rotate.
a. I added a cube to the scene to provide something for apples to bounce off of or to accumulate around. The plane, cube, and apples all share the same Fisio material node so changes affect all surfaces.
b. Default Fisio parameters values are Density 1000, Bounciness 0, Friction 0, and Cohesion 0. The 80 apples form a circular spread after falling (frame 30 shown in all images).
c. I changed Cohesion to 10 and the result was a tight pile of apples. I reduced the value in stages and found even a value of Cohesion of 1 gave similar results. This was a little surprising given the Cohesion range on the parameter dial is 0 to 100.
d. It wasn’t until Cohesion of 0.25 that there appeared a slight spread to the pile.
e. Cohesion of 0.1 gave a bigger spread.
f. Cohesion of 0.05 gave a somewhat bigger spread (shown). At 0.01 it was not much different than the default value of 0.0.
g. To test a different drop, I rotated the stack of apples to a 30 degree angle so they didn’t pile on top of each other. The resulting pattern using default material values inclduing Cohesion of 0.0 is not much different than when they fell in a vertical column.
h. Increasing cohesion causes the apples to stick together. Cohesion of 1 and 10 gave a similar pattern, a row of apples.
i. Cohesion of 0.5 gave a few stray apples rolling away.
j. It wasn’t until Cohesion of 0.05 that there was much movement.
k. And at Cohesion 0.03 there was a more substantial spread but less than at the default value of 0.0.
Key Learnings: Cohesion appears to be a sensitive parameter. Values of 1 and higher appear to make everything stick together and stack. For a more subtle spread than what the default value of 0 gives, use very low levels 0.03-0.5. Note that using other objects and changing Fisio Scale may or may not give different results as I have not tested that.
8. Shooting a Cannon
Can Fisio shoot like a cannon? It can.
a. (Optional) Create a Y-positive cylinder that is 4 feet long, 6 inch diameter, 24 segments, and 32 sides. This is optional because this example works with or without a cannon barrel. Set Z-rotate to -30 to tilt the barrel.
b. Create a sphere that is 5.8 inches in diameter with 32 segments and 32 sides. This will be the cannon ball.
c. Create a 1 foot cube with 5 divisions. We will replicate this to build a wall. Move it to X-translate 720.
d. Create a 35 foot plane to serve as a base for the wall.
e. Create two Fisio Material Nodes, one for the sphere and one for the wall cubes so we can vary them independently.
f. Click on the Assign Rigid Bodies in the Fisio pane and select the cube, plane, and sphere. Go to the Parameters pane, and for the sphere select Fisio Material for the Collision Material. For the cube and plane, select Fisio Material (2). For the plane, set Fixed to On so it doesn’t move during the simulation.
g. Create instances of the cube and stack them to make a wall.
h. Create a Fisio Force Node. In Parameters pane, set Force Type to Directional. In the viewport, change the Z-rotation to 60 to align with the optional barrel. Click on the Active Only on this Body drop-down box and select the sphere. We do this as otherwise the force will act on the cubes as well.
i. The Fisio Force Node has a strength setting that runs from 0 to 10 million. I found I had to use a very low number to control how far the sphere flew otherwise it disappeared from view. The strength setting is also interactive with the density setting of the Fisio Material and how many frames it is active.
j. Set total frames in the Timeline to 121 frames and run the Fisio Simulation.
k. Hint: It can be hard to tell where the sphere went, so I parented a camera to the sphere so it was easy to spot in the viewport. You can also use this camera to have a bird’s eye view of the sphere in flight.
l.Images from various frames of the simulation:
0
Key Learnings: Using Fisio Directional Force requires balancing Strength, Density, and Duration of the Strength. Properly balanced, you can simulate a cannon firing.
Below are animated versions of the two cameras.
9. Ball Bounce
This is an exercise to test out what’s required to control the bounce of a ball.
a. Create two primitive cubes and a sphere and adjust their size and positions to look like the image. I have the cubes set at a 13 degree angle so the ball can roll downhill. I named one cube ‘base’, the smaller one ‘bumper’, and the sphere ‘ball’.
b. Create three Fisio materials, one for each part. Leve them all at default settings.
c. Make all three objects a Fisio Rigid body and select the related Fisio material.
d. Set the animation time line to 201 frames and run a simulation. The ball will fall and partially embed into the bumper then rise back out. No bounce will occur.
e. Change the ball’s Fisio material bounciness parameter to 0.1 and run a simulation: no bounce. Increase bounciness in steps and even at the max value of 1.0 there is no bounce. Return it to 0.
f. Repeat step e for the bumper. You get the same results: no bounce.
g. Change the ball’s AND bumper’s Fisio material bounciness parameter to 0.1 and run a simulation: no bounce. Increase bounciness in steps:
Key Learnings: Both objects colliding have to have bounciness settings for bounce to occur. Lower levels of bounciness did not impart much bounce. When both objects had values of 1.0 there was almost complete recovery. Values between 0.75 and 0.9 seem to give a good balance between amount of bounce and decay over time.
GIF with bounciness settings 0.9:
GIF with bounciness settings 1.0:
GIF with bounciness settings 0.8 and two bumpers. This could be a prelude to a pin ball machine (see next post).
Pin Ball:
Here's the result of adding two round bumpers to the previous example. All the bumpers and the ball have a bounciness setting of 0.95.