VICODynamics: a particle based Soft-Body physics Plugin

Great stuff!!

will this be implemented already when is released on marketplace?

Awesome vid :slight_smile:

Question: Will ropes and cloth be able to provide collision/contact event handlers (as opposed to e.g., FLEX, which doesn’t give you contacts)?

Thank you!

No, this will come in an update. But everyone will get GitHub access so you can grab the source from this branch and build it yourself.

Thanks!

Yes, this is a feature that is going to be added once the collision system is more or less finalized.

Thank you!

The underlying physics library, VICO Dynamics, does not know what a rope or cloth is nor does it care! It simply simulates the particles and constraints, which is the awesome bit. We simply started with ropes because our game needed them and they are easy to render. Soft bodies are next, and soon liquids.

Very great work. Thanks for your continuous effort to get this to the marketplace! I can’t wait to see what your Team does with fluids.

Thank you!

Here is a screenshot of the Performance Benchmarking program we use to test VICODynamics, notice anything?

Hi.

I have a question… how does the vico dynamics library work? Can you, let’s say, get a static mesh and use its info to make another object where every vertex is a particle with constraints that could behave as a softbody, or destructible, or even fluid?
I am just curious on what is possible, i looked in your website but i would like to understand more how it works. Thanks!

Yes and no! This is a feature we will be adding very soon to the library to take your mesh data and return a built SimObject. Although, you can do it yourself by processing the mesh data and creating the needed particles and constraints based on that data.

The library itself simply simulates the particles and constraints, what you do with them is up to you. It’s designed to not limit the functionality in any way.

This is coming together awesome! What kind of tweaking can you do to the simulation? Is it possible to change the mass and damping of each particle? What about the particle-particle constraints? Can I change how much they can twist? Constrain them to certain planes? I’m drawing on my experience working with creating physics constraints in the existing unreal physics system. Is it possible to create physics constraints and attach other objects in the simulation to the VICO sim objects during runtime?

Thank you!

You can change everything at runtime except the max particle/constraint counts which must be set before starting a simulation. So all the particle properties, constraint properties, add/remove particles/constraints and tweak simulation settings.
Currently, the attachment to Actors is one-way. Meaning, the particles are aware they are attached but the Actor does not. This is a big feature that we will be tackling next. Has to be one of the more requested ones.

There has been a bit less updates lately due to two things.

Firstly, we launched our Greenlight for our latest game: http://steamcommunity.com/sharedfiles/filedetails/?id=511284919 Please check it out and give us a vote.

And secondly, I have wrapped up creating the OpenCL version of VICODynamics! The simulation is now completely run on the GPU.
Here is a performance benchmark that I use internally:

On the left is CPU only and on the right is OpenCL, both simulating 50k particles and 100k constraints

ee021c32aa4eb94f8fec3f701f785b2898f3f98b.jpeg

Oh and both support runtime property editing and removal/addition of constraints and particles! The OpenCL memory model took the longest to avoid expensive Host->Device->Host copies. As well as the Constraint grouping algorithm to allow for parallel constraint solving in set batches on the GPU.

@ - voted on your game :slight_smile:

One suggestion I have is to put some overdrive into your animations, and perhaps also blend in some physics ragdolling for the limbs when they’re body slammed or on hit reactions - should lend a bit more weight and physicality to your animations.

Thank you for the vote!

And, yes, exactly what we are planning to do! We held off on adding it since UE4.0 due to bugs that we ran into.

This might be a dumb question, but all the videos show thick sort of ropes. I’m wondering if it will work just as well with much thinner cables, like wires for example? I have a scene with some telegraph wires that are only about 2cm thick and it would be nice to have them moving rather than just being static.

This brings me to my next question, but can we affect the wires with a force, such as wind? For example, if there was a breeze in the scene and I want the telegraph wires to sway in the wind, then I would want to apply a force to them from a given direction.

The thickness is completely adjustable. You can adjust both, the graphical mesh thickness and the simulated particles size/radius.

Yes, external forces can be applied, but they must be applied via certain functions since the simulation is separate from PhysX. For this, we will provide Components that do exactly that.

Sounds good. Is this something I can get now somewhere or is this coming to the marketplace at some point?

Hi guys, I’m curious if its possible to use your tech for tank tracks animation. Would be superb for one my projects:

which raises a couple of question I have to ask:

  • is it possible for rope particles to have something like a box collision instead of a sphere?
  • can you enforce the length of the rope is such a way that minimal stretching happens during simulation?
  • is it possible to make a loop?

I’m still waiting on Epic to approve the submission, but it is taking a while due to them having to setup new submission guidelines and such. Hopefully not too long now.

In the meantime, I can get you into early-access. Just send an email to ujen@.com and we’ll get you setup.