Search Unity

  1. All Pro and Enterprise subscribers: find helpful & inspiring creative, tech, and business know-how in the new Unity Success Hub. Sign in to stay up to date.
    Dismiss Notice
  2. Dismiss Notice

Physics Obi Particle Based Physics (Cloth, Rope, Fluid) thread

Discussion in 'Tools In Progress' started by arkano22, Jun 30, 2015.

?

Performance vs compatibility

Poll closed Oct 9, 2015.
  1. I don't care about performance, keep my data intact please.

    0 vote(s)
    0.0%
  2. I don't care if I have to re-do some stuff, as long as it runs faster.

    14 vote(s)
    100.0%
  1. wetcircuit

    wetcircuit

    Joined:
    Jul 17, 2012
    Posts:
    1,351
    Sorry, I did not see the FIRST THING in the description is a warning that it requires Unity 5.5.1 :oops:

    velma_lost_her_glasses_9414.jpg

    Okay, put on the crash helmet, Kids. We have to UPGRADE…..:eek:
     
  2. Deckard_89

    Deckard_89

    Joined:
    Feb 4, 2016
    Posts:
    300
    I just downloaded Obi cloth 3.0.1 into a test project, and, apart from the install window appearing twice, everything appears to be working great. Now, before I export an Obi Package to put into into my main project, I need to know what I can get rid of in order to have a "clean" import with the bare minimum.

    I assume I don't need the entire Sample Scenes folder, and Android & iOS plugins, since I am currently only developing for desktop. However, The Obi folder is a separate folder from the Editor default resources folder, so I assume I need to export them separately? I also already have and Editor default resources folder for another asset, so I wonder if there will be some conflict, or if all the content can be combined in the same folder?

    Cheers
     
  3. arkano22

    arkano22

    Joined:
    Sep 20, 2012
    Posts:
    818
    Hi Deckard!

    The "Editor default resources" folder is a special Unity folder that needs to be directly under "Assets". In Obi's case, there's a subfolder called "Obi", which contains all Obi-related editor resources. As long as this folder exists in your project ("Assets/Editor default resources/Obi"), it will be fine, even if "Editor default resources" contains more stuff for other assets. Also, /Assets/Gizmos must exist, but it is less critical (only contains script icons and everything will work just fine even if it's not there).

    From the /Obi folder, you can get rid of "Sample Scenes" and from /Obi/Plugins, all plugins you're not going to use (Android and iOS folders). Everything else should be left as-is.
     
    Deckard_89 likes this.
  4. KRGraphics

    KRGraphics

    Joined:
    Jan 5, 2010
    Posts:
    4,016
    I am about to pull the trigger on this awesome asset... do I really need a proxy to drive cloth, that is 1/4in thick?
     
  5. LYMaifm

    LYMaifm

    Joined:
    Feb 28, 2017
    Posts:
    3
    I'm trying to build a cloth-fitting project,some problems happening when i using the obi 3.0.1 .distance between each priticles on cloth doesn't uniformity ,cloth tearable(without using the trearble cloth solver).How can I fix that
     
  6. arkano22

    arkano22

    Joined:
    Sep 20, 2012
    Posts:
    818
    Hi there,

    If you're not using tearable cloth, it is impossible for the cloth to tear (it just isn´t implemented in regular cloth). Maybe what you are seeing is poor convergence, due to insufficient solver iterations for your particular problem. Try cranking up the amount of distance constraint iterations in the solver. The default is 3 which is not enough for complex cloth with many collisions. Of course more iterations mean less performance, so you should set the amount of iterations as high as you need, but not higher.

    Also, keep in mind that using Obi for cloth-fitting has its limitations: you cannot use a MeshCollider to calculate collisions with a deformable/animated body, and you´ll need pretty high cloth resolution since cloth collision is completely particle-based.

    cheers,
     
    Last edited: Mar 8, 2017
  7. arkano22

    arkano22

    Joined:
    Sep 20, 2012
    Posts:
    818
    If your cloth geometry has two sides joined by an "edge" (that is, it is not just a plane) then you´ll need a proxy no matter how thick or thin it is. Applying regular cloth directly to a "thick" geometry will result in a sack, because Obi does not know that the thickness must remain constant throughout the surface of the cloth.
     
    KRGraphics likes this.
  8. LYMaifm

    LYMaifm

    Joined:
    Feb 28, 2017
    Posts:
    3
    Some particles keep shaking when I running the scene, press Fix-selected cause more particles start shaking,and the cloth tear,is that my cloth mesh's problem?
     
  9. arkano22

    arkano22

    Joined:
    Sep 20, 2012
    Posts:
    818
    So finally, ObiFluid 3.0 has been uploaded to the Asset Store and is waiting for review. Here's the promotional video:



    Price stays the same as version 1.0, so the upgrade is completely free.
     
    KRGraphics, hopeful and Deckard_89 like this.
  10. iceiceice_

    iceiceice_

    Joined:
    Mar 9, 2017
    Posts:
    2
    man ,How to reduce particles? I just can't find it
     
  11. KRGraphics

    KRGraphics

    Joined:
    Jan 5, 2010
    Posts:
    4,016
    Oh, man... I can't wait to reproduce the blood fx like MKX... it looks SO good. As well as smoke effects and maybe a "rail gun" effect.
     
  12. KRGraphics

    KRGraphics

    Joined:
    Jan 5, 2010
    Posts:
    4,016
    Oh okay, that makes complete sense.. and does the cloth proxy have to be inside the thick or does it matter?
     
  13. arkano22

    arkano22

    Joined:
    Sep 20, 2012
    Posts:
    818
    Nope, the proxy can be inside or outside, at any distance from the driven mesh. Getting it as close as possible to the driven mesh usually yields better result, though. You can even use part of the original mesh to drive the rest of it, for instance simulate only the inner faces and let the outer ones follow that simulation. No need to create a second, simpler mesh to carry the simulation data. See: http://obi.virtualmethodstudio.com/tutorials/proxycharactercloth.html
     
    KRGraphics likes this.
  14. arkano22

    arkano22

    Joined:
    Sep 20, 2012
    Posts:
    818
    Hi iceiceice,

    I just replied to your question in Taiga, but I don't get what you want to reduce: particle size, number..?
     
  15. iceiceice_

    iceiceice_

    Joined:
    Mar 9, 2017
    Posts:
    2
    sry, I mean reducing the amount
     
  16. KRGraphics

    KRGraphics

    Joined:
    Jan 5, 2010
    Posts:
    4,016
    Good stuff... I was recently reading the tutorial on setting this up and I was very impressed with how easy it is... I usually see a lot of games use flat double sided geometry and you can see the model clipping into itself which is quite ugly. I'm glad to see this solved so easily...
     
    arkano22 likes this.
  17. arkano22

    arkano22

    Joined:
    Sep 20, 2012
    Posts:
    818
    When working with cloth the amount of particles is exactly the amount of vertices in your mesh, as one particle is generated per vertex. You cannot manually select how many particles to use for a given mesh, so you´ll need to use a less dense mesh.
     
    KRGraphics likes this.
  18. arkano22

    arkano22

    Joined:
    Sep 20, 2012
    Posts:
    818
    I´m going to write a series of posts tying together physical simulation concepts, as I think it can be beneficial for those who don´t really understand what's going on when using Obi (Or PhysX, or any other physics engine for that matter), or why some fundamental limitations apply. Will start easy and go trough more advanced stuff. Here's the first one in case you're interested:

    http://blog.virtualmethodstudio.com/2017/03/physics-101-understanding-physics-simulation/

    cheers!
     
    iddqd and KRGraphics like this.
  19. KRGraphics

    KRGraphics

    Joined:
    Jan 5, 2010
    Posts:
    4,016
    I'm cool with it. I come from a background of CG modeling, and having dense cloth is something I am used to. I'm also glad there are robust cloth editing tools, because editing cloth with the vanilla U5 was a pain.
     
  20. Deckard_89

    Deckard_89

    Joined:
    Feb 4, 2016
    Posts:
    300
    Amen
     
  21. adamz

    adamz

    Joined:
    Jul 18, 2007
    Posts:
    1,068
    is it possible to have tearable cloth on a skinned mesh?
     
  22. arkano22

    arkano22

    Joined:
    Sep 20, 2012
    Posts:
    818
    Hi adam,

    No, its not possible.
     
  23. iddqd

    iddqd

    Joined:
    Apr 14, 2012
    Posts:
    445
    Hi - I'm really loving your rope, but I'm trying to create a Rope at runtime and the ObiRopeHelper doesn't seem to be working.

    rope.AddToSolver(null); generates an error in ObiActor.cs:200

    Code (CSharp):
    1. NullReferenceException: Object reference not set to an instance of an object
    2. Obi.ObiActor.AddToSolver (System.Object info) (at Assets/Obi/Scripts/Actors/ObiActor.cs:200)
    3. Obi.ObiRope.AddToSolver (System.Object info) (at Assets/Obi/Scripts/Actors/ObiRope.cs:278)
    4. Obi.ObiRopeHelper+<Setup>c__Iterator0.MoveNext () (at Assets/Obi/Scripts/Utils/ObiRopeHelper.cs:53)
    I also saw that Cloth and Fluids were just updated to version 3 - will the Rope also get these updates?

    Thanks!
     
    Last edited: Mar 13, 2017
  24. rectalogic

    rectalogic

    Joined:
    Nov 30, 2012
    Posts:
    34
    Hmm, I just upgraded to 3.0 and still no i386 in the binary:

    $ lipo -info Obi/Plugins/iOS/libOni.a
    Architectures in the fat file: Obi/Plugins/iOS/libOni.a are: armv7 arm64

    Still plans to do this in a future 3.0 update?
     
  25. MitchC

    MitchC

    Joined:
    Sep 9, 2013
    Posts:
    22
    Hi, I just upgraded to ObiCloth 3. I'm having an issue using the Skin Map Editor. When I click the 'Edit Skin Map' button, I'm taken to a new scene where I can see the mesh in the middle of the scene view (though coloured with the missing material magenta), and I'm then kicked back to the previous scene after about half a second.

    I've copied over the files from both the Gizmos and Editor Default Resources folders. Everything else seems to be working fine. There are also no errors in the console.
     
  26. arkano22

    arkano22

    Joined:
    Sep 20, 2012
    Posts:
    818
    Hi there!

    I cannot reproduce this in the current obi rope release, are you initializing the rope in-editor (even if it's with a dummy spline)?

    And yes, we are already working on ObiRope 3.0.
     
  27. arkano22

    arkano22

    Joined:
    Sep 20, 2012
    Posts:
    818
    Yes, we do want to add simulator support in the 3.x cycle. It still hasn´t been added simply because lack of time to test it properly. We have added it to our issue list in Taiga so that it doesn´t pass unnoticed.
     
  28. arkano22

    arkano22

    Joined:
    Sep 20, 2012
    Posts:
    818
    What Unity version are you using? we are unable to reproduce this in 5.5.0 and 5.5.1f1. It's quite weird behaviour considering that once you click Edit Skin Map, there are no coroutines or delayed methods being called by Obi's code that could trigger a kickback to the previous scene.
     
  29. MitchC

    MitchC

    Joined:
    Sep 9, 2013
    Posts:
    22
    I'm using 5.5.2f1. I also tested it in a new blank project, and got the same result. I'd give you more information, but with there being no errors at all I'm not sure what else I can give you. :(

    EDIT:

    Aside from this, I've just found some larger compatibility issues between this asset and seemingly anything else which modifies joint positions. We're using PuppetMaster and Dynamic Bone on our main character, and both of these either stop working or misbehave when ObiCloth is applied to the actor. Adjusting the script execution order didn't seem to have any difference. Is there something we can do to make ObiCloth work in conjunction with other scripts which are modifing joint positions?
     
    Last edited: Mar 16, 2017
  30. arkano22

    arkano22

    Joined:
    Sep 20, 2012
    Posts:
    818
    HI Mitch,

    I´ll try to reproduce it in 5.5.2f1 and get back with any results.

    Obi updates the character's Animator component right after all component's have finished their FixedUpdate(). After that, the simulation is updated. This is not an standard place to update animation, but it is absolutely needed for correct simulation since cloth must be affected by any joint movements that take place each frame (animated, scripted or physically simulated). Also this cannot be changed using script ordering, but should pick up any joint manipulation done in FixedUpdate.

    Without knowing in detail what are PuppetMaster or Dynamic Bone doing internally, or what the effect of using them together with Obi is, it is pretty much impossible to tell what's going on. I´ll try to get a license for both and test them.

    EDIT: Tried PuppetMaster, and the issue is that they're updating their bone to muscle mapping in LateUpdate(). By the time LateUpdate is called, all FixedUpdates that frame have been processed, Obi has already grabbed joint positions, and performed simulation. So basically everything PuppetMaster does is being ignored regardless of script ordering.

    The only way to fix this would be to modify PuppetMaster so that they update joint positions in FixedUpdate() (which imho is the only logical place to do it, since they're working with rigidbodies). We can´t do anything to fix it because cloth simulation must be updated after every FixedUpdate() in order to react correctly to rigidbody physics. It cannot be updated in LateUpdate().
     
    Last edited: Mar 16, 2017
  31. dizzy2003

    dizzy2003

    Joined:
    Nov 25, 2013
    Posts:
    84
    Hi,

    Coder From MitchC's team here, I have only had a quick look at the cloth system over Mitch's shoulder.

    TLDR: Are you writing to the animation pose (unity bone transforms) or replacing unity animation/soft skinning some how?


    I'm not sure why DynamicBone isnt working with the cloth as it effectively updates the animation pose (you can choose if it does it at Update/LateUpdate/FixedUpdate). And I assume the cloth is only reading the animation pose not writing a new one. I assume the cloth is outputting a new set of verts that have the cloth animation applied and then the soft skinning of the animation pose is applied. (so if dynamic bone runs before or after cloth should be irrelevant in that we will at least see its effects in the soft skinning, we dont actually have dynamic Bone used on any cloth parts of the mesh so the dynamic bones dont need to feed forward into the appearance of the cloth motion)

    BTW Dynamic Bones is just a simple wobble bone type system,a simple spring effect on the transforms . Actually looking more in depth, its always writing to the transforms in LateUpdate, but is able to read the transforms in either update or FixedUpdate.

    I'm starting to wonder if maybe your cloth is reskinning the object adding extra cloth bones rather than doing vertex animation and that is why the animation pose is being overwritten?

    MikeD.
     
  32. arkano22

    arkano22

    Joined:
    Sep 20, 2012
    Posts:
    818
    Hi there,

    Obi's character cloth works in the following way:

    At initialization, an instance of the SkinnedMeshRenderers' sharedMesh is created. This mesh is sent to our library for later (multithreaded) skinning, as we do not rely on Unity's default skinning since retrieving skinned mesh vertices using skinnedMeshRenderer.BakeMesh() is extremely slow (not to mention it is a waste of memory). The original mesh then has all of its skinning weights removed, to prevent the SkinnedMeshRenderer from doing any skinning (since we are rolling our own).

    Now, since Unity is NOT skinning the character as usual, but Obi is, it is important that the joint transforms sent to Obi are final for the current frame. Any modifications done to them later down the road will just be ignored, and won´t show up in the mesh skinning.

    After all object's FixedUpdate() have been processed we pick up the bone's transforms and send them to our library. Then our copy of the sharedMesh is skinned using these transforms, and the simulation is added on top of the result. In LateUpdate(), the skinned/simulated mesh is fed back into the SkinnedMeshRenderer for rendering.

    When doing this together with either PuppetMaster or Dynamic Bone, the sequence of events is this:

    - FixedUpdate: Obi updates the animator, grabs joint positions and sends them to the internal library to perform skinning and simulation. At the end of FixedUpdate, the new mesh is ready for rendering or further processing.
    - LateUpdate: PM or DB set joint positions (too late, since Obi has already grabbed them and has already skinned the mesh, so these new joint positions will be ignored)
    - LateUpdate: Obi feeds the skinned and simulated mesh to the renderer. (might do this even before PM or DB modify the joints, depending on script order)

    cheers,
     
    Last edited: Mar 17, 2017
  33. Piahouka

    Piahouka

    Joined:
    Sep 1, 2015
    Posts:
    40
    Hi.
    I tried new obi cloth with ottii's motion controller, but obi cloth did not simulate
    correctly. but, when motion controller is using transform setting, obi cloth simulates correctly.
    But I do not want to use transform. How could I solve this?
     
  34. Yang_Sir

    Yang_Sir

    Joined:
    Sep 19, 2015
    Posts:
    6
    I make the character clothing ,but when i initialize,it is wrong. 01.png 02.png
     
  35. rectalogic

    rectalogic

    Joined:
    Nov 30, 2012
    Posts:
    34
    In ObiCloth 3.0, it looks like ObiActor.GetParticlePosition() now requires ObiSolver.RequireRenderablePositions() to have been called prior to the current solver frame, otherwise it returns invalid results.

    I'm handling multiple touches via IPointerDownHandler.OnPointerDown, and I need the particle position in here, but it's too late to call RequireRenderablePositions because they won't be valid until after the current frame.

    I guess I could always RequireRenderablePositions, but I only need them during touches. Maybe the logic in ObiSolver.EndFrame that computes renderable positions could be extracted into a method so I could call it explicitly in OnPointerDown to get the previous frames positions, and then I would also RequireRenderablePositions so that future frames would have the positions available (during drag etc.), and then RelinquishRenderablePositions when the touches are finished.
     
  36. arkano22

    arkano22

    Joined:
    Sep 20, 2012
    Posts:
    818
    Since Obi 3.0 updates the cloth mesh in the C++ lib, there was no longer any need to constantly retrieve particle positions from C# which is relatively expensive. So the Require/Relinquish calls were added to notify the solver that your are actually going to need these positions in C# for some other purpose. Unless someone has called Retrieve and hasn´t called Relinquish yet, positions aren´t retrieved at all.

    Particle positions are retrieved, in case anyone called RequireRenderablePositions(), in the solver's LateUpdate(). If you call Require during the normal Update() cycle, or even during FixedUpdate(), they will be available to any scripts that execute LateUpdate() after the solver does. Just add an script and tweak its execution order so that it updates after the solver, and it will have up-to-date positions available.

    Alternatively, you can just call Oni.GetRenderableParticlePositions() at any time (just like the solver does), and you´ll get an array of all solver-space particle positions whenever you need it. This is a lower-level call and can potentially crash your app if you call it with incorrect arguments, so be careful. You need to provide:
    - the solver handle.
    - array to hold the positions.
    - size of the array to hold the positions.
    - offset in the internal array to begin copy from (usually zero)
     
    Last edited: Mar 18, 2017
  37. arkano22

    arkano22

    Joined:
    Sep 20, 2012
    Posts:
    818
    Hi Yang,

    Make sure that the mesh used to generate the trenchcoat topology and the actual mesh in the renderer are exactly the same. You cannot use the topology of mesh "A" to initialize a cloth that uses mesh "B" (well, you can if they have the same amount of vertices and Obi won´t complain, but if connectivity or vertex ordering changes you´ll get results very much like this)

    cheers,
     
  38. arkano22

    arkano22

    Joined:
    Sep 20, 2012
    Posts:
    818
    Hi there,

    I don´t know what ottii's motion controller is, much less how it works. A quick search of "ottii" in the Asset Store did not return any results. Can you provide some more info?
     
  39. Piahouka

    Piahouka

    Joined:
    Sep 1, 2015
    Posts:
    40
  40. rectalogic

    rectalogic

    Joined:
    Nov 30, 2012
    Posts:
    34
    Thanks. I just need the position of the closest particle "clicked" by the user so I added an extension method to retrieve it on demand.

    Code (CSharp):
    1. public static class ExtensionMethods {
    2.     public static Vector3 GetCurrentRenderableParticlePosition(this ObiActor actor, int particleIndex) {
    3.         Vector4[] positions = new Vector4[1];
    4.         Oni.GetRenderableParticlePositions(actor.Solver.OniSolver, positions, positions.Length, actor.particleIndices[particleIndex]);
    5.         return positions[0];
    6.     }
    7. }
     
    arkano22 likes this.
  41. adamz

    adamz

    Joined:
    Jul 18, 2007
    Posts:
    1,068
    @arkano22

    Hey. I'm following this tutorial on how to get a trench coat set up. I put together a quick character (please excuse the quick weighting), and every time I hit the Play button the coat freezes behind my character. I also compared it against your Obi Guy and I don't see any differences.

    My characters coat is a single layer piece of geometry, with a double-sided shader. It's skinned to my character, and its weighted.

    I'm not sure if I was suppose to set up a Skin Map or not, but I did in my example screenshots. Is that something I should do if it's a single layer without any pockets? I'm also confused with the Source Topology and Target Mesh for the skin map. I'm using the same piece of geometry. I also saw the same problem as Yang_Sir until I added the Triangle Skin Map. When I disabled the Obi Cloth Proxy, my cloth mesh went crazy.

    In running Unity 5.5.2f1 and Obi 3.0.1.

    Any thoughts? Thanks.
     

    Attached Files:

    Last edited: Mar 24, 2017
  42. arkano22

    arkano22

    Joined:
    Sep 20, 2012
    Posts:
    818
    HI Adamz,

    For this kind of geometry you should not be using proxies at all. They will only complicate the setup and eat performance, for no benefit at all. Proxies are meant to be used with geometry that cannot be simulated directly as it would collapse due to the lack of internal constraints, in other words: volumetric geometry. Your trenchcoat is a single layer, so it will simulate fine just by using ObiCloth directly.

    Also, check your console for any errors complaining about too few particles in the solver pool. I see in the screenshots that your solver has the default value of 5000, which might be too few for both characters if they share the same solver. Once the first character allocates its particles, the second one might not have enough. Set it to a higher value.
     
  43. OnlyVR

    OnlyVR

    Joined:
    Oct 5, 2015
    Posts:
    54
    Hi Arkano,

    If there are let say two cloth pieces 5000 particles each will one solver utilize multiple threads? If I create two solvers(one per cloth) will it use two threads? If there an disadvantage in using multiple solvers instead of one?
    Thanks.
     
  44. arkano22

    arkano22

    Joined:
    Sep 20, 2012
    Posts:
    818
    Obi will always create as many threads as cores are in your CPU, then automatically distribute the workload among them using a task-based system. This is not done per-cloth, but per constraint. This means a big piece of cloth may be split and processed by 2 threads, or many small cloth objects be batched together and done in a single thread. This is decided automatically and doesn´t depend on how many solvers you have on the scene. It only depends on the amount of work to be done and thread availability.

    Cloth objects from different solvers might get updated in the same thread, or might not. They might even be split in several batches and parts of them processed by different threads.

    So, if you create two solvers, the only advantage performance-wise you will get is culling: If one of the solvers is not visible by any camera and you have "simulate when visible" disabled, it will not simulate until visible again.
     
  45. adamz

    adamz

    Joined:
    Jul 18, 2007
    Posts:
    1,068
    So I tried setting this up again. First I created a Mesh Topology of my overcoat. Then I added an Obi Solver attached to the root of my character, max particles set to 10,000 (my mesh overcoat has 2,166 tris). Lastly I attached an Obi Cloth to my overcoat mesh. Under the Obi Cloth, I choose the solver on my character, and the Mesh Topology and clicked Initialize. When I hit Play I get the "spike" simulation. What am I missing? Thanks.
     

    Attached Files:

  46. arkano22

    arkano22

    Joined:
    Sep 20, 2012
    Posts:
    818
    Hi Adamz,

    Could you share your scene with me? (send it to our support email: obi(at)virtualmethodstudio.com) It is very difficult to diagnose just from the screenies alone. All the obvious stuff seems right, but some other things could be going wrong:

    - Do the mesh used for the topology and the one used for rendering have the exact same vertex ordering? (if you have updated the mesh in an external tool after creating the topology and haven´t recreated it after, they might not)
    - Scaling issues.
    - ObiSolver parameters
    - Unity physics parameters
     
  47. adamz

    adamz

    Joined:
    Jul 18, 2007
    Posts:
    1,068
    Sure, I can send you a test scene later. You mentioned "Do the mesh used for the topology and the one used for rendering have the exact same vertex ordering?" What do you mean by this? When I create the mesh topology, it's the same one that is brought in when my character is exported from Maya. So once I import my Character into Unity as an fbx, I choose the Overcoat to create a Mesh Topology object, click the Generate button, and use that to link it. Am I suppose to use two separate meshes?
     
  48. Crossway

    Crossway

    Joined:
    May 24, 2016
    Posts:
    442
    Is there any video tutorial? I can never learn with just reading.
     
  49. arkano22

    arkano22

    Joined:
    Sep 20, 2012
    Posts:
    818
    Hi Adamz,

    No, you're supposed to use the exact same mesh for the topology and the actual object. You're doing it right :).
     
    Last edited: Mar 27, 2017
  50. arkano22

    arkano22

    Joined:
    Sep 20, 2012
    Posts:
    818
    Hi Crossway,

    No, there aren´t yet, but I plan on making some (and have been for a while now). There are some actual "use cases" in each of the manual sections (for cloth, rope and fluids) that might give you an easier time.

    Anyhow, Obi is a pretty complex simulator and I´m completely aware of this. This makes the lack of video tutorials even worse, but wanted to more or less complete the written documentation before delving into other forms of documentation. Better to complete 1 thing than to have 2 half-assed ones...
     
unityunity